gpt4free/README.md
t.me/xtekky 3be905b742 rename poe api ( gpt 4 ) to quora
due to having same name as poe-api, I changed the name for it to be used with the other package
2023-04-10 01:09:29 +02:00

6.8 KiB

Free LLM APIs

This repository provides reverse-engineered language models from various sources. Some of these models are already available in the repo, while others are currently being worked on.

Important: If you come across any website offering free language models, please create an issue or submit a pull request with the details. We will reverse engineer it and add it to this repository.

To-Do List

  • implement poe.com create bot feature (4)
  • poe.com chat history management (3)
  • renaming the 'poe' module to 'quora' (2)
  • add you.com api (1)

Table of Contents

Current Sites

Website Model(s)
ora.sh GPT-3.5
nat.dev GPT-4/3.5 (paid now, looking for bypass)
poe.com GPT-4/3.5
writesonic.com GPT-3.5 / Internet
t3nsor.com GPT-3.5
you.com GPT-3.5 / Internet / good search

Sites with Authentication

These sites will be reverse engineered but need account access:

Usage Examples

Example: quora (poe) (use like openai pypi package) - GPT-4

# Import quora (poe)
import quora

# quora.Account.create
# quora.Completion.create
# quora.StreamCompletion.create

[...]

Create Token (3-6s)

token = quora.Account.create(logging = True)
print('token', token)

Streaming Response


for response in quora.StreamingCompletion.create(model  = 'gpt-4',
    prompt = 'hello world',
    token  = token):
    
    print(response.completion.choices[0].text, end="", flush=True)

Normal Response:


response = quora.Completion.create(model  = 'gpt-4',
    prompt = 'hello world',
    token  = token)

print(response.completion.choices[0].text)    

Example: t3nsor (use like openai pypi package)

# Import t3nsor
import t3nsor

# t3nsor.Completion.create
# t3nsor.StreamCompletion.create

[...]

Example Chatbot

messages = []

while True:
    user = input('you: ')

    t3nsor_cmpl = t3nsor.Completion.create(
        prompt   = user,
        messages = messages
    )

    print('gpt:', t3nsor_cmpl.completion.choices[0].text)
    
    messages.extend([
        {'role': 'user', 'content': user }, 
        {'role': 'assistant', 'content': t3nsor_cmpl.completion.choices[0].text}
    ])

Streaming Response:

for response in t3nsor.StreamCompletion.create(
    prompt   = 'write python code to reverse a string',
    messages = []):

    print(response.completion.choices[0].text)

Example: ora (use like openai pypi package)

# import ora
import ora

[...]

create model / chatbot:

# inport ora
import ora

# create model
model = ora.CompletionModel.create(
    system_prompt = 'You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible',
    description   = 'ChatGPT Openai Language Model',
    name          = 'gpt-3.5')

# init conversation (will give you a conversationId)
init = ora.Completion.create(
    model  = model,
    prompt = 'hello world')

print(init.completion.choices[0].text)

while True:
    # pass in conversationId to continue conversation
    
    prompt = input('>>> ')
    response = ora.Completion.create(
        model  = model,
        prompt = prompt,
        conversationId = init.id)
    
    print(response.completion.choices[0].text)

Example: writesonic (use like openai pypi package)

# import writesonic
import writesonic

# create account (3-4s)
account = writesonic.Account.create(logging = True)

# with loging: 
    # 2023-04-06 21:50:25 INFO __main__ -> register success : '{"id":"51aa0809-3053-44f7-922a...' (2s)
    # 2023-04-06 21:50:25 INFO __main__ -> id : '51aa0809-3053-44f7-922a-2b85d8d07edf'
    # 2023-04-06 21:50:25 INFO __main__ -> token : 'eyJhbGciOiJIUzI1NiIsInR5cCI6Ik...'
    # 2023-04-06 21:50:28 INFO __main__ -> got key : '194158c4-d249-4be0-82c6-5049e869533c' (2s)

# simple completion
response = writesonic.Completion.create(
    api_key = account.key,
    prompt  = 'hello world'
)

print(response.completion.choices[0].text) # Hello! How may I assist you today?

# conversation

response = writesonic.Completion.create(
    api_key = account.key,
    prompt  = 'what is my name ?',
    enable_memory = True,
    history_data  = [
        {
            'is_sent': True,
            'message': 'my name is Tekky'
        },
        {
            'is_sent': False,
            'message': 'hello Tekky'
        }
    ]
)

print(response.completion.choices[0].text) # Your name is Tekky.

# enable internet

response = writesonic.Completion.create(
    api_key = account.key,
    prompt  = 'who won the quatar world cup ?',
    enable_google_results = True
)

print(response.completion.choices[0].text) # Argentina won the 2022 FIFA World Cup tournament held in Qatar ...

Example: you (use like openai pypi package)

import you

# simple request with links and details
response = you.Completion.create(
    prompt       = "hello world",
    detailed     = True,
    includelinks = True,)

print(response)

# {
#     "response": "...",
#     "links": [...],
#     "extra": {...},
#         "slots": {...}
#     }
# }

#chatbot

chat = []

while True:
    prompt = input("You: ")
    
    response = you.Completion.create(
        prompt  = prompt,
        chat    = chat)
    
    print("Bot:", response["response"])
    
    chat.append({"question": prompt, "answer": response["response"]})

Dependencies

The repository is written in Python and requires the following packages:

  • websocket-client
  • requests
  • tls-client

You can install these packages using the provided requirements.txt file.

Repository structure:

.
├── ora/
├── quora/ (/poe)
├── t3nsor/
├── testing/
├── writesonic/
├── you/
├── README.md  <-- this file.
└── requirements.txt