![見出し画像](https://assets.st-note.com/production/uploads/images/133025089/rectangle_large_type_2_d6524d253bdd905a39d10fe4a6c7e7b7.png?width=1200)
Claude 3をLangChainで動かす
データサイエンティストのせきとばです。
Claude3が発表されましたね。
APIも公開されたので早速LangChainで動かしていきます。
Claude Visionを使って画像認識させる記事はこちら
APIキー取得
以下公式サイトのコンソールに登録 OR ログインします。
https://console.anthropic.com/
![](https://assets.st-note.com/img/1709645670349-6MeU3aN73P.png)
Get API Keysをクリックします。
![](https://assets.st-note.com/img/1709645771653-pVovRzarOV.png?width=1200)
APIキー名入力後に表示されたAPIキーをコピーして控えます。
![](https://assets.st-note.com/img/1709645840829-KKa0pYiMPE.png?width=1200)
5ドルまでの無料クレジットがあるので申請しましょう。
![](https://assets.st-note.com/img/1709646175348-67pJaISXeH.png)
Claude3のAPIモデル名
APIモデル名は以下で確認できます。
![](https://assets.st-note.com/img/1709646255755-T28y4tGa5J.png?width=1200)
執筆時点でClaude 3 Haikuはまだ未公開でした。
LangChainでClaude3実装
langchain-anthropicモジュールをインストールします。
%pip install -qU langchain-anthropic
APIキーを設定します
import os
os.environ["ANTHROPIC_API_KEY"] = API_KEYを設定
以下の要領で実装します。
from langchain_anthropic import ChatAnthropic
from langchain_core.prompts import ChatPromptTemplate
chat = ChatAnthropic(temperature=0, model_name="claude-3-opus-20240229")
system = (
"You are a helpful assistant that translates {input_language} to {output_language}."
)
human = "{text}"
prompt = ChatPromptTemplate.from_messages([("system", system), ("human", human)])
chain = prompt | chat
chain.invoke(
{
"input_language": "English",
"output_language": "Japanese",
"text": "I love Python",
}
)
出力結果
Here's the Japanese translation of "I love Python":
私はPythonが大好きです。
Watashi wa Python ga daisuki desu.
Explanation:
- 私 (Watashi) means "I"
- は (wa) is a topic marker indicating the topic of the sentence
- Python is written in katakana as パイソン (Paison) since it's a foreign word, but it's common to keep it in English
- が (ga) is a subject marker indicating the subject of the sentence
- 大好き (daisuki) means "love" or "really like"
- です (desu) is a polite sentence-ending c
Streaming
Streamingも対応しています。
chat = ChatAnthropic(temperature=0.3, model_name="claude-3-opus-20240229")
prompt = ChatPromptTemplate.from_messages(
[("human", "ワンピースに登場する七武海を教えて")]
)
chain = prompt | chat
for chunk in chain.stream({}):
print(chunk.content, end="", flush=True)
出力結果
ワンピースに登場する七武海は以下の通りです。
1. ジュラキュール・ミホーク(鷹の目)
2. クロコダイル(元・砂漠の王)
3. ボア・ハンコック(海賊女帝)
4. ドンキホーテ・ドフラミンゴ(天夜叉)
5. バーソロミュー・くま(革命家)
6. ゲッコー・モリア(魔の三角地帯の主)
7. マーシャル・D・ティーチ(黒ひげ)
また、七武海に加入していた元メンバーとして、以下の人物がいます。
- ジンベエ(タイヨウの海賊団船長)
- トラファルガー・ロー(ハートの海賊団船長)
- エドワード・ウィーブル(白ひげJr.)
- バギー(道化のバギー海賊団船長)
七武海は、世界政府に協力する代わりに、一定の特権を与えられた強力な海賊たちです。しかし、物語が進むにつれて、七武海システムは廃止されることになります。
LLMの選択肢が増えるとLangChainの活用シーンも増えていきそうです。
この記事が気に入ったらサポートをしてみませんか?