Files
cpp-httplib/docs-src/pages/ja/llm-app/index.md

2.3 KiB
Raw Blame History

title, order
title order
Building a Desktop LLM App with cpp-httplib 0

自分のC++ライブラリにWeb APIを追加したい、Electronライクなデスクトップアプリをサクッと作りたい―そう思ったことはありませんか Rustなら「Tauri + axum」という選択肢がありますが、C++では難しいと諦めていませんか?

cpp-httplibwebview/webview、そしてcpp-embedlibを組み合わせれば、C++だけで同じアプローチが取れます。しかも配布しやすい、小さなシングルバイナリーのアプリケーションを作れます。

今回は、llama.cppを組み込んだLLM翻訳アプリを題材に、「REST API → SSEストリーミング → Web UI→デスクトップアプリ」と段階的に構築しながら、そのやり方を学んでいきましょう。もちろん、翻訳はあくまで題材です。llama.cppを自分のライブラリに置き換えれば、同じ構成で自分だけのアプリが作れます。

Desktop App

C++17の基本文法とHTTPREST APIの基本がわかれば、すぐに始められます。🚀

目次

  1. プロジェクト環境を作る — 依存ライブラリの取得、ビルド設定、雛形コード
  2. llama.cppを組み込んでREST APIを作る — JSONで翻訳結果を返すAPIの実装
  3. SSEでトークンストリーミングを追加する — トークン単位の逐次レスポンス
  4. モデルの取得・管理機能を追加する — Hugging Faceからのダウンロードと切り替え
  5. Web UIを追加する — ブラウザから操作できる翻訳画面
  6. WebViewでデスクトップアプリ化する — シングルバイナリのデスクトップアプリ
  7. llama.cpp本家のサーバー実装をコードリーディング — プロダクション品質のコードとの比較
  8. 自分だけのアプリにカスタマイズする — 自分のライブラリへの差し替えと応用