見出し画像

Claude 3をLangChainで動かす

データサイエンティストのせきとばです。
Claude3が発表されましたね。
APIも公開されたので早速LangChainで動かしていきます。

Claude Visionを使って画像認識させる記事はこちら

APIキー取得

以下公式サイトのコンソールに登録 OR ログインします。

https://console.anthropic.com/

Get API Keysをクリックします。

APIキー名入力後に表示されたAPIキーをコピーして控えます。

5ドルまでの無料クレジットがあるので申請しましょう。

Claude3のAPIモデル名

APIモデル名は以下で確認できます。

執筆時点で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の活用シーンも増えていきそうです。


この記事が気に入ったらサポートをしてみませんか?