PPT全方位辅助系统-项目记录5

使用百川角色大模型(Python)

百川角色大模型接口文档

1.文档中提供的代码示例(11.1对话接口)

import requests
import json

def do_request():
    url = "https://api.baichuan-ai.com/v1/chat/completions"
    api_key = "your api key"
    data = {
        "model": "Baichuan-NPC-Turbo",
        "character_profile": {
            "character_name":"大罗",
            "character_info":"角色基本信息:大罗被广泛认为是有史以来最伟大的足球运动员之一。因为其强悍恐怖的攻击力被冠以“外星人”称号。大罗曾三度当选世界足球先生、两度获得金球奖,为巴西夺得两次世界杯冠军及一次亚军。效力过皇家马德里,巴塞罗那,AC米兰,国际米兰等豪门俱乐部,进球无数。",
            "user_name":"小乐",
            "user_info":"某体育频道解说员,在中国举办的大罗球迷见面会上做为主持人"
        },
        "messages": [
            {
               "role": "user",
               "content": "你参加过几次世界杯?"
            }
        ],
        "temperature": 0.8,
        "top_k":10,
        "max_tokens": 512,
        "stream": True
    }

    json_data = json.dumps(data)

    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + api_key
    }

    response = requests.post(url, data=json_data, headers=headers, timeout=60)

    if response.status_code == 200:
        print("请求成功!")
        print("响应body:", response.text)
        print("请求成功,X-BC-Request-Id:", response.headers.get("X-BC-Request-Id"))
    else:
        print("请求失败,状态码:", response.status_code)
        print("请求失败,body:", response.text)
        print("请求失败,X-BC-Request-Id:", response.headers.get("X-BC-Request-Id"))

if __name__ == "__main__":
    do_request()

将角色描述改为PPT教学员之后,运行效果:

达到预期效果,但只能运行一次。

2.参考百川大模型AI对话实战——Python开发一个对话机器人代码

import subprocess
import requests
import json

# API 请求 URL
url = "https://api.baichuan-ai.com/v1/chat/completions"

# 替换为实际的 API Key
api_key = "sk-33333333"

# 请求头部参数
headers = {
    "Content-Type": "application/json",
    "Authorization":f"Bearer {api_key}"
}

# 持续对话循环
while True:
    # 用户输入
    user_input = input("用户: ")

    # 如果用户输入为空,则退出循环
    if not user_input:
        break

    # 构建对话消息
    messages = [
        {"role": "user", "content": user_input}
        # 如果有历史消息,可以继续添加
    ]

    # 请求体参数
    data = {
        "model": "Baichuan2-Turbo",
        "messages": messages,
        "stream": False,
        "temperature": 0.3,
        "top_p": 0.85,
        "top_k": 5,
        "with_search_enhance": False
        # 添加其他参数...
    }

    # 发送 POST 请求
    response = requests.post(url, headers=headers, json=data)

    # 处理响应
    if response.status_code == 200:
        # 使用 jq 美化 JSON 输出
        result = json.loads(response.text)
        formatted_result = subprocess.run(['jq', '.'], input=json.dumps(result), text=True, capture_output=True)

        # 输出助手的回复
        print(f"助手: {formatted_result.stdout}")

    else:
        print(f"请求失败,状态码: {response.status_code}")

# 用户输入为空,退出循环
print("对话结束。")

实现了连续对话,但是只支持英文。

3.修改官方示例代码

想到可以将官方代码放入一个循环中,每次循环迭代时发送一句话给模型,并获取响应。这样就可以实现连续对话效果。

import requests
import json


def do_request(message):
    url = "https://api.baichuan-ai.com/v1/chat/completions"
    api_key = "your api key"
    data = {
        "model": "Baichuan-NPC-Turbo",
        "character_profile": {
            "character_name": "P老师",
            "character_info": "角色基本信息:P老师是一个进行PPT制作教学的老师,她温柔耐心,知道很多关于PPT制作的知识,回答学生的问题时,亲切、条理清晰",
            "user_name": "你",
            "user_info": "一个希望提升自己PPT制作能力的人"
        },
        "messages": [
            {
                "role": "user",
                "content": message
            }
        ],
        "temperature": 0.8,
        "top_k": 10,
        "max_tokens": 512,
        "stream": True
    }

    json_data = json.dumps(data)

    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + api_key
    }

    response = requests.post(url, data=json_data, headers=headers, timeout=60)

    if response.status_code == 200:
        print("请求成功!")
        print("响应body:", response.text)
        print("请求成功,X-BC-Request-Id:", response.headers.get("X-BC-Request-Id"))
    else:
        print("请求失败,状态码:", response.status_code)
        print("请求失败,body:", response.text)
        print("请求失败,X-BC-Request-Id:", response.headers.get("X-BC-Request-Id"))


if __name__ == "__main__":
    while True:
        message = input("请输入您要发送的消息:")
        do_request(message)

运行效果:

实现了中文连续对话。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值