|
| 1 | +<div align="center"> |
| 2 | + |
| 3 | +# Open Assistant API |
| 4 | + |
| 5 | +_✨ すぐに使える AI インテリジェントアシスタント API ✨_ |
| 6 | + |
| 7 | +</div> |
| 8 | + |
| 9 | +<p align="center"> |
| 10 | + <a href="./README.md">English</a> | |
| 11 | + <a href="./README_CN.md">简体中文</a> | |
| 12 | + <a href="./README_JP.md">日本語</a> |
| 13 | +</p> |
| 14 | + |
| 15 | +## 紹介 |
| 16 | + |
| 17 | +Open Assistant API は、オープンソースのセルフホスティング型 AI インテリジェントアシスタント API であり、OpenAI 公式インターフェースと互換性があります。OpenAI 公式の [Client](https://github.com/openai/openai-python) を使用して LLM アプリケーションを構築することができます。 |
| 18 | + |
| 19 | +[One API](https://github.com/songquanpeng/one-api) をサポートしており、より多くの商用およびプライベートモデルと統合できます。 |
| 20 | + |
| 21 | +[R2R](https://github.com/SciPhi-AI/R2R) RAG エンジンをサポートしています。 |
| 22 | + |
| 23 | +## 使用方法 |
| 24 | + |
| 25 | +以下は、OpenAI 公式の Python `openai` ライブラリを使用した例です: |
| 26 | + |
| 27 | +```python |
| 28 | +import openai |
| 29 | + |
| 30 | +client = openai.OpenAI( |
| 31 | + base_url="http://127.0.0.1:8086/api/v1", |
| 32 | + api_key="xxx" |
| 33 | +) |
| 34 | + |
| 35 | +assistant = client.beta.assistants.create( |
| 36 | + name="demo", |
| 37 | + instructions="You are a helpful assistant.", |
| 38 | + model="gpt-4-1106-preview" |
| 39 | +) |
| 40 | +``` |
| 41 | + |
| 42 | +## なぜ Open Assistant API を選ぶのか |
| 43 | + |
| 44 | +| 機能 | Open Assistant API | OpenAI Assistant API | |
| 45 | +|----------------------|--------------------|----------------------| |
| 46 | +| エコシステム戦略 | オープンソース | クローズドソース | |
| 47 | +| RAG エンジン | R2R をサポート | サポートされている | |
| 48 | +| インターネット検索 | サポートされている | サポートされていない | |
| 49 | +| カスタム関数 | サポートされている | サポートされている | |
| 50 | +| 内蔵ツール | 拡張可能 | 拡張不可 | |
| 51 | +| コードインタープリタ | 開発中 | サポートされている | |
| 52 | +| マルチモーダル | サポートされている | サポートされている | |
| 53 | +| LLM サポート | より多くの LLM をサポート | GPT のみ | |
| 54 | +| メッセージストリーミング出力 | サポートされている | サポートされている | |
| 55 | +| ローカルデプロイメント | サポートされている | サポートされていない | |
| 56 | + |
| 57 | +- **LLM サポート**: 公式の OpenAI バージョンと比較して、One API を統合することでより多くのモデルをサポートできます。 |
| 58 | +- **ツール**: 現在、オンライン検索をサポートしています。より多くのツールを簡単に拡張できます。 |
| 59 | +- **RAG エンジン**: 現在サポートされているファイルタイプは txt、html、markdown、pdf、docx、pptx、xlsx、png、mp3、mp4 などです。初期実装を提供しています。 |
| 60 | +- **メッセージストリーミング出力**: メッセージストリーミング出力をサポートし、よりスムーズなユーザー体験を提供します。 |
| 61 | +- **エコシステム戦略**: オープンソースであり、サービスをローカルにデプロイし、既存の機能を拡張することができます。 |
| 62 | + |
| 63 | +## クイックスタート |
| 64 | + |
| 65 | +Open Assistant API を開始する最も簡単な方法は、docker-compose.yml ファイルを実行することです。実行する前に、マシンに Docker と Docker Compose がインストールされていることを確認してください。 |
| 66 | + |
| 67 | +### 設定 |
| 68 | + |
| 69 | +プロジェクトのルートディレクトリに移動し、`docker-compose.yml` を開いて、openai api_key と bing search key(オプション)を入力します。 |
| 70 | + |
| 71 | +```sh |
| 72 | +# openai api_key (OneAPI api_key をサポート) |
| 73 | +OPENAI_API_KEY=<openai_api_key> |
| 74 | + |
| 75 | +# bing search key(オプション) |
| 76 | +BING_SUBSCRIPTION_KEY=<bing_subscription_key> |
| 77 | +``` |
| 78 | + |
| 79 | +R2R RAG エンジンを設定して、デフォルトの RAG 実装を置き換え、より優れた RAG 機能を提供することをお勧めします。R2R については、[R2R Github リポジトリ](https://github.com/SciPhi-AI/R2R) を通じて学び、使用することができます。 |
| 80 | + |
| 81 | +```sh |
| 82 | +# RAG 設定 |
| 83 | +# FILE_SERVICE_MODULE=app.services.file.impl.oss_file.OSSFileService |
| 84 | +FILE_SERVICE_MODULE=app.services.file.impl.r2r_file.R2RFileService |
| 85 | +R2R_BASE_URL=http://<r2r_api_address> |
| 86 | +R2R_USERNAME=<r2r_username> |
| 87 | +R2R_PASSWORD=<r2r_password> |
| 88 | +``` |
| 89 | + |
| 90 | +### 実行 |
| 91 | + |
| 92 | +#### Docker Compose を使用して実行: |
| 93 | + |
| 94 | + ```sh |
| 95 | +docker compose up -d |
| 96 | + ``` |
| 97 | + |
| 98 | +### API にアクセス |
| 99 | + |
| 100 | +Api Base URL: http://127.0.0.1:8086/api/v1 |
| 101 | + |
| 102 | +インターフェースドキュメントのアドレス: http://127.0.0.1:8086/docs |
| 103 | + |
| 104 | +### 完全な使用例 |
| 105 | + |
| 106 | +この例では、公式の OpenAI クライアントライブラリを使用して AI アシスタントを作成し、実行します。他の使用方法(ストリーミング出力、ツール(web_search、retrieval、function)など)を確認する場合は、examples ディレクトリで対応するコードを見つけることができます。実行する前に、Python `openai` ライブラリをインストールするために `pip install openai` を実行する必要があります。 |
| 107 | + |
| 108 | +```sh |
| 109 | +# !pip install openai |
| 110 | +export PYTHONPATH=$(pwd) |
| 111 | +python examples/run_assistant.py |
| 112 | +``` |
| 113 | + |
| 114 | +### 権限 |
| 115 | +トークンに基づいて簡単なユーザー分離を提供し、SaaS デプロイメント要件を満たします。`APP_AUTH_ENABLE` を設定することで有効にできます。 |
| 116 | + |
| 117 | + |
| 118 | + |
| 119 | +1. 認証方法は Bearer トークンです。ヘッダーに `Authorization: Bearer ***` を含めて認証を行うことができます。 |
| 120 | +2. トークン管理は API ドキュメントのトークンセクションに記載されています。関連する API は管理者トークンで認証する必要があり、`APP_AUTH_ADMIN_TOKEN` として設定され、デフォルトでは "admin" です。 |
| 121 | +3. トークンを作成する際には、大規模モデルのベース URL と API キーを提供する必要があります。作成されたアシスタントは、対応する設定を使用して大規模モデルにアクセスします。 |
| 122 | + |
| 123 | +### ツール |
| 124 | +OpenAPI/Swagger 仕様に従って、さまざまなツールをアシスタントに統合することができ、外部の世界と接続する能力を強化します。 |
| 125 | + |
| 126 | +1. アプリケーションを他のシステムやサービスと接続し、外部環境と対話することができます。たとえば、コードの実行や専用情報源へのアクセスなどです。 |
| 127 | +2. 使用中にツールを作成し、その後アシスタントと組み合わせることができます。詳細はテストケースを参照してください。[Assistant With Action](tests/tools/assistant_action_test.py) |
| 128 | +3. 認証情報を持つツールを使用する必要がある場合は、実行時に認証情報を追加するだけです。具体的なパラメータ形式は API ドキュメントで確認できます。詳細はテストケースを参照してください。[Run With Auth Action](tests/tools/run_with_auth_action_test.py) |
| 129 | + |
| 130 | +## コミュニティとサポート |
| 131 | + |
| 132 | +- [Slack](https://join.slack.com/t/openassistant-qbu7007/shared_invite/zt-29t8j9y12-9og5KZL6GagXTEvbEDf6UQ) チャンネルに参加して、新しいリリースを確認し、問題を議論し、コミュニティの交流に参加してください。 |
| 133 | +- [Discord](https://discord.gg/VfBruz4B) チャンネルに参加して、他のコミュニティメンバーと交流してください。 |
| 134 | +- Open Assistant Api WeChat グループに参加してください: |
| 135 | + |
| 136 | +  |
| 137 | + |
| 138 | +## 特別な感謝 |
| 139 | + |
| 140 | +主に以下のプロジェクトを参考にし、依存しています: |
| 141 | + |
| 142 | +- [OpenOpenAI](https://github.com/transitive-bullshit/OpenOpenAI): Node で実装された Assistant API |
| 143 | +- [One API](https://github.com/songquanpeng/one-api): マルチモデル管理ツール |
| 144 | +- [R2R](https://github.com/SciPhi-AI/R2R): RAG エンジン |
| 145 | +- [OpenAI-Python](https://github.com/openai/openai-python): OpenAI Python クライアント |
| 146 | +- [OpenAI API](https://github.com/openai/openai-openapi): OpenAI インターフェース定義 |
| 147 | +- [LangChain](https://github.com/langchain-ai/langchain): LLM アプリケーション開発ライブラリ |
| 148 | +- [OpenGPTs](https://github.com/langchain-ai/opengpts): LangChain GPTs |
| 149 | +- [TaskingAI](https://github.com/TaskingAI/TaskingAI): TaskingAI クライアント SDK |
| 150 | + |
| 151 | +## 貢献 |
| 152 | + |
| 153 | +貢献方法については、[貢献ドキュメント](./docs/CONTRIBUTING.md) をお読みください。 |
| 154 | + |
| 155 | +## オープンソースライセンス |
| 156 | + |
| 157 | +このリポジトリは MIT オープンソースライセンスに従います。詳細については、[LICENSE](./LICENSE) ファイルを参照してください。 |
0 commit comments