Giter VIP home page Giter VIP logo

app-builder's Introduction

logo

License Supported Python versions Supported OSs

简体中文 | English


什么是AppBuilder-SDK

百度智能云千帆AppBuilder-SDK是百度智能云千帆AppBuilder面向AI原生应用开发者提供的一站式开发平台的客户端SDK。

百度智能云千帆AppBuilder-SDK提供了以下AI应用开发者的必备功能:

  • 调用
    • 调用大模型,可自由调用您在百度智能云千帆大模型平台的模型,开发并调优prompt
    • 调用能力组件,提供40+个源于百度生态的优质组件,赋能Agent应用
    • 调用AI原生应用,通过AppBuilderClient可访问并管理在百度智能云千帆AppBuilder网页端发布的AI原生应用,并可注册本地函数联动端云组件
  • 编排
    • 配置知识库,通过KnowledgeBase管理知识库,进行文档及知识切片的增删改查,配合网页端开发产业级的RAG应用
    • 编排工作流,提供了MessageComponentAgentRuntime多级工作流抽象,实现工作流编排,并可与LangChain、OpenAI等业界生态能力打通
  • 监控
    • 提供了可视化Tracing、详细DebugLog等监控工具,助力开发者在生产环境应用
  • 部署
    • AgentRuntime支持部署为基于Flaskgunicorn的API服务
    • AgentRuntime支持部署为基于Chainlit的对话框交互前端
    • 提供了appbuilder_bce_deploy工具,可快速部署程序到百度云,提供公网API服务,联动AppBuilder工作流

如何安装

百度智能云千帆AppBuilder-SDK 最新版本 0.9.1 (2024-07-25)

百度智能云千帆AppBuilder-SDK 更新记录&最新特性请查阅我们的版本说明

  • Python版本安装,要求Python版本 >= 3.9
python3 -m pip install --upgrade appbuilder-sdk
  • JavaGo 版本安装,以及通过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语言的内存回收机制是什么"})

playground = appbuilder.Playground(prompt_template=template_str, model="ERNIE Speed-AppBuilder")

output = playground(input, stream=False, temperature=1e-10)
print(output.model_dump_json(indent=4))

回答展示

{
    "content": "Java语言的内存回收机制是垃圾回收(Garbage Collection,GC)。垃圾回收是Java虚拟机(JVM)提供的一种自动内存管理机制。它负责自动检测并回收不再使用的对象,以释放内存空间。在Java中,当对象不再被引用或显式地设置为null时,垃圾回收器会将其标记为可回收对象,并在适当的时候进行回收。",
    "name": "msg",
    "mtype": "dict",
    "id": "749b0d23-0032-443e-b48a-83dcf50044e1",
    "extra": {},
    "token_usage": {
        "prompt_tokens": 25,
        "completion_tokens": 76,
        "total_tokens": 101
    }
}

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 Speed-AppBuilder")

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原生应用示例,请浏览应用广场
  • 更多代码CookBook,请浏览 CookBooks,我们有以下cookbook推荐您优先阅读:
应用类型 应用链接 推荐理由
基础能力组件 通用文字识别 体验百度AI开放平台提供的通用文字识别-高精度版的精准识别结果
基础能力组件 基础组件服务化 基础组件可通过flask实现服务化部署 或 通过chainlit实现可交互的前端部署,集成到您的系统中
流程编排 Assistant SDK 学习如何纯代码态搭建一个Agent应用,并实现自定义工作流程及FunctionCall
端到端应用 AppBuilder Client SDK 使用AppBuilder网页端创建并发布一个Agent应用后,通过AppBuilderClient SDK集成到你的系统中
端到端应用 简历筛选小助手 通过对本地简历库的简历进行解析、切片、创建索引,实现基于JD进行简历筛选,并对筛选的Top1简历进行总结
端到端应用 企业级问答系统 学习如何通过SDK与网页平台搭配,实现离线知识库生产与在线问答
进阶应用 使用appbuilder_bce_deploy部署公有云服务 一键将自己的服务部署到百度智能云,部署后可以自动生成公网ip,联动工作流的API节点
进阶应用 使用appbuilder_trace_server实现对使用状态的跟踪 使用Appbuilder-SDK Trace功能实现对组件、应用调用情况的追踪

百度智能云千帆AppBuilder-SDK 能力全景图

wechat

用户文档

开源社区与活动

百度智能云千帆AppBuilder-SDK微信交流群

wechat

License

AppBuilder-SDK遵循Apache-2.0开源协议。

app-builder's People

Contributors

seiriosplus avatar barrierye avatar mrchengmo avatar ide-rea avatar guru4elephant avatar hermitgreen avatar sucuicong avatar c9luster avatar userpj avatar longchao1916 avatar cjopengler avatar foehnc avatar leidongchang avatar qjing666 avatar herbertarthur avatar raullese avatar qiuhelong avatar samaritan1998 avatar birham-red-bd avatar xenon0220 avatar horsedream avatar hidu avatar xuyangsun avatar super-bjut avatar jzhang533 avatar aiyinyuedejustin avatar barry2025 avatar buchongyu2 avatar fengjial avatar smallx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.