Skip to content

Commit 7b43bfd

Browse files
committed
refactor: rename source filenames and models
1 parent fec41e0 commit 7b43bfd

File tree

22 files changed

+439
-418
lines changed

22 files changed

+439
-418
lines changed

backend/api/conf/config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def chatgpt_base_url_end_with_slash(cls, v):
6363
return v
6464

6565

66-
class OpenaiAPISetting(BaseModel):
66+
class OpenaiApiSetting(BaseModel):
6767
openai_base_url: str = 'https://api.openai.com/v1/'
6868
connect_timeout: int = Field(10, ge=1)
6969
read_timeout: int = Field(20, ge=1)
@@ -81,7 +81,7 @@ class StatsSetting(BaseModel):
8181

8282
class ConfigModel(BaseModel):
8383
openai_web: OpenaiWebChatGPTSetting = OpenaiWebChatGPTSetting()
84-
openai_api: OpenaiAPISetting = OpenaiAPISetting()
84+
openai_api: OpenaiApiSetting = OpenaiApiSetting()
8585
common: CommonSetting = CommonSetting()
8686
http: HttpSetting = HttpSetting()
8787
data: DataSetting = DataSetting()
@@ -96,7 +96,7 @@ class Config:
9696
@singleton_with_lock
9797
class Config(BaseConfig[ConfigModel]):
9898
if _TYPE_CHECKING:
99-
openai_api: OpenaiAPISetting = OpenaiAPISetting()
99+
openai_api: OpenaiApiSetting = OpenaiApiSetting()
100100
common: CommonSetting = CommonSetting()
101101
http: HttpSetting = HttpSetting()
102102
openai_web: OpenaiWebChatGPTSetting = OpenaiWebChatGPTSetting()

backend/api/middlewares/request_statistics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ async def send_with_inspecting_body(message):
8686
elapsed_ms = round(elapsed_ms * 1000, 2)
8787

8888
await RequestLogDocument(
89-
meta=RequestLogMeta(route_path=route.path, method=method),
89+
metadata=RequestLogMeta(route_path=route.path, method=method),
9090
user_id=user_id,
9191
elapsed_ms=elapsed_ms,
9292
status=body_code or raw_status_code or scope.get("ask_websocket_close_code", None)

backend/api/models/db.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ class UserSetting(Base):
5151
user_id: Mapped[int] = mapped_column(ForeignKey("user.id"), comment="用户id")
5252
user: Mapped[User] = relationship("User", back_populates="setting", lazy="joined")
5353
credits: Mapped[float] = mapped_column(Float, default=0, comment="积分")
54-
openai_web_chat_status: Mapped[OpenaiWebChatStatus] = mapped_column(Enum(OpenaiWebChatStatus), default=OpenaiWebChatStatus.idling,
54+
openai_web_chat_status: Mapped[OpenaiWebChatStatus] = mapped_column(Enum(OpenaiWebChatStatus),
55+
default=OpenaiWebChatStatus.idling,
5556
comment="对话状态")
5657
openai_web: Mapped[OpenaiWebSourceSettingSchema] = mapped_column(Pydantic(OpenaiWebSourceSettingSchema))
5758
openai_api: Mapped[OpenaiApiSourceSettingSchema] = mapped_column(Pydantic(OpenaiApiSourceSettingSchema))

backend/api/models/doc.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from api.enums import OpenaiWebChatModels, OpenaiApiChatModels
99
from api.models.types import SourceTypeLiteral
10-
from api.schemas.openai_schemas import OpenAIChatResponseUsage
10+
from api.schemas.openai_schemas import OpenaiChatResponseUsage
1111
from api.conf import Config
1212

1313
config = Config()
@@ -61,7 +61,7 @@ class OpenaiWebChatMessageMetadata(BaseModel):
6161

6262
class OpenaiApiChatMessageMetadata(BaseModel):
6363
source: Literal['openai_api']
64-
usage: Optional[OpenAIChatResponseUsage]
64+
usage: Optional[OpenaiChatResponseUsage]
6565
finish_reason: Optional[str]
6666

6767

@@ -172,15 +172,15 @@ class BaseConversationHistory(BaseModel):
172172
mapping: dict[str, BaseChatMessage]
173173
current_node: Optional[uuid.UUID]
174174
current_model: Optional[str]
175-
meta: Optional[Annotated[
175+
metadata: Optional[Annotated[
176176
Union[OpenaiWebConversationHistoryMeta, OpenaiApiConversationHistoryMeta], Field(discriminator='source')]]
177177

178178

179179
class OpenaiWebConversationHistoryDocument(Document, BaseConversationHistory):
180180
id: uuid.UUID = Field(default_factory=uuid.uuid4, alias="_id")
181181
source: Literal["openai_web"]
182182
mapping: dict[str, OpenaiWebChatMessage]
183-
meta: Optional[OpenaiWebConversationHistoryMeta]
183+
metadata: Optional[OpenaiWebConversationHistoryMeta]
184184

185185
class Settings:
186186
name = "openai_web_conversation_history"
@@ -204,7 +204,7 @@ class RequestLogMeta(BaseModel):
204204

205205
class RequestLogDocument(Document):
206206
time: datetime.datetime = Field(default_factory=lambda: datetime.datetime.utcnow())
207-
meta: RequestLogMeta
207+
metadata: RequestLogMeta
208208
user_id: Optional[int]
209209
elapsed_ms: float
210210
status: Optional[int]
@@ -231,7 +231,7 @@ class OpenaiApiAskLogMeta(BaseModel):
231231

232232
class AskLogDocument(Document):
233233
time: datetime.datetime = Field(default_factory=lambda: datetime.datetime.utcnow())
234-
meta: Union[OpenaiWebAskLogMeta, OpenaiApiAskLogMeta] = Field(discriminator='source')
234+
metadata: Union[OpenaiWebAskLogMeta, OpenaiApiAskLogMeta] = Field(discriminator='source')
235235
user_id: int
236236
queueing_time: Optional[float]
237237
ask_time: Optional[float]

backend/api/routers/chat.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@
2626
from api.routers.conv import _get_conversation_by_id
2727
from api.schemas import OpenaiWebConversationSchema, AskRequest, AskResponse, AskResponseType, UserReadAdmin, \
2828
BaseConversationSchema
29-
from api.schemas.openai_schemas import OpenAIChatPlugin, OpenAIChatPluginUserSettings
30-
from api.sources import RevChatGPTManager, convert_revchatgpt_message, OpenAIChatManager, OpenAIChatException
29+
from api.schemas.openai_schemas import OpenaiChatPlugin, OpenaiChatPluginUserSettings
30+
from api.sources import OpenaiWebChatManager, convert_revchatgpt_message, OpenaiApiChatManager, OpenAIChatException
3131
from api.users import websocket_auth, current_active_user, current_super_user
3232
from utils.logger import get_logger
3333

3434
logger = get_logger(__name__)
3535
router = APIRouter()
36-
openai_web_manager = RevChatGPTManager()
37-
openai_api_manager = OpenAIChatManager()
36+
openai_web_manager = OpenaiWebChatManager()
37+
openai_api_manager = OpenaiApiChatManager()
3838
config = Config()
3939

4040

@@ -48,8 +48,8 @@ async def change_user_chat_status(user_id: int, status: OpenaiWebChatStatus):
4848
return user
4949

5050

51-
_plugins_result: list[OpenAIChatPlugin] | None = None
52-
_plugins_result_map: dict[str, OpenAIChatPlugin] | None = None
51+
_plugins_result: list[OpenaiChatPlugin] | None = None
52+
_plugins_result_map: dict[str, OpenaiChatPlugin] | None = None
5353
_plugins_result_last_update_time = None
5454

5555

@@ -62,19 +62,19 @@ async def _refresh_plugins():
6262
return _plugins_result
6363

6464

65-
@router.get("/chat/openai-plugins/all", tags=["chat"], response_model=list[OpenAIChatPlugin])
65+
@router.get("/chat/openai-plugins/all", tags=["chat"], response_model=list[OpenaiChatPlugin])
6666
async def get_all_openai_web_chat_plugins(_user: User = Depends(current_active_user)):
6767
plugins = await _refresh_plugins()
6868
return plugins
6969

7070

71-
@router.get("/chat/openai-plugins/installed", tags=["chat"], response_model=list[OpenAIChatPlugin])
71+
@router.get("/chat/openai-plugins/installed", tags=["chat"], response_model=list[OpenaiChatPlugin])
7272
async def get_installed_openai_web_chat_plugins(_user: User = Depends(current_active_user)):
7373
plugins = await _refresh_plugins()
7474
return [plugin for plugin in plugins if plugin.user_settings and plugin.user_settings.is_installed]
7575

7676

77-
@router.get("/chat/openai-plugin/{plugin_id}", tags=["chat"], response_model=OpenAIChatPlugin)
77+
@router.get("/chat/openai-plugin/{plugin_id}", tags=["chat"], response_model=OpenaiChatPlugin)
7878
async def get_openai_web_plugin(plugin_id: str, _user: User = Depends(current_active_user)):
7979
await _refresh_plugins()
8080
global _plugins_result_map
@@ -84,13 +84,13 @@ async def get_openai_web_plugin(plugin_id: str, _user: User = Depends(current_ac
8484
raise InvalidParamsException("errors.pluginNotFound")
8585

8686

87-
@router.patch("/chat/openai-plugin/{plugin_id}/user-settings", tags=["chat"], response_model=OpenAIChatPlugin)
88-
async def update_chat_plugin_user_settings(plugin_id: str, settings: OpenAIChatPluginUserSettings,
87+
@router.patch("/chat/openai-plugin/{plugin_id}/user-settings", tags=["chat"], response_model=OpenaiChatPlugin)
88+
async def update_chat_plugin_user_settings(plugin_id: str, settings: OpenaiChatPluginUserSettings,
8989
_user: User = Depends(current_super_user)):
9090
if settings.is_authenticated is not None:
9191
raise InvalidParamsException("can not set is_authenticated")
9292
result = await openai_web_manager.change_plugin_user_settings(plugin_id, settings)
93-
assert isinstance(result, OpenAIChatPlugin)
93+
assert isinstance(result, OpenaiChatPlugin)
9494

9595
global _plugins_result, _plugins_result_last_update_time
9696
if _plugins_result is not None:
@@ -527,7 +527,7 @@ async def reply(response: AskResponse):
527527

528528
# 写入到 scope 中,供统计
529529
await AskLogDocument(
530-
meta=meta,
530+
metadata=meta,
531531
user_id=user.id,
532532
queueing_time=queueing_time,
533533
ask_time=ask_time,

backend/api/routers/conv.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
BaseConversationHistory
1616
from api.response import response
1717
from api.schemas import OpenaiWebConversationSchema, BaseConversationSchema, OpenaiApiConversationSchema
18-
from api.sources import RevChatGPTManager
18+
from api.sources import OpenaiWebChatManager
1919
from api.users import current_active_user, current_super_user
2020
from utils.logger import get_logger
2121

2222
logger = get_logger(__name__)
2323
router = APIRouter()
24-
openai_web_manager = RevChatGPTManager()
24+
openai_web_manager = OpenaiWebChatManager()
2525

2626

2727
async def _get_conversation_by_id(conversation_id: str | uuid.UUID, user: User = Depends(current_active_user)):

backend/api/schemas/openai_schemas.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,29 @@
33
from pydantic import BaseModel
44

55

6-
class OpenAIChatResponseChoice(BaseModel):
6+
class OpenaiChatResponseChoice(BaseModel):
77
index: Optional[int]
88
message: Optional[dict[Literal["role", "content"], str]]
99
delta: Optional[dict[Literal["role", "content"], str]]
1010
finish_reason: Optional[str]
1111

1212

13-
class OpenAIChatResponseUsage(BaseModel):
13+
class OpenaiChatResponseUsage(BaseModel):
1414
prompt_tokens: Optional[int]
1515
completion_tokens: Optional[int]
1616

1717

18-
class OpenAIChatResponse(BaseModel):
19-
choices: Optional[list[OpenAIChatResponseChoice]]
20-
usage: Optional[OpenAIChatResponseUsage]
18+
class OpenaiChatResponse(BaseModel):
19+
choices: Optional[list[OpenaiChatResponseChoice]]
20+
usage: Optional[OpenaiChatResponseUsage]
2121

2222

23-
class OpenAIChatPluginCategory(BaseModel):
23+
class OpenaiChatPluginCategory(BaseModel):
2424
id: Optional[str]
2525
title: Optional[str]
2626

2727

28-
class OpenAIChatPluginManifest(BaseModel):
28+
class OpenaiChatPluginManifest(BaseModel):
2929
api: Optional[dict[str, Any]] # type openapi, url
3030
auth: Optional[dict[str, Any]] # type none
3131
logo_url: Optional[str]
@@ -38,17 +38,17 @@ class OpenAIChatPluginManifest(BaseModel):
3838
legal_info_url: Optional[str]
3939

4040

41-
class OpenAIChatPluginUserSettings(BaseModel):
41+
class OpenaiChatPluginUserSettings(BaseModel):
4242
is_authenticated: Optional[bool]
4343
is_installed: Optional[bool]
4444

4545

46-
class OpenAIChatPlugin(BaseModel):
46+
class OpenaiChatPlugin(BaseModel):
4747
id: Optional[str]
4848
namespace: Optional[str]
49-
manifest: Optional[OpenAIChatPluginManifest]
50-
categories: Optional[list[OpenAIChatPluginCategory]]
49+
manifest: Optional[OpenaiChatPluginManifest]
50+
categories: Optional[list[OpenaiChatPluginCategory]]
5151
domain: Optional[str]
5252
status: Optional[Literal['approved'] | str]
53-
user_settings: Optional[OpenAIChatPluginUserSettings | dict[str, Any]] # is_authenticated, is_installed
53+
user_settings: Optional[OpenaiChatPluginUserSettings | dict[str, Any]] # is_authenticated, is_installed
5454
oauth_client_id: Optional[str]

backend/api/sources/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
from .revchatgpt import *
2-
from .openai import *
1+
from .openai_web import *
2+
from .openai_api import *
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from api.enums import OpenaiApiChatModels, ChatSourceTypes
1111
from api.models.doc import OpenaiApiChatMessage, OpenaiApiConversationHistoryDocument, OpenaiApiChatMessageMetadata, \
1212
OpenaiApiChatMessageTextContent
13-
from api.schemas.openai_schemas import OpenAIChatResponse
13+
from api.schemas.openai_schemas import OpenaiChatResponse
1414
from utils.common import singleton_with_lock
1515
from utils.logger import get_logger
1616

@@ -47,7 +47,7 @@ async def _check_response(response: httpx.Response) -> None:
4747

4848

4949
@singleton_with_lock
50-
class OpenAIChatManager:
50+
class OpenaiApiChatManager:
5151
"""
5252
OpenAI API Manager
5353
"""
@@ -144,7 +144,7 @@ async def ask(self, content: str, conversation_id: uuid.UUID = None,
144144

145145
try:
146146
line = json.loads(line)
147-
resp = OpenAIChatResponse(**line)
147+
resp = OpenaiChatResponse(**line)
148148

149149
if resp.choices[0].message is not None:
150150
text_content = resp.choices[0].message.get("content")
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
OpenaiWebChatMessageTetherBrowsingDisplayContent, OpenaiWebChatMessageTetherQuoteContent, \
1919
OpenaiWebChatMessageContent, \
2020
OpenaiWebChatMessageSystemErrorContent, OpenaiWebChatMessageStderrContent
21-
from api.schemas.openai_schemas import OpenAIChatPlugin, OpenAIChatPluginUserSettings
21+
from api.schemas.openai_schemas import OpenaiChatPlugin, OpenaiChatPluginUserSettings
2222
from utils.common import singleton_with_lock
2323
from utils.logger import get_logger
2424

@@ -129,7 +129,7 @@ async def _check_response(response: httpx.Response) -> None:
129129

130130

131131
@singleton_with_lock
132-
class RevChatGPTManager:
132+
class OpenaiWebChatManager:
133133
"""
134134
TODO: 解除 revChatGPT 依赖
135135
"""
@@ -188,7 +188,7 @@ async def get_conversation_history(self, conversation_id: uuid.UUID | str) -> Op
188188
mapping=mapping,
189189
current_node=result.get("current_node"),
190190
current_model=current_model,
191-
meta=OpenaiWebConversationHistoryMeta(
191+
metadata=OpenaiWebConversationHistoryMeta(
192192
source="openai_web",
193193
plugin_ids=result.get("plugin_ids"),
194194
moderation_results=result.get("moderation_results"),
@@ -296,9 +296,9 @@ async def get_plugin_manifests(self, statuses="approved", is_installed=None, off
296296
timeout=config.openai_web.ask_timeout
297297
)
298298
await _check_response(response)
299-
return parse_obj_as(list[OpenAIChatPlugin], response.json().get("items"))
299+
return parse_obj_as(list[OpenaiChatPlugin], response.json().get("items"))
300300

301-
async def change_plugin_user_settings(self, plugin_id: str, setting: OpenAIChatPluginUserSettings):
301+
async def change_plugin_user_settings(self, plugin_id: str, setting: OpenaiChatPluginUserSettings):
302302
if not config.openai_web.is_plus_account:
303303
raise InvalidParamsException("errors.notPlusChatgptAccount")
304304
response = await self.chatbot.session.patch(
@@ -307,7 +307,7 @@ async def change_plugin_user_settings(self, plugin_id: str, setting: OpenAIChatP
307307
)
308308
await _check_response(response)
309309
try:
310-
result = OpenAIChatPlugin.parse_obj(response.json())
310+
result = OpenaiChatPlugin.parse_obj(response.json())
311311
return result
312312
except ValidationError as e:
313313
logger.warning(f"Failed to parse plugin: {e}")

0 commit comments

Comments
 (0)