返回提交历史
Modified
g4f/Provider/openai/models.py
+1
-1
Modified
g4f/providers/base_provider.py
+1
-1
Deleted
g4f/tools/langchain.py
+0
-41
XFEstudio/gpt4free
Add gpt-4.5 model
963e0104
代码差异
3 个文件
+2
-43
@@ -1,6 +1,6 @@
1
1
default_model = "auto"
2
2
default_image_model = "dall-e-3"
3
3
image_models = [default_image_model]
4
text_models = [default_model, "gpt-4", "gpt-4o", "gpt-4o-mini", "o1", "o1-preview", "o1-mini", "o3-mini", "o3-mini-high"]
4
text_models = [default_model, "gpt-4", "gpt-4.5", "gpt-4o", "gpt-4o-mini", "o1", "o1-preview", "o1-mini", "o3-mini", "o3-mini-high"]
5
5
vision_models = text_models
6
6
models = text_models + image_models
@@ -377,7 +377,7 @@ class RaiseErrorMixin():
377
377
raise ResponseError(data["error"])
378
378
elif "code" in data["error"]:
379
379
raise ResponseError("\n".join(
380
[e for e in [f'Error {data["error"]["code"]}:{data["error"]["message"]}', data["error"].get("failed_generation")] if e is not None]
380
[e for e in [f'Error {data["error"]["code"]}: {data["error"]["message"]}', data["error"].get("failed_generation")] if e is not None]
381
381
))
382
382
elif "message" in data["error"]:
383
383
raise ResponseError(data["error"]["message"])
@@ -1,41 +0,0 @@
1
from __future__ import annotations
2
3
from typing import Any, Dict
4
from langchain_community.chat_models import openai
5
from langchain_community.chat_models.openai import ChatOpenAI, BaseMessage, convert_message_to_dict
6
from pydantic import Field
7
from g4f.client import AsyncClient, Client
8
from g4f.client.stubs import ChatCompletionMessage
9
10
def new_convert_message_to_dict(message: BaseMessage) -> dict:
11
message_dict: Dict[str, Any]
12
if isinstance(message, ChatCompletionMessage):
13
message_dict = {"role": message.role, "content": message.content}
14
if message.tool_calls is not None:
15
message_dict["tool_calls"] = [{
16
"id": tool_call.id,
17
"type": tool_call.type,
18
"function": tool_call.function
19
} for tool_call in message.tool_calls]
20
if message_dict["content"] == "":
21
message_dict["content"] = None
22
else:
23
message_dict = convert_message_to_dict(message)
24
return message_dict
25
26
openai.convert_message_to_dict = new_convert_message_to_dict
27
28
class ChatAI(ChatOpenAI):
29
model_name: str = Field(default="gpt-4o", alias="model")
30
31
@classmethod
32
def validate_environment(cls, values: dict) -> dict:
33
client_params = {
34
"api_key": values["g4f_api_key"] if "g4f_api_key" in values else None,
35
"provider": values["g4f_provider"] if "g4f_provider" in values else None,
36
}
37
values["client"] = Client(**client_params).chat.completions
38
values["async_client"] = AsyncClient(
39
**client_params
40
).chat.completions
41
return values