当前位置: 首页 > news >正文

《生成式 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.lryc.cn/news/488335.html

相关文章:

  • 反转链表、链表内指定区间反转
  • Debezium系列之:Debezium3版本使用快照过程中的指标
  • 第一讲,Opencv计算机视觉基础之计算机视觉概述
  • 数据结构(双向链表——c语言实现)
  • 【新人系列】Python 入门(十一):控制结构
  • 群核科技首次公开“双核技术引擎”,发布多模态CAD大模型
  • 【AI大模型引领变革】探索AI如何重塑软件开发流程与未来趋势
  • linux 常用命令指南(存储分区、存储挂载、docker迁移)
  • 用pyspark把kafka主题数据经过etl导入另一个主题中的有关报错
  • Redis的过期删除策略和内存淘汰机制以及如何保证双写的一致性
  • 异常处理:import cv2时候报错No module named ‘numpy.core.multiarray‘
  • C++手写PCD文件
  • 优选算法(双指针)
  • 【保姆级】Mac上IDEA卡顿优化
  • python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具
  • pytest 接口串联场景
  • Springboot项目搭建(2)-用户详细信息查询
  • Stable Diffusion的加噪和去噪详解
  • 解决 Gradle 报错:`Plugin with id ‘maven‘ not found` 在 SDK 开发中的问题
  • EMD-KPCA-Transformer多变量回归预测!分解+降维+预测!多重创新!直接写核心!
  • 前端 px、rpx、em、rem、vh、vw计量单位的区别
  • OceanBase数据库产品与工具介绍
  • 学习threejs,对模型多个动画切换展示
  • 【Bug合集】——Java大小写引起传参失败,获取值为null的解决方案
  • Python爬虫:如何从1688阿里巴巴获取公司信息
  • 单片机学习笔记 2. LED灯闪烁
  • 折叠光腔衰荡高反射率测量技术的matlab模拟理论分析
  • ubuntu 16.04 中 VS2019 跨平台开发环境配置
  • C语言第13节:指针(3)
  • java:简单小练习,面积