multiai

A Python library for text-based AI interactions

View the Project on GitHub or PyPI

[ English 日本語 ]

multiai

multiaiは、OpenAI、Anthropic、Google、Perplexity、Mistralのテキスト生成AIモデルとやり取りするためのPythonライブラリおよびコマンドラインツールです。このマニュアルでは、multiaiのインストール、設定、および使用方法について説明します。

目次

対応しているAIプロバイダーとモデル

multiaiは、以下のプロバイダーのAIモデルとやり取りすることができます。

AIプロバイダー Webサービス 使用可能なモデル
OpenAI ChatGPT GPTモデル
Anthropic Claude Claudeモデル
Google Gemini Geminiモデル
Perplexity Perplexity Perplexityモデル
Mistral Mistral Mistralモデル

主な機能

はじめに

インストール

multiaiをインストールするには、以下のコマンドを使用してください:

pip install multiai

環境設定

multiaiを使用する前に、選択したAIプロバイダーのAPIキーを設定します。APIキーは環境変数として、またはユーザー設定ファイルで設定できます:

export OPENAI_API_KEY=your_openai_api_key_here

基本的な使い方

APIキーの設定が完了したら、AIとの対話を開始できます。

インタラクティブモードの詳細

インタラクティブモードでは、複数行のテキストを入力するために、設定ファイルの[command]セクションにあるblank_linesパラメータを使用して入力完了を制御できます。以下はその仕組みです:

インタラクティブモードを終了するには:

設定

設定ファイル

multiaiは、設定ファイルから設定を読み込みます。設定ファイルの検索順序は次のとおりです:

  1. システムデフォルト: システムデフォルト設定
  2. ユーザーレベル: ~/.multiai
  3. プロジェクトレベル: ./.multiai

後者のファイルからの設定は、前者の設定を上書きします。

以下は設定ファイルの例です:

[model]
ai_provider = openai
openai = gpt-4o-mini
anthropic = claude-3-haiku-20240307
google = gemini-1.5-flash
perplexity = llama-3.1-sonar-small-128k-chat
mistral = mistral-large-latest

[default]
temperature = 0.7
max_requests = 5

[command]
blank_lines = 0
always_copy = no
always_log = no
log_file = chat-ai-DATE.md

[prompt]
color = blue
english = If the following sentence is English, revise the text to improve its readability and clarity in English. If not, translate into English. No need to explain. Just output the result English text.
factual = Do not hallucinate. Do not make up factual information.
url = Summarize following text very briefly.

[api_key]
openai = (Your OpenAI API key)
anthropic = (Your Claude API key)
google = (Your Gemini API key)
perplexity = (Your Perplexity API key)
mistral = (Your Mistral API key)

モデルとプロバイダーの選択

デフォルトのAIプロバイダーは、設定ファイルの[model]セクションで指定されますが、コマンドラインオプションでこれを上書きすることができます:

また、-mオプションを使用してモデルを指定することもできます。例えば、OpenAIのgpt-4oモデルを使用するには:

ai -om gpt-4o

複数のAIプロバイダーオプションが与えられた場合、例えば:

ai -oa

複数のモデルと同時に会話できます。各プロバイダーのデフォルトモデルが使用されます。

APIキー管理

APIキーは、環境変数として保存できます:

環境変数が設定されていない場合、multiaiは設定ファイルの[api_key]セクションにあるキーを探します。


高度な使用法

モデルパラメータ

temperaturemax_tokensなどのパラメータは、設定ファイルまたはコマンドラインオプションで設定できます:

応答が不完全な場合、multiaimax_requestsで指定された回数に達するまで、追加情報を要求します。

入力オプション

multiaiは、プロンプトを簡素化するために、いくつかのコマンドラインオプションを提供します:

出力オプション

コマンドラインオプション

すべてのコマンドラインオプションの一覧を見るには、以下を使用します:

ai -h

より詳細なドキュメントを見るには、このマニュアル(英語版)をウェブブラウザで開くことができます:

ai -d

Pythonライブラリとしてのmultiaiの使用

multiaiはPythonライブラリとしても使用できます。以下は簡単な例です:

import multiai

# クライアントの初期化
client = multiai.Prompt()
# モデルとtemperatureの設定。省略するとデフォルト設定となる。
client.set_model('openai', 'gpt-4o')
client.temperature = 0.5

# プロンプトを送信して応答を取得
answer = client.ask('hi')
print(answer)

# 文脈を持った会話の継続
answer = client.ask('how are you')
print(answer)

# 会話の文脈をクリア
client.clear()

client.askでエラーが発生した場合、エラーメッセージが返され、client.errorTrueに設定されます。

テキストファイルを翻訳するスクリプト

以下は、multiaiライブラリを使用してテキストファイルを翻訳するPythonスクリプトの例です。このコードをenglish.pyとして保存してください。

import multiai
import sys
pre_prompt = "Translate the following text into English. Just answer the translated text and nothing else."
file = sys.argv[1]
with open(file) as f:
    prompt = f.read()
client = multiai.Prompt()
client.set_model('openai', 'gpt-4o')
answer = client.ask(pre_prompt + '\n\n' + prompt)
print(answer)

たとえば、text.mdという日本語のファイルがあったとします。次のコマンドを実行します。

python english.py text.md

すると、翻訳された英語が表示されます。結果をoutput.mdというファイルに保存するには、リダイレクトを使って

python english.py text.md > output.md

とします。pre_promptパラメータを変えることで、色々なスクリプトを作ることができます。

ローカルチャットアプリの実行

streamlitを使用してローカルチャットアプリを実行できます。以下のコマンドを実行してstreamlitをインストールしてください。

pip install streamlit

app.pyをダウンロードして、以下のコマンドでローカルサーバーを起動してください。

streamlit run app.py

サーバーが起動すると、デフォルトのウェブブラウザが開き、チャットアプリケーション(Chotto GPT)が表示されます。このアプリでは、さまざまなプロバイダーからのAIモデルを簡単に選択し、それらと会話を楽しむことができます。利用可能なモデルのリストやログファイルの場所は、ソースコードを直接編集することでカスタマイズできます。

Google Colabでの実行

Google Colab で実行するには、このノートブックを使用して下さい。Colab Secrets に API キーを設定する必要があります。