@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.
74 lines (64 loc) • 1.77 kB
text/typescript
/* eslint-disable sort-keys-fix/sort-keys-fix, typescript-sort-keys/interface */
import { z } from 'zod';
import { SearchMode } from '@/types/search';
export interface WorkingModel {
model: string;
provider: string;
}
export interface LobeAgentChatConfig {
displayMode?: 'chat' | 'docs';
enableAutoCreateTopic?: boolean;
autoCreateTopicThreshold: number;
enableMaxTokens?: boolean;
/**
* 是否开启推理
*/
enableReasoning?: boolean;
/**
* 自定义推理强度
*/
enableReasoningEffort?: boolean;
reasoningBudgetToken?: number;
reasoningEffort?: 'low' | 'medium' | 'high';
thinkingBudget?: number;
/**
* 禁用上下文缓存
*/
disableContextCaching?: boolean;
/**
* 历史消息条数
*/
historyCount?: number;
/**
* 开启历史记录条数
*/
enableHistoryCount?: boolean;
/**
* 历史消息长度压缩阈值
*/
enableCompressHistory?: boolean;
inputTemplate?: string;
searchMode?: SearchMode;
searchFCModel?: WorkingModel;
useModelBuiltinSearch?: boolean;
}
/* eslint-enable */
export const AgentChatConfigSchema = z.object({
autoCreateTopicThreshold: z.number().default(2),
displayMode: z.enum(['chat', 'docs']).optional(),
enableAutoCreateTopic: z.boolean().optional(),
enableCompressHistory: z.boolean().optional(),
enableHistoryCount: z.boolean().optional(),
enableMaxTokens: z.boolean().optional(),
enableReasoning: z.boolean().optional(),
enableReasoningEffort: z.boolean().optional(),
historyCount: z.number().optional(),
reasoningBudgetToken: z.number().optional(),
searchFCModel: z
.object({
model: z.string(),
provider: z.string(),
})
.optional(),
searchMode: z.enum(['off', 'on', 'auto']).optional(),
});