UNPKG

@astack-tech/integrations

Version:

Integrations for the Astack AI Framework.

196 lines (192 loc) 4.7 kB
import { Component } from '@astack-tech/core'; /** * Deepseek 模型提供者配置 */ interface DeepseekConfig { /** * API 密钥 */ apiKey: string; /** * 使用的模型名称 * 默认为 'deepseek-chat' */ model?: string; /** * 自定义 API 基础 URL * 默认为 Deepseek 官方 API 地址 */ baseURL?: string; /** * 温度参数,控制输出的随机性 */ temperature?: number; /** * 最大生成的 token 数 */ maxTokens?: number; /** * 采样概率 */ topP?: number; /** * 系统提示消息 */ systemPrompt?: string; /** * 工具实例数组,直接传递工具实例 * 每个工具应具有 name、description 和 parameters 属性 */ rawTools?: Array<{ name: string; description: string; parameters?: Record<string, unknown>; }>; /** * API 格式的工具定义数组,与 rawTools 二选一 * 使用 OpenAI 兼容的工具定义格式 */ tools?: unknown[]; /** * dangerouslyAllowBrowser * 是否允许在浏览器等非安全环境内运行 */ dangerouslyAllowBrowser?: boolean; } /** * 消息角色类型 */ type MessageRole = 'system' | 'user' | 'assistant' | 'tool'; /** * 工具调用 */ interface ToolCall { /** * 工具调用 ID */ id?: string; /** * 工具名称 */ tool_name: string; /** * 工具调用参数 */ arguments: Record<string, unknown>; } /** * Token 使用统计 */ interface TokenUsage { /** * 完成部分的 token 数量 */ completion_tokens: number; /** * 提示部分的 token 数量 */ prompt_tokens: number; /** * 提示缓存命中的 token 数量(可选) */ prompt_cache_hit_tokens?: number; /** * 提示缓存未命中的 token 数量(可选) */ prompt_cache_miss_tokens?: number; /** * 总 token 数量 */ total_tokens: number; } /** * 对话消息类型 */ interface Message { /** * 消息角色 */ role: MessageRole; /** * 消息内容 */ content?: string; /** * 工具调用 */ tool_calls?: ToolCall[]; /** * 工具调用 ID,用于工具响应消息 */ tool_call_id?: string; /** * Token 使用统计(可选) */ usage?: TokenUsage; } /** * Deepseek 组件 * * 使用 OpenAI 兼容接口调用 Deepseek 模型 * * 输入: * - prompt: 文本提示 * - messages: 对话消息数组 * * 输出: * - completion: 生成的文本完成 * - message: 生成的响应消息 */ declare class Deepseek extends Component { private client; private model; private temperature; private maxTokens?; private topP?; private systemPrompt?; private tools?; constructor(config: DeepseekConfig); /** * 生成文本完成 * @param prompt 提示文本 * @returns 生成的文本 */ generateCompletion(prompt: string): Promise<string>; /** * 流式处理对话消息 * @param messages 对话消息数组 * @param options 可选的调用选项,包含临时工具列表 * @returns 生成的流式响应消息异步生成器 */ streamChatCompletion(messages: Message[], options?: { temporaryTools?: unknown[]; }): AsyncGenerator<Partial<Message>>; /** * 处理对话消息 * @param messages 对话消息数组 * @param options 可选的调用选项,包含临时工具列表 * @returns 生成的响应消息 */ chatCompletion(messages: Message[], options?: { temporaryTools?: unknown[]; }): Promise<Message>; /** * 在独立模式下运行组件 * @param input 输入参数,可以是提示文本或对话消息数组 * @returns 生成的文本或响应消息 */ run(input: string | Message[]): Promise<string | Message>; /** * 在流水线中运行组件 * @param $i 输入端口 * @param $o 输出端口 */ _transform($i: any, $o: any): void; } type index_Deepseek = Deepseek; declare const index_Deepseek: typeof Deepseek; type index_DeepseekConfig = DeepseekConfig; declare namespace index { export { index_Deepseek as Deepseek, type index_DeepseekConfig as DeepseekConfig, type Message as DeepseekMessage, type MessageRole as DeepseekMessageRole, type ToolCall as DeepseekToolCall }; } export { Deepseek, type DeepseekConfig, type Message as DeepseekMessage, type MessageRole as DeepseekMessageRole, type ToolCall as DeepseekToolCall, index as i };