แพ็คเกจ ChatGPT Long Term Memory เป็นเครื่องมืออันทรงพลังที่ออกแบบมาเพื่อเพิ่มศักยภาพให้กับโปรเจ็กต์ของคุณด้วยความสามารถในการรองรับผู้ใช้จำนวนมากพร้อมกัน บรรลุเป้าหมายนี้ด้วยการผสานรวมฐานความรู้ที่กว้างขวางและหน่วยความจำที่ปรับเปลี่ยนได้ได้อย่างราบรื่นผ่านเทคโนโลยีล้ำสมัย เช่น GPT จาก OpenAI, ดัชนีเวกเตอร์ลามะ และที่เก็บข้อมูล Redis ด้วยชุดความสามารถที่ครอบคลุมนี้ คุณสามารถสร้างแอปพลิเคชันที่ปรับขนาดได้สูงที่ให้การสนทนาที่เกี่ยวข้องตามบริบทและมีส่วนร่วม ปรับปรุงประสบการณ์ผู้ใช้และการโต้ตอบโดยรวม
ความสามารถในการปรับขนาด : แพ็คเกจ ChatGPT Long Term Memory ได้รับการออกแบบมาเพื่อรองรับผู้ใช้จำนวนมากพร้อมกันอย่างมีประสิทธิภาพ ทำให้เหมาะสำหรับแอปพลิเคชันที่มีความต้องการของผู้ใช้สูง
ฐานความรู้ที่กว้างขวาง : ได้รับประโยชน์จากการบูรณาการฐานความรู้ที่ช่วยให้คุณสามารถรวมข้อมูลส่วนตัวในรูปแบบของไฟล์ TXT คุณลักษณะนี้ช่วยให้ระบบสามารถให้คำตอบที่เกี่ยวข้องกับบริบทและมีส่วนร่วมในการสนทนาที่มีความหมาย
หน่วยความจำแบบปรับได้ : แพ็คเกจใช้เทคโนโลยีล้ำสมัย เช่น GPT, ดัชนีเวกเตอร์ลามะ และที่เก็บข้อมูล Redis เพื่อให้มั่นใจว่าระบบหน่วยความจำแบบปรับเปลี่ยนได้ ความสามารถนี้ช่วยปรับปรุงประสิทธิภาพและการโต้ตอบที่สอดคล้องกัน ทำให้การสนทนาเป็นธรรมชาติและมีส่วนร่วมมากขึ้น
การผสานรวมที่ยืดหยุ่นกับโมเดล GPT : แพ็คเกจนี้ช่วยให้สามารถโต้ตอบกับโมเดล GPT ได้อย่างราบรื่น ทำให้คุณมีตัวเลือกในการแชทกับโมเดล GPT โดยใช้หน่วยความจำบริบท สิ่งนี้ช่วยให้คุณสามารถมีส่วนร่วมกับโมเดลภาษาที่ล้ำสมัยสำหรับงานประมวลผลภาษาขั้นสูงยิ่งขึ้น
การตั้งค่าและการกำหนดค่าที่ง่ายดาย : แพ็คเกจนี้มีขั้นตอนการติดตั้งที่ง่ายดายโดยใช้ pip
และคุณสามารถตั้งค่าสภาพแวดล้อมของคุณได้อย่างรวดเร็วด้วยคีย์ API จาก OpenAI ตัวเลือกการกำหนดค่าสามารถปรับแต่งได้ ช่วยให้คุณปรับแต่งแพ็คเกจให้เหมาะกับความต้องการเฉพาะของโครงการของคุณได้
การใช้ที่เก็บข้อมูล Redis : การผสานรวมกับที่เก็บข้อมูล Redis ช่วยให้มั่นใจได้ถึงการจัดเก็บและการเรียกค้นข้อมูลที่มีประสิทธิภาพ ซึ่งมีส่วนช่วยในการปรับขนาดและการตอบสนองโดยรวมของระบบ
การรวม API กับ OpenAI : แพ็คเกจใช้ประโยชน์จาก API จาก OpenAI เพื่อเพิ่มประสิทธิภาพฟังก์ชันการทำงานที่ใช้ GPT ซึ่งช่วยให้สามารถเข้าถึงความก้าวหน้าล่าสุดในการประมวลผลภาษาและความสามารถของโมเดล GPT
การเรียนรู้และการปรับปรุงอย่างต่อเนื่อง : ในฐานะระบบที่ใช้ GPT แพ็คเกจ ChatGPT Long Term Memory ได้รับประโยชน์จากการเรียนรู้และการปรับปรุงอย่างต่อเนื่อง โดยคอยติดตามการพัฒนาล่าสุดในด้านความเข้าใจและการสร้างภาษา
โฟลว์การสนทนาที่ปรับแต่งได้ : แพ็คเกจนำเสนอโฟลว์การสนทนาที่ปรับแต่งได้ พร้อมความสามารถในการรวมประวัติการแชทและข้อมูลฐานความรู้ของผู้ใช้ สิ่งนี้ช่วยเพิ่มความเข้าใจตามบริบทและความเกี่ยวข้องของคำตอบ
อินเทอร์เฟซที่ใช้งานง่าย : ข้อมูลโค้ดและอินเทอร์เฟซที่ให้มาช่วยให้นักพัฒนาสามารถรวมแพ็คเกจ ChatGPT Long Term Memory เข้ากับโปรเจ็กต์ของตนได้อย่างง่ายดาย ช่วยลดขั้นตอนการเรียนรู้และปรับปรุงกระบวนการพัฒนา
การผสมผสานคุณสมบัติหลักเหล่านี้ทำให้แพ็คเกจ ChatGPT Long Term Memory เป็นส่วนเสริมที่มีคุณค่าสำหรับโปรเจ็กต์ของคุณ ช่วยให้คุณสร้างแอปพลิเคชันการสนทนาแบบโต้ตอบและไดนามิกพร้อมความสามารถในการประมวลผลภาษาอันทรงพลัง
หากต้องการใช้แพ็คเกจ Chatgpt Long Term Memory ในโปรเจ็กต์ของคุณ ให้ทำตามขั้นตอนด้านล่าง:
pip install chatgpt_long_term_memory
export OPENAI_API_kEY=sk-******
ดึงอิมเมจ redis docker แล้วรัน:
docker pull redis
docker network create --subnet=172.0.0.0/16 mynet123
docker run --name redis-db -d --net mynet123 --ip 172.0.0.22 -p 6379:6379 -p 8001:8001 redis:latest
คุณสามารถใช้ประโยชน์จากหน่วยความจำดัชนีได้โดยการตั้งค่า Knowledge_base=True เพื่อรวมข้อมูลส่วนบุคคลของคุณในรูปแบบของไฟล์ TXT ที่อยู่ในไดเรกทอรี: {your_root_path}/resources/data ตรวจสอบให้แน่ใจว่าการระบุที่อยู่ที่เหมาะสมของไดเร็กทอรีทรัพยากร/ข้อมูลเพื่อการเข้าถึงข้อมูลที่เก็บไว้ได้อย่างราบรื่น
# example/usage_index_memory.py
from utils import get_project_root
from chatgpt_long_term_memory . conversation import ChatGPTClient
from chatgpt_long_term_memory . llama_index_helpers import ( IndexConfig ,
RetrieversConfig )
from chatgpt_long_term_memory . memory import ChatMemoryConfig
# Get project's root path
root_path = get_project_root ()
"""
First:
Initialize llama indexes config to create a index from knowledge base and user's chat history.
The root_path specifies the directory where the index will be stored.
The knowledge_base flag specifies whether to index the knowledge base.
The model_name specifies the name of the language model to use for indexing.
The temperature parameter controls the randomness of the output.
The context_window parameter specifies the size of the context window to use for indexing.
The num_outputs parameter specifies the number of output tokens to generate for each input token.
The max_chunk_overlap parameter specifies the maximum overlap between chunks.
The chunk_size_limit parameter specifies the maximum size of a chunk.
"""
doc_indexer_config = IndexConfig (
root_path = f" { root_path } /example" ,
knowledge_base = True ,
model_name = "gpt-3.5-turbo" ,
temperature = 0 ,
context_window = 4096 ,
num_outputs = 700 ,
max_chunk_overlap = 0.5 ,
chunk_size_limit = 600
)
"""
Second:
# Initialize retrievers config to configure the retrievers class.
# The `top_k` parameter specifies the number of top-k documents to retrieve for each query.
# The `max_tokens` parameter specifies the maximum number of tokens to return for each document.
"""
retrievers_config = RetrieversConfig (
top_k = 7 ,
max_tokens = 1000
)
"""
Then:
Initialize chat memory config to configure the chat memory class.
The `redis_host` parameter specifies the hostname of the Redis server.
The `redis_port` parameter specifies the port of the Redis server.
"""
chat_memory_config = ChatMemoryConfig (
redis_host = "172.0.0.22" ,
redis_port = 6379
)
"""
Create a `ChatGPTClient` object to start the conversation.
The `doc_indexer_config` parameter specifies the configuration for the document indexer.
The `retrievers_config` parameter specifies the configuration for the retrievers.
The `chat_memory_config` parameter specifies the configuration for the chat memory.
"""
chatgpt_client = ChatGPTClient (
doc_indexer_config = doc_indexer_config ,
retrievers_config = retrievers_config ,
chat_memory_config = chat_memory_config
)
# Start a conversation with the user.
user_id = 1
while True :
# Get the user's input.
user_input = input ( "User Input:" )
# If the user enters "q", break out of the loop.
if user_input == "q" :
break
# Get the response from the chatbot.
index , response = chatgpt_client . converse ( user_input , user_id = user_id )
# Print the response to the user.
print ( response )
ในสถานการณ์นี้ คุณไม่สามารถใช้ฐานข้อมูลของคุณเอง แต่คุณสามารถโต้ตอบกับโมเดล GPT และใช้หน่วยความจำบริบทได้
# example/usage_context_memory.py
from utils import get_project_root
from chatgpt_long_term_memory . conversation import ChatbotClient
from chatgpt_long_term_memory . llama_index_helpers import ( IndexConfig ,
RetrieversConfig )
from chatgpt_long_term_memory . memory import ChatMemoryConfig
from chatgpt_long_term_memory . openai_engine import OpenAIChatConfig
# Get project's root path
root_path = get_project_root ()
"""
First:
Initialize llama indexes config to create a index from knowledge base and user's chat history.
The root_path specifies the directory where the index will be stored.
The knowledge_base flag specifies whether to index the knowledge base.
The model_name specifies the name of the language model to use for indexing.
The temperature parameter controls the randomness of the output.
The context_window parameter specifies the size of the context window to use for indexing.
The num_outputs parameter specifies the number of output tokens to generate for each input token.
The max_chunk_overlap parameter specifies the maximum overlap between chunks.
The chunk_size_limit parameter specifies the maximum size of a chunk.
"""
doc_indexer_config = IndexConfig (
root_path = f" { root_path } /example" ,
knowledge_base = True ,
model_name = "gpt-3.5-turbo" ,
temperature = 0 ,
context_window = 4096 ,
num_outputs = 700 ,
max_chunk_overlap = 0.5 ,
chunk_size_limit = 600
)
"""
Second:
# Initialize retrievers config to configure the retrievers class.
# The `top_k` parameter specifies the number of top-k documents to retrieve for each query.
# The `max_tokens` parameter specifies the maximum number of tokens to return for each document.
"""
retrievers_config = RetrieversConfig (
top_k = 7 ,
max_tokens = 1000
)
"""
Then:
Initialize chat memory config to configure the chat memory class.
The `redis_host` parameter specifies the hostname of the Redis server.
The `redis_port` parameter specifies the port of the Redis server.
"""
chat_memory_config = ChatMemoryConfig (
redis_host = "172.0.0.22" ,
redis_port = 6379
)
# Method 2: chat with gpt models, use context memory in this scenario you can't use your own db
openai_chatbot_config = OpenAIChatConfig (
model_name = "gpt-4" ,
max_tokens = 1000 ,
temperature = 0 ,
top_p = 1 ,
presence_penalty = 0 ,
frequency_penalty = 0 ,
# keep in mind if you change prompt, consider history and human input
prompt = """Assistant is a large language model trained by OpenAI.
Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.
Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.
Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.
History: {}
Human: {}
Assistant:"""
)
# Initialize the chatbot client.
chat_app = ChatbotClient (
doc_indexer_config = doc_indexer_config ,
retrievers_config = retrievers_config ,
chat_memory_config = chat_memory_config ,
openai_chatbot_config = openai_chatbot_config
)
# Start a conversation with the user.
user_id = 2
while True :
# Get the user's input.
user_input = input ( "User Input:" )
# If the user enters "q", break out of the loop.
if user_input == "q" :
break
# Get the response from the chatbot.
index , response = chat_app . converse ( user_input , user_id = user_id )
# Print the response to the user.
print ( response )