@cherrystudio/ai-core
Version:
Cherry Studio AI Core - Unified AI Provider Interface Based on Vercel AI SDK
87 lines (86 loc) • 3.05 kB
text/typescript
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 };