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

做视频网站资源采集最近发生的新闻大事

做视频网站资源采集,最近发生的新闻大事,网站被恶意解析,网站建设云创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.yayakq.cn/news/378579/

相关文章:

  • 中国企业网站开发怎么创办网站
  • 无锡网站开发网站如何做京东联盟
  • 网站的后缀名app和网站开发的成本
  • 利于seo的建站系统有哪些做dj音叉网站平台
  • 做网站需要参考书目书太原房产网站建设
  • 千龙网站建设wordpress 3.1 下载地址
  • 成都网站排名生客seo深圳网络优化公司
  • 沧州市网站龙海市邦策网站建设平台
  • 做网站的励志故事WordPress主题设置数据库
  • 拟定网站优化方案中煤第三建设集团网站
  • o2o网站建设怎么样网站建设 ui 企业网站
  • 怎么在濮阳网站做宣传腾讯企业邮箱手机号登录入口
  • 兴平市住房和城乡建设局门户网站东莞寮步二手车交易市场
  • 内蒙古做网站公司wordpress上传后不见了
  • .mom域名可以做网站吗标签化网站
  • 网站建设绿茶科技广州天拓做网站吗
  • 建设信用卡网银网站专科最吃香的十大专业
  • 网站注册怎么注销网站网页进口
  • 承德专业做网站的公司网站开发的公司名称
  • 做网站图片和文字字体侵权wordpress搭建邮箱
  • 外贸建站网站推广网站建设最新教程
  • 怎么自己搭建博客网站网络推广服务如何退费
  • 网站添加cms外贸商城网站模板
  • 销售网站建设品牌设计案例分析
  • 孝感英文网站建设WordPress如何快速排名
  • 服务器 空间 虚拟主机 网站需要备案吗建设99网站
  • 电子商务网站建设规模计划青海营销网站建设服务
  • 做金融的喜欢逛哪些网站站外推广渠道有哪些
  • 深圳做网站找谁自己有网站怎么做点卡?
  • 个人工作室的网站网站建设后台管理便捷