A common management module for AI generation services
Project description
AI Manager
AI Managerは、複数のAIサービス(OpenAI, Google, Anthropicなど)を統一的に利用するためのPythonライブラリです。このライブラリを使用することで、各社のAPIキー管理や入力ルールを簡単に扱うことができます。また、連続した会話の管理機能も提供しています。
特徴
- 複数のAIサービスに対応(OpenAI, Google, Anthropic)
- APIキーの管理が容易
- 柔軟なAPI選択とプロンプト処理
- 環境変数による設定管理
- テキストに特化した設計
- 連続した会話の管理機能
インストール
以下のコマンドを使用して、pip経由でライブラリをインストールします。
pip install simple-ai-manager
環境設定
環境変数を使用してAPIキーを管理します。プロジェクトディレクトリに.envファイルを作成し、以下のようにAPIキーを設定してください。
OPENAI_API_KEY=your_openai_api_key
GOOGLE_API_KEY=your_google_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
トークン数の制限をかけたい場合は、以下のように環境変数にMAX_TOKENSを書いて設定してください。
MAX_TOKENS=10000
設定しない場合は、デフォルト値が使われます。 デフォルト値は以下の通りです。 openai/1000 google/8192 anthropic/1000
使い方
基本的な使い方
AI Managerを使用して、各社のAIサービスを呼び出す基本的な方法を示します。
from dotenv import load_dotenv
import os
from simple_ai_manager import AIManager
# 環境変数の読み込み
load_dotenv()
# AIManagerのインスタンスを作成
ai_manager = AIManager()
# 使用するAIの会社、モデル、プロンプトを設定
company = 'openai' # 'google' または 'anthropic' も使用可能
model = 'text-davinci-003' # 例としてOpenAIのモデル名
prompt = 'Hello, how are you?'
# APIを呼び出してレスポンスを取得
try:
response = ai_manager.call_api(company, model, prompt)
print(response)
except Exception as e:
print(f'Error: {e}')
レスポンスはテキストだけに限定させています。 テキストを渡してテキストで貰うときに特化した簡略化ツールです。
会話の継続性管理
AI Managerは会話の継続性を管理する機能を提供しています。この機能を使用することで、連続した質問や対話を行うことができます。
会話の開始
conversation_id = ai_manager.start_conversation('openai', 'gpt-4')
会話の継続
response1 = ai_manager.call_api('openai', 'gpt-4', "こんにちは。今日の天気について教えてください。", conversation_id)
print(response1)
response2 = ai_manager.call_api('openai', 'gpt-4', "その天気は週末まで続きますか?", conversation_id)
print(response2)
会話の終了
ai_manager.end_conversation(conversation_id)
会話保存のオンオフ
会話の保存機能は、デフォルトでオンになっています。特定の会話で保存機能をオフにしたい場合は、以下のようにsave_conversationパラメータをFalseに設定します:
conversation_id = ai_manager.start_conversation('openai', 'gpt-4', save_conversation=False)
または、AIManagerのインスタンス作成時に全体的な設定を行うこともできます:
ai_manager = AIManager(default_save_conversation=False)
この場合、特定の会話で保存機能を有効にしたい場合は、以下のようにします:
conversation_id = ai_manager.start_conversation('openai', 'gpt-4', save_conversation=True)
保存された会話の取得
保存された会話を取得するには、以下のメソッドを使用します:
conversation_history = ai_manager.get_conversation_history(conversation_id)
AIからの返答をファイルに保存
AIからの返答を指定したディレクトリにyyyymmddhhmmss.txt形式で保存する方法を示します。
import datetime
company = 'openai'
model = 'text-davinci-003'
prompt = 'Hello, how are you?'
try:
response = ai_manager.call_api(company, model, prompt)
# 取得結果(AIからの返事)を保存するディレクトリ
save_dir = 'ai_responses'
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 現在の日時を使用してファイル名を生成
now = datetime.datetime.now()
timestamp = now.strftime('%Y%m%d%H%M%S')
file_path = os.path.join(save_dir, f'{timestamp}.txt')
# AIの返答をファイルに保存
with open(file_path, 'w') as file:
file.write(response)
print(f'Response saved to {file_path}')
except Exception as e:
print(f'Error: {e}')
貢献
バグの報告や機能のリクエストはGitHub Issuesで受け付けています。プルリクエストも歓迎します。
ライセンス
このプロジェクトはMITライセンスの下で提供されています。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simple_ai_manager-0.1.4.tar.gz.
File metadata
- Download URL: simple_ai_manager-0.1.4.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc6a28f4611dfb00e67d934acc9c21cfd9da6436ee70b0d40cb6d89d0aee943f
|
|
| MD5 |
90a5da60c624dbbf42ec03b9c057247e
|
|
| BLAKE2b-256 |
3ab853a75e63dda0bc6f55b287e6d9537335f1abb568e74aee6fa4babee5901c
|
File details
Details for the file simple_ai_manager-0.1.4-py3-none-any.whl.
File metadata
- Download URL: simple_ai_manager-0.1.4-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40bee1a6dfcf010141a4bf8c03a3c9c4c3eac0a9c38d8a8b3d9b627d1dd7e6d5
|
|
| MD5 |
c4916b8be6a348a8bd8df918a76c4572
|
|
| BLAKE2b-256 |
e70b307bb1027f1607567464264e713a02022d1455dc8d37989123311c82a7fe
|