首页 > 其他分享 >data-analysis-llm-agent

data-analysis-llm-agent

时间:2024-09-08 19:47:13浏览次数:9  
标签:database chatbot agent analysis llm data tool

data-analysis-llm-agent

https://github.com/fanqingsong/data-analysis-llm-agent

Conversational AI with Function Calling for Data Analysis

Overview

The chatbot is designed to provide data analysis insights from database based on a predefined schema. It is built using Chainlit and OpenAI's GPT-3.5-turbo-1106 model. The chatbot utilizes OpenAI function calling to decide when to use tools and in case of db error it retries.

 

 

Available Tools

The chatbot has access to a range of tools, including: Database Query: Execute database queries to retrieve data. Plot Chart: Generate visualizations to help users understand data insights.

Code

app.py: The main application file, which sets up the Chainlit framework and defines the chatbot's logic.
bot.py: The chatbot class which handles conversation history, talking to llm and parallel function calling.
utils.py: Utility functions for db introspection and format conversion.
tools.py: Tool functions for executing database queries and plotting charts.
.env: openai api key

Data

It uses simple sqlite3 database of movie and actors from https://github.com/slackhq/sqlite-python-connect/. The schema is very simple with only two tables but should work with more complex schema.

How it Works

Here's a high-level overview of how the application works:

    • The user sends a message to the chatbot.
    • The response may include tool calls. Tool calls include fetching results from database or generating plots.
    • The tool results are added back to the list of conversation messages. Everything including tool results, error messages are added to the conversation and sent back to llm to get a second response.
    • The Execution loop is run for MAX_ITER times if each new response has a tool call.
    • The chatbot sends the response back to the user, including any plots or tables generated by the tool calls.

 

demo

 

 

 

 

 

 

 

 

标签:database,chatbot,agent,analysis,llm,data,tool
From: https://www.cnblogs.com/lightsong/p/18403320

相关文章

  • 大模型agent开发之transformer
    文档转换器将文档分成小的,有意义的语句块。将小的块组合成一个更大的块,直到达到一定大小。一旦达到一定大小,接着开始创建与下一个块重叠的部分。 1. 分割文档文档分割可以使用langchain组件中的RecursiveCharacterTextSplitter方法,这是一种文本分割器。可以根据指定的字符或......
  • 信息学奥赛初赛天天练-86-NOIP2014普及组-基础题5-球盒问题、枚举算法、单源最短路、D
    1NOIP2014普及组基础题521把M个同样的球放到N个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的放置方法?(用K表示)()例如,M=7,N=3时,K=8;在这里认为(5,1,1)和(1,5,1)是同一种放置方法。问:M=8,N=5时,K=()22如图所示,图中每条边上的数字表示该边的长度,则从......
  • 信息学奥赛初赛天天练-86-NOIP2014普及组-基础题5-球盒问题、枚举算法、单源最短路、D
    信息学奥赛初赛天天练-86-NOIP2014普及组-基础题5-球盒问题、枚举算法、单源最短路、Dijkstra算法、Bellman-Ford算法PDF文档公众号回复关键字:202409081NOIP2014普及组基础题521把M个同样的球放到N个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的放置方法?(......
  • AI大语言模型LLM学习-基于Vue3的AI问答页面
    系列文章1.AI大语言模型LLM学习-入门篇2.AI大语言模型LLM学习-Token及流式响应3.AI大语言模型LLM学习-WebAPI搭建前言在上一篇博文中,我们使用Flask这一Web框架结合LLM模型实现了后端流式WebAPI接口,本篇将基于Vue3实现AI问答页面,本人习惯使用HBuilder进行前端页面......
  • NGraphX v1.9.0发布 新增从Pandas DataFrame中读取文档构建向量索引,并优化向量检索器
    新增功能PandasDataFrame读取器:新增功能,支持从PandasDataFrame中加载LlamaIndex所需的文档。任何能加载进PandasDataFrame的文档数据均可连接此节点。功能优化DuckDB&Neo4J检索器:优化消息传递机制,现在可以从上游连接模版消息节点,便于进行进一步处理(如扩写、改......
  • Datawhale X李宏毅苹果书AI夏令营 第五期 深度学习入门 task3
      本次任务主要是了解模型在训练集或测试集上损失较大时的几大原因,了解改进的方向一、模型偏差   模型过于简单,未知参数函数的所有可能性的集合太小,让损失变低的函数不在模型可以描述的范围内;或者是模型的灵活性不够。这个时候重新设计一个模型,给模型更大的灵活性,将......
  • Designing Data-Intensive Applications
    《DesigningData-IntensiveApplications》是一本深入探讨数据密集型应用设计的书籍,由MartinKleppmann撰写。以下是对这本书的详细概述:书籍简介:作者信息:MartinKleppmann是一位在分布式系统领域的研究员,曾在LinkedIn和Rapportive等互联网公司工作,参与大规模数据基础设......
  • 用友U8-Cloud AddTaskDataRightAction SQL注入
    0x01漏洞描述:用友U8-Cloud系统AddTaskDataRightAction接口处存在SQL注入漏洞。这可能导致泄露敏感数据、破坏数据库完整性,甚至获取对数据库的完全控制。0x02影响版本:1.0,2.0,2.1,2.3,2.5,2.6,2.65,2.7,3.0,3.1,3.2,3.5,3.6,3.6sp,5.0,5.0sp,5.10x03搜索语句: Fofa:titl......
  • Agent(智能体)和 MetaGPT,一句话实现整个需求应用代码
    前面2篇文章,我们使用文生文、文生图和文生音频三个大模型共同实现了图文并茂的儿童绘本故事和绘本故事音频需求:第一篇根据主题生成儿童绘本故事:GLM-4-Flash大模型API免费了,手把手构建“儿童绘本”应用实战(附源码)第二篇根据儿童绘本故事生成长音频:ChatTTS长音频合成和本......
  • DataX实战之MongoDB导入数据到mysql——打包jar包时出现Could not find goal assembly
    使用idea打开我们本地的datax源码或者下载的源码下载地址:https://github.com/alibaba/DataX/blob/master/mongodbreader/doc/mongodbreader.md进行编译,打包上传:指定mongodbreader模块以及它所依赖的模块进行打包【推荐使用,大约只运行3分钟左右】mvn-Ucleanpac......