调用大模型API-文心一言

一、准备工作

进入百度智能云千帆大模型平台,点击应用接入-创建应用;按提默认完成创建

二、开始使用

单轮调用

进入API列表 - ModelBuilder以第一个**ERNIE-4.0-8K**为例,选择"HTTP请求调用",把第一步创建应用的 应用API Key、应用Secret Key替换到代码中,即可进行单轮对话。

python 复制代码
import requests
import json

def get_access_token():
    """
    使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
    """
        
    url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
    
    payload = json.dumps("")
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    return response.json().get("access_token")

def main():
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + get_access_token()
    
    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": "介绍一下北京"
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    
    print(response.text)
    

if __name__ == '__main__':
    main()

多轮调用

每次请求调用5轮之前的会话,并且把response保存在会话记录参与到下一轮的调用。

python 复制代码
import time

import pandas as pd
import json
import requests

API_KEY="API_KEY"
SECRET_KEY="SECRET_KEY"

menu=['query1','query2','query3','query4']

#上下文初始化
context=[]

context_prefix="文本的内容是:"
context_suffix="。文本中内容区分开便于后期做embedding"
#initial_question="你好,能帮我描述系统菜单吗?"

all_responses=[]

def get_access_token():
"""
使用AK,SK生成鉴权签名(AccessToken)
:return:access_token,或是None(如果错误)
"""
    url="https://aip.baidubce.com/oauth/2.0/token"
    params={"grant_type":"client_credentials","client_id":API_KEY,"client_secret":SECRET_KEY}
    returnstr(requests.post(url,params=params).json().get("access_token"))

#Functiontoaddanewmessagetothecontextandmaintainthelatest5rounds
def update_context(new_assistant_response):
    #添加用户的新提问
    #context.append({"role":"user","content":new_user_input})
    #添加模型的新回答
    context.append({"role":"assistant","content":new_assistant_response})

#保持上下文的最新五轮对话(即10条消息)
if len(context)>9:
    context.pop(0)
    context.pop(0)

def get_desc_by_api(context):
    url="https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?   access_token="+get_access_token()

    payload=json.dumps({
    "messages":context
})
    headers={
    'Content-Type':'application/json'
}

    response=requests.request("POST",url,headers=headers,data=payload)
    returnresponse



definitialize_context():
    context.extend([
{
"role":"user",
"content":"query1"
},{
"role":"assistant",
"content":"response1"
},{
"role":"user",
"content":"query2"
},{
"role":"assistant",
"content":"response2"
}
])
#context=context[0]

initialize_context()
print("context",context)
#模拟多轮对话
for i in range(len(menu)):
    current_menu_item=menu[i]

    #生成用户提问
    new_user_input=context_prefix+current_menu_item+context_suffix
    context.append({"role":"user","content":new_user_input})

    #发送请求
    api_response=get_desc_by_api(context)
    print("status_code:",api_response.text)
    ifapi_response.status_code==200:
    new_assistant_response=api_response.json().get("result")
    #更新上下文
    update_context(new_assistant_response)
    print(f"对话轮次{i+1},当前上下文:{context}")

    response_entry={
        "menu_item":current_menu_item,
        "response":new_assistant_response
    }

    all_responses.append(response_entry)

#将所有回答存储到一个JSON文件中
with open('responses.json','w',encoding='utf-8') as f:
    json.dump(all_responses,f,ensure_ascii=False,indent=4)
相关推荐
阿坤带你走近大数据17 分钟前
数据API接口的数据源和目标源分别是什么?怎么设置?
java·python·api
JZC_xiaozhong17 分钟前
2026年制造企业在多系统环境下的数据管控挑战
大数据·api·制造·系统对接·数据集成与应用集成·异构系统集成·应用对接
深蓝电商API2 小时前
淘宝商品详情页逆向:无需API获取SKU价格与库存的爬虫方案
爬虫·api·反向海淘
七夜zippoe2 小时前
DolphinDB开发环境:GUI与API工具
api·gui·插件·开发环境·dolphindb
许彰午12 小时前
零成本搭建RAG智能客服:Ollama + Milvus + DeepSeek全程实战
人工智能·语音识别·llama·milvus
曲幽19 小时前
我用fastapi-scaff搭了个项目,两天工期缩到两小时,老板以为我开挂了
python·api·fastapi·web·celery·cli·db·alembic·fastapi-scaff
weixin_4080996721 小时前
【实战案例】电商自动化:如何用 OCR API 批量识别商品图片文字?(完整方案 + 代码示例)
人工智能·ocr·api·文字识别·电商ocr·商品图片文字识别·ocr 批量识别
天空属于哈夫克31 天前
企业微信 API 选型指南:内部开发、代开发还是第三方?
自动化·企业微信·api
向量引擎1 天前
我把多模型联调拆成一条流水线 向量引擎 api key中转站 实测手记
人工智能·aigc·api·key·api调用
d1z8882 天前
(二十一)32天GPU测试从入门到精通-LLaMA 系列模型测试day19
llama·显卡·llm推理·推理引擎