Breaking News

Default Placeholder Default Placeholder

先日、AnthropicからClaude3の新しいモデルが発表されました。

噂ではGPT4よりも性能がいいのだとか。気になったのでLangChainでClaude3を使ってみたいと思います。

今回は、以前作ったStreamlitを使ってやってみたいと思います。

Streamlitの環境構築はこちらの記事をご覧ください。

することリスト

  1. AnthropicでClaudeのAPI Keyを取得する
  2. 環境変数をセットする
  3. 必要なライブラリをインストールする
  4. プログラムを書いてみる
  5. 実行

1. AnthropicでClaudeのAPI Keyを取得する

まずはAnthropicでClaudeのAPI Keyを取得します。

https://www.anthropic.com/ にアクセスし、APIの Get started now ボタンをクリックします。

Get API Keysをクリック

Create Keyをクリック

名前を入力してキーを作成する

これでAPI Keyが作成できました。

2. 環境変数をセットする

.envファイルを作成し、環境変数をセットします。

ANTHROPIC_API_KEY=ここにAPIKeyを貼ります

docker-compose up で環境変数が適用されるようにします。docker-compose.yamlファイルに env_fileを設定します。

version: "3"

services:
  streamlit:
    restart: always
    build: .
    tty: true
    volumes:
      - ./:/app
    command: /bin/sh -c "cd /app; pip install -r requirements.txt; streamlit run main.py;"
    ports:
      - 8501:8501
    env_file:
      - .env 

これでOKです。docker-compose upで .envファイルに設定してある環境変数が適用されます。

3. 必要なライブラリをインストールする

最低限必要の以下のライブラリをrequirements.txtに追加します。

langchain
langchain-anthropic

以下コマンドでインストールを実行

$ pip install -r requirements.txt

4. プログラムを書いてみる

簡易的ですが、AnthropicのClaude3を使うプログラムを書いてみます。

今回は執筆時点での最新モデルである claude-3-opus-20240229を使用します。

Claudeのモデルはこちらを参照ください。

https://docs.anthropic.com/claude/docs/models-overview#model-recommendations

from langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate
from langchain_anthropic import ChatAnthropic

class Llm():
    @classmethod
    def ask(cls):
        system_prompt = "あなたは日本料理の板前です"
        human_prompt = "だし巻き卵の作り方を教えてください"
        chat_prompt = ChatPromptTemplate.from_messages([
            SystemMessagePromptTemplate.from_template(system_prompt),
            HumanMessagePromptTemplate.from_template(human_prompt)
        ])
        llm = ChatAnthropic(model_name='claude-3-opus-20240229', temperature=0)
        response = llm.invoke(chat_prompt.format_prompt().to_messages())
        print(response.content)

これでOKです。最後に printで結果を出力します。

5. 実行

早速実行してみましょう!

結果、こんな感じでした。

だし巻き卵の作り方を以下のステップでご説明します。

材料(2人分):
- 卵 3個
- だし汁 100ml
- 砂糖 小さじ1
- 薄口醤油 小さじ1
- 塩 少々
- サラダ油 適量

手順:
1. ボウルに卵を割り入れ、よく溶きほぐします。
2. だし汁、砂糖、薄口醤油、塩を加え、さらに混ぜ合わせます。
3. 卵液をこし器で濾し、なめらかにします。
4. 卵焼き器にサラダ油を薄く塗り、中火で熱します。
5. 卵液を1/4量ほど流し入れ、菜箸で大きく混ぜながら半熟状になるまで火を通します。
6. 半熟状になったら、手前から奥に向かって巻いていきます。
7. 巻き終わったら卵焼き器の手前に寄せ、再びサラダ油を薄く塗ります。
8. 卵液を同量流し入れ、菜箸で持ち上げるようにして、先ほど巻いた卵の下に流し入れます。
9. 半熟状になったら、先ほどと同様に手前から奥に向かって巻いていきます。
10. 残りの卵液でも同様の作業を繰り返し、最後まで巻き上げます。
11. 完成したら、一口大の厚さに切り分けて器に盛り付けます。

コツ:
- だし汁は、昆布だしや鰹だしなどを使用すると風味が良くなります。
- 卵液を流し入れる際は、一度に多く入れすぎないようにしましょう。
- 巻くときは、焦げ付かないようにゆっくりと巻いていきましょう。
- 仕上がりにツヤを出したい場合は、最後に刷毛で卵液を塗ってから巻き上げると良いでしょう。

ものすごい丁寧に教えてくれてますね。。すごい!

もっと複雑な質問もしてみましたが、体感ですがGPTやGeminiより速くて精度も高いという印象です。

以上、簡単ですが、LangChainでClaude3を使う方法まとめでした。

最後までお読みいただきありがとうございました!