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开源协议。

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.