- 認証不要の高速デプロイ:デフォルトでは認証が不要で、プロバイダーの動的ロードが可能です。
- 高性能な推論:CUDA と Vulkan をサポートし、CPU 推論も可能です。
- ローカルモデルのサポート:ローカルの量子化された GGML モデルを直接推論できます。
- クロスプラットフォーム対応:Windows、Linux、macOS に対応しています。
- 柔軟な設定:
Config.yamlファイルを使用して API を柔軟に設定できます。 - 高い拡張性:几乎所有のインターフェースをルールで適応可能です。
- 認証システム
- ユーザーシステム
- 料金システム
UniAPI は以下の推論方式をサポートしています:
- CUDA:NVIDIA GPU を使用して高速推論を行います。
- Vulkan:NVIDIA 以外の GPU でも使用できるクロスプラットフォームのグラフィックスとコンピューティング API。
- CPU:GPU が使用できない環境では、CPU を使用して直接推論を行います。
設定ファイルをテキストエディターで手動で編集したくない場合は、ChatBot GUI 設定ツール を使用してください。このツールで設定を編集後、少し変更することで、このプロジェクトで直接使用できます。
# 事前構築された Docker イメージを取得
docker pull ryoshi541/uniapi:latest
# デフォルト設定でコンテナを実行
docker run -d -p 8080:8080 ryoshi541/uniapi:latest
# カスタム設定で実行
docker run -d -p 8080:8080 \
-v /path/to/Config.yaml:/app/Config.yaml \
ryoshi541/uniapi:latest# リポジトリをクローン
git clone --recursive https://github.com/NGLSG/UniAPI.git
cd UniAPI
# Docker イメージをビルド
docker build -t uniapi:latest .
# コンテナを実行
docker run -it --rm -p 8080:8080 uniapi:latestgit clone --recursive https://github.com/NGLSG/UniAPI.git
cd UniAPI
# サブモジュールが取得されていない場合:
git submodule update --init --recursive# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y \
git cmake build-essential \
libvulkan-dev curl libcurl4-openssl-dev \
libjsoncpp-dev uuid-dev libssl-dev zlib1g-dev
# オプション:データベースサポート
sudo apt-get install -y \
libmysqlclient-dev \
libsqlite3-dev \
libhiredis-devmkdir build && cd build
cmake ..
make -j4./bin/UniAPI 8080 # ポートは変更可能UniAPI は、ルールベースの設定を使用して異なる API インターフェースに適応します。以下は設定パラメータの詳細説明です:
| パラメータ | 説明 |
|---|---|
enable |
このプロバイダーを有効にするかどうか |
supportSystemRole |
システムロールをサポートするかどうか |
name |
プロバイダー名(識別用) |
model |
デフォルトのモデル名 |
apiPath |
API エンドポイント URL(変数プレースホルダーを含む) |
apiKeyRole |
API キーの設定 |
headers |
カスタム HTTP ヘッダー |
roles |
ロールマッピング(OpenAI 形式とプロバイダー形式の間) |
extraMust |
追加の必須パラメータ |
promptRole |
プロンプト構造のマッピング設定 |
params |
送信する追加パラメータ |
responseRole |
レスポンス抽出設定 |
supportModels |
サポートされているモデルのリスト |
- enable: true
supportSystemRole: false
name: mGemini
model: gemini-2.5-flash-preview-04-17
apiPath: https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:streamGenerateContent?key=${API_KEY}
apiKeyRole:
key: ~
role: URL
header: "Authorization: Bearer "
headers: ~
vars: ~
roles:
system: system
user: user
assistant: model
extraMust:
- suffix: topK
path: generationConfig
content: ${TOPK}
isStr: false
- suffix: topP
path: generationConfig
content: ${TOPP}
isStr: false
- suffix: temperature
path: generationConfig
content: ${TEMP}
isStr: false
- suffix: presencePenalty
path: generationConfig
content: ${PRES}
isStr: false
- suffix: frequencyPenalty
path: generationConfig
content: ${FREQ}
isStr: false
promptRole:
role:
suffix: contents
path: role
content: content
isStr: false
prompt:
suffix: contents
path: parts/0/text
content: content
isStr: false
supportModels:
- gemini-2.5-flash-preview-04-17
params: [ ]
responseRole:
suffix: ""
content: candidates/content/parts/text
callback: RESPONSE
stopFlag: ""
author: Ryoshi
version: 1.0
description: Gemini カスタム実装私たちは UniAPI の継続的な改善と新機能の追加に努めています。皆様のサポートはこのプロジェクトの継続的な発展にとって非常に重要です。以下のような方法でご支援いただけます:
-
スターをつけてください
UniAPI が役立つと思ったら、GitHub でスターをつけてください。これにより、私たちの可視性が高まり、より多くのコントリビューターを引き付けることができます。 -
プロジェクトに貢献する
コミュニティからの貢献を歓迎します!バグの修正、新機能の追加、またはドキュメントの改善など、どんな貢献も貴重です。始めは簡単です。リポジトリをフォークしてプルリクエストを送信するだけです。 -
このプロジェクトを共有する
UniAPI を友達、同僚、またはソーシャルメディアで共有してください。このプロジェクトを知っている人が多いほど良いです! -
フィードバックを提供する
あなたのフィードバックは私たちにとって重要です。提案、アイデア、または問題が発生した場合は、遠慮せずに GitHub で issue を開いてください。
皆様のサポートをありがとうございます!皆様と一緒に UniAPI をさらに向上させましょう!
MIT - 商用および個人利用は無料です。詳細は LICENSE をご確認ください。