返回提交历史
Added
etc/testing/test_api.py
+27
-0
Modified
g4f/api/__init__.py
+12
-20
XFEstudio/gpt4free
Fix api and None provider
3a81f9a2
代码差异
2 个文件
+39
-20
@@ -0,0 +1,27 @@
1
import openai
2
3
# Set your Hugging Face token as the API key if you use embeddings
4
# If you don't use embeddings, leave it empty
5
openai.api_key = "YOUR_HUGGING_FACE_TOKEN" # Replace with your actual token
6
7
# Set the API base URL if needed, e.g., for a local development environment
8
openai.api_base = "http://localhost:1337/v1"
9
10
def main():
11
response = openai.ChatCompletion.create(
12
model="gpt-3.5-turbo",
13
messages=[{"role": "user", "content": "write a poem about a tree"}],
14
stream=True,
15
)
16
if isinstance(response, dict):
17
# Not streaming
18
print(response.choices[0].message.content)
19
else:
20
# Streaming
21
for token in response:
22
content = token["choices"][0]["delta"].get("content")
23
if content is not None:
24
print(content, end="", flush=True)
25
26
if __name__ == "__main__":
27
main()
@@ -83,28 +83,17 @@ class Api:
83
83
model = item_data.get('model')
84
84
stream = True if item_data.get("stream") == "True" else False
85
85
messages = item_data.get('messages')
86
conversation = item_data.get('conversation') if item_data.get('conversation') != None else None
87
provider = item_data.get('provider').replace('g4f.Provider.', '')
86
provider = item_data.get('provider', '').replace('g4f.Provider.', '')
88
87
provider = provider if provider and provider != "Auto" else None
89
if provider != None:
90
provider = g4f.Provider.ProviderUtils.convert.get(provider)
91
88
92
89
try:
93
if model == 'pi':
94
response = g4f.ChatCompletion.create(
95
model=model,
96
stream=stream,
97
messages=messages,
98
conversation=conversation,
99
provider = provider,
100
ignored=self.list_ignored_providers)
101
else:
102
response = g4f.ChatCompletion.create(
103
model=model,
104
stream=stream,
105
messages=messages,
106
provider = provider,
107
ignored=self.list_ignored_providers)
90
response = g4f.ChatCompletion.create(
91
model=model,
92
stream=stream,
93
messages=messages,
94
provider = provider,
95
ignored=self.list_ignored_providers
96
)
108
97
except Exception as e:
109
98
logging.exception(e)
110
99
return Response(content=json.dumps({"error": "An error occurred while generating the response."}, indent=4), media_type="application/json")
@@ -179,9 +168,12 @@ class Api:
179
168
180
169
content = json.dumps(end_completion_data, separators=(',', ':'))
181
170
yield f'data: {content}\n\n'
182
183
171
except GeneratorExit:
184
172
pass
173
except Exception as e:
174
logging.exception(e)
175
content=json.dumps({"error": "An error occurred while generating the response."}, indent=4)
176
yield f'data: {content}\n\n'
185
177
186
178
return StreamingResponse(streaming(), media_type="text/event-stream")
187
179