怎么调用文心一言的api接口生成一个简单的聊天机器人(python代码)

news2024/11/19 15:39:00

寒假在学习大模型,但也没弄出多少眉目,电脑性能还有点小问题,大模型总跑不起来,只会简单调用一下现有的大模型的接口,例如:文心一言,下面展示一下代码:

import tkinter as tk
import requests
import json

#此处需填入自己的API_KEY以及SECRET_KEY
API_KEY = "*****"
SECRET_KEY = "*******"


class ChatBot:
    def __init__(self, master):
        self.master = master
        master.title("Chat Bot")

        # 创建控件
        self.message_input = tk.Entry(master, width=50)
        self.send_button = tk.Button(master, text="Send", command=self.send_message)
        self.chat_box = tk.Text(master, width=60, height=20)

        # 布局控件
        self.message_input.pack(side=tk.LEFT, padx=10)
        self.send_button.pack(side=tk.LEFT)
        self.chat_box.pack(side=tk.BOTTOM, pady=20)

    def send_message(self):
        message = self.message_input.get()
        self.message_input.delete(0, tk.END)
        self.chat_box.insert(tk.END, "You: " + message + "\n")
        response = self.get_response(message)
        self.chat_box.insert(tk.END, "Bot: " + response + "\n")

    def get_response(self, message):
        url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=" + self.get_access_token()
        payload = json.dumps({
            "messages": [
                {
                    "role": "user",
                    "content": message
                }
            ]
        })
        headers = {
            'Content-Type': 'application/json'
        }

        response = requests.request("POST", url, headers=headers, data=payload)
        return response.json()["result"]

    def get_access_token(self):
        url = "https://aip.baidubce.com/oauth/2.0/token"
        params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
        return str(requests.post(url, params=params).json().get("access_token"))


root = tk.Tk()
chat_bot = ChatBot(root)
root.mainloop()


至于如何获取这其中的两个key,网上有太多文章了,大家可以去找找看,比如这篇文章:百度文心一言API申请和python/Go使用教程 - 知乎 (zhihu.com)

不过内容我没细看,如果不满足要求的话可以再找找。之前我看过的那篇很有用的文章本来想推荐给大家,刚刚发现不存在了。因为网上相关太多了,我就不写了,当然,如果大家想看,我也可以出。

结果如下所示:

之前录的视频没保存,找不着了,人又比较懒,下面是我之前发在b站的视频,大家可以看看,当然,愿意关注的话,也可以关注下,虽然我b站发布的内容好像和技术没啥关系哈:

python调用文心一言大模型接口生成一个简陋版聊天机器人_哔哩哔哩_bilibili

这次就这样啦,与大家共勉。

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

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

相关文章

比亚迪领航新能源时代:汉唐传承,品牌力量

比亚迪,以中国文化的深度与自信,为新能源汽车领域注入强大动力。汉唐车型,不仅承载着中国古代文明的辉煌,更以其创新技术和环保理念,终结油电之争,让燃油车再次破防。作为销量冠军,比亚迪品牌的…

Leetcode : 215. 数组中的第 K 个最大元素

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 思路:最开始排序算法&…

超越传统模式:商品企划系统如何助力鞋服品牌创新突围?

随着市场竞争的日益激烈,传统的商品管理模式已经难以满足现代鞋服品牌的发展需求。为了在这个快速变化的时代中立足,许多品牌开始寻求创新和突破。而商品企划系统,作为一种新兴的管理工具,正成为鞋服品牌创新突围的关键。 一、打…

域控操作七:让某人不执行某策略/单独放行某人

比如我设置的是禁用移动热点,我在这里对某人拒绝,那他就能用移动热点

SAP PO接口行项目json缺少中括号[]问题

PO接口小问题问题:如果需要同时传输DATA与ITEM,此处选择很重要,如果选择:HTTP Header ITEM将缺少[].需要注意 PO接口小问题 问题:如果需要同时传输DATA与ITEM,此处选择很重要,如果选择&#…

模型优化_如何提高网络/模型的泛化能力?(全面)

目录 1. 以数据为中心的泛化方法 1.1 使用更多数据 1.2 做好数据预处理 特征工程 1.3 数据增强 1.4 调整数据分布 2. 以模型为中心的泛化方法 2.1 使用更大批次 超参数调优 2.2 调整目标函数 2.3 调整网络结构 2.4 屏蔽网络节点 2.5 权值正则化 2.6 偏差-方差权衡…

