Skip to content

@sciexpr/ai

AI Provider SPI 接口 + 内置回退。

安装

bash
npm install @sciexpr/ai

SPI 接口

4 个 Provider 接口:

接口用途
IAICompletionProvider智能补全
IKnowledgeBaseProvider知识库查询
IAINormalizerProviderAI 输出规范化
IAIFormatterProviderAI 格式化

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' })

内置回退(离线可用)

实现功能
BuiltinCompletionProvider3000+ 符号匹配
BuiltinKnowledgeBase118 元素 + 符号表
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)
  }
}

基于 MIT 协议发布