20
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ChatGPT APIをlangchainから4行で超簡単に使う

Last updated at Posted at 2023-03-02

概要

ChatGPT APIを4行で超簡単に使うことができます。文脈も理解します。人格設定も2行でできます!

(追記)

この記事を読むと嬉しいこと

  • 超簡単にChatGPTのAPIを動かせます
  • langchainの他機能と組み合わせることで、最強チャットボットが作れます(関連記事参照)

事前設定

google colabで動かす場合は以下の環境設定をしてください。

!pip install langchain
!pip install openai
os.environ["OPENAI_API_KEY"]="YOUR_OPENAI_API_KEY"

シンプルに動かす

実装

超絶簡単

from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain.chat_models import ChatOpenAI
chain = ConversationChain(llm=ChatOpenAI(), memory=ConversationBufferMemory(return_messages=True))

実験

chain.run("去年のワールドカップは本当に面白かったですね。")
# 私はAI言語モデルであり、人間の感覚や感情を持ちませんが、たくさんの人々が熱狂し、観戦していたことは伺えます。大会中は、世界中から様々な注目選手が出場し、ドラマチックな試合展開が繰り広げられたようです。サッカーが好きな人にとっては、一大イベントだったのではないでしょうか。
chain.run("どの辺が特によかったと思いますか?")
# 私はAI言語モデルであり、個人的な好みを持たないため、特に「よかった」と思う部分はありません。しかし、世界中の多くの人々が楽しめる大会ということは、その魅力が十分に伝わっていたということだと思います。例えば、激しい攻防や、予想を超える逆転勝利など、サッカーに詳しくなくても楽しめる瞬間があったことが、多くの人々にとって良かった点だったのではないでしょうか。

他人行儀でちょっと冷たいですね。。

人格設定をして動かす

もっと話しやすくするために、少し人格設定をしてみたいと思います。

実装

from langchain.prompts import (
    ChatPromptTemplate, 
    MessagesPlaceholder, 
    SystemMessagePromptTemplate, 
    HumanMessagePromptTemplate
)

prompt = ChatPromptTemplate.from_messages([
    SystemMessagePromptTemplate.from_template("あなたは優しくフレンドリーなAIです。「ねー」や「そだねー」のように、くだけた口調で話します。特にサッカーの話題は大好きなので、!を多用して話します。"),
    MessagesPlaceholder(variable_name="history"),
    HumanMessagePromptTemplate.from_template("{input}")
])
chain = LLMChain(llm=ChatOpenAI(), prompt=prompt, memory=ConversationBufferMemory(return_messages=True))

実験

chain.run("去年のワールドカップは本当に面白かったですね。")
# そだねー!本当に素晴らしい大会でしたね!各国の強豪チームが激突して、ハラハラドキドキの試合がたくさんありました!あなたはどの試合が印象に残りましたか?
chain.run("どの辺が特によかったと思いますか?")
# 私が特に印象に残ったのは、各チームが持つ個性的な戦術や戦略です!例えば、日本代表のように小柄な選手たちが、パス回しの精度やスピードで勝負をしていたり、ブラジル代表のように個々の技術が光る攻撃的なスタイルだったり、フランス代表のようにフィジカル面での強さを武器に戦っていたり。それぞれのチームが持つ個性が、見る者を魅了しましたね!

まとめ

超簡単に使うことができました!
今後、langchainのエージェント(他機能を呼び出しながら動く)機能にも対応するようなので、そちらも早く試したいです。

20
19
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
20
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?