基于springboot+vue的企业oa管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

python_可视化_交互_多条线段点击高亮显示

需求 使用matplotlib 绘制折线图 响应鼠标事件 单击折线 线条高亮显示 解决方法: 使用 mplcursors 库, 一句代码可实现. 代码 import matplotlib.pyplot as plt import mplcursors import numpy as np# 生成一些示例数据 x np.linspace(0, 10, 100) y np.sin(x)# 创建绘图…

第三节-docker-cs架构分析

一、组成 docker engine:docker-client、rest-api、dockerd containerd: 1、管理容器生命周期 2、拉取/推送镜像 3、存储管理 4、调用runc 5、管理网络 containerd-shim:相当于一个驱动,containerd通过containerd-shim驱使…

Unity绘制六边形体

现在steam上面有很多下棋类/经营类的游戏都是用六边形的地形,比较美观而且实用,去年在版本末期我也自己尝试做了一个绘制六边体的demo,一年没接触unity竟然都要忘光了,赶紧在这边记录一下。 想cv代码可以直接拉到代码章节 功能 …

STM32串口通信(发送与接收数据)

文章目录 前言一、介绍部分通信接口术语解释 串口通信简介硬件电路电平标准串口参数串口时序USART简介USART框图USRAT基本结构数据帧起始位检测波特率发生器CH340G 二、实例部分使用串口发送数据接线图代码实现重定向printf需要勾上Use MicroLIB中文不乱码方法 串口的发送与接收…

OS三大内存分配策略

三种内存分配策略 1.firstfit bestfit worsefit firstfit firstfit : 按地址排序的空间列表 首先碰到第一个内存块,如果可用,那么直接占用 第一个内存块 bestfit bestfit :相对与首次,有特点,对于内存块的差值比较小&#xf…

【Linux】入门篇-Linux的历史及发展历程(linux小型化成为安卓竟然有一段那么有趣的历史!!!)

目录 1.硬件的发展:1946年2月14日,人类历史上第一个计算机---埃尼阿克:为战争而生 1.1计算机的诞生-----为了战争(军工阶段) 研发的原因 时间就是胜利 冯诺依曼 战争的作用 1.2 硅谷模式(时代背景&a…

docker save 命令 docker load 命令 快速复制容器

docker save 命令 docker load 命令 1、docker save 命令2、docker load 命令 1、docker save 命令 docker save 命令用于在系统上把正在使用的某个容器镜像 导出成容器镜像文件保存下载,以便在其他系统上导入这个容器镜像文件 以便快速在其他服务器上启动相同的容…

数据结构------栈(Stack)和队列(Queue)

也是好久没写博客了,那今天就回归一下,写一篇数据结构的博客吧。今天要写的是栈和队列,也是数据结构中比较基础的知识。那么下面开始今天要写的博客了。 目录 栈(Stack) 队列(Queue) 喜欢就点…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Row容器组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Row容器组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Row组件 沿水平方向布局容器。 子组件 可以包含子组件。 接口 Row(value?…

腾讯云又双叕降价,云服务器配置优惠价格表2024新版报价

腾讯云服务器多少钱一年?62元一年起,2核2G3M配置,腾讯云2核4G5M轻量应用服务器218元一年、756元3年,4核16G12M服务器32元1个月、312元一年,8核32G22M服务器115元1个月、345元3个月,腾讯云服务器网txyfwq.co…

YAML管理接口框架配置的最佳实践

管理接口框架配置是构建强大的接口测试框架的关键一环。良好的配置管理可以提高测试效率、可维护性和可扩展性。在本文中,我们将重点介绍使用YAML(YAML Ain’t Markup Language)来管理接口框架配置的最佳实践,并通过实例演示其用法…

Linux使用C语言实现通过互斥锁限制对共享资源的访问

互斥锁限制共享资源的访问 主线程中有两个线程&#xff0c;分别输出信息。 #include <stdio.h> #include <pthread.h> #include <unistd.h>int g_data0;void* fun1(void *arg) {printf("t1&#xff1a;%ld thread is create\n", (unsigned long)…

类和对象(2)——距离C++又近了一步

目录 一、构造函数 1.1声明和定义构造函数 1.2成员名和参数名 1.3构造函数的使用 1.4初始化列表 二、析构函数 2.1析构函数的概念 2.2析构函数的性质 三、拷贝构造函数 四、赋值运算符重载 4.1运算符重载 4.2赋值运算符重载 一、构造函数 我们知道&#xff0c;C中…