llmapi
June 10, 2026 · View on GitHub
使用 C++23 模組建構的現代 LLM 客戶端 —
import即聊天 · OpenAI 相容 · 模板開箱即用
| English - 简体中文 - 繁體中文 |
|---|
| mcpp 建置工具 · 套件索引 mcpp-index · 文件導覽 · Issues |
llmapi 提供型別化的 Client<Provider> API,涵蓋聊天、串流輸出、embeddings、工具呼叫與對話持久化。預設別名 Config 對應 OpenAI 風格設定,常見情況下不需要顯式寫出 openai::OpenAI(...)。
快速開始(mcpp)
mcpp new myagent --template llmapi && cd myagent
export OPENAI_API_KEY="sk-..."
mcpp run
模板隨函式庫發佈、版本自動對齊:
mcpp new --list-templates llmapi # 列出函式庫提供的模板
mcpp new mybot --template llmapi:chat # 互動式串流聊天 CLI
mcpp new mybot --template llmapi:anthropic # Anthropic Provider
mcpp new mybot --template llmapi:deepseek # OpenAI 相容端點(DeepSeek)
或在既有 mcpp 專案中接入:
mcpp add llmapi
[dependencies.mcpplibs]
llmapi = "0.2.8"
import mcpplibs.llmapi;
import std;
int main() {
using namespace mcpplibs::llmapi;
auto apiKey = std::getenv("OPENAI_API_KEY");
if (!apiKey) {
std::println(stderr, "OPENAI_API_KEY not set");
return 1;
}
auto client = Client(Config{
.apiKey = apiKey,
.model = "gpt-4o-mini",
});
client.system("You are a concise assistant.");
auto resp = client.chat("用兩句話解釋 C++23 模組的價值。");
std::println("{}", resp.text());
return 0;
}
特性
- C++23 模組:
import mcpplibs.llmapi - 強型別訊息、工具與回應結構
- 同步、非同步、串流聊天介面
- OpenAI Provider 支援 embeddings
- 支援儲存 / 載入對話歷史
- 可透過
baseUrl存取 OpenAI 相容端點 - 專案模板:
mcpp new <name> --template llmapi[:<template>]
模板
| 模板 | 說明 |
|---|---|
openai(預設) | 最小 OpenAI 聊天 — 一問一答 |
chat | 互動式串流聊天 CLI(OpenAI) |
anthropic | Anthropic(Claude)聊天 |
deepseek | 透過 baseUrl 走 OpenAI 相容端點(DeepSeek) |
Provider
Config:openai::Config的匯出別名,預設走 OpenAI 風格openai::OpenAI:OpenAI 聊天、串流、工具呼叫、embeddingsAnthropicConfig/anthropic::Anthropic:Anthropic 聊天與串流
相容端點範例:
auto client = Client(Config{
.apiKey = std::getenv("DEEPSEEK_API_KEY"),
.baseUrl = std::string(URL::DeepSeek),
.model = "deepseek-chat",
});
原始碼建置
git clone https://github.com/mcpplibs/llmapi.git && cd llmapi
mcpp build
文件
授權
Apache-2.0,詳見 LICENSE