Commit 00bde14c by tinywell

根据对话扩展新的问题

parent 12ecf38b
......@@ -132,4 +132,24 @@ A: Laf 是一个云函数开发平台。
# 结合历史问答对话,生成新的提问,引导用户继续对话
PROMPT_QA_EXTEND_QUESTION = """
作为一个问答助手,你的任务是结合历史记录,生成三个新的问题,引导用户继续对话。生成的问题要求与对话内容相关且指向对象清晰明确,并与“原问题语言相同”。例如:
历史记录:
'''
Q: 请用最简洁的描述介绍下 nginx
A: Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。它以其高性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而被广泛使用。
'''
新问题: ["请问 nginx 如何下载?","请问 nginx 适合哪些场景?","请问 nginx 的作者是谁?"]
----------------
历史纪录:
'''
Q: 请问 nginx 如何下载?
A: 你可以在 nginx 官网上下载 nginx。
'''
新问题: ["请问 nginx 的官网是那个?","请问 nginx 可以离线安装吗?","请问 nginx 如何安装?"]
----------------
历史记录:
'''
{histories}
'''
新问题:
"""
\ No newline at end of file
from src.pgdb.knowledge.similarity import VectorStore_FAISS
from src.config.prompts import PROMPT_QUERY_EXTEND
from src.config.prompts import PROMPT_QUERY_EXTEND,PROMPT_QA_EXTEND_QUESTION
from .rerank import BgeRerank
......@@ -102,3 +102,14 @@ class QAExt:
history += f"Q: {msg[0]}\nA: {msg[1]}\n"
return self.query_extend.invoke(input={"histories":messages, "query":question})
class ChatExtend:
def __init__(self, llm) -> None:
self.llm = llm
prompt = PromptTemplate.from_template(PROMPT_QA_EXTEND_QUESTION)
self.query_extend = prompt | llm
def new_questions(self, messages):
history = ""
for msg in messages:
history += f"Q: {msg[0]}\nA: {msg[1]}\n"
return self.query_extend.invoke(input={"histories":history})
\ No newline at end of file
import sys
sys.path.append('../')
from src.server.get_similarity import QAExt
from src.server.get_similarity import QAExt,ChatExtend
from langchain_openai import ChatOpenAI
......@@ -26,5 +26,15 @@ def test_qaext():
print(result.content)
def test_chatextend():
ext = ChatExtend(base_llm)
message = [
("我们明天去爬山吧", "好呀"),
("天气怎么样", "天气晴朗"),
]
result = ext.new_questions(messages=message)
print(result.content)
if __name__ == "__main__":
pass
\ No newline at end of file
test_chatextend()
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment