XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/gpt4free

Fix api and None provider

3a81f9a2
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

2 个文件 +39 -20
Added etc/testing/test_api.py +27 -0
@@ -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()
Modified g4f/api/__init__.py +12 -20
@@ -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