Skip to content

Latest commit

 

History

History
96 lines (71 loc) · 2.77 KB

File metadata and controls

96 lines (71 loc) · 2.77 KB

llmapi

使用 C++23 模組建構的現代 LLM 客戶端

C++23 Module License OpenAI Compatible

English - 简体中文 - 繁體中文
文件導覽 - 繁體中文文件 - English Docs - 简体中文文档

llmapi 提供型別化的 Client<Provider> API,涵蓋聊天、串流輸出、embeddings、工具呼叫與對話持久化。預設別名 Config 對應 OpenAI 風格設定,常見情況下不需要顯式寫出 openai::OpenAI(...)

特性

  • C++23 模組:import mcpplibs.llmapi
  • 強型別訊息、工具與回應結構
  • 同步、非同步、串流聊天介面
  • OpenAI Provider 支援 embeddings
  • 支援儲存 / 載入對話歷史
  • 可透過 baseUrl 存取 OpenAI 相容端點

快速開始

import mcpplibs.llmapi;
import std;

int main() {
    using namespace mcpplibs::llmapi;

    auto apiKey = std::getenv("OPENAI_API_KEY");
    if (!apiKey) {
        std::cerr << "OPENAI_API_KEY not set\n";
        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::cout << resp.text() << '\n';
    return 0;
}

Provider

  • Configopenai::Config 的匯出別名,預設走 OpenAI 風格
  • openai::OpenAI:OpenAI 聊天、串流、工具呼叫、embeddings
  • AnthropicConfig / anthropic::Anthropic:Anthropic 聊天與串流

相容端點範例:

auto client = Client(Config{
    .apiKey = std::getenv("DEEPSEEK_API_KEY"),
    .baseUrl = std::string(URL::DeepSeek),
    .model = "deepseek-chat",
});

建置與執行

xmake
xmake run hello_mcpp
xmake run basic
xmake run chat

套件管理使用

add_repositories("mcpplibs-index https://github.com/mcpplibs/mcpplibs-index.git")
add_requires("llmapi 0.1.0")

target("demo")
    set_kind("binary")
    set_languages("c++23")
    set_policy("build.c++.modules", true)
    add_files("src/*.cpp")
    add_packages("llmapi")

更多內容見 docs/zh-hant/getting-started.mddocs/zh-hant/providers.mddocs/zh-hant/README.md

授權

Apache-2.0,詳見 LICENSE