hexmos创始人shrijith venkatrama正在构建liveapi,一个能快速生成高质量api文档的工具,并以此简化工程流程。本教程系列记录了他构建dbchat的历程——一个使用ai聊天探索和改进数据库的便捷工具。
之前的文章:
构建dbchat – 通过简单的聊天探索和改进您的数据库(第一部分)dbchat:在Golang中构建玩具部署(第二部分)dbchat第三部分 – 配置、连接和数据库转储通过dbchat和Gemini与您的数据库聊天(第四部分)语言服务器协议 – 构建dbchat(第五部分)制作dbchat VS Code扩展 – 带LSP后端的乒乓球(第六部分)启动dbchat的VS Code扩展UI(第七部分)从VS Code扩展程序管理Toml配置 – dbchat第八部分工作版本的截图dbchat的默认视图:
选择数据库后,进入聊天视图:

使用简单的提示获取Gmail用户和非Gmail用户:

查询结果以表格形式呈现。同样的逻辑也适用于“获取所有非Gmail用户”查询。
黑点工具
在线工具导航网站,免费使用无需注册,快速使用无门槛。
18 查看详情

dbchat更新的更详细视图
代码处理与LSP客户端(语言服务器协议客户端)的通信:
设置阶段:配置和初始化加载配置: 读取配置文件(包含数据库连接字符串等设置)。创建查询处理程序: 设置查询处理程序,负责理解和执行用户请求。构建处理程序: 创建dbchatHandler,管理配置、查询处理程序和数据库连接。
config, err := utils.loadconfig() if err != nil { log.printf("warning: could not load config: %v", err) config = &utils.config{connections: make(map[string]string)} } queryhandler, err := query.newhandler(config.llm.geminikey) if err != nil { log.printf("warning: could not create query handler: %v", err) } handler := &dbchathandler{ config: config, queryhandler: queryhandler, }
LSP通信:心跳LSP循环: 持续监听LSP客户端的消息。读取消息: 读取客户端消息,注意内容长度标题。解析消息: 将原始数据转换为结构化的JSON-RPC消息。
for { // read content-length header // ... (code for reading header) ... // read message body // ... (code for reading message body) ... // parse json-rpc message var msg jsonrpcmessage if err := json.unmarshal(body, &msg); err != nil { // ... (handle parsing error) ... } }
处理请求“ping”请求: 返回“pong”。“chat”请求: 提取用户聊天消息,传递给dbchatHandler的eval方法处理,并将结果打包到响应中发送回客户端。
switch msg.method { case "ping": response.result = "pong" case "chat": var params struct { message string `json:"message"` } if err := json.unmarshal(msg.params, ¶ms); err != nil { // ... (handle invalid params) ... } log.printf("processing chat message: %q", params.message) result := handler.eval(params.message) log.printf("eval result: %q", result) response.result = map[string]interface{}{ "message": result, } // ... (handle other methods) ... }
错误处理和响应捕获错误: 优雅地处理解析消息或数据库错误。发送响应: 以正确的JSON-RPC格式发送响应消息。
if err := writeResponse(response); err != nil { log.Printf("Error writing response: %v", err)}
结论: dbchat能够管理数据库连接,支持多种数据库,允许使用自然语言查询,并以表格格式返回结果。
以上就是在VSCODE中首次使DBCHAT工作 – 第9部分的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/372041.html
微信扫一扫
支付宝扫一扫