当前位置: 首页 > news >正文

如何利用langchian调用百度大模型API

Baidu AI Cloud Qianfan Platform 使用LangChain进行聊天模型集成

概述

百度智能云的千帆平台是一个一站式的大模型开发和服务运营平台,为企业开发者提供了包括文心一言(ERNIE-Bot)和第三方开源模型在内的多种模型。主要分为三类模型:

  1. Embedding
  2. Chat
  3. Completion

本文介绍如何使用LangChain与千帆平台的聊天模型进行集成,具体对应LangChain的langchain/chat_models包。

API 初始化

在使用百度千帆平台的大模型服务前,需要初始化相关参数,可以通过环境变量或者直接传参进行初始化:

export QIANFAN_AK=XXX
export QIANFAN_SK=XXX
支持的模型
  • ERNIE-Bot-turbo(默认)
  • ERNIE-Bot
  • ERNIE-Speed-128K
  • BLOOMZ-7B
  • Llama-2-7b-chat
  • Llama-2-13b-chat
  • Llama-2-70b-chat
  • Qianfan-BLOOMZ-7B-compressed
  • Qianfan-Chinese-Llama-2-7B
  • ChatGLM2-6B-32K
  • AquilaChat-7B
基本设置和调用

使用示例代码初始化并调用聊天模型:

import os
from langchain_community.chat_models import QianfanChatEndpoint
from langchain_core.language_models.chat_models import HumanMessageos.environ["QIANFAN_AK"] = "Your_api_key"
os.environ["QIANFAN_SK"] = "Your_secret_Key"chat = QianfanChatEndpoint(streaming=True)
messages = [HumanMessage(content="Hello")]
response = chat.invoke(messages)print(response.content)
异步调用

可以使用异步方法进行调用:

await chat.ainvoke(messages)
批量调用

支持批量处理消息:

responses = chat.batch([messages])
print(responses[0].content)
流式处理

支持流式处理消息输出:

try:for chunk in chat.stream(messages):print(chunk.content, end="", flush=True)
except TypeError as e:print(e)
使用不同模型

默认使用ERNIE-Bot-turbo,如果需要使用其他模型,可以在初始化时指定:

chatBot = QianfanChatEndpoint(streaming=True,model="ERNIE-Bot",
)messages = [HumanMessage(content="Hello")]
response = chatBot.invoke(messages)
print(response.content)
模型参数

目前只有ERNIE-Bot和ERNIE-Bot-turbo支持以下参数,可以在调用时指定:

  • temperature
  • top_p
  • penalty_score

示例代码:

response = chat.invoke([HumanMessage(content="Hello")],**{"top_p": 0.4, "temperature": 0.1, "penalty_score": 1}
)
print(response.content)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c++进阶——继承
  • 数据库管理工具——DBeaver简介
  • 51单片机独立按键控制LED灯,按键按一次亮,再按一次灭
  • Jira的原理及应用详解(五)
  • 基于Python+Flask框架实现的新冠疫情可视化的设计与实现
  • Linux-用户管理与软件管理
  • 14-特殊函数——静态函数、递归函数、函数指针、回调函数、内联函数、变参函数
  • 神经网络 torch.nn---Convolution Layers
  • 深入理解交叉熵损失 CrossEntropyLoss - CrossEntropyLoss
  • 深入ES6:解锁 JavaScript 类与继承的高级玩法
  • KUKA机器人中断编程详细教程1—了解中断
  • MySQL使用
  • CSS学习|css三种导入方式、基本选择器、层次选择器、结构伪类选择器、属性选择器、字体样式、文本样式
  • 数字取证技术(Digital Forensics Technology)实验课II
  • 通过在idea上搭建虚拟hadoop环境使用MapReduce做词频去重
  • 5、React组件事件详解
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Android系统模拟器绘制实现概述
  • co.js - 让异步代码同步化
  • ES2017异步函数现已正式可用
  • Java 网络编程(2):UDP 的使用
  • Java深入 - 深入理解Java集合
  • js
  • laravel with 查询列表限制条数
  • nginx 配置多 域名 + 多 https
  • Python爬虫--- 1.3 BS4库的解析器
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 给Prometheus造假数据的方法
  • 聊聊directory traversal attack
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 区块链分支循环
  • 设计模式走一遍---观察者模式
  • 网页视频流m3u8/ts视频下载
  • 为视图添加丝滑的水波纹
  • 异常机制详解
  • 组复制官方翻译九、Group Replication Technical Details
  • #70结构体案例1(导师,学生,成绩)
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (11)MATLAB PCA+SVM 人脸识别
  • (2)STM32单片机上位机
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (Python第六天)文件处理
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (十六)、把镜像推送到私有化 Docker 仓库
  • (推荐)叮当——中文语音对话机器人
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • ****三次握手和四次挥手
  • ***利用Ms05002溢出找“肉鸡
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .net core + vue 搭建前后端分离的框架
  • .net Signalr 使用笔记
  • .net 反编译_.net反编译的相关问题
  • .net 怎么循环得到数组里的值_关于js数组