0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【生成AI入門 OpenAI API】2024年10月 LangChainで簡単にOpenAI APIを使う方法

Last updated at Posted at 2024-10-05

概要

・LangChainでOpen AIのAPIをコールするためのPythonコードを紹介します。
・OpenAIの公式サイトからAPIキーを発行していることが前提です。

コード

import os
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_openai import ChatOpenAI


# OpenAIのAPIキーを設定
os.environ["OPENAI_API_KEY"] = "{APIキーを入力してください}"

# OpenAIのインスタンスを作成
model = ChatOpenAI(model="gpt-4", max_tokens=200)

messages = [
    SystemMessage(content="日本語でチャットをしてください。ハルシネーションを起こさないで。"),
]

# チャットの実行
print("Chat with GPT-4. Type 'exit' to end the conversation.")
while True:
    user_input = input("You: ")
    if user_input.lower() == "exit":
        break
    if not user_input:
        print("メッセージを入力して下さい。")
        continue
    messages.append(HumanMessage(content=user_input))
    result = model.invoke(messages)
    print(f"GPT-4: {result.content}")

解説コメントアウト付き

import os
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_openai import ChatOpenAI


# OpenAIのAPIキーを設定
os.environ["OPENAI_API_KEY"] = "{APIキーを入力してください}"
# 環境変数 "OPENAI_API_KEY" にAPIキーを設定し、OpenAI APIにアクセスする際に認証を行えるようにしています。

# OpenAIのインスタンスを作成
model = ChatOpenAI(model="gpt-4", max_tokens=200)
# ChatOpenAIクラスを使って、GPT-4モデルを使用するインスタンスを作成します。
# max_tokens=200は、生成される応答の最大トークン数を設定しています。

# 会話に含まれるメッセージリストを初期化
messages = [
    SystemMessage(content="日本語でチャットをしてください。ハルシネーションを起こさないで。"),
]
# 最初のメッセージとしてSystemMessageを設定しています。
# ここでは、「日本語でチャットをしてください」と指示することで、チャットが日本語で進行するようにしています。
# また、「ハルシネーションを起こさないで」と明示して、AIの誤った応答を減らすよう促しています。


# チャットの実行
print("Chat with GPT-4. Type 'exit' to end the conversation.")
# ユーザーに対して、チャットを開始することを示すメッセージを出力します。
# 'exit'と入力することで会話を終了できることを伝えています。

while True:
    user_input = input("You: ")
    # ユーザーからの入力を受け取ります。
    if user_input.lower() == "exit":
        break
        # 'exit'と入力された場合、whileループを終了してプログラムを終了します。
    
    if not user_input:
        print("メッセージを入力して下さい。")
        continue
        # 入力が空の場合、再度メッセージを入力するように促します。

    # ユーザーからのメッセージを追加
    messages.append(HumanMessage(content=user_input))
    # ユーザーからの入力をHumanMessageとしてメッセージリストに追加します。

    # モデルにメッセージを送信して応答を生成
    result = model.invoke(messages)
    # ここでChatOpenAIインスタンスを使って、モデルにメッセージリストを送信し、AIからの応答を受け取ります。

    # AIからの応答を出力
    print(f"GPT-4: {result.content}")
    # モデルからの応答を画面に出力します。


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?