はじめに
本記事では、Oracle Cloud Infrastructure (OCI) の Generative AI サービスに含まれる Cohere の埋め込みモデルを利用して、テキスト分類APIを簡単に構築する方法を紹介します。
このプロジェクトは、Flaskフレームワークをベースにしており、OCIのAIモデルを手軽に利用できるRESTful APIを提供します。
ソースコードは以下のGitHubリポジトリで公開しています。
https://github.com/engchina/No.1-Classifier
このプロジェクトでできること
-
テキスト分類: OCI Cohere の最新モデル (
cohere.embed-v4.0) を利用して、テキストデータを「好評」「悪評」「中評」などのカテゴリに分類します。 -
簡単なAPI: RESTful APIとして設計されており、
curlコマンドや各種プログラミング言語から簡単に利用できます。 - 柔軟なモデル管理: API経由でモデルの再学習が可能で、新しいデータに適応させることができます。
- Docker対応: Dockerコンテナとしてデプロイできるため、環境構築が非常に簡単です。
主な機能
- Oracle OCI Cohere 埋め込みモデル (
cohere.embed-v4.0) の利用 - RESTful API インターフェース
- 学習済みモデルの永続化ストレージ
- ヘルスチェックエンドポイント
- モデルの学習機能
- テキスト分類のサポート
動作環境
- Python 3.11+
- Oracle OCI アカウントと Compartment ID
- OCI CLI の設定完了
インストールと実行手順
1. 依存関係のインストール
まず、プロジェクトをクローンし、必要なライブラリをインストールします。
git clone https://github.com/engchina/No.1-Classifier.git
cd No.1-Classifier
# condaを利用する場合
conda create -n no.1-classifier python=3.11 -y
conda activate no.1-classifier
pip install -r requirements.txt
2. Oracle OCI の設定
OCIを利用するための設定を行います。
2.1 OCI CLI の設定
まだ設定していない場合は、OCI CLIをインストールして設定します。
# OCI CLI のインストール
pip install oci-cli
# OCI CLI の設定 (対話形式で設定を進めます)
oci setup config
2.2 環境変数の設定
プロジェクトルートにある .env.example をコピーして .env ファイルを作成します。
cp .env.example .env
次に、.env ファイルを編集し、ご自身のOCI Compartment IDを設定します。
# Oracle OCI 設定
OCI_COMPARTMENT_ID=ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxx
3. アプリケーションの起動
以下のコマンドでFlaskアプリケーションを起動します。
python app.py
http://localhost:5000 でAPIサーバーが起動します。
APIの使い方
実行順序:health → train → classify
1. ヘルスチェック (/health)
サーバーの状態を確認できます。
リクエスト例:
curl http://localhost:5000/health
レスポンス例:
{
"model_path_exists": true,
"model_trained": true,
"status": "healthy"
}
2. モデルの学習 (/train)
training_data.jsonl に基づいてモデルを学習させます。
リクエスト例:
curl -X POST http://localhost:5000/train
レスポンス例:
{
"message": "モデルの学習が完了しました",
"training_samples": 8,
"labels": ["好評", "悪評", "中評"]
}
3. テキスト分類 (/classify)
テキストを分類するには、/classify エンドポイントにPOSTリクエストを送信します。
リクエスト例:
curl -X POST http://localhost:5000/classify \
-H "Content-Type: application/json" \
-d '{"text": "この製品はコスパが良くて、とても満足しています"}'
レスポンス例:
{
"prediction": "好评",
"probabilities": {
"中评": 0.256,
"好评": 0.511,
"差评": 0.233
},
"text": "この製品はコスパが良くて、とても満足しています"
}
Dockerで動かす
Dockerfileが用意されているので、簡単にコンテナとして実行できます。
# Dockerイメージのビルド
docker build -t oracle-cohere-classifier .
# Dockerコンテナの実行
docker run -p 5000:5000 --env-file .env oracle-cohere-classifier
まとめ
この記事では、Oracle OCI CohereモデルとFlaskを使って、簡単にテキスト分類APIを構築する方法を紹介しました。OCIのAI機能を活用することで、開発者はインフラの管理に煩わされることなく、迅速にAIアプリケーションを開発できます。
ぜひ、GitHubリポジトリをフォークして、ご自身のプロジェクトに応用してみてください。