xiaoximew's picture
Init
031beb8
from typing import Tuple
import os
from common.call_llm import chat
QA_GENERATOR_ENDPOINT = os.environ.get("QA_GENERATOR_ENDPOINT")
prompt_template = """
### 角色能力 ###
你是一个问答对生成器,你可以对下面给定上下文的主要内容进行概括和提炼,并按照下面给定的生成规则去生成。
### 生成规则 ###
1. 生成3到12组用户可能会问的问题以及对应的答案,要求问题要简洁、真实、口语化。
2. 避免生成内容相同或相似的问答对,且问答和答案要一定要准确、严谨、口语化。
3. 确保问答对尽可能覆盖上下文的所有内容。
### 上下文 ###
{context}
### 返回格式 ###
请严格按照下面描述的JSON列表格式进行输出,不需要解释,输出JSON格式如下:
[
{{
\"question\": \"generated question one\",
\"answer\": \"generated answer one\",
}},
{{
\"question\": \"generated question two\",
\"answer\": \"generated answer two\",
}},
...
]
确保输出的格式可以被Python的json.loads方法解析。
"""
def generate_qa_pairs(page_content: str) -> Tuple[str, None]:
"""
Generate QA pairs from page content
:param page_content:
:return:
"""
prompt = prompt_template.format(context=page_content)
messages = [{"role": "user", "content": prompt}]
qa_pair_result = chat(messages=messages, endpoint=QA_GENERATOR_ENDPOINT)
print(f"generate QA pairs prompt: {prompt}, result: {qa_pair_result}")
return qa_pair_result, None