ChatGPT-3 在LLM Powered聊天机器人中预测下一个问题

niwlg2el  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(248)

我正在构建一个由llms支持的问答聊天机器人,我在bing聊天机器人中看到过,它可以预测用户可能会问的前三个问题。
我的问题是:我如何在我的聊天机器人中做同样的事情?
我用langchain实现了qa聊天机器人。
我想到的方法:
1.用历史记录(包括用户问题和机器人回复)来描述llm,然后用一行来预测下一个问题。这给出了非常模糊的问题和冗长的问题。
1.微调一个基本的模型,比如gpt 2来预测下一个问题。可以使用chatgpt创建微调的数据集。
有没有其他方法/工具来完成这个任务(我找不到)?

92dk7w1h

92dk7w1h1#

我尝试了以下两个选项,有和没有历史,我能够成功预测下一个问题。我只是确保角色和上下文设置正确。您可以调整代码并构建链,其中第一链基于领域知识(您的实际用例问题答案)提供答案,第二链预测下一个问题

from langchain.chat_models import ChatOpenAI
    from langchain.prompts.chat import (
        ChatPromptTemplate,
        SystemMessagePromptTemplate,
        HumanMessagePromptTemplate,
    )
    from langchain.chains import LLMChain, ConversationChain
    from langchain.memory import ConversationBufferMemory
    from langchain.prompts import PromptTemplate

    #Option 1 Without history
    template = """You are a helpful assistant in predicting next question based on current question. 
                  You always provide predicted question on new line"""
    system_message_prompt = SystemMessagePromptTemplate.from_template(template)
    human_template = "{text}"
    human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)

    chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
    chain = LLMChain(
        llm=ChatOpenAI(temperature=1),
        prompt=chat_prompt,
        verbose=True
    )
    print(chain.run("Is computer science right field?"))

    #Option 2 With History
    template = """You are a helpful assistant in predicting next question based on chat history. 
                  Don't forget, you always provide predicted question on new line with Predicted Question prefix

    Current conversation:
    {history}
    Human: {input}
    AI Assistant:"""
    PROMPT = PromptTemplate(input_variables=["history", "input"], template=template)
    conversation = ConversationChain(
        prompt=PROMPT,
        llm=ChatOpenAI(model_name="gpt-3.5-turbo", temperature=1),
        verbose=True,
        memory=ConversationBufferMemory(ai_prefix="AI Assistant"),
    )

    print(conversation.predict(input="Is computer science good field ?"))
    print(conversation.predict(input="Is computer science is complicated field ?"))

相关问题