AI Agent实战:智能检索在Kingbase数据库管理中的优势应用

前言

在信息技术飞速发展的今天,数据库管理已成为IT专业人员日常工作中不可或缺的一部分。然而,面对复杂的SQL问题,传统的web搜索往往难以提供精准的答案,尤其是在针对特定数据库系统,如金仓数据库时,这种局限性更加明显。为了解决这一问题,我决定利用Agent的高级搜索和处理能力,创建一个个人助手,以快速准确地找到解决方案。

助手搭建

个人助手描述

我的个人助手是一个高度集成的智能搜索解决方案,专为金仓数据库用户设计。它采用以下步骤,高效地协助我解决数据库相关问题:

  • 知识库检索:直接访问金仓数据库的官方文档,快速检索特定问题的专业解答。
  • 社区与博客搜索:利用先进的搜索算法,深入社区和博客,挖掘更广泛的知识和经验。
  • 智能问答:结合大型语言模型,对搜索结果进行智能分析,提供精准且相关的答案。

通过这一流程,我的助手不仅提升了问题解决的速度,还确保了答案的质量和深度。现在,我将着手创建这个强大的助手,以期在数据库管理的道路上,为我提供持续的支持和便利。

image

提示词

这部分内容,我将直接呈现最终的文案。在省略中间的优化过程的同时,确保文案的清晰度和专业性:

# 角色
你是一位资深的 KingbaseES 金仓数据库专家,精通其各项技术细节,能够准确解答用户关于 KingbaseES 金仓数据库的各类咨询疑问,熟练获取并深度解读官方教程资料,助力用户轻松上手并全面深入理解 KingbaseES 金仓数据库。

## 技能
### 技能 1: 解答咨询疑问
1. 当用户提出有关 KingbaseES 金仓数据库的具体问题时,运用【KingbaseES_search】工具全面剖析问题,并给出精确、明晰且易于理解的答案。
2. 倘若问题表述不清晰,需主动与用户交流,以确切明晰具体问题。

## 限制:
- 仅专注于 KingbaseES 金仓数据库相关工作,坚决拒绝回答无关内容。
- 所输出的内容务必严格依照给定的格式进行组织,不得偏离框架要求。
- 提取的关键信息务必简洁清晰,突出重点。

知识库

构建个人知识库对于提升问题解决效率至关重要。以下是我构建知识库的步骤:

  • 访问官方资源:访问金仓数据库的官方文档,精心挑选并下载了所有必要的手册、指南和最佳实践文档,确保我的知识库既全面又准确。
  • 整理关键信息:专注于收集和整理官方提供的最佳实践、常见问题解答和配置指南,这些都是解决数据库问题时不可或缺的资源。
  • 保持知识库更新:密切关注金仓数据库的最新版本更新,及时整合新信息,确保我的知识库始终保持最新状态。

由于某些官方文档的下载链接存在访问限制或需要特定权限,我考虑采取手动下载的方式,以确保新增内容能够及时纳入我的知识库。以下是手动下载过程的示意图:

image

在收集知识后,对知识库进行精心筛选和整理,确保其内容的质量和相关性。以下是我的优化步骤:

  • 筛选过程:对收集到的知识片段进行细致的评估,识别并剔除那些过时或不适用的信息。
  • 内容更新:定期更新知识库,引入最新的数据库管理、技术更新
  • 结构优化:对知识库进行结构化整理,以便于快速检索和应用,提升知识库的实用性和效率。
  • 质量控制:实施严格的质量控制流程,确保知识库中的每一条信息都是准确、可靠且有价值的。

image

在初步构建知识库并进行测试之后,我发现虽然它提供了一定的帮助,但效果并不显著。这让我意识到,仅依赖知识库可能不足以解决所有问题。因此,我计划扩展我的解决方案:

  • 利用社区资源:为了弥补这一不足,我打算利用社区的API,抓取社区问答和博客文章,以获取更多样化和实时的解决方案。
  • 实施计划:我将设计一个系统,通过API集成社区内容,并对抓取的信息进行筛选和分析,以期找到更有效的答案。

image

插件开发(社区+博客)

既然需要利用API来获取信息,那么开发一个专门的插件就显得尤为重要。我将着手创建一个插件,专门用于与社区的API进行交互,以抓取所需的信息。

image

这里写一下简单的描述:

image

