《生成式 AI》课程 第3講 CODE TASK 任务3:自定义任务的机器人

 课程

《生成式 AI》课程 第3講:訓練不了人工智慧嗎?你可以訓練你自己-CSDN博客

我们希望你创建一个定制的服务机器人。
您可以想出任何您希望机器人执行的任务,例如,一个可以解决简单的数学问题的机器人0
一个机器人,它总是输出用户输入单词的反义词

以下是用 API2D 调用 openAI   'model': 'gpt-4o-mini'     url = "https://openai.api2d.net/v1/chat/completions"

import requests
import gradio as gr
import jsondef get_response(input_text, prompt_text, chat_history):  # 修改函数定义,增加prompt_text参数"""根据用户输入、额外的提示文本以及已有的对话历史获取语言模型的回复,并更新对话历史。:param input_text: 当前用户输入的文本内容。:param prompt_text: 额外的提示文本内容,比如固定的任务引导等。:param chat_history: 之前的对话历史,是一个包含二元组的列表,每个二元组分别是 (用户消息, 模型回复)。:return: 返回更新后的对话历史,包含本次交互后的结果以及包含模型相关信息及回复内容和token数量信息的格式化字符串,若JSON解析出错则返回相应错误提示以及更新后的对话历史。"""url = "https://openai.api2d.net/v1/chat/completions"headers = {'Content-Type': 'application/json','Authorization': 'Bearer fk2****'  # <-- 把 fkxxxxx 替换成你自己的 Forward Key,注意前面的 Bearer 要保留,并且和 Key 中间有一个空格。}messages = []# 将之前的对话历史添加到消息列表中,格式需符合API要求for user_msg, bot_msg in chat_history:messages.append({"role": "user", "content": user_msg})messages.append({"role": "assistant", "content": bot_msg})# 添加当前用户输入的消息以及额外的提示文本消息(按照合适的格式添加,这里示例为添加在开头)messages.append({"role": "user", "content": prompt_text + " " + input_text})data = {'model': 'gpt-4o-mini',  # 'gpt-3.5-turbo','messages': messages}response = requests.post(url, headers=headers, json=data)status_code = response.status_codetry:json_data = response.json()# 提取模型名称model_name = json_data.get('model', '未知模型')# 提取助手回复的内容assistant_content = json_data.get('choices', [])[0].get('message', {}).get('content', '无回复内容')# 提取各类token数量prompt_tokens = json_data.get('usage', {}).get('prompt_tokens', 0)completion_tokens = json_data.get('usage', {}).get('completion_tokens', 0)total_tokens = json_data.get('usage', {}).get('total_tokens', 0)# 将本次的用户输入和模型回复添加到对话历史中chat_history.append((input_text, assistant_content))return chat_history, f"模型: {model_name}\n回复内容: {assistant_content}\n提示词token数: {prompt_tokens}\n回复内容token数: {completion_tokens}\n总token数: {total_tokens}"except json.JSONDecodeError:# 即使解析JSON出错,也更新对话历史(可以为空回复等情况)chat_history.append((input_text, "解析JSON出错"))return chat_history, "解析JSON出错"# 假设这里的prompt_for_task是你预先定义好的提示文本内容,可根据实际情况赋值
prompt_for_task = "Give me the antonym of the following words"
with gr.Blocks() as demo:chatbot = gr.Chatbot()user_input = gr.Textbox(lines=2, placeholder="请输入你想发送的内容")state = gr.State([])  # 创建一个状态变量,用于存储对话历史,初始化为空列表prompt_textbox = gr.Textbox(label="Prompt", value=prompt_for_task, visible=True)  # 添加Prompt文本框,设置为可见# 通过按钮点击事件触发获取回复和更新对话历史等操作send_button = gr.Button("发送")send_button.click(fn=get_response,inputs=[user_input,prompt_textbox, state],outputs=[chatbot, gr.Textbox(label="解析后的响应内容")])demo.launch(debug=True)

输出如下

gpt4 很厉害的翻译了英文 并且中输出

何处无芳草 "Where is there no fragrant grass?" ==>

反义词 无处有刺 nowhere has thorns

你觉得怎么样呢?

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

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

相关文章

vue包含二维码、背景图片、Logo图片和文本说明的图片生成及下载功能

要使用npm安装vue-qr和html2canvas这两个库 npm install vue-qr html2canvas 完整代码 可以根据实际项目需求调整&#xff0c;改成调用接口展示 <template><div><div ref"qrContainer" class"qr-container"><img class"back…

Oracle ADB 导入 BANK_GRAPH 的学习数据

Oracle ADB 导入 BANK_GRAPH 的学习数据 1. 下载数据2. 导入数据运行 setconstraints.sql 1. 下载数据 访问 https://github.com/oracle-quickstart/oci-arch-graph/tree/main/terraform/scripts&#xff0c;下载&#xff0c; bank_accounts.csvbank_txns.csvsetconstraints.…

问:Spring MVC DispatcherServlet流程步骤梳理

DispatcherServlet是Spring MVC框架中的核心组件&#xff0c;负责接收客户端请求并将其分发到相应的控制器进行处理。作为前端控制器&#xff08;Front Controller&#xff09;的实现&#xff0c;DispatcherServlet在整个请求处理流程中扮演着至关重要的角色。本文将探讨Dispat…

基于深度学习的文本信息提取方法研究(pytorch python textcnn框架)

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

leetcode400第N位数字

