网站程序方面,延边app网站开发,购物网站制作费用,嘉峪关网站建设自动化问答生成#xff1a;使用GPT-3.5将文档转化为问答对 正文步骤1#xff1a;准备工作步骤2#xff1a;编写Python脚本 总结 当我们需要将大段文档转化为问答对时#xff0c;OpenAI的GPT-3.5模型提供了一个强大的工具。这个教程将向您展示如何编写一个Python脚本#x… 自动化问答生成使用GPT-3.5将文档转化为问答对 正文步骤1准备工作步骤2编写Python脚本 总结 当我们需要将大段文档转化为问答对时OpenAI的GPT-3.5模型提供了一个强大的工具。这个教程将向您展示如何编写一个Python脚本利用GPT-3.5的能力将文档转化为一问一答的问答对。这个流程几乎无需人工介入能够自动获取问题并生成答案。我们将使用GPT-3.5-16k以便处理大量文本。
本文参考卡神文章https://mp.weixin.qq.com/s/1hcufhPJ7P1cXEsAZ7MdRA 同时也参考fastGPT的知识库问答对生成方式。
正文
直接开始流程
步骤1准备工作
首先您需要安装 Python 和 requests 库确保已经安装并在 OpenAI 官网上获取 apiKey 密钥用来请求 gpt 接口还需要科学上网工具。
步骤2编写Python脚本
下面是我已经验证过的 Python 示例用于将文档转化为问答对。我们假设您的文档保存在一个名为 input_file.txt 的文本文件中。 注只需修改 api_key 即可让 input_file.txt 和 python 处在同一文件夹内。
目标将大段文档通过gpt3.5识别变成一问一答的问答对。流程1.gpt自动获取合适的问题2.gpt自动根据问题和文档生成问答对。优点几乎无需人工介入自动获取问题自动根据问题生成问答对。缺点受限于大模型输入长度限制可能无法一次性输入全部文档。建议使用gpt3.5-16k可以一次输入大量文本文档最好不超过5000字。FAQ1.Qgpt两个步骤是否可以合并成一个请求让gpt返回可以节省约一半的时间和tokensA拆成两次主要是因为问题可能需要人工微调修改后再去生成答案这样可以提高知识库质量当然也可以全部自动处理。2.Q大模型有字数限制无法大文档一次输入A目前这个没有好的解决办法只能通过预先拆分大文档为多个文档片段后分批执行。import datetime
import time
import requestsurl https://api.openai.com/v1/chat/completions# 替换为您自己的API密钥
api_key sk-xxxxxxxxxmodel gpt-3.5-turbo-16kprompt1
#01 你是一个问答对数据集处理专家。#02 你的任务是根据我给出的内容生成适合作为问答对数据集的问题。#03 问题要尽量短不要太长。#04 一句话中只能有一个问题。#05 生成的问题必须宏观、价值不要生成特别细节的问题。#06 生成问题示例权益型基金的特点有哪些方面介绍一下产品经理。#07 以下是我给出的内容{{此处替换成你的内容}}
prompt2
#01 你是一个问答对数据集处理专家。#02 你的任务是根据我的问题和我给出的内容生成对应的问答对。#03 答案要全面多使用我的信息内容要更丰富。#04 你必须根据我的问答对示例格式来生成{content: 基金分类有哪些, summary: 根据不同标准可以将证券投资基金划分为不同的种类1根据基金单位是否可增加或赎回可分为开放式基金和封闭式基金。开放式基金不上市交易这要看情况通过银行、券商、基金公司申购和赎回基金规模不固定封闭式基金有固定的存续期一般在证券交易场所上市交易投资者通过二级市场买卖基金单位。2根据组织形态的不同可分为公司型基金和契约型基金。基金通过发行基金股份成立投资基金公司的形式设立通常称为公司型基金由基金管理人、基金托管人和投资人三方通过基金契约设立通常称为契约型基金。我国的证券投资基金均为契约型基金。3根据投资风险与收益的不同可分为成长型、收入型和平衡型基金。4根据投资对象的不同可分为股票基金、债券基金、货币基金和混合型基金四大类。}{content: 基金是什么, summary: 基金英文是fund广义是指为了某种目的而设立的具有一定数量的资金。主要包括公积金、信托投资基金、保险基金、退休基金各种基金会的基金。从会计角度透析基金是一个狭义的概念意指具有特定目的和用途的资金。我们提到的基金主要是指证券投资基金。}#05 我的问题如下{{此处替换成你上一步生成的问题}}#06 我的内容如下{{此处替换成你的内容}}
def generate_question(text_content, moreFalse):headers {Authorization: fBearer {api_key},Content-Type: application/json,}content 生成适合作为问答对的问题if more:content 尽可能多生成适合作为问答对的问题prompt prompt1.replace({{此处替换成你的内容}}, text_content)data {model: model,messages: [{role: system, content: prompt},{role: user, content: content}]}start_time time.time()response requests.post(url, headersheaders, jsondata, verifyFalse)print(耗时, time.time() - start_time)if response.status_code 200:return response.json()[choices][0][message][content]else:print(fError: {response.status_code})print(response.content)return Nonedef generate_qa(text_content, question_textNone):headers {Authorization: fBearer {api_key},Content-Type: application/json,}prompt prompt2.replace({{此处替换成你上一步生成的问题}}, question_text).replace({{此处替换成你的内容}}, text_content)data {model: model,messages: [{role: system, content: prompt},{role: user, content: 拼成问答对}]}start_time time.time()response requests.post(url, headersheaders, jsondata, verifyFalse)print(耗时, time.time() - start_time)if response.status_code 200:return response.json()[choices][0][message][content]else:print(fError: {response.status_code})print(response.content)return Nonedef write_to_file(content):timestamp datetime.datetime.now().strftime(%Y%m%d%H%M%S)file_name fnew_file_{timestamp}.txtwith open(file_name, w) as file:file.write(content)print(File new_file.txt has been created and written.)def read_file(file_name):try:with open(file_name, r) as file:content file.read()return contentexcept FileNotFoundError:print(fFile {file_name} not found.)def main():text_content read_file(input_file.txt)print(text_content\n, text_content)question_text generate_question(text_contenttext_content, moreTrue)print(question_text\n, question_text)qa_text generate_qa(text_contenttext_content, question_textquestion_text)print(qa_text\n, qa_text)write_to_file(qa_text)main()
步骤3运行脚本
运行上述Python脚本它将自动从文档中提取问题并生成与之对应的答案输出到 new_file_{timestamp}.txt 文件。这个脚本也会在控制台上显示提取的问题和生成的答案。
总结
通过这个教程你可以自动将大段文档转化为一问一答的问答对无需人工干预。你可以对脚本文件再进行调试和改进以适应你自己的项目。这个方法可以在处理大量文本时非常有用特别是使用 GPT-3.5-16k 模型它具有更大的输入长度限制但是大文档仍然需要先做一些分段处理。后面我还会提供更多 AI 产品教程欢迎点赞收藏