@zhin.js/ai 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/lib/agent.d.ts +84 -0
  4. package/lib/agent.d.ts.map +1 -0
  5. package/lib/agent.js +384 -0
  6. package/lib/agent.js.map +1 -0
  7. package/lib/context-manager.d.ts +213 -0
  8. package/lib/context-manager.d.ts.map +1 -0
  9. package/lib/context-manager.js +306 -0
  10. package/lib/context-manager.js.map +1 -0
  11. package/lib/index.d.ts +167 -0
  12. package/lib/index.d.ts.map +1 -0
  13. package/lib/index.js +1126 -0
  14. package/lib/index.js.map +1 -0
  15. package/lib/providers/anthropic.d.ts +23 -0
  16. package/lib/providers/anthropic.d.ts.map +1 -0
  17. package/lib/providers/anthropic.js +322 -0
  18. package/lib/providers/anthropic.js.map +1 -0
  19. package/lib/providers/base.d.ts +43 -0
  20. package/lib/providers/base.d.ts.map +1 -0
  21. package/lib/providers/base.js +135 -0
  22. package/lib/providers/base.js.map +1 -0
  23. package/lib/providers/index.d.ts +12 -0
  24. package/lib/providers/index.d.ts.map +1 -0
  25. package/lib/providers/index.js +9 -0
  26. package/lib/providers/index.js.map +1 -0
  27. package/lib/providers/ollama.d.ts +25 -0
  28. package/lib/providers/ollama.d.ts.map +1 -0
  29. package/lib/providers/ollama.js +236 -0
  30. package/lib/providers/ollama.js.map +1 -0
  31. package/lib/providers/openai.d.ts +46 -0
  32. package/lib/providers/openai.d.ts.map +1 -0
  33. package/lib/providers/openai.js +132 -0
  34. package/lib/providers/openai.js.map +1 -0
  35. package/lib/session.d.ts +186 -0
  36. package/lib/session.d.ts.map +1 -0
  37. package/lib/session.js +436 -0
  38. package/lib/session.js.map +1 -0
  39. package/lib/tools.d.ts +45 -0
  40. package/lib/tools.d.ts.map +1 -0
  41. package/lib/tools.js +194 -0
  42. package/lib/tools.js.map +1 -0
  43. package/lib/types.d.ts +243 -0
  44. package/lib/types.d.ts.map +1 -0
  45. package/lib/types.js +6 -0
  46. package/lib/types.js.map +1 -0
  47. package/package.json +10 -10
