feat(*): 插件中心与模型协议 - 完善声明式协议运行时并增加功能开放控制
This commit is contained in:
@@ -15,8 +15,8 @@ const IMAGE_OUTPUT_FORMAT = "png";
|
||||
import type { AiTextMessage, GeminiPart, ImageApiResponse, RequestOptions, ResponseApiPayload, ResponseFunctionTool, ResponseInputMessage, ToolChoice, ToolResponseResult } from "@/services/api/image-contracts";
|
||||
import { normalizeGrokImageResolution, normalizeQuality, normalizeVolcengineArkImageSize, resolveImageRequestSize, validateImageCapability } from "@/services/api/image-validation";
|
||||
import { parseGeminiImagePayload, parseImagePayload, readAxiosError } from "@/services/api/image-response";
|
||||
import { toChatCompletionMessages, toChatCompletionToolChoice, toGeminiBody, toGeminiToolOptions, toResponseInput, toResponseTool, withSystemMessage } from "@/services/api/image-protocols";
|
||||
import { requestGeminiStreamingResponse, requestStreamingChatCompletion, requestStreamingResponse } from "@/services/api/image-streaming";
|
||||
import { toChatCompletionMessages, toChatCompletionToolChoice, toClaudeBody, toGeminiBody, toGeminiToolOptions, toResponseInput, toResponseTool, withSystemMessage } from "@/services/api/image-protocols";
|
||||
import { requestGeminiStreamingResponse, requestStreamingChatCompletion, requestStreamingClaude, requestStreamingResponse } from "@/services/api/image-streaming";
|
||||
export { buildBackendToolRequests } from "@/services/api/image-protocols";
|
||||
export type { AiTextContentPart, AiTextMessage, ResponseFunctionTool, ResponseInputMessage, ResponseToolCall, ToolChoice, ToolResponseResult } from "@/services/api/image-contracts";
|
||||
|
||||
@@ -241,6 +241,11 @@ export async function requestImageQuestion(config: AiConfig, messages: AiTextMes
|
||||
if (answer === "没有返回内容") onDelta(answer);
|
||||
return answer;
|
||||
}
|
||||
if (requestConfig.interfaceType === "claude-api") {
|
||||
const answer = (await requestStreamingClaude(requestConfig, toClaudeBody(requestConfig, messages), onDelta, options)).content || "没有返回内容";
|
||||
if (answer === "没有返回内容") onDelta(answer);
|
||||
return answer;
|
||||
}
|
||||
if (requestConfig.interfaceType === "chat-completion" || !requestConfig.interfaceType) {
|
||||
const answer =
|
||||
(
|
||||
@@ -282,6 +287,7 @@ export async function requestToolResponse(config: AiConfig, messages: ResponseIn
|
||||
if (requestConfig.apiFormat === "gemini") {
|
||||
return await requestGeminiStreamingResponse(requestConfig, toGeminiBody(requestConfig, messages, toGeminiToolOptions(tools, toolChoice)), onDelta, options);
|
||||
}
|
||||
if (requestConfig.interfaceType === "claude-api") return await requestStreamingClaude(requestConfig, toClaudeBody(requestConfig, messages, tools), onDelta, options);
|
||||
if (requestConfig.interfaceType === "chat-completion" || !requestConfig.interfaceType) {
|
||||
const chatPayload: Record<string, unknown> = {
|
||||
model: requestConfig.model,
|
||||
|
||||
Reference in New Issue
Block a user