Пакет долгосрочной памяти ChatGPT — это мощный инструмент, предназначенный для расширения возможностей ваших проектов, позволяющих обрабатывать большое количество одновременных пользователей. Это достигается за счет плавной интеграции обширной базы знаний и адаптивной памяти с помощью передовых технологий, таких как GPT от OpenAI, векторного индекса ламы и хранилища данных Redis. Благодаря этому комплексному набору возможностей вы можете создавать хорошо масштабируемые приложения, которые обеспечивают контекстуально релевантные и увлекательные разговоры, улучшая общий пользовательский опыт и взаимодействие.
Масштабируемость : пакет долгосрочной памяти ChatGPT предназначен для эффективной работы с многочисленными одновременными пользователями, что делает его подходящим для приложений с высоким пользовательским спросом.
Обширная база знаний : воспользуйтесь преимуществами интеграции базы знаний, которая позволяет включать персонализированные данные в виде файлов TXT. Эта функция позволяет системе предоставлять контекстно-релевантные ответы и участвовать в содержательных разговорах.
Адаптивная память : пакет использует передовые технологии, такие как GPT, векторный индекс ламы и хранилище данных Redis, для обеспечения системы адаптивной памяти. Эта возможность обеспечивает повышение производительности и согласованность взаимодействия, делая разговоры более естественными и увлекательными.
Гибкая интеграция с моделями GPT . Пакет обеспечивает беспрепятственное взаимодействие с моделями GPT, предоставляя вам возможность общаться с моделями GPT, используя контекстную память. Это позволяет вам использовать самые современные языковые модели для решения более сложных задач языковой обработки.
Простая установка и настройка : пакет предоставляет простые шаги установки с помощью pip
, и вы можете быстро настроить свою среду с помощью ключа API от OpenAI. Параметры конфигурации настраиваются, что позволяет адаптировать пакет в соответствии с требованиями вашего конкретного проекта.
Использование хранилища данных Redis . Интеграция с хранилищем данных Redis обеспечивает эффективное хранение и извлечение данных, что способствует общей масштабируемости и оперативности системы.
Интеграция API с OpenAI : пакет использует API OpenAI для реализации своих функций на основе GPT. Это обеспечивает доступ к новейшим достижениям в области языковой обработки и возможностям моделей GPT.
Постоянное обучение и совершенствование . Будучи системой на основе GPT, пакет долгосрочной памяти ChatGPT обеспечивает постоянное обучение и совершенствование, оставаясь в курсе последних разработок в области понимания и генерации языков.
Настраиваемый поток разговора : пакет предлагает настраиваемые потоки разговора с возможностью включения истории чата пользователя и данных базы знаний. Это улучшает контекстуальное понимание и актуальность ответов.
Простые в использовании интерфейсы : предоставленные фрагменты кода и интерфейсы позволяют разработчикам легко интегрировать пакет долгосрочной памяти ChatGPT в свои проекты, сводя к минимуму время обучения и оптимизируя процесс разработки.
Сочетание этих ключевых функций делает пакет долгосрочной памяти ChatGPT ценным дополнением к вашим проектам, позволяя создавать интерактивные и динамические диалоговые приложения с мощными возможностями языковой обработки.
Чтобы использовать пакет долгосрочной памяти Chatgpt в своих проектах, выполните следующие действия:
pip install chatgpt_long_term_memory
export OPENAI_API_kEY=sk-******
извлеките образ Docker Redis и запустите:
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 )