mirror of https://github.com/xtekky/gpt4free.git
~ | improve Vercel & g4f.Completion.create
added `.Completion.create` class. ```py response = g4f.Completion.create( model='text-davinci-003', prompt="Hello") print(response) ```
This commit is contained in:
parent
af9fc19938
commit
6c2e3cc53c
|
@ -48,9 +48,11 @@ class Vercel(BaseProvider):
|
|||
'playgroundId': str(uuid.uuid4()),
|
||||
'chatIndex' : 0} | model_info[model]['default_params']
|
||||
|
||||
|
||||
server_error = True
|
||||
while server_error:
|
||||
retries = 0
|
||||
max_retries = kwargs.get('max_retries', 20)
|
||||
|
||||
while server_error and not retries > max_retries:
|
||||
response = requests.post('https://sdk.vercel.ai/api/generate',
|
||||
headers=headers, json=json_data, stream=True)
|
||||
|
||||
|
@ -59,6 +61,8 @@ class Vercel(BaseProvider):
|
|||
server_error = False
|
||||
yield (token.decode())
|
||||
|
||||
retries += 1
|
||||
|
||||
def AntiBotToken() -> str:
|
||||
headers = {
|
||||
'authority' : 'sdk.vercel.ai',
|
||||
|
|
|
@ -68,3 +68,30 @@ class ChatCompletion:
|
|||
raise Exception(f"Provider: {provider.__name__} doesn't support create_async")
|
||||
|
||||
return await provider.create_async(model.name, messages, **kwargs)
|
||||
|
||||
class Completion:
|
||||
@staticmethod
|
||||
def create(
|
||||
model : Union[models.Model, str],
|
||||
prompt : str,
|
||||
provider : Union[type[BaseProvider], None] = None,
|
||||
stream : bool = False, **kwargs) -> Union[CreateResult, str]:
|
||||
|
||||
allowed_models = [
|
||||
'code-davinci-002',
|
||||
'text-ada-001',
|
||||
'text-babbage-001',
|
||||
'text-curie-001',
|
||||
'text-davinci-002',
|
||||
'text-davinci-003'
|
||||
]
|
||||
|
||||
if model not in allowed_models:
|
||||
raise Exception(f'ValueError: Can\'t use {model} with Completion.create()')
|
||||
|
||||
model, provider = get_model_and_provider(model, provider, stream)
|
||||
|
||||
result = provider.create_completion(model.name,
|
||||
[{"role": "user", "content": prompt}], stream, **kwargs)
|
||||
|
||||
return result if stream else ''.join(result)
|
Loading…
Reference in New Issue