返回提交历史
Modified
g4f/models.py
+6
-7
Modified
g4f/tools/media.py
+5
-4
XFEstudio/gpt4free
Refactor media rendering to yield messages only if content parts exist
86eab3b9
代码差异
2 个文件
+11
-11
@@ -8,7 +8,7 @@ from .Provider import (
8
8
### No Auth Required ###
9
9
Chatai,
10
10
Cloudflare,
11
Copilot,
11
Ollama,
12
12
DeepInfra,
13
13
HuggingSpace,
14
14
Grok,
@@ -31,7 +31,6 @@ from .Provider import (
31
31
### Needs Auth ###
32
32
Azure,
33
33
BingCreateImages,
34
CopilotAccount,
35
34
Gemini,
36
35
GeminiCLI,
37
36
GeminiPro,
@@ -153,7 +152,7 @@ default = Model(
153
152
best_provider = IterListProvider([
154
153
OIVSCodeSer0501,
155
154
OIVSCodeSer2,
156
Copilot,
155
Ollama,
157
156
DeepInfra,
158
157
OperaAria,
159
158
GLM,
@@ -181,7 +180,7 @@ default_vision = VisionModel(
181
180
HuggingSpace,
182
181
GeminiPro,
183
182
HuggingFaceAPI,
184
CopilotAccount,
183
Ollama,
185
184
OpenaiAccount,
186
185
Gemini,
187
186
], shuffle=False)
@@ -191,7 +190,7 @@ default_vision = VisionModel(
191
190
gpt_4 = Model(
192
191
name = 'gpt-4',
193
192
base_provider = 'OpenAI',
194
best_provider = IterListProvider([Copilot, Yqcloud, WeWordle, OpenaiChat])
193
best_provider = IterListProvider([Yqcloud, WeWordle, OpenaiChat])
195
194
)
196
195
197
196
# gpt-4o
@@ -223,7 +222,7 @@ gpt_4o_mini_tts = AudioModel(
223
222
o1 = Model(
224
223
name = 'o1',
225
224
base_provider = 'OpenAI',
226
best_provider = IterListProvider([Copilot, OpenaiAccount])
225
best_provider = IterListProvider([OpenaiAccount])
227
226
)
228
227
229
228
o1_mini = Model(
@@ -294,7 +293,7 @@ gpt_oss_120b = Model(
294
293
dall_e_3 = ImageModel(
295
294
name = 'dall-e-3',
296
295
base_provider = 'OpenAI',
297
best_provider = IterListProvider([CopilotAccount, OpenaiAccount, MicrosoftDesigner, BingCreateImages])
296
best_provider = IterListProvider([OpenaiAccount, MicrosoftDesigner, BingCreateImages])
298
297
)
299
298
300
299
gpt_image = ImageModel(
@@ -94,10 +94,11 @@ def render_messages(messages: Messages, media: list = None) -> Iterator:
94
94
# Render content parts
95
95
if isinstance(message.get("content"), list):
96
96
parts = [render_part(part) for part in message["content"] if part]
97
yield {
98
**message,
99
"content": [part for part in parts if part]
100
}
97
if parts:
98
yield {
99
**message,
100
"content": [part for part in parts if part]
101
}
101
102
else:
102
103
# Append media to the last message
103
104
if media is not None and idx == len(messages) - 1: