• 如何利用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 HumanMessage
    
    os.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)
    
  • 相关阅读:
    “升职加薪”必经路,深入详解Spring,读懂源码So easy
    TRC丨艾美捷 N,N-二甲基鸟嘌呤核苷说明书
    Vue.js 页面加载时触发函数
    了解list
    Unity 获取桌面路径的方法
    conda取消自动进入base环境
    二阶有源带通滤波器元器件参数怎么设计啊
    带你刷(牛客网)C语言百题(第五天)
    利用canvas实现根据背景图片主色调动态展示字体颜色
    SAP 后台配置之FM基金管理篇
  • 原文地址:https://blog.csdn.net/weixin_46933702/article/details/139485538