🔗

LangChainでいろんなLLMを試す(GPT・Claude・Gemini・Mistral)

2024/02/16に公開

LangChainでは様々なLLMがサポートされています。

それぞれ呼び出すための最低限のコードをまとめてみました。

モデル別の料金比較(早見表)

Model Input(1K tokens) Output(1K tokens) Context window 比較
gpt-4-0125-preview 1.5円 4.5円 128,000 tokens 100
gpt-3.5-turbo-0125 0.075円 0.225円 16,000 tokens 5
claude-3-opus 2.25円 11.25円 200,000 tokens 150~250
claude-3-sonnet 0.45円 2.25 200,000 tokens 30~50
claude-2.1 1.2円 3.6円 200,000 tokens 80
claude-2.0 1.2円 3.6円 100,000 tokens 80
gemini-pro 0.01875円 0.05625円 30,720 tokens(入力)
2,048 tokens(出力)
1.3
gemini-pro-vision 0.01875円 0.05625円 12,288 tokens(入力)
4,096 tokens(出力)
1.3
mistral-tiny 0.02254円 0.06762円 8,000 tokens 1.5
mistral-small 0.0966円 0.2898円 32,000 tokens 6.4
mistral-medium 0.4025円 1.2075円 - 26.8

※ Geminiは1,000文字あたりの料金
※ 1$(ドル)=150円換算、1€(ユーロ)=161円換算
※ 右端はGPT-4を基準(100)とした料金比較

1. GPT

Model Input Output Context window
gpt-4-0125-preview 1.5円 / 1000 tokens
($0.01 / 1K tokens)
4.5円 / 1000 tokens
($0.03 / 1K tokens)
128,000 tokens
gpt-3.5-turbo-0125 0.075円 / 1000 tokens
($0.0005 / 1K tokens)
0.225円 / 1000 tokens
($0.0015 / 1K tokens)
16,000 tokens

Pricing

pip install langchain langchain-openai
コード
from langchain_openai import ChatOpenAI
from langchain.schema import SystemMessage, HumanMessage
import os


# --- APIキー ---
OPENAI_API_KEY = "YOUR_API_KEY"
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY

# --- 指定: 使用モデル ---
chat = ChatOpenAI(
    # openai_api_key=OPENAI_API_KEY,
    model='gpt-4-0125-preview'
)

# --- 指定: メッセージ(プロンプト) ---
messages = [
    HumanMessage(content="こんにちは"),
]

# --- 実行: メソッドを指定 ---
result = chat.invoke(messages)
print(result.content)

2. Claude

Model Input Output Context window
claude-3-opus 2,250円 / 100万 tokens
($15 / 1M tokens)
11,250円 / 100万 tokens
($75 / 1M tokens)
200,000 tokens
claude-3-sonnet 450円 / 100万 tokens
($3 / 1M tokens)
2,250円 / 100万 tokens
($15 / 1M tokens)
200,000 tokens
claude-2.1 1,200円 / 100万 tokens
($8.00 / 1M tokens)
3,600円 / 100万 tokens
($24.00 / 1M tokens)
200,000 tokens
claude-2.0 1,200円 / 100万 tokens
($8.00 / 1M tokens)
3,600円 / 100万 tokens
($24.00 / 1M tokens)
100,000 tokens

※ 1$(ドル)=150円換算(Pricing

pip install langchain anthropic
コード
from langchain_community.chat_models import ChatAnthropic
from langchain.schema import SystemMessage, HumanMessage
import os


# --- APIキー ---
ANTHROPIC_API_KEY = "YOUR_API_KEY"
os.environ["ANTHROPIC_API_KEY"] = ANTHROPIC_API_KEY

# --- 指定: 使用モデル ---
chat = ChatAnthropic(
    # anthropic_api_key=ANTHROPIC_API_KEY,
    model_name="claude-3-opus-20240229"
    # model_name="claude-3-sonnet-20240229"
    # model_name="claude-2.1"
)

# --- 指定: メッセージ(プロンプト) ---
messages = [
    HumanMessage(content="こんにちは"),
]

# --- 実行: メソッドを指定 ---
result = chat.invoke(messages)
print(result.content)

3. Gemini

Model Input Output Context window
gemini-pro 0.01875円 /1,000文字
($0.000125 /1,000文字)
0.05625円 /1,000文字
($0.000375 /1,000文字)
入力: 30,720 tokens
出力: 2,048 tokens
gemini-pro-vision 0.01875円 /1,000文字
($0.000125 /1,000文字)
0.05625円 /1,000文字
($0.000375 /1,000文字)
入力: 12,288 tokens
出力: 4,096 tokens

※ 1$(ドル)=150円換算(Pricing

pip install langchain langchain-google-genai
コード
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.schema import SystemMessage, HumanMessage
import os


# --- APIキー ---
GOOGLE_API_KEY = "YOUR_API_KEY"
os.environ["GOOGLE_API_KEY"] = GOOGLE_API_KEY

# --- 指定: 使用モデル ---
chat = ChatGoogleGenerativeAI(
    model="gemini-pro"
)

# --- 指定: メッセージ(プロンプト) ---
messages = [
    HumanMessage(content="こんにちは"),
]

# --- 実行: メソッドを指定 ---
result = chat.invoke(messages)
print(result.content)

4. Mistral

Model Input Output Context window
mistral-tiny 22.54円 / 100万 tokens
(0.14€ / 1M tokens)
67.62円 / 100万 tokens
(0.42€ / 1M tokens)
8,000 tokens
mistral-small 96.6円 / 100万 tokens
(0.6€ / 1M tokens)
289.8円 / 100万 tokens
(1.8€ / 1M tokens)
32,000 tokens
mistral-medium 402.5円 / 100万 tokens
(2.5€ / 1M tokens)
1,207.5円 / 100万 tokens
(7.5€ / 1M tokens)
-

※ 1€(ユーロ)=161円換算(Pricing

pip install langchain langchain-mistralai
コード
from langchain_mistralai.chat_models import ChatMistralAI
from langchain.schema import SystemMessage, HumanMessage


# --- APIキー ---
MISTRAL_API_KEY = "YOUR_API_KEY"
os.environ["MISTRAL_API_KEY"] = MISTRAL_API_KEY

# --- 指定: 使用モデル ---
chat = ChatMistralAI(
    # mistral_api_key=MISTRAL_API_KEY
)

# --- 指定: メッセージ(プロンプト) ---
messages = [
    HumanMessage(content="こんにちは"),
]

# --- 実行: メソッドを指定 ---
result = chat.invoke(messages)
print(result.content)

もっと手軽にモデル別の出力を確認する方法

Vercelの「AI Playground」で、モデルごとの出力結果を並べて見ることができます。


https://sdk.vercel.ai/

その他

https://python.langchain.com/docs/integrations/chat/

Discussion