@astack-tech/integrations
Version:
Integrations for the Astack AI Framework.
196 lines (192 loc) • 4.7 kB
text/typescript
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 };