| name | llmapi-best-practices |
|---|---|
| description | 在本仓库中使用 llmapi 的最佳实践。适用于用户询问如何使用 llmapi、如何接入 OpenAI/Anthropic/兼容端点、并发模型、错误处理、文档入口、示例位置、xmake/xlings/mcpplibs-index 安装方式,或需要快速定位本项目相关链接与推荐用法时。 |
用于回答“如何正确使用本项目 llmapi”相关问题的技能。
在以下场景使用:
- 用户询问如何集成或调用
llmapi - 用户想知道 OpenAI / Anthropic / 兼容端点的推荐接法
- 用户询问并发、异常处理、重试边界、生产可用性
- 用户需要项目文档、示例、仓库、生态链接
- 用户询问
mcpplibs/mcpplibs-index/xlings与本项目的关系
如果问题是“如何修改 C++ 模块代码风格”,优先改用 mcpp-style-ref。
- 先确认用户要的是“使用方式”还是“改库实现”。
- 默认优先引用本仓库文档入口:
- 英文文档:
docs/en/README.md - 简中文档:
docs/zh/README.md - 繁中文档:
docs/zh-hant/README.md
- 英文文档:
- 解释推荐接法时,优先给当前项目的真实 API:
- 默认 OpenAI 风格:
Client(Config{...}) - Anthropic:
Client(AnthropicConfig{...})
- 默认 OpenAI 风格:
- 解释并发时,使用当前仓库推荐边界:
- 实例隔离,上层并发,不共享
Client
- 实例隔离,上层并发,不共享
- 解释错误处理时,明确当前建议:
- 当前以异常为主
- 自动重试更适合由库使用者在上层实现
OpenAI 风格默认入口:
auto client = Client(Config{
.apiKey = std::getenv("OPENAI_API_KEY"),
.model = "gpt-4o-mini",
});Anthropic:
auto client = Client(AnthropicConfig{
.apiKey = std::getenv("ANTHROPIC_API_KEY"),
.model = "claude-sonnet-4-20250514",
});兼容端点:
auto client = Client(Config{
.apiKey = std::getenv("DEEPSEEK_API_KEY"),
.baseUrl = std::string(URL::DeepSeek),
.model = "deepseek-chat",
});Client是有状态对象,不要跨线程共享- 每个任务 / 线程各自创建一个
Client - 多模型 / 多 provider 并发调用时,各自实例隔离即可
- 当前主路径是异常模式
- 如果用户不希望异常外抛,建议在调用点包一层转换成
optional/expected - 自动重试策略先由使用者在上层实现,不要默认承诺库内自动重试
如果用户要具体用法,优先引导到:
- 入门:
docs/*/getting-started.md - 使用场景:
docs/*/examples.md - Provider:
docs/*/providers.md - 并发 / 高级用法:
docs/*/advanced.md - API:
docs/*/cpp-api.md
需要项目和生态链接时,读取: