import { ChatCompletionResponse, ChatCompletionRequest, StreamHandler, BaseModelProvider, AIModelConfig } from '@opentiny/tiny-robot-kit'; import { Ref } from 'vue'; import { AgentModelProvider } from '@opentiny/next-sdk'; import { ICustomAgentModelProviderLlmConfig } from '../types/type'; import { ProviderV2 } from '@ai-sdk/provider'; import { PromptManager } from './promptManager'; /** Tiny-robot 所需要的自定义大语言的Provider */ export declare class CustomAgentModelProvider extends BaseModelProvider { transport: any; /** 一个 ai-sdk agent 封装 */ agent: AgentModelProvider; promptManager: PromptManager; llmConfig: ICustomAgentModelProviderLlmConfig; /** 生成式UI启用状态 */ isGenuiEnabled?: Ref; debugStream: boolean; emit: ((event: string, data: any) => void) | undefined; constructor(config: AIModelConfig, systemPrompt: string, llmConfig?: ICustomAgentModelProviderLlmConfig, emit?: (event: string, data: any) => void); /** * 更新大语言模型配置 * Update LLM configuration * @param modelId 模型ID * @param apiUrl API地址 * @param apiKey API密钥 * @param providerType 提供商类型 * @param useReActMode 是否使用 ReAct 模式 */ updateLLMConfig({ model, baseURL, genuiUrl, apiKey, providerType, useReActMode, llm, providerOptions, headers }: { model: string; baseURL?: string; genuiUrl?: string; apiKey?: string; providerType?: 'deepseek' | 'openai' | ((options: any) => ProviderV2); useReActMode?: boolean; llm?: ProviderV2; /** 自定义请求体字段,会合并到 AI SDK streamText 的 providerOptions 中 */ providerOptions?: Record; /** 自定义请求 Header,透传给 ai-sdk Provider 实例 */ headers?: Record; }): void; /** * 清理消息数组中的 get-skill-content 工具调用结果 */ cleanGetSkillContentToolResult(messages: any[]): void; /** * 清理消息数组中的旧快照消息,只保留最新的快照 * @param messages 消息数组 * @returns 清理后的消息数组 */ private cleanupOldSnapshotsInMessages; /** * 从文本中移除快照数据,保留操作信息 * @param text 原始文本 * @returns 清理后的文本 */ private removeSnapshotData; /** * 清理消息中的快照信息,旨在保留文本但移除图片以节省 token * @param msg 消息对象 */ private replaceSnapshotWithPlaceholder; /** * 判断内容是否包含快照信息 * @param content 消息内容(可能是字符串或数组) * @returns 是否包含快照信息 */ private isSnapshotContent; chatStream(request: ChatCompletionRequest, handler: StreamHandler): Promise; /** 同步请求不需要实现 */ chat(_request: ChatCompletionRequest): Promise; }