首页 文章 精选 留言 我的

精选列表

搜索[Provider桥接],共6065篇文章
优秀的个人博客,低调大师

使用Psycopg2连openGauss

文章目录 1.简介 2.接口介绍 开发流程 接口说明 3.使用 3.1环境准备 3.2下载并加载python驱动 3.3创建数据库连接用户 3.4示例 4.常见报错 1.简介 Psycopg是一种用于执行SQL语句的PythonAPI,可以为PostgreSQL、openGauss数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg2是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配PostgreSQL数据类型;通过灵活的对象适配系统,可以扩展和定制适配。Psycopg2兼容Unicode和Python 3。 openGauss数据库提供了对Psycopg2特性的支持,并且支持Psycopg2通过SSL模式链接。 2.接口介绍 开发流程 接口说明 openGauss提供了如下接口供开发者使用: psycopg2.connect() 此方法创建新的数据库会话并返回新的connection对象(连接openGauss数据库实例的对象)。 conn=psycopg2.connect(dbname=“test”,user=“postgres”,password=“secret”,host=“127.0.0.1”,port=“5432”) 或者 conn = psycopg2.connect(“dbname=test user=postgres password=secret host=127.0.0.1 port=5432”) 创建连接对象(SSl连接) conn = psycopg2.connect(dbname=“postgres”, user=“user”, password=“password”, host=“localhost”, port=port, sslmode=“verify-ca”, sslcert=“client.crt”, sslkey=“client.key”, sslrootcert=“cacert.pem”) 注意: 如果sslcert, sslkey,sslrootcert没有填写,默认取当前用户.postgresql目录下对应的client.crt, client.key, root.crt connection.cursor() 此方法用于返回新的cursor对象(用于整个数据库使用Python编程的cursor)。 cursor(name=None, cursor_factory=None, scrollable=None, withhold=False) cursor.execute(query,vars_list) 此方法执行被参数化的SQL语句(即占位符,而不是SQL文字)。psycopg2模块支持用%s标志的占位符。 curosr.execute(query,vars_list) curosr.executemany(query,vars_list) 此方法执行SQL命令所有参数序列或序列中的SQL映射。 curosr.executemany(query,vars_list) connection.commit() 此方法将当前挂起的事务提交到数据库。默认情况下,Psycopg在执行第一个命令之前打开一个事务:如果不调用commit(),任何数据操作的效果都将丢失。 connection.commit() connection.rollback() 此方法回滚当前挂起事务。执行关闭连接“close()”而不先提交更改“commit()”将导致执行隐式回滚。 connection.rollback() cursor.fetchone() 此方法提取查询结果集的下一行,并返回一个元组。返回单个元组,为结果集的第一条结果,当没有更多数据可用时,返回为“None”。 cursor.fetchone() cursor.fetchall() 此方法获取查询结果的所有(剩余)行,并将它们作为元组列表返回。返回元组列表,为结果集的所有结果。空行时则返回空列表。 cursor.fetchall() cursor.close() 此方法关闭当前连接的游标。 cursor.close() connection.close() 此方法关闭数据库连接。此方法关闭数据库连接,并不自动调用commit()。如果只是关闭数据库连接而不调用commit()方法,那么所有更改将会丢失。 connection.close() 3.使用 3.1环境准备 本篇使用环境信息: 华为云HECS 2核4G CentOS Linux release 7.6 Python 3.6.8 openGauss 3.1.0 极简版 3.2下载并加载python驱动 1、可以在openGauss官网下载后用FTP工具比如winscp等上传到服务器,也可以直接在服务器上用wget方式获取,根据操作系统版本下载对应的驱动。 root用户下新建存放目录,执行wget和解压命令。 mkdir psycopg2 wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.0/x86/openGauss-3.1.0-CentOS-x86_64-Python.tar.gz tar -zxvf openGauss-3.1.0-CentOS-x86_64-Python.tar.gz 解压后有两个文件夹 lib和psycopg2,分别放置对应的库文件。 2、在解压后的路径下执行拷贝命令,将驱动拷贝到python3下的site-packages目录 cp -r psycopg2/ /usr/lib/python3.6/site-packages/ 3、修改psycopg2/目录权限为755 cd /usr/lib/python3.6/site-packages/ chmod 755 psycopg2/ 4、对于非数据库用户,需要将解压后的lib目录,配置在LD_LIBRARY_PATH中。 export $LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/psycopg2/lib/ ldconfig 3.3创建数据库连接用户 注意,由于psycopg2只能使用MD5方式连接,而openGauss默认安装时使用sha256加密,所以这里需要修改一下配置。 修改 data/single_node/postgresql.conf 中password_encryption_type = 1 ,表示支持md5和sha256。 修改pg_hba.conf 中加密算法 然后重启openGauss:gs_ctl restart -D /opt/software/openGauss/data/single_node 连接到openGauss创建用户和数据库。 create database mydb; CREATE USER tuser WITH PASSWORD '自己定义'; GRANT ALL PRIVILEGES TO tuser; alter database mydb owner to tuser; 如果在修改加密方式前之前已经创建过用户了,需要在配置文件修改及数据库重启完成后,重新建用户或者设置用户密码。 3.4示例 编写python文件 vi ogconn.py 将如下测试语句拷贝进去,根据实际情况修改对应的openGauss数据库连接信息。 import psycopg2 conn=psycopg2.connect(database="mydb",user="tuser",password="XXXXXXX",host="127.0.0.1",port=5432) #或者用下面的也可以 #conn = psycopg2.connect("dbname=mydb user=tuser password=password host=localhost port=port") print("Conn openGauss successfully") cur=conn.cursor() cur.execute("DROP TABLE IF EXISTS student") cur.execute("CREATE TABLE student(id integer,name varchar,sex varchar);") cur.execute("INSERT INTO student(id,name,sex) VALUES(%s,%s,%s)",(1,'Bob','M')) cur.execute("INSERT INTO student(id,name,sex) VALUES(%s,%s,%s)",(2,'Kevin','M')) cur.execute('SELECT id,name,sex FROM student') results=cur.fetchall() print (results) conn.commit() cur.close() conn.close() 连接测试 python3 ogconn.py 报错了,psycopg2.OperationalError: SCRAM authentication requires libpq version 10 or above 解决办法: 根据提示升级版本 rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm yum install postgresql10-devel 根据提示输入y,等提示Complete! 重新测试连接 注意,如果使用本地工具连接远端云服务器的数据库时,需要修改云服务器安全组,将openGauss的端口放开,否则会连接不上。 4.常见报错 执行python3 ogconn.py报错 1.提示如下错误 File “/opt/software/psycopg2/psycopg2/init.py”, line 122, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError: SCRAM authentication requires libpq version 10 or above 这个错是说libpq版本应该在10以上,需要升级下版本。 解决办法: rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm yum install postgresql10-devel 根据提示输入y,等提示Complete! 2.提示如下错误: psycopg2.OperationalError: none of the server’s SASL authentication mechanisms are supported 这个就是加密方式的问题,参考文章中“创建数据库连接用户”部分解决。 欢迎大家测试、交流! 🍒如果您觉得博主的文章还不错或者有帮助的话,请关注一下博主,如果三连点赞评论收藏就更好啦!谢谢各位大佬给予的支持!