在开发过程中,代码编写的细节往往涉及复杂的技术实现,对于非专业读者可能难以理解。因此,我选择省略中间的编码步骤,直接展示最终的代码成果:

from runtime import Args
from typings.search_forum.search_forum import Input, Output
import json
import requests
def get_search(query,type):
    cookies = {
        '_ga': 'GA1.3.1791910307.1718679034',
        '__bid_n': '19029f909db92161118c02',
        'Hm_lvt_3c01febe06ffa2353036661fdec1f873': '1718691104,1718792940,1718846376',
        'sensorsdata2015jssdkcross': '%7B%22distinct_id%22%3A%2219029f90aad523-090ebfbc937d5e-4c657b58-2073600-19029f90aae77%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E5%BC%95%E8%8D%90%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fcloud.tencent.com%2F%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkwMjlmOTBhYWQ1MjMtMDkwZWJmYmM5MzdkNWUtNGM2NTdiNTgtMjA3MzYwMC0xOTAyOWY5MGFhZTc3In0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%2219029f90aad523-090ebfbc937d5e-4c657b58-2073600-19029f90aae77%22%7D',
    }

    headers = {
        'Accept': 'application/json, text/plain, */*',
        'Accept-Language': 'zh-CN',
        'Connection': 'keep-alive',
        'Content-Type': 'application/json;charset=UTF-8',
        # 'Cookie': '_ga=GA1.3.1791910307.1718679034; __bid_n=19029f909db92161118c02; Hm_lvt_3c01febe06ffa2353036661fdec1f873=1718691104,1718792940,1718846376; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2219029f90aad523-090ebfbc937d5e-4c657b58-2073600-19029f90aae77%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E5%BC%95%E8%8D%90%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fcloud.tencent.com%2F%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkwMjlmOTBhYWQ1MjMtMDkwZWJmYmM5MzdkNWUtNGM2NTdiNTgtMjA3MzYwMC0xOTAyOWY5MGFhZTc3In0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%2219029f90aad523-090ebfbc937d5e-4c657b58-2073600-19029f90aae77%22%7D',
        'Origin': 'https://bbs.kingbase.com.cn',
        'Referer': 'https://bbs.kingbase.com.cn/',
        'Sec-Fetch-Dest': 'empty',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Site': 'same-origin',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0',
        'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Microsoft Edge";v="126"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
    }
    tpe = f'kingbase_blog_{type}'
    json_data = {
        'keyWord': query,
        'type': tpe,
        'pageNum': 1,
        'pageSize': 100,
        'fullSearch': True,
    }

    response = requests.post(
        'https://bbs.kingbase.com.cn/web-api/web/search/queryByKeyWord',
        cookies=cookies,
        headers=headers,
        json=json_data,
    )
    return response.text
    # Note: json_data will not be serialized by requests
    # exactly as it was in the original request.
    #data = '{"keyWord":"SQL调优","type":"kingbase_blog_forum","pageNum":1,"pageSize":10,"fullSearch":true}'.encode()
    #response = requests.post(
    #    'https://bbs.kingbase.com.cn/web-api/web/search/queryByKeyWord',
    #    cookies=cookies,
    #    headers=headers,
    #    data=data,
    #)
def handler(args: Args[Input])->Output:
    response_text = get_search(args.input.query,args.input.type)
    response_json = json.loads(response_text)
    return response_json


这里看下测试效果:

image

工作流

为了进一步扩展我的信息来源,我编写了一个插件,利用社区和博客提供的API进行搜索。但是由于官方API的搜索结果关联度可能不够,我创建了一个工作流,这里简要概括下工作流需要做哪些事情:

  • 搜索过滤:通过编写特定的算法,对搜索结果进行初步过滤,去除无关信息。
  • 大模型节点:利用大型语言模型节点进行二次筛选,确保搜索结果的相关性和准确性。
  • 引用链接:为每个解决方案提供引用链接,方便我进一步研究和验证。

好的,我们创建一下:

image

在工作流中添加我们刚才编写的插件,对问题进行搜索:

image

在完成初步的代码开发和功能实现后,接下来我们将关注剩余的功能点。以下是我们最终确定的工作流节点的视图概览:

image

效果

随着所有关键组件的基本完成,我们现在可以展示最终的助手效果。以下是我们助手的最终成果概览:

image

