如何在 Python 中将“消息历史记录”添加到基于 llama-index 的 GPT-3

问题描述 投票:0回答:2

我对使用 llama-index 库训练 GPT-3 以及通过标准 API 使用 ChatGPT(两者都在 Python 中)还相当陌生。我注意到标准 ChatGPT API 我可以简单地执行下面的代码,让 ChatGPT 获取消息历史记录作为上下文:

message_history=[]
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=message_history)

现在我正在使用 llama-index 库在更具体的上下文中训练 GPT-3,但是我不知道如何让模型也考虑 message_history,这是我目前正在处理的代码,但我不知道知道如何实现消息历史记录:


def construct_index(directory_path):
    # set maximum input size
    max_input_size = 4096
    # set number of output tokens
    num_outputs = 2000
    # set maximum chunk overlap
    max_chunk_overlap = 20
    # set chunk size limit
    chunk_size_limit = 600 

    # define prompt helper
    prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)
    # define LLM
    llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.5, model_name="text-ada-001", max_tokens=num_outputs))
    # define context (dataset)
    documents = SimpleDirectoryReader(directory_path).load_data()
    # transform context to index format
    service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor, prompt_helper=prompt_helper)
    index = GPTSimpleVectorIndex.from_documents(documents, service_context=service_context)
    # important: index are are like map, has latitutdes and logntitudes to indicate how each city (texts) are close to each other
    index.save_to_disk("index.json")
    return index

index = GPTSimpleVectorIndex.load_from_disk("index.json")
dbutils.widgets.text("user_input", "user: ")
response = index.query(dbutils.widgets.get("user_input"),response_mode='compact')
print("Response: ", response.response)
python openai-api gpt-3 llama-index gpt-index
2个回答
0
投票

发现这个易于使用的服务,甚至还有知识图。适用于任何模型、框架、SDK。 https://www.unremarkable.ai/llama-chat-history-with-zeps-ai-memory-knowledge-graph/


-1
投票

我在使用 Llama 索引库使用 GPT3.5 Turbo 时遇到了类似的问题。解决我的问题的是 openai 库中的 ChatMessage 内置对象。我使用聊天引擎在 ChatMessage 类型的“消息”列表中发送我的查询以及对话上下文。聊天引擎文档可以在这里找到:

https://gpt-index.readthedocs.io/en/latest/examples/chat_engine/chat_engine_openai.html

我将系统消息、查询和 GPT 的响应存储在消息历史记录中,以维护对话历史记录。

尝试通过以下方式加载“index.json”文件:

    storage_context = StorageContext.from_defaults(persist_dir=".")
    index = load_index_from_storage(storage_context)

然后像这样存储您的输入:

    messages.append(ChatMessage(role="user", content=query))

现在使用 chatengine() 进行查询,如下所示:

    chat_engine = index.as_chat_engine()
    response = chat_engine.chat(query, messages)

您将在response.response中找到您的回复。

© www.soinside.com 2019 - 2024. All rights reserved.