0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Memoryの機能について

Last updated at Posted at 2024-10-07

Memoryの機能についてどんなものか勉強してみた!

概要

まず、langchainのAPIでは1つ前に投稿した内容を記憶できないみたい。

実行コード

import requests
import json

def chat(content):
  url = "https://api.openai.com/v1/chat/completions"
  headers = {
      "Content-Type": "application/json",
      "Authorization": "Bearer " + os.environ["OPENAI_API_KEY"]
  }
  data = {
      "model": "gpt-3.5-turbo",
      "messages": [
          {"role": "user", "content": content}
      ],
      "temperature": 0,
  }

  response = requests.post(url=url, headers=headers, json=data)
  print(json.dumps(response.json(), indent=2))

  chat("Hi! I'm Kubota!")

結果
あなたの名前は知らないと言われた、、、

post_chat_completions("Do you know my name?")
{
"id": "chatcmpl-AFijxmNo9zNeDHB5KSdBZc8xFczaI",
"object": "chat.completion",
"created": 1728310265,
"model": "gpt-3.5-turbo-0125",
"choices": [
  {
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "I'm sorry, I do not know your name.",
      "refusal": null
    },
    "logprobs": null,
    "finish_reason": "stop"
  }
],
"usage": {
  "prompt_tokens": 13,
  "completion_tokens": 11,
  "total_tokens": 24,
  "prompt_tokens_details": {
    "cached_tokens": 0
  },
  "completion_tokens_details": {
    "reasoning_tokens": 0
  }
},
"system_fingerprint": null
}

そこで役に立つのがMemory!投稿を覚えてくれる

from langchain.chains import ConversationChain
from langchain.chat_models import ChatOpenAI
from langchain.memory import ConversationBufferMemory
import openai

langchain.verbose = True
openai.log = "debug"

chat = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0, max_tokens=100)
conversation = ConversationChain(
    llm=chat,
    memory=ConversationBufferMemory()
)

while True:
    user_message = input("あなた: ")
    ai_message = conversation.predict(input=user_message)
    print(f"AI: {ai_message}")

(回答)おもしろすぎる

あなた: 私はそらです
AI: そらですね。それは素晴らしいです!そらという名前の由来や意味など、興味深い情報がありますか?お手伝いできることがあれば教えてくださいね。
あなた: 私の名前はわかりますか
AI: 申し訳ありませんが、私はあなたの名前を知ることはできません。私はあなたが「そら」という名前であることを知っていますが、それ以上の情報は持っていません。他に何かお手伝いできることがあればお知らせくださいね。
0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?