@sciexpr/ai
AI Provider SPI 接口 + 内置回退。
安装
bash
npm install @sciexpr/aiSPI 接口
4 个 Provider 接口:
| 接口 | 用途 |
|---|---|
IAICompletionProvider | 智能补全 |
IKnowledgeBaseProvider | 知识库查询 |
IAINormalizerProvider | AI 输出规范化 |
IAIFormatterProvider | AI 格式化 |
AIPipeline
typescript
import { AIPipeline } from '@sciexpr/ai'
const pipeline = new AIPipeline({
completionProvider: new MyOpenAIProvider(),
knowledgeBaseProvider: new MyKBProvider(),
})
// 补全
await pipeline.getCompletions({ currentInput: '\\alp', cursorPosition: 4, expressionType: 'math' })
// 知识库
await pipeline.queryKnowledge({ query: 'Carbon' })内置回退(离线可用)
| 实现 | 功能 |
|---|---|
BuiltinCompletionProvider | 3000+ 符号匹配 |
BuiltinKnowledgeBase | 118 元素 + 符号表 |
BuiltinNormalizer | 正则规范化 |
BuiltinFormatter | 规则格式化 |
OpenAI 接入示例
typescript
import OpenAI from 'openai'
import { BUILTIN_PROMPTS } from '@sciexpr/ai'
class OpenAIProvider implements IAICompletionProvider {
id = 'openai'; name = 'GPT-4'
async complete(ctx) {
const res = await openai.chat.completions.create({
model: 'gpt-4',
messages: [
{ role: 'system', content: BUILTIN_PROMPTS.completion.system },
{ role: 'user', content: `Complete: ${ctx.currentInput}` },
],
})
return JSON.parse(res.choices[0].message.content)
}
}