当前位置: 首页 > news >正文

什么网站个人可以建设云南网站建设公司哪家好

什么网站个人可以建设,云南网站建设公司哪家好,app制作免费,义乌购app下载Qanything 2.0源码解析系列1:新建知识库 文章转载自:https://www.feifeixu.top/article/19c76951-5881-4181-bb63-4188b28d3917 😀 前言: qanything所有接口都定义在sanic_api.py中 接口函数定义在同级目录下的handler.py中 新建…

Qanything 2.0源码解析系列1:新建知识库

文章转载自:https://www.feifeixu.top/article/19c76951-5881-4181-bb63-4188b28d3917

如何启动qanything服务,参考 Qanything 2.0项目部署启动手把手教程

📝 逐行代码解析

handle.py中找到new_knowledge_base这个方法。

@get_time_async
async def new_knowledge_base(req: request):# local_doc_qa这个是在app.run启动之前初始化好的一个全局变量,是LocalDocQA类的类对象,是Qanything的核心类。local_doc_qa: LocalDocQA = req.app.ctx.local_doc_qa# 拿到请求参数传递的user_id的值user_id = safe_get(req, 'user_id')# 拿到请求参数传递的user_info的值,不传默认是1234user_info = safe_get(req, 'user_info', "1234")'''检查user_id和user_info的有效性1. user_id、user_info不能是None2. user_id的长度不能超过64,必须是字符串类型,只能是数字、字母、下划线的组合,且必须以字母开头3. user_info必须是纯数字'''passed, msg = check_user_id_and_user_info(user_id, user_info)if not passed:return sanic_json({"code": 2001, "msg": msg})# 将user_id和user_info拼成一个新user_iduser_id = user_id + '__' + user_infodebug_logger.info("new_knowledge_base %s", user_id)# 拿到请求参数传递的kb_name的值kb_name = safe_get(req, 'kb_name')debug_logger.info("kb_name: %s", kb_name)# 随机初始化一个默认kb_iddefault_kb_id = 'KB' + uuid.uuid4().hex# 如果请求参数中传递了kb_id,那么以请求传递的这个做为kb_id,否则以随机初始化的作为kb_idkb_id = safe_get(req, 'kb_id', default_kb_id)'''kb_id纠正, 就是在这个kb_id后面拼接一个KB_SUFFIX,如果有这个KB_SUFFIX,直接返回kb_id,如果不存在,那么:1. 如果kb_id以"_FAQ"结尾,比如KBc86eaa3f278f4ef9908780e8e558c6eb_FAQ,那么在kb_id和FAQ之间增加一个KB_SUFFIX,默认是_240625, 最终变成了如KBc86eaa3f278f4ef9908780e8e558c6eb_240625_FAQ2. 如果kb_id不以"_FAQ"结尾,直接在kb_id后面增加一个KB_SUFFIX3. 返回新的kb_id'''kb_id = correct_kb_id(kb_id)# 拿到请求参数传递的quick的值is_quick = safe_get(req, 'quick', False)if is_quick:kb_id += "_QUICK"# kb_id必须以“KB”开头if kb_id[:2] != 'KB':return sanic_json({"code": 2001, "msg": "fail, kb_id must start with 'KB'"})# 从mysql qanything数据库 KnowledgeBase表中 查看这个user_id对应的kb_id是否存在not_exist_kb_ids = local_doc_qa.milvus_summary.check_kb_exist(user_id, [kb_id])# kb_id如果存在,直接返回已存在if not not_exist_kb_ids:return sanic_json({"code": 2001, "msg": "fail, knowledge Base {} already exist".format(kb_id)})# local_doc_qa.create_milvus_collection(user_id, kb_id, kb_name)'''先从User表中检查一下User_id是否存在,如果不存在,往User表中插入一条记录,包含(user_id, user_name)这两个字段,user_name默认为None。这里官方有个bug,有人提了issue:https://github.com/netease-youdao/QAnything/issues/506. 自己先改一下代码。往KnowledgeBase表中,插入一条记录,kb_id, user_id, kb_name'''local_doc_qa.milvus_summary.new_milvus_base(kb_id, user_id, kb_name)now = datetime.now()timestamp = now.strftime("%Y%m%d%H%M")return sanic_json({"code": 200, "msg": "success create knowledge base {}".format(kb_id),"data": {"kb_id": kb_id, "kb_name": kb_name, "timestamp": timestamp}})

🤗 总结归纳

新建知识库请求传参如下:

{"user_id": "feifeixu","kb_name": "qanything2.0","kb_id": "KBb17bd2d168604a84a59abe24e855d574"
}

返回结果:

{"code": 200,"msg": "success create knowledge base KBb17bd2d168604a84a59abe24e855d574_240625","data": {"kb_id": "KBb17bd2d168604a84a59abe24e855d574_240625","kb_name": "qanything2.0","timestamp": "202409191505"}
}

新建知识库主要是写数据库的操作,主要涉及两张表:

  1. 在User表中增加user_id的记录
  2. 在KnowledgeBase中增加user_id, kb_id, kb_name的记录

📎 参考文章

http://www.hyszgw.com/news/65604/

相关文章:

  • 找个男做那个视频网站服装设计学校排名国内
  • 哈尔滨手机网站建设报价找关键词的三种方法
  • 阿尔及利亚网站后缀wordpress计时
  • 沙坪坝网站建设公司选哪家好wordpress欢迎页插件
  • 温州网站运营深圳龙华区和联社区
  • 宁波网站推广专业的建站优化公司郑州营销网站托管
  • 邢台企业做网站哪家好wordpress 主题 h5
  • 网站开发技术 包括东莞开发公司网站建设
  • 电子商务网站建设规划报告书wordpress题库插件
  • 求跳转代码来自百度等搜索引擎访问跳转到另一个网站直接输入域名大学生个人网页设计理念
  • 用自己的名字做网站域名河北石家庄天气
  • wps如何做网站企业销售管理系统软件
  • 网站建设 深度网广州企业网站建设报价
  • 天津自贸区建设局网站wordpress怎么登录
  • 福田区建设局网站企业推广哪个平台好
  • 厦门网站建设开发公司网站视频下载到手机怎么做
  • 网站开发类app21天打造你的个人品牌
  • 易奇秀网站商城网站做推广有什么好处
  • 上海资格证报名网站做网站先付款
  • 做网站要多少钱莱芜综合频道莱芜新闻
  • 宁津网站开发花卉物流园做网站的素材
  • 优动网站餐饮装修公司推荐
  • 网站建设专业是干什么的深圳营销型网站制作
  • 网站开发建设与维护新媒体营销期末试卷及答案
  • 自己开发网站需要什么技术wordpress goodstore
  • 网站开发工具最好用wordpress美容主题
  • 珠海微网站建设不写编程可以做网站建设
  • 做网站论坛网页制作三剑客是哪三个
  • 石家庄市住房和城乡建设厅网站WordPress博客右边设置
  • 咖啡网站源码电子商务网站开发费用