UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

133 lines (123 loc) 2.99 kB
import { LLMRoleType } from '@/types/llm'; import { MessageToolCall } from '@/types/message'; import { OpenAIFunctionCall } from './functionCall'; interface UserMessageContentPartText { text: string; type: 'text'; } interface UserMessageContentPartImage { image_url: { detail?: 'auto' | 'low' | 'high'; url: string; }; type: 'image_url'; } export type UserMessageContentPart = UserMessageContentPartText | UserMessageContentPartImage; export interface OpenAIChatMessage { /** * @title 内容 * @description 消息内容 */ content: string | UserMessageContentPart[]; /** * @deprecated */ function_call?: OpenAIFunctionCall; name?: string; /** * 角色 * @description 消息发送者的角色 */ role: LLMRoleType; tool_call_id?: string; tool_calls?: MessageToolCall[]; } /** * @title Chat Stream Payload */ export interface ChatStreamPayload { /** * 是否开启搜索 */ enabledSearch?: boolean; /** * @title 控制生成文本中的惩罚系数,用于减少重复性 * @default 0 */ frequency_penalty?: number; /** * @title 生成文本的最大长度 */ max_tokens?: number; /** * @title 聊天信息列表 */ messages: OpenAIChatMessage[]; /** * @title 模型名称 */ model: string; /** * @title 返回的文本数量 */ n?: number; /** * 开启的插件列表 */ plugins?: string[]; /** * @title 控制生成文本中的惩罚系数,用于减少主题的变化 * @default 0 */ presence_penalty?: number; /** * @default openai */ provider?: string; /** * @title 是否开启流式请求 * @default true */ stream?: boolean; /** * @title 生成文本的随机度量,用于控制文本的创造性和多样性 * @default 1 */ temperature: number; tool_choice?: string; tools?: ChatCompletionTool[]; /** * @title 控制生成文本中最高概率的单个令牌 * @default 1 */ top_p?: number; } export interface ChatCompletionFunctions { /** * The description of what the function does. * @type {string} * @memberof ChatCompletionFunctions */ description?: string; /** * The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. * @type {string} * @memberof ChatCompletionFunctions */ name: string; /** * The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/gpt/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. * @type {{ [key: string]: any }} * @memberof ChatCompletionFunctions */ parameters?: { [key: string]: any; }; } export interface ChatCompletionTool { function: ChatCompletionFunctions; /** * The type of the tool. Currently, only `function` is supported. */ type: 'function'; }