代码 class Solution {public int findNthDigit(int n) {int base 1;//位数int weight 9;//权重while(n>(long)base*weight){//300n-base*weight;base;weight*10;}//n111 base3 weight900;n--;int res (int)Math.pow(10,base-1)n/base;int index n%base;return String…

Redis环境部署(主从模式、哨兵模式、集群模式)

一、概述 REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库…

sql数据库-权限控制-DCL

目录 常用权限类别 查询用户权限 举例 授予用户权限 删除权限 常用权限类别 权限说明ALL,ALL PRIVILEGES所有权限SELECT查询数据INSERT插入数据UPDATE修改数据DELETE删除数据ALTER修改表DROP删除数据库/表/视图CREATE创建数据库/表 查询用户权限 show grants for 用户名…

Linux进阶:常用操作

systemctl&#xff1a; 控制系统服务的启动、关闭 系统内置服务均可被systemctl控制第三方软件&#xff0c;如果自动注册了可以被systemctl控制第三方软件&#xff0c;如果没有自动注册&#xff0c;可以手动注册 语法&#xff1a;systemctl start | stop | restart | disable…

从源头保障电力安全:输电线路动态增容与温度监测技术详解

在电力系统中&#xff0c;输电线路是电能传输的关键环节。然而&#xff0c;当导线温度过高时&#xff0c;会加速导线老化&#xff0c;降低绝缘性能&#xff0c;甚至引发短路、火灾等严重事故&#xff0c;对电网安全运行构成巨大威胁。近日&#xff0c;某地区因持续高温和用电负…

vue2动态导出多级表头表格

需求&#xff1a;导出多级表格&#xff0c;如下&#xff0c;每个人名对应的是不同的城市金钱和年龄&#xff0c;日期占俩行&#xff0c;需要根据数据进行动态展示 1.效果 2.关键代码讲解 2.1数据源 2.2所需插件 npm install xlsx 2.3关键代码 创建name组和date组&#xff0c…

蓝桥杯每日真题 - 第16天

题目&#xff1a;&#xff08;卡牌&#xff09; 题目描述&#xff08;13届 C&C B组C题&#xff09; 解题思路&#xff1a; 题目分析&#xff1a; 有 n 种卡牌&#xff0c;每种卡牌的现有数量为 a[i]&#xff0c;所需的最大数量为 b[i]&#xff0c;还有 m 张空白卡牌。 每…

在Unity中使用Epplus写Excel

Overview 本文旨在帮助你快速入门,该库发展多年内容庞大(官方文档写的极好:https://github.com/EPPlusSoftware/EPPlus/wiki),有些功能在Unity环境可能你永远都不会使用. 官方的一个Demo: https://github.com/EPPlusSoftware/EPPlus.Samples.CSharp 如果你只有读的需求,可以…

Python爬虫下载新闻,Flask展现新闻(2)

上篇讲了用Python从新闻网站上下载新闻&#xff0c;本篇讲用Flask展现新闻。关于Flask安装网上好多教程&#xff0c;不赘述。下面主要讲 HTML-Flask-数据 的关系。 简洁版 如图&#xff0c;页面简单&#xff0c;主要显示新闻标题。 分页&#xff0c;使用最简单的分页技术&…

vscode 执行 vue 命令无效/禁止运行

在cmd使用命令可以创建vue项目但是在vscode上面使用命令却不行 一、问题描述 在 cmd 中已确认vue、node、npm命令可以识别运行&#xff0c;但是在 vscode 编辑器中 vue 命令被禁止&#xff0c;详细报错为&#xff1a;vue : 无法加载文件 D:\Software\nodejs\node_global\vue.…

Centos7安装Jenkins脚本一键部署

公司原先Jenkins二进制安装&#xff0c;自己闲来无事在测试主机优化了一下&#xff0c;一键部署&#xff0c;jenkins2.426版本jdk11版本 #!/bin/bashjenkins_file"jenkins-2.426.3-1.1.noarch.rpm"# 更新软件包列表 echo "更新软件包列表..." sudo yum up…

基于AIRTEST和Jmeter、Postman的自动化测试框架

基于目前项目和团队技术升级&#xff0c;采用了UI自动化和接口自动化联动数据&#xff0c;进行相关测试活动&#xff0c;获得更好的测试质量和测试结果。

QT基础 UI编辑器 QT5.12.3环境 C++环境

一、UI编辑器 注意&#xff1a;创建工程时&#xff0c;要勾上界面按钮 UI设计师界面的模块 UI编辑器会在项目构建目录中自动生成一个ui_xxx.h&#xff08;构建一次才能生成代码&#xff09;&#xff0c;来表示ui编辑器界面的代码&#xff0c;属于自动生成的&#xff0c;一定不…

关于win11电脑连接wifi的同时,开启热点供其它设备连接

背景&#xff1a; 我想要捕获手机流量&#xff0c;需要让手机连接上电脑的热点。那么问题来了&#xff0c;我是笔记本电脑&#xff0c;只能连接wifi上网&#xff0c;此时我的笔记本电脑还能开启热点供手机连接吗&#xff1f;可以。 上述内容&#xff0c;涉及到3台设备&#x…

题解 洛谷 Luogu P2440 木材加工 二分答案 C/C++

题目传送门&#xff1a; P2440 木材加工 - 洛谷 | 计算机科学教育新生态https://www.luogu.com.cn/problem/P2440思路 很简单的二分答案 每次找区间中点 m&#xff0c;判断每段长度为 m 时木头段总数是否 > k 即可 有两个细节需要注意一下 1.left 初始值应为 1 而非 0&…

恒利联创携手Pearson VUE 亮相第62届高博会

2024年11月15日-17日&#xff0c;第62届中国高等教育博览会&#xff08;简称“高博会”&#xff09;在重庆举行&#xff0c;恒利联创携手全球领先的考试服务提供商Pearson Vue Certiport共同亮相&#xff0c;为中国院校展现并提供数字化职业技能的教育平台及学练考体系。 作为P…