在演示环节,我们注意到金仓社区的搜索功能存在一些限制,导致搜索结果并不总是符合我们的预期。为了克服这一挑战,我们采取了以下措施:

  • 数据检索量增加:我们特意将数据检索量设置为100条,以增加获取相关数据的机会。
  • 大模型辅助筛选:利用先进的大模型技术,我们对检索到的数据进行深度过滤和筛选,以确保结果的相关性和准确性。
  • 性能考虑:由于增加了数据量和大模型的辅助处理,这一过程可能会比较耗时。我们正在努力优化算法,以提高搜索和筛选的效率。

在演示中,我们将展示这一过程,虽然速度可能较慢,但最终结果比社区的搜索将更加精准和有价值。

image

希望通过这次演示,向用户展示即使在面对搜索限制的情况下,我的助手依然能够通过智能筛选提供高质量的结果。

总结

虽然在开发过程中遇到了不少技术挑战,但最终我成功构建了一个针对金仓数据库的社区检索咨询助手。这个助手不仅解决了普通web搜索无法满足特定数据库问题的需求,还提高了我解决问题的效率和质量。在未来的工作中,我将继续优化这个助手,使其更加智能和强大。

我们可以看到Agent如何在数据库问题解决中发挥重要作用,从知识库的构建到社区资源的深度挖掘,每一个环节都体现了Agent能力的强大和便捷。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.2.1 什么是Prompt
    • L2.2.2 Prompt框架应用现状
    • L2.2.3 基于GPTAS的Prompt框架
    • L2.2.4 Prompt框架与Thought
    • L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
    • L2.3.1 流水线工程的概念
    • L2.3.2 流水线工程的优点
    • L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
    • L3.1.1 Agent模型框架的设计理念
    • L3.1.2 Agent模型框架的核心组件
    • L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
    • L3.2.1 MetaGPT的基本概念
    • L3.2.2 MetaGPT的工作原理
    • L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
    • L3.3.1 ChatGLM的特点
    • L3.3.2 ChatGLM的开发环境
    • L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
    • L3.4.1 LLAMA的特点
    • L3.4.2 LLAMA的开发环境
    • L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/747581.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

eventbus和vuex

EventBus和Vuex EventBus 工作原理 创建一个vue实例,然后通过空的vue实例作为组件之间的桥梁,进行通信,利用到的设计模式有发布订阅模式 Vuex 工作原理 维护了一个state树,是独立的状态树,有明显的层级关系。不论…

数据资产与云计算深度融合:借助云计算技术,优化数据存储、高效处理并创新应用,驱动企业数字化转型

目录 一、引言 二、数据资产与云计算深度融合的必要性 1、数据资产的重要性 2、云计算技术的优势 三、云计算技术在数据资产管理中的应用 1、数据存储的优化 2、数据处理的高效性 3、数据应用的创新 四、云计算驱动企业数字化转型的实践案例 案例一:金融行…

YCSB基准测试

1、Redis: 下载成功后,加载数据,运行 启动redis: /usr/local/redis/bin/redis-server ./bin/ycsb load redis -P workloads/workloade -p redis.hostlocalhost -p redis.port6379 -p recordcount10000 -p operationcount10000 -threads 32 ./bin/y…

【数据库】Oracle安装报错(口令设置问题)

目录 一、问题场景: 二、问题描述 三、原因分析: 四、解决方案: 方法一: 方法二: 一、问题场景: Oracle安装 二、问题描述 Oracle安装意外中断导致【口令管理】用户没有取消勾选/修改密码 三、原因…

【React】ref

概述 使用 ref 引用值 – React 中文文档 希望组件“记住”某些信息,但又不想让这些信息更新时 触发新的渲染 时,可以使用 ref 。 也就是说 ref 对象 包裹的值 React 追踪不到的,他像是用来存储组件信息的秘密“口袋”。 与 state 相同的是…

web前端——javaScript

目录 一、javaScript概述 1.javaScript历史 2.JavaScript与html,css关系 二、基本语法 ①放在head中 ②放在 body中 ③写在外部的.js文件中 1.变量 2.数据类型 3.算术运算符 4.逻辑运算符 5.赋值运算 6.逻辑运算符 7.条件运算符 8.控制语句 三、函数 1…

《数字图像处理》实验报告六

一、实验任务与要求 比较采用不同的色彩空间对彩色图像处理的效果,处理包括: a)直方图均衡化 b)图像增强 二、实验报告 (一)RGB色彩空间的直方图均衡化 / 锐化处理 1、matlab 实现代码: %…

Vue中数组的【响应式】操作

