如何利用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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序真题合集

小程序真题合集 1. 微信小程序主要目录和文件的作用2. 微信小程序的生命周期函数2.1 应用(App)的生命周期2.2 小程序页面(Page)的生命周期 3. 微信小程序的登陆流程4. 微信小程序中路由跳转的方式5. 谈谈wxml与标准的html的异同6.…

【Linux】(六)—— vim编辑器

vim文件编辑器 Vim(Vi Improved)是一个高度可配置的文本编辑器,最初基于UNIX下的Vi编辑器发展而来,广泛用于程序开发和系统管理中。vim编辑器可以只通过终端命令即可编写修改文件,不需要和gedit一样需要打开类似于记事…

1V1音视频实时互动直播系统

李超老师的项目 先肯定分为两个两个端,一个是服务器端一个是客户端。客户端用于UI界面的显示,服务器端用于处理客户端发来的消息。 我们先搭建stun和turn服务器 首先介绍一下什么是stun协议, 它是用来干什么的? stun协议存在…

【深度学习】之 卷积(Convolution2D)、最大池化(Max Pooling)和 Dropout 的NumPy实现

1. 2D 卷积操作 import numpy as npdef conv2d(image, kernel, stride1, padding0):"""应用2D卷积操作到输入图像上。参数:- image: 输入图像,2D数组。- kernel: 卷积核,2D数组。- stride: 卷积步幅。- padding: 图像周围的零…

自动化迁移和更新物体检测XML数据集

引言 当处理大规模的图片数据集,尤其是在物体识别和计算机视觉领域时,有效管理和更新数据集变得非常重要。在本文中,我们将介绍一个简单的Python脚本,该脚本自动化了迁移和更新标注过的XML数据集的过程。 脚本概览 该脚本进行了…

vue3中多语言切换vue-i18n

安装 npm install vue-i18nnext 使用 一.在src中创建i18n文件夹(文件名无所谓) 在i18n下创建 en.ts zh.ts index.ts 分别写入下面代码 en.ts/js //en export default {message: {login: login} } zh.ts //zh export default {message: {login:…

Nginx网站服务【☆☆☆】

市面上常用Linux的web服务器:apache、Nginx。 apache与nginx的区别? 最核心的区别在于NGINX采用异步非阻塞机制,多个连接可以对应一个进程;apache采用的是同步阻塞多进程/线程模型,一个连接对应一个进程。apache美国…

MacOS 安装C语言版TensorFlow

文章目录 安装C语言版TensorFlow解压归档环境变量c_api.hC语言示例 安装C语言版TensorFlow 官方文档:https://tensorflow.google.cn/install/lang_c?hlzh-cnTensorFlow 提供了一个 C API,该 API 可用于为其他语言构建绑定。该 API 在 c_api.h 中定义&a…

从C到C++,C++入门(2)

在C入门篇(1)中,博主为大家简单介绍了什么是C,以及C中的关键字,命名空间,输入与输出和缺省参数的相关知识。今天就让我们继续一起学习C的基础知识点吧!! 1.函数重载 1.1函数重载的概…

经典的泡泡龙游戏源码免费下载

源码介绍 HTML5泡泡龙冒险小游戏是一款休闲网页游戏,游戏玩法是玩家从下方中央的弹珠发射台射出彩珠,多于3个同色珠相连则会消失。 源码下载 经典的泡泡龙游戏源码免费下载

C# WPF入门学习主线篇(六)—— TextBox常见属性和事件

欢迎回到C# WPF入门学习系列的第六篇。在前面的文章中,我们探讨了按钮(Button)的事件处理。今天,我们将继续学习另一个常用的WPF控件——TextBox。本文将介绍 TextBox 的常见属性和事件,并通过示例代码展示如何在实际应…

企业办公网安全管控挑战与解决方案

在数字化浪潮的推动下,企业正经历前所未有的变革。然而,随之而来的是一系列复杂的网络安全风险和挑战。我们的网络边界不再清晰,各种设备轻松接入企业网络,这不仅带来了便利,也极大地增加了安全风险。想象一下&#xf…

JavaScript 学习笔记 总结

回顾: Web页面标准 页面结构:HTML4、HTML5页面外观和布局:CSS页面行为:JavaScript强调三者的分离前后端分离开发模式 响应式设计Bootstrap框架入门 Bootstrap总结 基础 下载和使用基础样式:文本样式、图片样式、表格…

机器学习和深度学习相关指标和方法

什么是机器学习 机器学习是一门多学科交叉专业,它涵盖概率论、统计学、近似理论知识和复杂算法知识等领域。机器学习专门研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构,从而不断改善自…

Vue Router 使用教程

Vue Router 是 Vue.js 的官方路由管理器,它提供了一种方便的方式来管理应用的路由。在本教程中,我们将介绍 Vue Router 的一些常见用法和示例。 一、安装 Vue Router 使用 Vue Router 之前,需要先安装它。可以使用以下命令通过 npm 安装&am…

笔记 | 软件工程03:软件过程和软件开发方法

软件过程 1 何为软件过程模型 1.1 软件开发的特点 1.2 软件过程 1.3 软件过程模型 1.3.1 软件过程模型产生的背景 软件工程产生之前的软件开发——作坊式的个人创作:聚焦于编写代码;依靠个体技能,缺乏合作;关注时空利用&#x…

SWIG源码安装

SWIG源码安装 https://github.com/swig 下载源码首先需要先生成.configure,在执行make & make install ./autogen.sh test -d Tools/configaclocal -I Tools/config ./autogen.sh: 11: aclocal: not found报错了 解决方案,安装automake sudo ap…

Threejs加载DOM+CSS到场景中,实现3D场景展示2D平面的效果

1. 前言 本篇文章主要实现了将DOM元素转换为Threejs可以使用的数据结构,使用CSS2DRenderer渲染器渲染这些DOMCSS的平面,使其可以作为一个物体添加到Threejs场景里 如下效果图: 2. 实现步骤 首先创建一个ThreejsVueVite的项目,作为本次的demo项目下载Threejs第三方库 yarn…

C++候捷stl-视频笔记4

一个万用的hash function 哈希函数的形式,一种是一般函数(右边),一种是成员函数(左边),类的对象将成为函数对象 具体做法例子。直接把属性的所有hash值加起来,会在hashtable中会产生很多的碰撞,放在同一个bucket中的元…

游戏UI设计秘诀:专家总结与实际案例解析!

随着游戏产业的不断发展,游戏UI界面设计变得越来越重要。一个好的游戏UI界面设计可以让玩家更容易理解游戏规则,提高游戏的可玩性,增加游戏的吸引力。在本文中,我们将讨论游戏UI界面设计的重要性和一些常见的设计原则。 1. 游戏U…