bce-qianfan-sdk

baidubceApache-2.0更新放缓

封装百度千帆大模型平台能力的 SDK,提供对话、向量化、重排和微调等 LMOps 最佳实践,让开发者便捷接入文心一言等模型服务。

Provide best practices for LMOps, as well as elegant and convenient access to the features of the Qianfan MaaS Platform. (提供大模型工具链最佳实践,以及优雅且便捷地访问千帆大模型平台)

go/qianfan/v0.0.15发布于 2025-04-18 09:51 UTC381star61fork同步于 2026-11-07 07:29 UTC

怎么上手

由 README 提炼,执行前请确认
pip install 'qianfan[dataset_base]'
硬件要求按 README 说明

README 未说明,SDK 为云端 API 调用,无本地显存或 GPU 要求

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

百度千帆大模型平台官方多语言 SDK,统一封装推理、训练与工具链能力

封装百度千帆大模型平台能力的 SDK,提供对话、向量化、重排和微调等 LMOps 最佳实践,让开发者便捷接入文心一言等模型服务。

核心能力

  • 封装 ERNIE 与开源模型的对话、续写、Embedding 推理接口
  • 支持异步、流式调用与批量推理
  • 以 Dataset/Trainer 串联数据准备、精调预训练到模型托管
  • 提供 OpenAI SDK 兼容方式,改 base_url 与 api_key 即可调用
  • 覆盖 Python、Go、Java、JavaScript 四种语言 SDK

容易踩的坑

