fix: bugs in requesters (#1401)

This commit is contained in:
Junyan Qin (Chin)
2025-05-13 16:09:23 +08:00
committed by GitHub
parent da86384e58
commit 015be6008d
8 changed files with 30 additions and 30 deletions

View File

@@ -27,7 +27,7 @@ class DeepseekChatCompletions(chatcmpl.OpenAIChatCompletions):
) -> llm_entities.Message:
self.client.api_key = use_model.token_mgr.get_token()
args = extra_args.copy()
args = {}
args['model'] = use_model.model_entity.name
if use_funcs:
@@ -47,7 +47,7 @@ class DeepseekChatCompletions(chatcmpl.OpenAIChatCompletions):
args['messages'] = messages
# 发送请求
resp = await self._req(args, extra_body=self.requester_cfg['args'])
resp = await self._req(args, extra_body=extra_args)
if resp is None:
raise errors.RequesterError('接口返回为空,请确定模型提供商服务是否正常')

View File

@@ -28,7 +28,7 @@ class GiteeAIChatCompletions(chatcmpl.OpenAIChatCompletions):
) -> llm_entities.Message:
self.client.api_key = use_model.token_mgr.get_token()
args = extra_args.copy()
args = {}
args['model'] = use_model.model_entity.name
if use_funcs:
@@ -44,7 +44,7 @@ class GiteeAIChatCompletions(chatcmpl.OpenAIChatCompletions):
args['messages'] = req_messages
resp = await self._req(args, extra_body=self.requester_cfg['args'])
resp = await self._req(args, extra_body=extra_args)
message = await self._make_msg(resp)

View File

@@ -9,7 +9,7 @@ import openai.types.chat.chat_completion_message_tool_call as chat_completion_me
import httpx
from .. import entities, errors, requester
from ....core import entities as core_entities, app
from ....core import entities as core_entities
from ... import entities as llm_entities
from ...tools import entities as tools_entities
@@ -19,12 +19,10 @@ class ModelScopeChatCompletions(requester.LLMAPIRequester):
client: openai.AsyncClient
requester_cfg: dict
def __init__(self, ap: app.Application):
self.ap = ap
self.requester_cfg = self.ap.provider_cfg.data['requester']['modelscope-chat-completions']
default_config: dict[str, typing.Any] = {
'base_url': 'https://api-inference.modelscope.cn/v1',
'timeout': 120,
}
async def initialize(self):
self.client = openai.AsyncClient(
@@ -37,6 +35,7 @@ class ModelScopeChatCompletions(requester.LLMAPIRequester):
async def _req(
self,
args: dict,
extra_body: dict = {},
) -> chat_completion.ChatCompletion:
args['stream'] = True
@@ -46,7 +45,7 @@ class ModelScopeChatCompletions(requester.LLMAPIRequester):
tool_calls = []
resp_gen: openai.AsyncStream = await self.client.chat.completions.create(**args)
resp_gen: openai.AsyncStream = await self.client.chat.completions.create(**args, extra_body=extra_body)
async for chunk in resp_gen:
# print(chunk)
@@ -107,7 +106,6 @@ class ModelScopeChatCompletions(requester.LLMAPIRequester):
if chunk
else None
)
return await self.client.chat.completions.create(**args)
async def _make_msg(
self,
@@ -129,10 +127,11 @@ class ModelScopeChatCompletions(requester.LLMAPIRequester):
req_messages: list[dict],
use_model: entities.LLMModelInfo,
use_funcs: list[tools_entities.LLMFunction] = None,
extra_args: dict[str, typing.Any] = {},
) -> llm_entities.Message:
self.client.api_key = use_model.token_mgr.get_token()
args = self.requester_cfg['args'].copy()
args = {}
args['model'] = use_model.name if use_model.model_name is None else use_model.model_name
if use_funcs:
@@ -156,19 +155,20 @@ class ModelScopeChatCompletions(requester.LLMAPIRequester):
args['messages'] = messages
# 发送请求
resp = await self._req(args)
resp = await self._req(args, extra_body=extra_args)
# 处理请求结果
message = await self._make_msg(resp)
return message
async def call(
async def invoke_llm(
self,
query: core_entities.Query,
model: entities.LLMModelInfo,
messages: typing.List[llm_entities.Message],
funcs: typing.List[tools_entities.LLMFunction] = None,
extra_args: dict[str, typing.Any] = {},
) -> llm_entities.Message:
req_messages = [] # req_messages 仅用于类内,外部同步由 query.messages 进行
for m in messages:
@@ -182,7 +182,9 @@ class ModelScopeChatCompletions(requester.LLMAPIRequester):
req_messages.append(msg_dict)
try:
return await self._closure(query=query, req_messages=req_messages, use_model=model, use_funcs=funcs)
return await self._closure(
query=query, req_messages=req_messages, use_model=model, use_funcs=funcs, extra_args=extra_args
)
except asyncio.TimeoutError:
raise errors.RequesterError('请求超时')
except openai.BadRequestError as e:

View File

@@ -7,7 +7,7 @@ metadata:
zh_CN: 魔搭社区
spec:
config:
- name: base-url
- name: base_url
label:
en_US: Base URL
zh_CN: 基础 URL

View File

@@ -28,7 +28,7 @@ class MoonshotChatCompletions(chatcmpl.OpenAIChatCompletions):
) -> llm_entities.Message:
self.client.api_key = use_model.token_mgr.get_token()
args = extra_args.copy()
args = {}
args['model'] = use_model.model_entity.name
if use_funcs:
@@ -51,7 +51,7 @@ class MoonshotChatCompletions(chatcmpl.OpenAIChatCompletions):
args['messages'] = messages
# 发送请求
resp = await self._req(args, extra_body=self.requester_cfg['args'])
resp = await self._req(args, extra_body=extra_args)
# 处理请求结果
message = await self._make_msg(resp)

View File

@@ -1,9 +1,9 @@
from __future__ import annotations
import openai
import typing
from . import chatcmpl
from ....core import app
class PPIOChatCompletions(chatcmpl.OpenAIChatCompletions):
@@ -11,9 +11,7 @@ class PPIOChatCompletions(chatcmpl.OpenAIChatCompletions):
client: openai.AsyncClient
requester_cfg: dict
def __init__(self, ap: app.Application):
self.ap = ap
self.requester_cfg = self.ap.provider_cfg.data['requester']['ppio-chat-completions']
default_config: dict[str, typing.Any] = {
'base_url': 'https://api.ppinfra.com/v3/openai',
'timeout': 120,
}

View File

@@ -7,7 +7,7 @@ metadata:
zh_CN: 派欧云
spec:
config:
- name: base-url
- name: base_url
label:
en_US: Base URL
zh_CN: 基础 URL

View File

@@ -445,8 +445,8 @@ class HttpClient {
}
// export const httpClient = new HttpClient("https://version-4.langbot.dev");
export const httpClient = new HttpClient('http://localhost:5300');
// export const httpClient = new HttpClient('/');
// export const httpClient = new HttpClient('http://localhost:5300');
export const httpClient = new HttpClient('/');
// 临时写法未来两种Client都继承自HttpClient父类不允许共享方法
export const spaceClient = new HttpClient('https://space.langbot.app');