Baidu AI Search
by userpj
What is Baidu AI Search
什么是AppBuilder-SDK
百度智能云千帆AppBuilder-SDK是百度智能云千帆AppBuilder面向AI原生应用开发者提供的一站式开发平台的客户端SDK。
AppBuilder-SDK 有哪些功能?
百度智能云千帆AppBuilder-SDK提供了以下AI应用开发者的必备功能:
- 调用
- 调用大模型,可自由调用您在百度智能云千帆大模型平台的模型,开发并调优prompt
- 调用能力组件,提供40+个源于百度生态的优质组件,赋能Agent应用
- 调用AI原生应用,通过AppBuilderClient可访问并管理在百度智能云千帆AppBuilder网页端发布的AI原生应用,并可注册本地函数联动端云组件
- 编排
- 配置知识库,通过KnowledgeBase管理知识库,进行文档及知识切片的增删改查,配合网页端开发产业级的
RAG
应用 - 编排工作流,提供了
Message
、Component
、AgentRuntime
多级工作流抽象,实现工作流编排,并可与LangChain、OpenAI等业界生态能力打通
- 配置知识库,通过KnowledgeBase管理知识库,进行文档及知识切片的增删改查,配合网页端开发产业级的
- 监控
- 提供了可视化Tracing、详细DebugLog等监控工具,助力开发者在生产环境应用
- 部署
AgentRuntime
支持部署为基于Flask
与gunicorn
的API服务AgentRuntime
支持部署为基于Chainlit
的对话框交互前端- 提供了
appbuilder_bce_deploy
工具,可快速部署程序到百度云,提供公网API服务,联动AppBuilder工作流
使用 AppBuilder-SDK 可以构建什么应用?
产业级RAG应用
AppBuilder-SDK提供多类型组件,覆盖以下构建产业级RAG
应用的完整步骤:
- 文档解析(Parser)
- 文档切片(Chunker)
- 切片向量化(Embedding)
- 索引构建(Indexing)
- 切片召回(Retrieval)
- 答案生成(Answer Generation)
AppBuilder-SDK不仅提供了百度智能云提供的基础能力组件,同时提供经过深度优化的大模型高级能力组件,可以组合下表提供的原子能力组件,构建个性化的RAG应用RAG 原子能力 CookBook:
阶段 | 组件名称 | 组件类型 | 组件链接 |
---|---|---|---|
文档解析 | 文档矫正增强 (DocCropEnhance) | 基础能力组件 | 链接 |
文档解析 | 文档格式转换 (DocFormatConverter) | 基础能力组件 | 链接 |
文档解析 | 文档解析(DocParser) | 基础能力组件 | 链接 |
文档解析 | 表格抽取组件(ExtractTableFromDoc) | 基础能力组件 | 链接 |
文档解析 | 通用文字识别-高精度版(GeneralOCR) | 基础能力组件 | 链接 |
文档切片 | 文档切分(DocSplitter) | 基础能力组件 | 链接 |
切片向量化 | 向量计算(Embedding) | 基础能力组件 | 链接 |
索引构建及切片召回 | 向量检索-VectorDB(BaiduVectorDBRetriever) | 基础能力组件 | 链接 |
索引构建及切片召回 | 向量检索-BES(BaiduElasticSearchRetriever) | 基础能力组件 | 链接 |
文档切片及答案生成 | 问答对挖掘(QAPairMining) | 高级能力组件 | 链接 |
文档切片及答案生成 | 相似问生成(SimilarQuestion) | 高级能力组件 | 链接 |
答案生成 | 标签抽取(TagExtraction) | 高级能力组件 | 链接 |
答案生成 | 复杂Query判定(IsComplexQuery) | 高级能力组件 | 链接 |
答案生成 | 复杂Query分解(QueryDecomposition) | 高级能力组件 | 链接 |
答案生成 | 多轮改写 (QueryRewrite) | 高级能力组件 | 链接 |
答案生成 | 阅读理解问答(MRC) | 高级能力组件 | 链接 |
答案生成 | 幻觉检测(Hallucination Detection) | 高级能力组件 | 链接 |
如何安装AppBuilder-SDK
百度智能云千帆AppBuilder-SDK 最新版本 1.0.5 (2025-04-05)
百度智能云千帆AppBuilder-SDK 更新记录&最新特性请查阅我们的版本说明
Python
版本安装,要求Python版本 >=3.9
python3 -m pip install --upgrade appbuilder-sdk
Java
及Go
版本安装,以及通过Docker
镜像使用,请查阅安装说明
快速开始你的AI原生应用开发之旅
- 请在
>=3.9
的Python环境安装appbuilder-sdk
后使用该端到端应用示例- 示例中提供了试用Token,访问和QPS受限,正式使用请替换为您的个人Token
1. 调用大模型
- 使用
Playground
组件可自由调用,您在百度智能云千帆大模型平台有权限的任何模型,并可自定义prompt
模板 与 模型参数
代码示例
import appbuilder
import os
# 设置环境中的TOKEN,以下TOKEN为访问和QPS受限的试用TOKEN,正式使用请替换为您的个人TOKEN
os.environ["APPBUILDER_TOKEN"] = "bce-v3/ALTAK-n5AYUIUJMarF7F7iFXVeK/1bf65eed7c8c7efef9b11388524fa1087f90ea58"
# 定义prompt模板
template_str = "你扮演{role}, 请回答我的问题。\n\n问题:{question}。\n\n回答:"
# 定义输入,调用playground组件
input = appbuilder.Message({"role": "java工程师", "question": "请简要回答java语言的内存回收机制是什么,要求100字以内"})
playground = appbuilder.Playground(prompt_template=template_str, model="Qianfan-Agent-Speed-8K")
# 以打字机的方式,流式展示大模型回答内容
output = playground(input, stream=True, temperature=1e-10)
for stream_message in output.content:
print(stream_message)
# 流式输出结束后,可再次打印完整的大模型对话结果,除回答内容外,还包括token的用量情况
print(output.model_dump_json(indent=4))
回答展示
Java语言的
内存回收机制是通过垃圾回收器(Garbage Collector)来实现的。
垃圾回收器会自动检测不再使用的对象,并释放其占用的内存空间,从而确保系统的内存不会被耗尽。
Java提供了多种垃圾回收器,如串行回收器、并行回收器、CMS回收器和G1回收器等,以满足不同场景下的性能需求
。
{
"content": "Java语言的内存回收机制是通过垃圾回收器(Garbage Collector)来实现的。垃圾回收器会自动检测不再使用的对象,并释放其占用的内存空间,从而确保系统的内存不会被耗尽。Java提供了多种垃圾回收器,如串行回收器、并行回收器、CMS回收器和G1回收器等,以满足不同场景下的性能需求。",
"name": "msg",
"mtype": "dict",
"id": "2bbee989-40e3-45e4-9802-e144cdc829a9",
"extra": {},
"token_usage": {
"prompt_tokens": 35,
"completion_tokens": 70,
"total_tokens": 105
}
}
2. 调用能力组件
- SDK提供了40+个源于百度生态的优质组件,列表可见组件列表, 调用前需要申领免费试用额度
- 示例中的组件为
RAG with Baidu Search增强版
, 结合百度搜索的搜索引擎技术和ERNIE模型的语义理解能力,可以更准确地理解用户的搜索意图,并提供与搜索查询相关性更高的搜索结果
代码示例
import appbuilder
import os
# 设置环境中的TOKEN,以下TOKEN为访问和QPS受限的试用TOKEN,正式使用请替换为您的个人TOKEN
os.environ["APPBUILDER_TOKEN"] = "bce-v3/ALTAK-n5AYUIUJMarF7F7iFXVeK/1bf65eed7c8c7efef9b11388524fa1087f90ea58"
rag_with_baidu_search_pro = appbuilder.RagWithBaiduSearchPro(model="ERNIE-3.5-8K")
input = appbuilder.Message("9.11和9.8哪个大")
result = rag_with_baidu_search_pro.run(
message=input,
instruction=appbuilder.Message("你是专业知识助手"))
# 输出运行结果
print(result.model_dump_json(indent=4))
回答展示
{
"content": "9.11小于9.8。在比较两个小数的大小时,需要逐位比较它们的数值,包括整数部分和小数部分。对于9.11和9.8,整数部分都是9,所以需要在小数部分进行比较。小数点后的第一位是1和8,显然1小于8,所以9.11小于9.8。",
"name": "msg",
"mtype": "dict",
"id": "eb31b7de-dd6a-485f-adb9-1f7921a6f4bf",
"extra": {
"search_baidu": [
{
"content": "大模型‘智商’受质疑:9.11 vs 9...",
"icon": "https://appbuilder.bj.bcebos.com/baidu-search-rag-pro/icon/souhu.ico",
"url": "https://m.sohu.com/a/793754123_121924584/",
"ref_id": "2",
"site_name": "搜狐网",
"title": "大模型‘智商’受质疑:9.11 vs 9.8的比较揭示AI理解能力的..."
},
{
"content": "究竟|9.11比9.8大?大模型们为何会...",
"icon": "https://appbuilder.bj.bcebos.com/baidu-search-rag-pro/icon/tencent.svg.png",
"url": "https://new.qq.com/rain/a/20240717A07JLV00",
"ref_id": "4",
"site_name": "腾讯网",
"title": "究竟|9.11比9.8大?大模型们为何会在小学数学题上集体..."
},
...
]
},
"token_usage": {
"completion_tokens": 77,
"prompt_tokens": 2008,
"total_tokens": 2085
}
}
3. 调用AI原生应用
- 示例中的应用为:说唱导师,点击该连接在网页端试用
代码示例
import appbuilder
import os
# 设置环境中的TOKEN,以下TOKEN为访问和QPS受限的试用TOKEN,正式使用请替换为您的个人TOKEN
os.environ["APPBUILDER_TOKEN"] = "bce-v3/ALTAK-n5AYUIUJMarF7F7iFXVeK/1bf65eed7c8c7efef9b11388524fa1087f90ea58"
# 从AppBuilder网页获取并传入应用ID,以下为说唱导师应用ID
app_id = "4678492a-5864-472e-810a-654538d3503c"
app_builder_client = appbuilder.AppBuilderClient(app_id)
conversation_id = app_builder_client.create_conversation()
answer = app_builder_client.run(conversation_id, "以“上班狼狈却又追逐梦想“为主题进行一首说唱创作,保持押韵, 控制在200字以内")
print(answer.content.answer)
回答展示
好的,我们来以“上班狼狈却又追逐梦想”为主题,进行一段简短的说唱创作。这里是一个简单的示例,你可以根据自己的感觉进行调整:
Intro:
朝九晚五,生活重压,
狼狈上班,却心怀梦想,
每一天,都是新的挑战,
为了那未来,我奋发向前。
Verse 1:
穿上西装,打好领带,
步入人群,去追逐名利,
虽然狼狈,却不曾言败,
因为心中,有梦想在激励。
Hook:
上班狼狈,却不曾放弃,
追逐梦想,是我心中的火炬,
照亮前路,指引我前行,
无论多难,我都要坚持到底。
这首小曲儿以“上班狼狈却又追逐梦想”为主题,通过押韵的方式表达了上班族虽然生活艰辛,但依然怀揣梦想,勇往直前的精神。希望你喜欢!
更多示例
应用类型 | 应用链接 | 推荐理由 |
---|---|---|
基础能力组件 | 通用文字识别 | 体验百度AI开放平台提供的通用文字识别-高精度版的精准识别结果 |
基础能力组件 | 基础组件服务化 | 基础组件可通过flask实现服务化部署 或 通过chainlit实现可交互的前端部署,集成到您的系统中 |
流程编排 | Assistant SDK | 学习如何纯代码态搭建一个Agent应用,并实现自定义工作流程及FunctionCall |
端到端应用 | AppBuilder Client SDK | 使用AppBuilder网页端创建并发布一个Agent应用后,通过AppBuilderClient SDK集成到你的系统中 |
端到端应用 | Agent应用-工作流Agent | 使用AppBuilder网页端创建并发布一个工作流Agent应用后,通过AppBuilderClient SDK集成到你的系统中 |
端到端应用 | 通过AppBuilder-ToolCall功能实现端云组件联动的Agent | 学习Agent、FunctionCall的知识,并构造调用本地组件的Agent |
端到端应用 | 简历筛选小助手 | 通过对本地简历库的简历进行解析、切片、创建索引,实现基于JD进行简历筛选,并对筛选的Top1简历进行总结 |
端到端应用 | 企业级问答系统 | 学习如何通过SDK与网页平台搭配,实现离线知识库生产与在线问答 |
进阶应用 | 使用appbuilder_bce_deploy部署公有云服务 | 一键将自己的服务部署到百度智能云,部署后可以自动生成公网ip,联动工作流的API节点 |
进阶应用 | 使用appbuilder_trace_server实现对使用状态的跟踪 | 使用Appbuilder-SDK Trace功能实现对组件、应用调用情况的追踪 |
百度智能云千帆AppBuilder-SDK 能力全景图
用户文档
Github 文档
- 首页
- 快速上手:
- 开始你的第一个AI原生应用:
- 产业实践应用范例:
- SDK当前支持的编程语言
- 基础:
- 模型:
- 组件
- 监控:
- 部署:
- 平台:
- 应用:
- 知识库:
- 自定义组件:
- 应用:
- Agent:
- RAG:
- Workflow:
- 开发者指南:
- 快速上手:
开源社区与活动
-
Github Issue: 提交安装/使用问题、报告bug、建议新特性、沟通开发计划等
License
AppBuilder-SDK遵循Apache-2.0开源协议。
Leave a Comment
Comments section will be available soon. Stay tuned!
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
Ableton Live MCP Server
MCP Server implementation for Ableton Live OSC control
Airbnb MCP Server
AI Agent Marketplace Index Search MCP Server
MCP Server for AI Agent Marketplace Index from DeepNLP
Algorand MCP Implementation
Algorand Model Context Protocol (Server & Client)
mcp-server-apache-airflow
pypi.org/project/mcp-server-apache-airflow/
airtable-mcp-server
🗂️🤖 Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable bases
Airtable MCP Server
Search, create and update Airtable bases, tables, fields, and records using Claude Desktop and MCP (Model Context Protocol) clients
Alphavantage MCP Server
A MCP server for the stock market data API, Alphavantage API.
Amadeus MCP Server
Amadeus MCP(Model Context Protocol) Server
Anki MCP Server
An MCP server for Anki
Submit Your MCP Server
Share your MCP server with the community
Submit Now