フォーク元 g4f/gpt4free
1
1
フォーク 0

Changement de structure pour éclaircir le code et que les agents soient prédéfinis

このコミットが含まれているのは:
EbaAaZ 2023-05-17 08:56:12 -04:00
コミット d3fe365e23
3個のファイルの変更17行の追加34行の削除

4
.gitignore vendored
ファイルの表示

@ -11,4 +11,6 @@
config.ini
secrets.txt
app.py
typing.py
typing.py
_init_.py
you.py

ファイルの表示

@ -1,19 +1,16 @@
import os
import json
import time
import subprocess
from ..typing import get_type_hints
from ..typing import sha256, Dict, get_type_hints
url = 'https://you.com'
model = 'gpt-3.5-turbo'
def _create_completion(model: str, messages: list, **kwargs):
def _create_completion(model, messages, **kwargs):
path = os.path.dirname(os.path.realpath(__file__))
config = json.dumps({
'messages': messages}, separators=(',', ':'))
config = json.dumps({'messages': messages}, separators=(',', ':'))
cmd = ['python3', f'{path}/helpers/you.py', config]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

ファイルの表示

@ -1,16 +1,8 @@
import sys
from .typing import MetaModels, Union
from .typing import MetaModels
from . import Providers
class Models(metaclass=MetaModels):
class model:
name: str
base_provider: str
best_site: str
class gpt_35_turbo:
name: str = 'gpt-3.5-turbo'
base_provider: str = 'openai'
@ -20,28 +12,20 @@ class Models(metaclass=MetaModels):
name: str = 'gpt-4'
base_provider: str = 'openai'
best_site: str = Providers.Phind
class Utils:
convert: dict = {
'gpt-3.5-turbo': Models.gpt_35_turbo,
'gpt-4': Models.gpt_4
}
class ChatCompletion:
@staticmethod
def create(model: Models.model or str, messages: list, provider: Providers.Provider = None, stream: bool = False, **kwargs):
def create(model, messages, provider=None, stream=False, **kwargs):
try:
if isinstance(model, str):
model = Utils.convert[model]
engine = model.best_site if not provider else provider
model_name = model.name if isinstance(model, Models) else model
return (engine._create_completion(model.name, messages, **kwargs)
if stream else ''.join(engine._create_completion(model.name, messages, **kwargs)))
return (engine._create_completion(model_name, messages, **kwargs)
if stream else ''.join(engine._create_completion(model_name, messages, **kwargs)))
except TypeError as e:
print(e)
arg: str = str(e).split("'")[1]
print(
f"ValueError: {engine.__name__} does not support '{arg}' argument", file=sys.stderr)
sys.exit(1)
arg = str(e).split("'")[1]
raise ValueError(f"{engine.__name__} does not support '{arg}' argument") from e
# you.py