需先在百度智能云控制台获取 Access Key 与 Secret Key 并配置环境变量;API Key 方式无法使用训练、模型管理与数据集管理功能;Python 需 3.7.0 或更高版本

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本go/qianfan/v0.0.15
  1. go/qianfan/v0.0.15Go v0.0.15最新正式版2025-04-18 · 2025-04-18 09:51 UTC
  2. js/v0.2.3JavaScript v0.2.32025-02-20 · 2025-02-20 02:43 UTC
    查看更新说明

    What's Changed

    Release note (#760)

    Full Changelog: https://github.com/baidubce/bce-qianfan-sdk/compare/py/v0.4.12.3...js/v0.2.3

  3. py/v0.4.12.3Python v0.4.12.32025-02-07 · 2025-02-07 06:47 UTC
    查看更新说明

    What's Changed

    Release note (#832)

    • feat: 优化 Python SDK 流式输出 (#884) @Dobiichi-Origami
    • feat: golang 增加更多可调试信息 (#885) @Dobiichi-Origami
    • feat: 移除模型名的强制小写转换 (#889) @Dobiichi-Origami
    • 在压测中支持反思模型 (#891) @Dobiichi-Origami

    Full Changelog: https://github.com/baidubce/bce-qianfan-sdk/compare/py/v0.4.12.2...py/v0.4.12.3

  4. py/v0.4.12.2Python v0.4.12.22024-12-12 · 2024-12-12 11:31 UTC
    查看更新说明

    What's Changed

    Release note (#832)

    • feat: 添加删除精调作业和任务的管控接口 (#874) @Dobiichi-Origami
    • 更新 V2 调用的传参列表 (#882) @Dobiichi-Origami

    Full Changelog: https://github.com/baidubce/bce-qianfan-sdk/compare/py/v0.4.12.1...py/v0.4.12.2

  5. go/qianfan/v0.0.14Go v0.0.142024-12-12 · 2024-12-12 11:22 UTC
    查看更新说明

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    百度千帆大模型平台 SDK

    LICENSE Documentation Status Feedback Issue Feedback Ticket Python Release PyPI version Python Version Go Release Go Reference Go Version Java Release Maven Central Version Java Version JS Release NPM Version JS Version

    简介

    framwwork

    千帆 SDK 提供大模型工具链最佳实践,让 AI 工作流和 AI 原生应用优雅且便捷地访问千帆大模型平台。SDK 核心能力包含三大部分:大模型推理,大模型训练,以及通用和扩展:

    • 大模型推理:实现了对一言(ERNIE)系列、开源大模型等模型推理的接口封装,支持对话、补全、Embedding 等。
    • 大模型训练:基于平台能力支持端到端的大模型训练过程,包括训练数据,精调/预训练,以及模型托管等。
    • 通用与扩展:通用能力包括了 Prompt/Debug/Client 等常见的 AI 开发工具。扩展能力则基于千帆特性适配常见的中间层框架。

    如何安装

    目前千帆Python SDK 已发布到 PyPI ,用户可使用 pip 命令进行安装,Python需要 3.7.0 或更高的版本。

    pip install 'qianfan[dataset_base]'
    

    在安装完成后,用户可以参考 文档 在命令行中快速使用千帆平台功能,或者在代码内引入千帆 SDK 并使用

    import qianfan
    

    更多安装选项见文档

    多语言SDK

    其它语言见如下文档:

    快速使用

    在使用千帆 SDK 之前,用户需要 百度智能云控制台 - 安全认证 页面获取 Access Key 与 Secret Key,具体流程参见平台 说明文档。在获得了 Access Key 与 Secret Key 后,用户即可开始使用 SDK:

    import os
    import qianfan
    
    os.environ["QIANFAN_ACCESS_KEY"] = "..."
    os.environ["QIANFAN_SECRET_KEY"] = "..."
    
    # 接下来就可以调用 SDK 的所有功能
    chat = qianfan.ChatCompletion()
    resp = chat.do(messages=[{"role": "user", "content": "你好,千帆"}])
    
    print(resp["result"])
    

    除了通过环境变量设置外,千帆 SDK 还提供了通过 DotEnv 加载 .env 文件和通过代码配置的方式,详细参见 SDK 配置 部分。

    这里是一些其他认证方式,请仅在无法获取 Access Key 与 Secret Key 时使用。这些认证方式已经过时,将在未来从 SDK 中移除。

    API Key (AK) 和 Secret Key (SK) 是用户在调用千帆模型相关功能时所需要的凭证。具体获取流程参见平台的应用接入使用说明文档,但该认证方式无法使用训练、发布模型等功能,若需使用请使用 Access Key 和 Secret Key 的方式进行认证。在获得并配置了 AK 以及 SK 后,用户即可开始使用 SDK:

    import os
    import qianfan
    
    os.environ["QIANFAN_AK"] = "..."
    os.environ["QIANFAN_SK"] = "..."
    
    # 只可以调用模型推理相关功能
    chat = qianfan.ChatCompletion()
    resp = chat.do(messages=[{"role": "user", "content": "你好,千帆"}])
    
    print(resp["result"])
    

    适用范围:

    功能API KeyAccess Key
    Chat 对话✅✅
    Completion 续写✅✅
    Embedding 向量化✅✅
    Plugin 插件调用✅✅
    文生图✅✅
    大模型调优❌✅
    大模型管理❌✅
    大模型服务❌✅
    数据集管理❌✅

    功能导览

    我们提供了数个 cookbook,可以快速了解如何使用 SDK 以及与第三方组件进行交互。

    大模型推理

    目前千帆 SDK 支持用户使用如下大模型预测能力

    • Chat 对话
    • Completion 续写
    • Embedding 向量化
    • Plugin 插件调用
    • Text2Image 文生图
    • Image2Text 图生文
    • Reranker 重排序

    如下是使用千帆 SDK 调用 Chat 对话的例子,同时 SDK 还支持异步、流式调用和批量推理,详见 推理服务

    import os
    import qianfan
    
    # 动态获取最新模型列表依赖 IAM Access Key 进行鉴权,使用应用 AK 鉴权时不支持该功能
    os.environ["QIANFAN_ACCESS_KEY"] = "..."
    os.environ["QIANFAN_SECRET_KEY"] = "..."
    
    # 模型名称可以通过 qianfan.ChatCompletion.models() 获取
    # 也可以在命令行运行 qianfan chat --list-model 查看
    chat_comp = qianfan.ChatCompletion(model="ERNIE-3.5-8K")
    resp = chat_comp.do(
        messages=[{"role": "user", "content": "你好,千帆"}],
        # (可选)设置模型参数,与 API 参数一致
        top_p=0.8,
        temperature=0.9,
        penalty_score=1.0,
    )
    
    print(resp["result"])
    

    OpenAI SDK兼容介绍

    千帆模型服务提供了与OpenAI兼容的使用方式,用户只需调整api_key、base_url、model等参数,就可以通过OpenAI SDK调用千帆模型推理服务。

    base_url说明

    base_url指模型服务的请求地址。通过该地址,可以请求服务提供的功能或数据。当使用OpenAI兼容接口调用千帆模型服务时,需要配置base_url。

    API Key说明

    API_Key是在调用推理服务API时使用,查看API Key,此API Key永久有效。获取步骤如下:

    1. 登录百度千帆-系统管理-创建API Key

    2. 点击创建API Key 如果已有API Key,可跳过此步骤。如需创建,点击创建按钮,可选择全部权限或自定义权限-模型服务权限。

    3. 配置资源 配置API Key对应的V2版本应用对应的appid,即对应appid可以使用API Key调用推理服务V2版本接口。

    • 全部应用身份,表示appid对应的V2版本应用,都可以使用该API Key。
    • 自定义应用身份,表示特定V2应用对应的appid,可以使用该API Key。
    1. 点击确定
    2. 在API Key列表查看API Key值
    appid说明

    支持通过自定义header方式入参appid,通过appid区分调用量和账单,具体是否用方式参考:多应用管理

    支持的模型列表

    目前推理服务V2版本兼容通过OpenAI方式调用,支持模型清单请查看 开始使用-模型列表

    SDK支持清单

    大模型训练

    在预置模型无法满足业务场景时,可使用大模型精调和预训练接口,来定制专属大模型。大致流程可分为:准备数据(Dataset) -> 训练(Trainer) -> 模型评估(Evaluation) -> 服务(Service);

    Dataset

    用户可以在本地通过千帆 Python SDK 提供的接口,加载平台的数据集并用于后续的训练流程

    from qianfan.dataset import Dataset
    
    ds = Dataset.load(qianfan_dataset_id="your_dataset_id")
    

    且千帆 Python SDK 集成了一系列本地的数据处理功能,允许用户在本地对来自多个数据源的数据进行增删改查等操作,详见Dataset 框架。

    以下是一个通过加载本地数据集、处理并上传到千帆的例子。所有数据集在本地处理前都必须先通过 load 或 save 方法加载到本地。

    假设我们有以下格式的 Json 数据集:

    [
      {"question": "...", "answer":  "..."},
      {"question": "...", "answer":  "..."},
      {"question": "..."}
    ]
    
    from typing import Dict, Any
    
    from qianfan.dataset import Dataset
    
    # 从本地文件导入
    ds = Dataset.load(data_file="path/to/dataset_file.json")
    
    def filter_func(row: Dict[str, Any]) -> bool:
      return "answer" in row.keys()
    
    def map_func(row: Dict[str, Any]) -> Dict[str, Any]:
      return {
          "prompt": row["question"],
          "response": row["answer"],
      }
    
    # 链式调用处理数据
    ds.filter(filter_func).map(map_func).pack()
    
    # 上传到千帆
    # 数据集只有上传到千帆后才可以用于训练
    # 请确保你的数据集格式符合要求
    ds.save(qianfan_dataset_id="your_dataset_id")
    
    Trainer

    千帆 Python SDK 以Pipeline为基础串联整个模型训练的流程,同时允许用户更好的把控训练流程状态 Trainer 框架。 以下是一个快速实现ERNIE-Speed-8K fine-tuning的例子:

    from qianfan.dataset import Dataset
    from qianfan.trainer import Finetune
    
    # 加载千帆平台上的数据集
    ds: Dataset = Dataset.load(qianfan_dataset_id="ds-xxx")
    
    # 新建trainer LLMFinetune,最少传入train_type和dataset
    # 注意fine-tune任务需要指定的数据集类型要求为有标注的非排序对话数据集。
    trainer = Finetune(
        train_type="ERNIE-Speed-8K",
        dataset=ds, 
    )
    
    trainer.run()
    
    
    Model

    千帆 Python SDK 对模型管理能力进行了抽象和封装,开发者可以通过Model模块进行模型相关的管理,和批量推理,评估等操作。

    以下是一个基于模型实现批量推理的例子:

    from qianfan.model import Model
    from qianfan.dataset import Dataset
    
    ds = Dataset.load(qianfan_dataset_id="ds-xx")
    m = Model(version_id="amv-xx")
    
    m.batch_inference(dataset=ds)
    

    通用与扩展

    Prompt

    SDK 支持对文生文、文生图等任务的 Prompt 进行管理、优化、评估等操作,详见Prompt 管理

    Client

    SDK 内置了一个命令行工具,能够在终端直接与千帆平台进行交互,例如与大模型对话、发起训练任务、预览数据集等等,详见 命令行工具

    API Resources

    平台API能力汇总,详见平台API能力

    其他

    Check API References for more details.

    联系我们

    如使用过程中遇到什么问题,或对SDK功能有建议,可通过如下方式联系我们

    License

    Apache-2.0