用途:提供在 TypeScript 项目中集成大语言模型的常见模式参考,基于 Anthropic SDK 演示 API 调用、流式输出、工具调用、RAG 与成本控制。
主要能力:
- API 客户端模式:封装 generateResponse,调用 client.messages.create,指定 model、max_tokens、temperature、system 与 messages,并从响应中提取文本块。
- 流式响应:使用 client.messages.stream 与 for await 遍历事件,处理 content_block_delta 与 text_delta,通过回调逐块输出。
- 函数调用(工具使用):定义 tools 数组及 input_schema,在循环中检查 stop_reason,提取 tool_use 块,执行工具后以 tool_result 回传,直至 end_turn。
- RAG 流水线:对查询做 embed,向量库 search 取 topK 并过滤,拼接上下文后交给模型,要求引用来源并在无答案时说明。
- 文档分块:按句子切分,控制 chunkSize 与 overlap,生成带重叠的文本块。
- 成本优化:按任务类型选择模型(分类/抽取用较小模型,分析/编码用中等模型,复杂推理用较大模型),缓存嵌入与响应,非延迟敏感时批量请求。
使用方式:示例为 TypeScript 代码,依赖 @anthropic-ai/sdk,需自行实现 embed、vectorDb、executeToolCall 等外部函数。
限制与注意:资料未提供安装命令、具体价格、性能数据或完整可运行项目;反模式包括发送整篇文档、缺少指数退避重试、忽略 token 用量、简单任务用最贵模型、未校验 LLM 输出、未评估检索质量就构建 RAG。检查清单强调重试与错误处理、面向用户响应使用流式、工具 schema 描述清晰、分块 500-1000 token 并重叠、按复杂度选模型、跟踪 token 用量、下游使用前校验输出、缓存嵌入。