做的网站怎么放视频,成立公司需要什么条件,工地用建筑模板生产厂家,建设公司起名哪个网站好本篇我们将主要介绍如何使用 LangChain 连接 CnosDB 数据库#xff0c;实现使用自然语言和数据库的交流。 大模型等的相关话题已经霸榜半年有余#xff0c;在讨论关注之余#xff0c;CnosDB技术团队将大模型与人工智能相关技术与数据库开发与实践进行融合。继CnosDB全面整合… 本篇我们将主要介绍如何使用 LangChain 连接 CnosDB 数据库实现使用自然语言和数据库的交流。 大模型等的相关话题已经霸榜半年有余在讨论关注之余CnosDB技术团队将大模型与人工智能相关技术与数据库开发与实践进行融合。继CnosDB全面整合TensorFlow使用 CnosDB 与 TensorFlow 进行时间序列预测与将Copilot与Cursor应用于生产实践Coding With AI: Copilot与Cursor之后近期CnosDB技术团队将CnosDB与LangChain进行了生态融合支持用户通过LangChain框架使用自然语言进行相关的时间序列数据查询。CnosDB与LangChain集成的示例请戳CnosDB | ️ Langchain
因为支持标准SQL的生态也使CnosDB成为全球第一个接入LangChain生态的时序数据库。在整合LangChain框架并接入GPT之后客户可以提出类似于“最近一小时北京各个气象观察站的平均温度”或者“这个月上海的最高气温与最低气温是多少”等相关问题不用编写任何SQL从而轻松从数据库中取得相关的查询结果。
简介CnosDB与LangChain
CnosDB 是一款高性能、高压缩率、高易用性的开源分布式时序数据库。主要应用场景为物联网、工业互联网、车联网和IT运维。所有代码均已在 GitHub 开源。
它具有以下特性 高性能CnosDB 解决了时间序列膨胀问题理论上支持时间序列无上限支持沿时间线的聚合查询包括按等时间间隔划分窗口的查询、按某列枚举值划分窗口的查询、按相邻时序记录的时间间隔长度划分窗口。具备对最新数据的缓存能力并且可以配置缓存空间能够高速获取最新数据。 简单易用CnosDB 提供清晰明了的接口简单的配置项目支持标准 SQL 轻松上手与第三方工具生态无缝集成拥有便捷的数据访问功能。支持 schemaless 无模式的写入方式支持历史数据补录含乱序写入。 云原生CnosDB 有原生的分布式设计、数据分片和分区、存算分离、Quorum 机制、Kubernetes 部署和完整的可观测性具有最终一致性能够部署在公有云、私有云和混合云上。提供多租户的功能有基于角色管理的权限分配。支持计算层无状态增减节点储存层水平扩展提高系统存储容量。
LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它可以实现以下功能 数据感知将语言模型与其他数据源连接起来。 主体性允许语言模型与其环境进行交互。
LangChain 的主要价值在于 组件化为使用语言模型提供抽象化的工具同时还提供了每个抽象化工具的一系列实现。这些组件是模块化且易于使用的无论你是否使用LangChain框架的其他部分。 现成的链式结构用于完成特定高级任务的一系列组件的结构化组合。现成的链式结构使得入门变得容易。对于更复杂的应用程序和细致的使用情况组件使得自定义现有链式结构或构建新的链式结构变得容易。
实现架构图 通过架构图可以看出通过利用 LangChain 的组件与现成的链使得用户不需要提前去学习如何使用 SQL 脚本与数据库交互节省了大量的时间与精力。利用 LangChain 、SQLDatabase、SQL Agent 以及 OpenAI 大型语言模型的强大功能我们已经可以做到创建应用程序实现让用户使用自然语言与 CnosDB 交流。
安装部署 CnosDB
我们以Docker为例安装CnosDB其他的安装方法请参考官网文档安装部分安装 | 文档。
1.安装 Docker 环境
2.使用 Docker 启动容器
docker run --name cnosdb -p 8902:8902 -d cnosdb/cnosdb:community-latest cnosdb run -M singleton
3.进入容器 docker exec -it cnosdb sh
4.运行 cnosdb-cli cnosdb-cli --port 8902
连接成功之后会显示
CnosDB CLI v2.3.1
Input arguments: Args { host: localhost, port: 8902, user: cnosdb, password: None, database: public, target_partitions: Some(1), data_path: None, file: [], rc: None, format: Table, quiet: false }
public ❯
安装部署 LangChain 执行下面命令
pip install langchain
安装 CnosDB 依赖
pip install cnos-connector
# cnosdb_connector版本需要大于0.1.8
连接CnosDB
我们使用 cnosdb_connector 以及 SQLDatabase 连接 CnosDB需要创建 SQLDatabase 所需的 uri
# 使用 make_cnosdb_langchain_uri 来创建uri
uri cnosdb_connector.make_cnosdb_langchain_uri()
# 通过 SQLDatabase.from_uri 来创建 DB
db SQLDatabase.from_uri(uri)
或者使用 SQLDatabase 的 from_cnosdb 方法
def SQLDatabase.from_cnosdb(url: str 127.0.0.1:8902,user: str root,password: str ,tenant: str cnosdb,database: str public)
参数 参数名 含义 url (str) CnosDB服务的HTTP连接主机名和端口号不包括 http:// 或 https://默认值为 127.0.0.1:8902。 user (str) 用于连接到CnosDB服务的用户名默认值为 root。 password (str) 连接到CnosDB服务的用户密码默认值为空字符串 。 tenant (str) 用于连接到CnosDB服务的租户名称默认值为 cnosdb。 database (str) CnosDB租户中数据库的名称。
使用示例
# 使用 SQLDatabase 连接 CnosDB
from cnosdb_connector import make_cnosdb_langchain_uri
from langchain import SQLDatabaseuri cnosdb_connector.make_cnosdb_langchain_uri()
db SQLDatabase.from_uri(uri)# 创建 OpenAI Chat LLM
from langchain.chat_models import ChatOpenAIllm ChatOpenAI(temperature0, model_namegpt-3.5-turbo)
SQLDatabaseChain示例
这个例子演示了如何使用 SQLDatabaseChain 通过一个数据库回答一个问题。
from langchain import SQLDatabaseChaindb_chain SQLDatabaseChain.from_llm(llm, db, verboseTrue)db_chain.run(What is the average temperature of air at station XiaoMaiDao between October 19, 2022 and October 20, 2022?
) Entering new chain...
What is the average temperature of air at station XiaoMaiDao between October 19, 2022 and Occtober 20, 2022?
SQLQuery:SELECT AVG(temperature) FROM air WHERE station XiaoMaiDao AND time 2022-10-19 AND time 2022-10-20
SQLResult: [(68.0,)]
Answer:The average temperature of air at station XiaoMaiDao between October 19, 2022 and October 20, 2022 is 68.0.Finished chain.
SQL Database Agent 示例
from langchain.agents import create_sql_agent
from langchain.agents.agent_toolkits import SQLDatabaseToolkittoolkit SQLDatabaseToolkit(dbdb, llmllm)
agent create_sql_agent(llmllm, toolkittoolkit, verboseTrue)
agent.run(What is the average temperature of air at station XiaoMaiDao between October 19, 2022 and Occtober 20, 2022?
) Entering new chain...
Action: sql_db_list_tables
Action Input:
Observation: air
Thought:The air table seems relevant to the question. I should query the schema of the air table to see what columns are available.
Action: sql_db_schema
Action Input: air
Observation:
CREATE TABLE air (pressure FLOAT, station STRING, temperature FLOAT, time TIMESTAMP, visibility FLOAT
)/*
3 rows from air table:
pressure station temperature time visibility
75.0 XiaoMaiDao 67.0 2022-10-19T03:40:00 54.0
77.0 XiaoMaiDao 69.0 2022-10-19T04:40:00 56.0
76.0 XiaoMaiDao 68.0 2022-10-19T05:40:00 55.0
*/
Thought:The temperature column in the air table is relevant to the question. I can query the average temperature between the specified dates.
Action: sql_db_query
Action Input: SELECT AVG(temperature) FROM air WHERE station XiaoMaiDao AND time 2022-10-19 AND time 2022-10-20
Observation: [(68.0,)]
Thought:The average temperature of air at station XiaoMaiDao between October 19, 2022 and October 20, 2022 is 68.0.
Final Answer: 68.0 Finished chain.
未来再谈AI4DB与DB4AI
自创立伊始CnosDB坚持AI4DB与DB4AI的理念与信仰促进人工智能与数据库进行相应的融合并为人工智能打造生态友好、高可用、高稳定性的时序数据库系统。【延伸阅读数据库管理系统的未来是什么数据库管理系统的未来是什么】
AI4DB指的是利用AI技术来增强数据库的能力例如利用AI技术来从数据中提取模式、进行预测和分类或者利用自然语言处理技术来实现更智能的查询和分析。这种方法可以提高数据库的效率和准确性使其更加适应不断变化的数据环境。DB4AI则是指利用数据库来支持AI应用程序。数据库可以提供数据存储和管理、数据清洗和预处理、数据访问和共享等基础设施为AI应用程序提供支持。在这种情况下数据库的作用是为AI算法提供数据以帮助算法进行训练和预测。
我们坚信未来将有更多的开发人员利用GPT等大模型技术创建应用程序因此数据库的使用方式要更好的结合大模型的特定习惯。CnosDB正是基于此信仰成为时序数据库首家拥抱LangChain生态的产品。应用程序开发的新范式即将到来让我们一起拥抱未来共同创建能够解决现实世界问题的强大应用程序。
补充阅读
1.使用 CnosDB 与 TensorFlow 进行时间序列预测
2.Coding With AI: Copilot与Cursor
3.数据库管理系统的未来是什么 CnosDB简介
CnosDB是一款高性能、高易用性的开源分布式时序数据库现已正式发布及全部开源。
欢迎关注我们的社区网站https://cn.cnosdb.com