package/lib/index.d.ts ADDED
@@ -0,0 +1,167 @@
1
+ /**
2
+ * @zhin.js/ai - AI Service for Zhin.js
3
+ *
4
+ * 多模型 AI 服务插件,支持:
5
+ * - 多模型提供商(OpenAI、Claude、DeepSeek、Ollama 等)
6
+ * - 工具调用(Function Calling)
7
+ * - 流式输出
8
+ * - 会话管理
9
+ * - Agent 能力
10
+ * - 独立的 AI 触发中间件(@机器人、前缀触发、私聊直接对话)
11
+ */
12
+ import { type Plugin, type Tool, type ToolContext, type AITriggerConfig } from '@zhin.js/core';
13
+ import type { AIProvider, AIConfig, ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChunk, AgentTool } from './types.js';
14
+ import { SessionManager } from './session.js';
15
+ import { Agent } from './agent.js';
16
+ import { ContextManager, type ContextConfig } from './context-manager.js';
17
+ declare module '@zhin.js/core' {
18
+ namespace Plugin {
19
+ interface Contexts {
20
+ ai: AIService;
21
+ }
22
+ }
23
+ }
24
+ /**
25
+ * AI 服务
26
+ * 统一管理多个模型提供商,提供会话和 Agent 能力
27
+ */
28
+ export declare class AIService {
29
+ private providers;
30
+ private defaultProvider;
31
+ sessions: SessionManager;
32
+ contextManager?: ContextManager;
33
+ private builtinTools;
34
+ private sessionConfig;
35
+ private contextConfig;
36
+ private triggerConfig;
37
+ private plugin?;
38
+ /** 额外注册的自定义工具 */
39
+ private customTools;
40
+ constructor(config?: AIConfig);
41
+ /**
42
+ * 检查 AI 服务是否就绪
43
+ */
44
+ isReady(): boolean;
45
+ /**
46
+ * 处理 AI 请求
47
+ * 这是 AI 触发中间件调用的主入口
48
+ *
49
+ * 采用三步处理架构:
50
+ * 1. 意图分析:分析用户意图,筛选相关工具
51
+ * 2. 工具执行:用筛选的工具让模型决策和执行
52
+ * 3. 结果总结:基于结果生成友好回复
53
+ */
54
+ process(content: string, context: ToolContext, tools: Tool[]): Promise<string | AsyncIterable<string>>;
55
+ /**
56
+ * 简单对话(不使用会话历史)
57
+ */
58
+ private simpleChat;
59
+ /**
60
+ * 第一步:意图分析,筛选相关工具
61
+ * 使用 AI 分析用户意图,选择最相关的工具
62
+ */
63
+ private analyzeIntentAndSelectTools;
64
+ /**
65
+ * 基于关键词匹配工具(降级方案)
66
+ */
67
+ private matchToolsByKeywords;
68
+ /**
69
+ * 第三步:总结工具调用结果
70
+ */
71
+ private summarizeToolResults;
72
+ /**
73
+ * 收集所有工具(包括外部传入的)
74
+ * 注意:过滤掉命令转换的工具(cmd_xxx),避免工具过多影响模型性能
75
+ */
76
+ private collectAllToolsWithExternal;
77
+ /**
78
+ * 将 Tool 转换为 AgentTool
79
+ */
80
+ private convertToolToAgentTool;
81
+ /**
82
+ * 设置会话管理器(用于切换到数据库存储)
83
+ */
84
+ setSessionManager(manager: SessionManager): void;
85
+ /**
86
+ * 设置上下文管理器
87
+ */
88
+ setContextManager(manager: ContextManager): void;
89
+ /**
90
+ * 设置插件引用(用于收集工具)
91
+ */
92
+ setPlugin(plugin: Plugin): void;
93
+ /**
94
+ * 注册自定义工具到 AI 服务
95
+ */
96
+ registerTool(tool: AgentTool): () => void;
97
+ /**
98
+ * 收集所有可用工具
99
+ */
100
+ collectAllTools(): AgentTool[];
101
+ getContextConfig(): ContextConfig;
102
+ getSessionConfig(): {
103
+ maxHistory?: number;
104
+ expireMs?: number;
105
+ };
106
+ getTriggerConfig(): AITriggerConfig;
107
+ registerProvider(provider: AIProvider): void;
108
+ getProvider(name?: string): AIProvider;
109
+ listProviders(): string[];
110
+ listModels(providerName?: string): Promise<{
111
+ provider: string;
112
+ models: string[];
113
+ }[]>;
114
+ chat(request: ChatCompletionRequest, providerName?: string): Promise<ChatCompletionResponse>;
115
+ chatStream(request: ChatCompletionRequest, providerName?: string): AsyncIterable<ChatCompletionChunk>;
116
+ ask(question: string, options?: {
117
+ provider?: string;
118
+ model?: string;
119
+ systemPrompt?: string;
120
+ temperature?: number;
121
+ }): Promise<string>;
122
+ chatWithSession(sessionId: string, message: string, options?: {
123
+ provider?: string;
124
+ model?: string;
125
+ systemPrompt?: string;
126
+ stream?: boolean;
127
+ }): Promise<string | AsyncIterable<string>>;
128
+ createAgent(options?: {
129
+ provider?: string;
130
+ model?: string;
131
+ systemPrompt?: string;
132
+ tools?: AgentTool[];
133
+ useBuiltinTools?: boolean;
134
+ collectExternalTools?: boolean;
135
+ maxIterations?: number;
136
+ }): Agent;
137
+ runAgent(task: string, options?: {
138
+ provider?: string;
139
+ model?: string;
140
+ tools?: AgentTool[];
141
+ systemPrompt?: string;
142
+ }): Promise<{
143
+ content: string;
144
+ toolCalls: any[];
145
+ usage: any;
146
+ }>;
147
+ healthCheck(): Promise<Record<string, boolean>>;
148
+ dispose(): void;
149
+ }
150
+ /**
151
+ * 创建 AI 服务 Context
152
+ * 可在 setup.ts 中直接使用:provide(createAIService())
153
+ */
154
+ export declare function createAIService(): {
155
+ name: "ai";
156
+ description: string;
157
+ mounted(p: Plugin): Promise<any>;
158
+ dispose(service: AIService | null): Promise<void>;
159
+ };
160
+ export { Agent, createAgent } from './agent.js';
161
+ export { SessionManager, createMemorySessionManager, createDatabaseSessionManager } from './session.js';
162
+ export { ContextManager, createContextManager, CHAT_MESSAGE_MODEL, CONTEXT_SUMMARY_MODEL } from './context-manager.js';
163
+ export type * from './types.js';
164
+ export * from './providers/index.js';
165
+ export * from './tools.js';
166
+ export { createToolService, defineTool, ZhinTool, isZhinTool, shouldTriggerAI, inferSenderPermissions, parseRichMediaContent, extractTextContent, mergeAITriggerConfig, type ToolService, type AITriggerConfig, } from '@zhin.js/core';
167
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}