优秀的个人博客,低调大师

Docker--------修改Docker0网默认网段

1. 背景 Docker 服务启动后默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。 Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信,它还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络路由上支持的默认值。这些值都可以在服务启动的时候进行配置。 2. 环境 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [root@docker~] #cat/etc/redhat-release CentOSLinuxrelease7.2.1511(Core) [root@docker~] #uname-r 3.10.0-327.36.3.el7.x86_64 [root@docker~] #dockerversion Client: Version:1.12.6 APIversion:1.24 Packageversion:docker-1.12.6-28.git1398f24.el7.centos.x86_64 Goversion:go1.7.4 Gitcommit:1398f24 /1 .12.6 Built:FriMay2617:28:182017 OS /Arch :linux /amd64 Server: Version:1.12.6 APIversion:1.24 Packageversion:docker-1.12.6-28.git1398f24.el7.centos.x86_64 Goversion:go1.7.4 Gitcommit:1398f24 /1 .12.6 Built:FriMay2617:28:182017 OS /Arch :linux /amd64 3. 实战 *默认docker0 网桥信息 *修改文件/etc/docker/daemon.json 添加内容 "bip": "ip/netmask" [ 切勿与宿主机同网段 ] *重启 docker 服务 1 [root@docker~] #systemctlrestartdocker *查看修改后的 docker0 网桥信息 4. 总结 以需求驱动技术,技术本身没有优略之分,只有业务之分。 本文转自asd1123509133 51CTO博客,原文链接:http://blog.51cto.com/lisea/1940023,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android应用程序组件Content Provider应用实例(4)

