admin 管理员组文章数量: 1184232
1.前言
这是一篇小白一步步体验AI问答的笔记,中间肯定走了很多的弯路,也不够高效,但是希望能对同样摸索着前行的小白有帮助,大神们可以无视。
2.背景
使用公开的医疗问答数据库,搭建一个可以进行健康问答的智能体。
3.开发环境
WINDOWS系统,电脑已经安装了Anaconda作为开发环境,代码运行在Jupyter Lab。
4.获取数据
(见上一篇)
5.使用百度千帆搭建知识库
百度千帆 AppBuilder 是百度智能云推出的企业级大模型应用开发管理平台,提供开箱即用的RAG/Agent/工作流/UI Builder等应用开发工具链,预置了百度AI搜索、iRAG等应用开发特色组件,以及文档理解、图像理解、语音识别等传统AI组件。
目前AppBuilder也为个人开发者体提供了免费体验额度,官方的帮助文档、视频都很多,可以满足我们这次学习和验证的需求。
5.1 准备知识库文件源
百度千帆导入知识库文件的时候,txt文件最大不能超过10MB,最多100个。
在前一个阶段,我们下载了近500MB的问答数据库,在jupyter lab运行下面的代码,把问答库进行切分。
import os
def split_large_file(file_path, max_size=10*1024*1024):
"""
将大型问答文件切割为多个不超过指定大小的小文件,确保每个小文件包含完整的问答对
参数:
file_path (str): 源文件路径
max_size (int): 每个小文件的最大大小(字节),默认为10MB
"""
if not os.path.exists(file_path):
print(f"错误: 文件 '{file_path}' 不存在")
return
file_dir, file_name = os.path.split(file_path)
base_name, ext = os.path.splitext(file_name)
part_num = 1
current_size = 0
current_file = None
current_qa = []
question_prefix = "问题"
answer_prefix = "答案"
try:
with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
# 检测是否是新的问题行(开始新的问答对)
if line.startswith(question_prefix) and current_qa:
# 计算当前问答对的字节大小
qa_size = sum(len(l.encode('utf-8')) for l in current_qa)
# 判断是否需要创建新文件
if current_size + qa_size > max_size:
# 关闭当前文件
if current_file:
current_file.close()
版权声明:本文标题:[原创]Step by step 实现自己的AI知识库问答(二) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1765775043a3413564.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论