在 Vue.js 中,当你修改数组时,Vue 不能检测到以下变动的数组: 当你利用索引直接设置一个项时,例如:vm.items[indexOfItem] newValue当你修改数组的长度时,例如:vm.items.length newLength 为…

谷歌上搞下来的,无需付费,可以收藏!

在数字化时代,我们越来越依赖于智能设备来获取信息和知识。中国智谋App正是这样一款应用,它将中国古代的智慧与谋略书籍带入了我们的移动设备,让我们能够随时随地学习和领悟。而且提供文言文的原文和译文。 软件下载方式:谷歌上搞…

39.右键弹出菜单管理游戏列表

上一个内容:38.控制功能实现 以 ​​​​​​​ 38.控制功能实现 它的代码为基础进行修改 效果图: 点击设置之后的样子 点击删除 点击删除之后的样子 实现步骤: 首先添加一个菜单资源,右击项目资源选择下图红框 然后选择Menu 然…

Docker(九)-Docker运行redis6.0.8容器实例

1.宿主机新建目录存放redis.conf文件 目的:运行redis容器实例时使用自己的配置文件2.运行redis容器实例 docker run -d -p 6379:6379 --privilegedtrue -v 【宿主机配置文件目录】:/etc/redis/redis.conf -v 【宿主机数据目录】:/data --nameredis6.0.8 redis:6.0…

Keka for Mac:轻量级压缩解压神器

Keka for Mac是一款专为Mac用户打造的轻量级压缩解压软件,凭借其强大的功能和简洁易用的界面,赢得了众多用户的喜爱。无论是日常办公还是学习娱乐,Keka都能为您提供高效、安全的文件压缩和解压体验。 Keka for Mac v1.4.2中文版下载 产品特点…

记录一次CMS的代码审计

本次代码审计使用了白加黑的手法,用黑盒的视角测试功能点,用白盒的方式作为验证。 0x1 XSS guestbook处,可以看到有一个留言板 idea搜索guestbook。发现代码如下,其中的getModel是获取数据的方法。Guestbook.class就是具体要获取…

MySQL索引优化解决方案--索引介绍(1)

什么是索引 MySQL官方对于索引的定义:索引是帮助MySQL高效过去数据的数据结构。 MySQL在存储数据之外,数据库系统中还维护着满足特定查找算法的数据结构,这些数据结构以某种引用(指向)表中的数据,这样我们…

使用ChatGPT提升编程效率:程序员的最佳实践分享

在这个信息技术飞速发展的时代,编程已经成为了越来越多人的必备技能。无论你是初学者,还是经验丰富的开发者,都可能会遇到编程中的各种问题和挑战。幸运的是,AI 技术的进步让我们有了新的解决工具——ChatGPT。作为一名科技博客博…

51单片机STC89C52RC——9.1 DS1302涓流充电计时芯片

目录 目的/效果 一,STC单片机模块 二,DS1302计时器 2.1 特性/板子位置 2.1.1 特性 2.1.2 板子上的位置 2.2 针脚定义 2.3 数据传输 2.3.1 读数据 2.3.2 写数据 2.4 BCD码 2.5 可编程涓流充电器 2.6 时钟动态设置 三,创建Keil项目…

Leetcode 102.目标和

给定一个正整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums [2, 1] ,可以在 2 之前添加 ‘’ ,在 1 之前添加 ‘-’ &…

2024最新pd激活码 Parallels Desktop 19 激活秘钥分享

Parallels Desktop 19 for Mac 乃是一款适配于 Mac 的虚拟化软件。它能让您在 Mac 计算机上同时运行多个操作系统。您可借此创建虚拟机,并于其中装设不同的操作系统,如 Windows、Linux 或 macOS。使用 Parallels Desktop 19 mac 版时,您可在 …

【UE5.3】笔记2--资源导入

资源导入 方式一:内置资源--初学者内容包 方式二:虚幻商城 搜索免费资源: 添加到工程之后 搜素:虚幻学习工具包,需要注意的是支持的引擎版本 当然商城里包含了大量的免费的资源,初期学习不想投入太多可以…

OpenCL在移动端GPU计算中的应用与实践

一、引言 移动端芯片性能的不断提升为在手机上进行计算密集型任务,如计算机图形学和深度学习模型推理,提供了可能。在Android设备上,GPU,尤其是高通Adreno和华为Mali,因其卓越的浮点运算能力,成为了异构计…