UNPKG

@cherrystudio/ai-core

Version:

Cherry Studio AI Core - Unified AI Provider Interface Based on Vercel AI SDK

87 lines (86 loc) 3.05 kB
import { AiPlugin, AiRequestContext, ProviderOptionsMap } from "../../types-Bj-rFQ8G.mjs"; import { anthropic } from "@ai-sdk/anthropic"; import { google } from "@ai-sdk/google"; import { openai } from "@ai-sdk/openai"; import { ToolSet } from "ai"; //#region src/core/plugins/built-in/logging.d.ts interface LoggingConfig { level?: 'debug' | 'info' | 'warn' | 'error'; logParams?: boolean; logResult?: boolean; logPerformance?: boolean; logger?: (level: string, message: string, data?: any) => void; } /** * 创建日志插件 */ declare function createLoggingPlugin(config?: LoggingConfig): AiPlugin; //#endregion //#region src/core/plugins/built-in/toolUsePlugin/type.d.ts /** * 解析结果类型 * 表示从AI响应中解析出的工具使用意图 */ interface ToolUseResult { id: string; toolName: string; arguments: any; status: 'pending' | 'invoking' | 'done' | 'error'; } interface BaseToolUsePluginConfig { enabled?: boolean; } interface PromptToolUseConfig extends BaseToolUsePluginConfig { buildSystemPrompt?: (userSystemPrompt: string, tools: ToolSet) => string; parseToolUse?: (content: string, tools: ToolSet) => ToolUseResult[]; createSystemMessage?: (systemPrompt: string, originalParams: any, context: AiRequestContext) => string | null; } /** * 扩展的 AI 请求上下文,支持 MCP 工具存储 */ interface ToolUseRequestContext extends AiRequestContext { mcpTools: ToolSet; } //#endregion //#region src/core/plugins/built-in/toolUsePlugin/promptToolUsePlugin.d.ts declare const createPromptToolUsePlugin: (config?: PromptToolUseConfig) => AiPlugin; //#endregion //#region src/core/plugins/built-in/webSearchPlugin/helper.d.ts /** * 从 AI SDK 的工具函数中提取参数类型,以确保类型安全。 */ type OpenAISearchConfig = Parameters<typeof openai.tools.webSearchPreview>[0]; type AnthropicSearchConfig = Parameters<typeof anthropic.tools.webSearch_20250305>[0]; type GoogleSearchConfig = Parameters<typeof google.tools.googleSearch>[0]; /** * 插件初始化时接收的完整配置对象 * * 其结构与 ProviderOptions 保持一致,方便上游统一管理配置 */ interface WebSearchPluginConfig { openai?: OpenAISearchConfig; anthropic?: AnthropicSearchConfig; xai?: ProviderOptionsMap['xai']['searchParameters']; google?: GoogleSearchConfig; 'google-vertex'?: GoogleSearchConfig; } /** * 插件的默认配置 */ //#endregion //#region src/core/plugins/built-in/webSearchPlugin/index.d.ts /** * 网络搜索插件 * * @param config - 在插件初始化时传入的静态配置 */ declare const webSearchPlugin: (config?: WebSearchPluginConfig) => AiPlugin; //#endregion //#region src/core/plugins/built-in/index.d.ts /** * 内置插件命名空间 * 所有内置插件都以 'built-in:' 为前缀 */ declare const BUILT_IN_PLUGIN_PREFIX = "built-in:"; //#endregion export { BUILT_IN_PLUGIN_PREFIX, type PromptToolUseConfig, type ToolUseRequestContext, type ToolUseResult, createLoggingPlugin, createPromptToolUsePlugin, webSearchPlugin };