程序使用到的界面文件定义在res/layout目录下,其中,main.xml文件定义MainActivity的界面,它的内容如下所示: <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="bottom"> <ListView android:id="@+id/listview_article" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/border" android:choiceMode="singleChoice"> </ListView> <LinearLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="match_parent" android:gravity="center" android:layout_marginTop="10dp"> <Button android:id="@+id/button_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="15dp" android:paddingRight="15dp" android:text="@string/add"> </Button> </LinearLayout> </LinearLayout> item.xml文件定义了ListView中每一个文章信息条目的显示界面,它的内容如下所示: <?xmlversion="1.0"encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/textview_article_title" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> <TextView android:id="@+id/textview_article_abstract" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> <TextView android:id="@+id/textview_article_url" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp"> </TextView> </LinearLayout> article.xml文件定义了ArticleActivity的界面,它的内容如下所示: <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center"> <LinearLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="fill_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="24dp" android:text="@string/title"> </TextView> <EditText android:id="@+id/edit_article_title" android:layout_width="fill_parent" android:layout_height="wrap_content"> </EditText> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="fill_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/abs"> </TextView> <EditText android:id="@+id/edit_article_abstract" android:layout_width="fill_parent" android:layout_height="wrap_content"> </EditText> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="fill_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="27dp" android:text="@string/url"> </TextView> <EditText android:id="@+id/edit_article_url" android:layout_width="fill_parent" android:layout_height="wrap_content"> </EditText> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="match_parent" android:gravity="center" android:layout_marginTop="10dp"> <Button android:id="@+id/button_modify" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/modify"> </Button> <Button android:id="@+id/button_delete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/delete"> </Button> <Button android:id="@+id/button_add_article" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="16dp" android:paddingRight="16dp" android:text="@string/add"> </Button> <Button android:id="@+id/button_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/cancel"> </Button> </LinearLayout> </LinearLayout> 在res/drawable目录下,有一个border.xml文件定义了MainActivity界面上的ListView的背景,它的内容如下所示: <?xmlversion="1.0"encoding="utf-8"?> <shapexmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solidandroid:color="#ff0000ff"/> <strokeandroid:width="1dp" android:color="#000000"> </stroke> <paddingandroid:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp"> </padding> <cornersandroid:radius="10dp"/> </shape> 程序使用到的字符串资源文件定义在res/values/strings.xml文件中,它的内容如下所示: <?xmlversion="1.0"encoding="utf-8"?> <resources> <stringname="app_name">Article</string> <stringname="article">Article</string> <stringname="add">Add</string> <stringname="modify">Modify</string> <stringname="delete">Delete</string> <stringname="title">Title:</string> <stringname="abs">Abstract:</string> <stringname="url">URL:</string> <stringname="ok">OK</string> <stringname="cancel">Cancel</string> </resources> 本文转自 Luoshengyang 51CTO博客,原文链接:http://blog.51cto.com/shyluo/966944,如需转载请自行联系原作者

优秀的个人博客,低调大师

BaikalDB MCP Server :链接数据库和AI的直通

