05. Conversation Knowledge Graph Memory

05. Conversation Knowledge Graph Memory

ConversationKGMemory

Memanfaatkan kekuatan grafik pengetahuan untuk menyimpan dan mengingat informasi.

Hal ini membantu model memahami hubungan antara entitas yang berbeda dan meningkatkan kemampuan mereka untuk bereaksi berdasarkan jaringan koneksi yang kompleks dan konteks historis.

Python
# File konfigurasi untuk mengelola API KEY sebagai variabel lingkungan
from dotenv import load_dotenv
 
# Memuat informasi API KEY
load_dotenv()
Python
from langchain_openai import ChatOpenAI
from langchain_community.memory.kg import ConversationKGMemory
Python
llm = ChatOpenAI(temperature=0)
 
memory = ConversationKGMemory(llm=llm, return_messages=True)
memory.save_context(
    {"input": "Ini adalah Siti Rahma dari Jakarta."},
    {"output": "Siapa Siti Rahma?"}
)
memory.save_context(
    {"input": "Siti Rahma adalah desainer baru di perusahaan kami."},
    {"output": "Senang bertemu dengan Anda."}
)
Python
memory.load_memory_variables({"input": "Siapa Siti Rahma?"})
{'history': [SystemMessage(content='On Siti Rahma: Siti Rahma dari Jakarta. Siti Rahma adalah desainer baru di perusahaan kami.')]}

Memanfaatkan memory untuk Chain

Mari kita tentukan ConversationKGMemory sebagai memori di dalam ConversationChain sehingga kita dapat memeriksa memori setelah percakapan.

Python
from langchain.prompts.prompt import PromptTemplate
from langchain.chains import ConversationChain
 
llm = ChatOpenAI(temperature=0)
 
template = """Berikut ini adalah percakapan antara manusia dan AI.
AI banyak bicara dan memberikan banyak detail spesifik dari konteksnya.
Jika AI tidak mengetahui jawaban dari sebuah pertanyaan, maka AI akan mengatakan bahwa ia tidak tahu.
AI HANYA menggunakan informasi yang terdapat di bagian “Relevant Information” dan tidak berhalusinasi.
 
Relevant Information:
 
{history}
 
Conversation:
Human: {input}
AI:"""
prompt = PromptTemplate(
    input_variables=["history", "input"], template=template)
 
conversation_with_kg = ConversationChain(
    llm=llm, prompt=prompt, memory=ConversationKGMemory(llm=llm)
)

Mulai dialog pertama Anda. Mari kita berikan sedikit informasi biografi.

Python
conversation_with_kg.predict(
    input="Nama saya Teddy, Siti Rahma adalah rekan kerja saya, dan dia adalah desainer baru di perusahaan kami."
)
Halo Teddy, senang bertemu dengan Anda. Siti Rahma adalah manager baru di perusahaan Anda, itu pasti akan membawa perubahan yang menarik. Apa yang bisa saya bantu untuk Anda dan Siti Rahma?

Anda bertanya tentang seseorang bernama Shirley.

Python
# Ajukan pertanyaan tentang Shirley
conversation_with_kg.memory.load_memory_variables({"input": "siapa Siti rahma?"})
{'history': 'On Siti Rahma: Siti Rahma adalah rekan kerja Teddy. Siti Rahma adalah manager baru di perusahaan kami.'}