导读 BaikalDB作为服务百度商业产品的分布式存储系统,支撑了整个广告库海量物料的存储。在大语言模型LLM蓬勃发展的现在,想在大模型里使用BaikalDB里的数据进行分析,都需要复杂的定制开发。看BaikalDB如何借助模型上下文协议(MCP),让数据库对话像聊天一样简单——无需编写代码,大语言模型即可完成复杂数据分析。 01 引言 在2025年以前,大语言模型(Large Language Model‌,LLM)想要使用数据库的数据,都需要开发人员设计接口、开发Agent插件、构建Prompt等费时费力的一系列定制开发;同时面对不同大模型的差异,还需要额外的重复性工作进行适配。 随着模型上下文协议(Model Context Protocol,MCP)的标准化普及,这一局面被彻底重构。MCP通过定义统一的上下文交互规范,为应用程序与AI模型建立了 “通用通信协议”。 基于此,BaikalDB团队创新推出‌BaikalDB MCP Server‌,将其打造为连接LLM与分布式存储系统的 “智能USB接口” ——该方案具备三大核心价值: 1. 零开发集成‌:支持主流LLM通过标准化协议直接访问BaikalDB,无需编写任何适配代码。 2. 全链路自动化‌:从自然语言意图理解、SQL智能生成到查询执行与数据分析,实现端到端闭环。 3. 多模型兼容性‌:屏蔽底层技术差异,一套接口适配GPT、Claude、文心一言等各类大模型。 02 MCP: AI USB接口 2024年11月由Anthropic公司提出的模型上下文协议MCP,是一种标准化的大模型与外部数据源、工具交互的开放协议。来源于USB接口范式的设计灵感,MCP的核心思想在于:通过创建一个通用的标准(如USB接口设计),解决大语言模型与外部系统间的“信息孤岛” 问题,该协议通过三大核心原则重构AI开发生态: 1. 即插即用标准化:定义统一的上下文交换格式,使大模型与数据源/工具的对接效率提升80%以上。 2. 组件解耦化:支持不同AI模块的热插拔组合,开发者可像搭积木般构建复杂AI系统。 3. 语义透明化:通过标准化上下文标记,实现跨组件意图传递的零损耗。 △MCP设计理念 2.1 MCP 组成 如上图所示,MCP 由三个核心组件构成:MCP Host、MCP Client 和 MCP Server: 官方文档链接: https://modelcontextprotocol.io/clients https://modelcontextprotocol.io/quickstart/client https://modelcontextprotocol.io/quickstart/server https://github.com/modelcontextprotocol/servers?tab=readme-ov-file MCP Server的三类能力: 工具类(Tools)—— 模型的「智能外设」 供模型调用的函数或服务,用于执行特定任务。如一个天气查询工具,获取指定城市的天气信息。 资源类(Resources)——模型的「知识库」 供模型读取的数据源,如文件数据或 API 响应内容,为模型提供了丰富的上下文信息,增强了模型的理解能力。 提示词(Prompts)——模型的「操作指南」 预先编写的模板,旨在帮助用户完成特定的任务,通常是为了优化工具或资源的使用,提供一种更高效、更准确的交互方式。 MCP Client和Server之间的三种通讯方式: STDIO 传输 MCP Server运行在本地。 通过标准输入(stdin)和标准输出(stdout)建立双向通信,1对1服务。 SSE 传输 MCP Server运行在本地或远程运行。 通过服务器发送事件协议(SSE)进行通信,支持N对1服务。 在 2024-11-05 版本废弃,被 Streamable HTTP 替代,后者将 SSE 作为可选的流式传输机制纳入其中。 Streamable HTTP 传输 MCP Server运行在本地或远程运行。 通过可流式HTTP传输协议通信,支持N对1服务。 支持流式传输,适合大数据量场景,提供更灵活的传输能力 2.2 MCP 流程 文心快码Comate是百度基于文心大模型开发的智能代码助手,旨在通过AI技术重构编程流程,提升开发效率与代码质量。目前Comate不仅支持‌‌智能代码生成‌、单元测试生成等功能,还支持接入外部MCP Server与大模型进行交互。 以在文心快码Comate里通过BaikalDB MCP Server对BaikalDB数据进行查询分析举例: 1. MCP Host:Comate Desktop 作为 Host,负责接收提问【分析42601969用户在 2023-3月每天的转化总数,按照时间升序排序,用折线图展示,并分析趋势走向 】并与大模型交互。大模型解析提问,并生成对应的SQL。 2. MCP Client:当大模型决定需要baikaldb_mcp/read_query Tool,Comate 中内置的 MCP Client 会被激活。这个Client负责与BaikalDB MCP Server建立链接并调用read_query工具。 3. MCP Server:BaikalDB MCP Server被调用,接收、执行查询语句,最终返回SQL执行结果。 完整执行流程:你的问题 → Comate Desktop → 大模型 → 需要查询BaikalDB表,并生成对应SQL → MCP Client 连接 → BaikalDB MCP Server → 执行SQL并返回结果 → Comate生成回答 → 生成折线图。 MCP架构设计使得如Comate等LLM应用,可以在不同场景下灵活调用各种工具和数据源,而开发者只需专注于开发对应的 MCP Server,无需关心 Host 和 Client 的实现细节。 03 BaikalDB MCP Server 3.1 BaikalDB MCP Server主要功能 BaikalDB MCP Server提供了以下功能,支持大模型直接和BaikalDB数据库进行交互: 1. 工具类(Tools):大模型可以根据上下文按需调取的直接和BaikalDB交互的工具。 链接操作:链接到指定的BaikalDB库 connect_baikaldb:给定链接信息(包括host,port,username,password,database),连接到对应的BaikalDB数据库,使用过程中支持动态切换不同的BaikalDB集群。 查询操作:包括获取库表信息,执行SELECT/DML SQL,分析SQL索引使用扫描量等。 show_all_databases:获取所有的数据库列表信息。 db_overview:获取指定数据库中所有表的概览信息。 table_overview:获取指定表的概览信息,包括:表结构(show create table)、表示例数据(select * from table limit 3)。 read_query:执行select sql并返回csv结果数据,大模型拿到结果可以进行智能分析、智能绘图等等。 write_query:执行建删表、插入删除变更等dml sql并返回操作结果。 analyze_select_query:分析查询SQL执行情况:使用的索引,索引扫描/过滤/反查行数等,支持大模型进行索引分析推荐。 模板操作(优化复杂场景使用):支持预先导入模板SQL(如百度智能云推出的Sugar BI SQL模板),帮助大模型理解业务逻辑,后续大模型可在模板SQL基础上改写查询分析,并支持基于模板进行二次查询(如再次聚合),不同BaikalDB用户之间模板不共享。 get_all_bi_sql_template_list:查询当前BaikalDB用户已导入的SQL模板列表。 get_bi_sql_template_detail:获取SQL模板详细信息,包括SQL模板,相关表Schema等。 add_bi_sql_template:指定模板说明,模板SQL等,添加新的SQL模板。 delete_bi_sql_template:删除指定的SQL模板。 2. 资源类 (Resources) 和 提示词 (Prompts): 目前BaikalDB MCP Server暂未定义资源和提示词,未来会根据使用场景灵活添加,以更好的引导大模型和BaikalDB进行交互。 通过以上工具,BaikalDB MCP Server使得大模型能自主的查询/操作数据库,进行多轮数据智能分析,并且可以结合大模型和其他MCP能力,并高效的通过多种形式呈现分析结果(如Excel文本,绘制图表等)。 3.2 BaikalDB MCP Server应用场景 BaikalDB MCP Server拥有以上能力后,就可以在以下场景中进行使用: 1. 实时数据分析和智能报表 大模型可以实时查询BaikalDB的业务数据,生成可视化报表,并可结合历史上下文生成分析报告或者建议。 2. 多数据源联邦查询分析 通过MCP支持大模型同时访问BaikalDB和其他数据源(如知识库、Mysql等),实现联邦分析。 3. 开发测试提效 在开发测试过程中,通过自然语言交互,建删改表、增删改查、构造测试数据、分析SQL执行情况等,不用额外切多个窗口执行SQL操作。 04 BaikalDB MCP Server使用 BaikalDB MCP Server使得BaikalDB不单是个高性能的分布式数据库,还是大模型的分析执行插件,使得用户不再需要任何开发,即可对BaikalDB存储的数据进行智能分析。 4.1 Comate 配置 以Comate举例:按照以下图示步骤,将BaikalDB MCP Server json配置添加到Comate MCP配置文件中,即可以在Comate中使用大模型操作BaikalDB数据库。当然后续我们会尝试将BaikalDB MCP Server发布到MCP仓库,使得配置更简单! BaikalDB MCP Server Json配置如下: { "mcpServers":{ "baikaldb_mcp":{ "transport":"sse/streamableHttp", "url":"BaikalDB MCP Server URL", "headers":{}, "timeout":50 } } } 4.2 Demo 演示 示例1:智能分析 下方视频展示了,在Comate中用自然语言对数据库数据进行智能分析和图表展示。 智能分析视频 示例2:开发测试提效 下方视频展示了,开发测试过程中的智能建表、导数、SQL执行分析、索引推荐等。 提效视频 示例3:基于模板智能分析 下方视频展示了,在复杂业务场景中,通过预先导入的BI SQL模板进行更高效准确的智能分析。 模板分析视频 05 总结 BaikalDB MCP Server的核心价值在于打破了数据库数据的信息壁垒,构建了一条完整的智能数据处理链路,实现了从自然语言解析到业务建议输出的端到端能力:‌ 自然语言理解:将非结构化查询转化为结构化意图。 数据库操作:自动生成并执行SQL语句。 数据分析:对查询结果进行多维解读并生成可执行建议。 但是也存在一些问题:‌ SQL生成准确性高度依赖元数据质量(如表结构、字段注释)。 复杂业务逻辑描述困难。 大模型在长上下文中的注意力分配问题。 当然,随着大模型推理能力的持续提升和MCP协议生态的完善,这种数据智能范式将在金融风控、供应链优化、智能客服等复杂业务场景中展现出更大的价值潜力。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册