我用Python轻松玩转ChatGPT的聊天机器人和AI画画

news2024/12/24 2:43:16

ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。用户只需注册一个OpenAI账号和申请一个api_key就可供开发人员使用,并且可以与各种编程语言(如 JavaScript、Python 等)集成。

DALL-E 是 OpenAI 开发的一种生成式预训练转换器 (GPT) 模型,可以根据文本描述生成图像。它在文本和图像数据集上进行训练,使其能够理解两者之间的关系并生成与给定文本描述相匹配的图像。该 API 可供开发人员使用,并且可以与各种编程语言(如 JavaScript、Python 等)集成。

这里要说明一些OpenAI的账号注册目前看来在国内无法注册,但是可以想一些变通的方法或者让国外的亲朋好友帮你注册和申请api_key,只要拿到api_key就可以在国内调用ChatGPT机器人模型和AI画画模型了:

聊天机器人API接口参数说明

  • model:模型名词
  • prompt:您对机器人提出的问题
  • temperature:自定义模型的行为的参数,该参数控制生成文本的随机性级别。较高的temperature会导致更多变化且可能不太连贯的响应,而较低的temperature会产生更可预测且可能更连贯的响应
  • max_tokens:应答语句的长度

下面我们介绍一下通过python来开发一个基于windows命令行窗口的简单实用的ChatGPT的聊天小程序。首先我们需要在命令行中安装openai包:

pip install openai

接下来可以开始编写基于windows命令行窗口的聊天程序chat.py:

import openai
import os
os.system('')

#注册的api_key
openai.api_key = "sk-xxxxxxxxxx"
def get_answer(question):
    response = openai.Completion.create(
    model="text-davinci-003",
    prompt=question,
    temperature=0.5, 
    max_tokens=1024 )    
    return response.choices[0].text

def ask_question():
    flag=True
    greeting="\033[1;31m我是ChatGPT聊天机器人,我可以回答您的任何问题!如果您想退出,请输入:quit\033[0m"
    print()
    print(greeting)
    print()
    while(flag==True):
        question = input()
        if(question!='quit'):
            answer=get_answer(question)
            answer = answer[2:]
            print()
            print(f"\033[1;31m机器人:{answer}\033[0m")
            print()

        else:
            flag=False
            print()
            print("\033[1;31m机器人:后会有期,bye!\033[0m")   
           
ask_question()

接下来我们将chat.py文件拷贝到 d:\ ,然后我们在windows命令行中执行该聊天程序:

python d:\chat.py

下面是我和机器人之间的有趣对话:

 

 

 

 DALL-E 的AI画画 API接口参数说明

  • model:用于图像生成的 DALL-E 模型。
  • prompt:你想要用来生成图像的文本提示
  • response_format:响应的格式 - 在本例中为“url”。
  • n: 生成的图片数量,默认为1
  • size :生成的图片尺寸 256×256,512×512,1024×1024

import openai
from PIL import Image
from io import BytesIO
import requests as req

#注册的api_key
openai.api_key="sk-jWpXXXXXXXXXX" 

#用来生成图像的文本提示
prompt="一只坐在椅子上仰望星空的猫" 
#生成图像
response=openai.Image.create(prompt=prompt,
              n=3,
              model="image-alpha-001",
              size="512x512",
              response_format="url") 

#第一张图片
image_rul=response["data"][0]["url"]
res=req.get(image_rul)
Image.open(BytesIO(res.content))

 

#第二张图片
image_rul=response["data"][1]["url"]
res=req.get(image_rul)
Image.open(BytesIO(res.content))

 

#第三张图片
image_rul=response["data"][2]["url"]
res=req.get(image_rul)
Image.open(BytesIO(res.content))

 小结

ChatGPT聊天机器人相对来说效果比较好,机器人知识面比较广,几乎没有回答不出来的问题,甚至可以替你编写代码,但是缺点是机器人只能针对当前问题做出回答,无法参考上下文的内容来准确回答问题,比如如果你多次问机器人的姓名,机器人会每次都给出不同的姓名,而且有时候机器人会给出明显错误的回答。个人感觉ChatGPT最大的优点是知识面比较广就像一本百科全书它什么都知道,但是结合上下文的能量比较差,还远远无法做的像真人那样和人类互动。

DALL-E是openai的一个AI绘画模型,该模型稍显稚嫩,和目前业界比较成熟的AI绘画模型相比还有所差距。DALL-E的绘画效果还比较粗糙,画面缺少美感,物体的形状轮廓都不是很理想,所以该模型还有很大的提升空间。

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

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

相关文章

分享112个图片切换,总有一款适合您

分享112个图片切换,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 112个图片切换下载链接:https://pan.baidu.com/s/1Q6DzF8wIQ9rXwFjydI6_kw?pwdktxr 提取码:kt…

Leetcode.1145 二叉树着色游戏

题目链接 Leetcode.1145 二叉树着色游戏 Rating : 1741 题目描述 有两位极客玩家参与了一场「二叉树着色」的游戏。游戏中,给出二叉树的根节点 root,树上总共有 n个节点,且 n为奇数,其中每个节点上的值从 1到 n各不相…

关于“智能出价“的一些探索和实践

背景在移动数字广告营销的整个链路中,主要有三个主体,分别是媒体、adx和dsp.对于一个adx系统,主要有两个功能,分别是:向下对接媒体:汇聚下游的媒体广告流量向上对接dsp(广告主):将媒体流量卖给上…

【C语言】看了这篇文章,如果你还不会文件操作的话,我把这篇文章给吃了(doge)

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5&#xff5…

MyBatis注解CRUD执行流程剖析

MyBatis Study Notes Day03 结果映射ResultMap 引入resultMap–MyBatis中最强大的元素 数据库字段名:: 实体类字段名: public class User {private int id;private String name;private String password;如上所示,当sql的字段…

动态规划详解(1)——基础概念

动态规划是数学、编程中一个重要的算法动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过…

Java——根据身高重建队列

题目链接 leetcode在线oj题——根据身高重建队列 题目描述 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个…

Spring AOP表达式(execution)规则——排除切点的应用

背景 需要项目原切面的基础上排除一些类中方法。 本篇文章主要介绍了SpringBoot AOP Pointcut切入点表达式,以及如何排除某些类中的方法的方式。 execution(* com.winup.web.controller..*.*(..)) 参数说明 符号含义execution()表达式的…

【C++之类和对象】默认成员函数

目录前言一、默认成员函数二、构造函数三、析构函数四、拷贝构造函数五、赋值运算符重载前言 前面我们学习了一些类和对象的基本知识,知道了什么是类,类中包括什么东西,以及能够使用一个类来实例化对象,并且会计算类对象的大小。这…

Java Collection 接口下的 “ List 集合” 与 “ Set 集合 ”

Java Collection接口下的“ List 集合” 与 “ Set 集合 ” 每博一文案 一个人最好的底牌,就这两个字: 靠谱,是最高级的聪明。 师父说:人生一回,道义一场,你对人对事的态度,藏着你一生的福报。 千金难买好人缘&#x…

SpringBoot(三):日志文件

目录一、日志文件1.1 日志文件的作用1.2 Spring Boot内置了日志框架1.3 日志的格式说明1.4 自定义日志打印1.5 日志的持久化1.6 日志的级别1.6.1 日志级别有什么作用1.6.2 日志的级别划分1.6.3 日志级别的设置1.7 使用lombok输出日志1.7.1 lombok的原理1.7.2 lombok其他注解一、…

在JS文件中使用或扩展已有的vue文件

工作中遇到一个给现有项目增加一个超时重新登录的提醒框(可在提醒框中直接登录本账户)。 由于页面稍微复杂,本人又是脚手架一把梭过来的,对于直接使用 js 来完成一整个复杂还带逻辑的页面稍显吃力,所以决定先写一个 vu…

建模助手【有求必应】的正确打开方式

今天的话题主要想解除大家对[有求必应] 的一些误解。 因为在日常的反馈中用户似乎对于[提需求] 这玩意儿无论是从概念上还是动作上都很不 “熟悉”。 其实我们对软件认知的上限是一个软件功能的上限,产品以及行业的发展都要从打破固有认知开始。 期待更多的你们跳出…

《新华日报·科技周刊》聚焦蓝海彤翔与《流浪地球2》

瞄准世界科技前沿瞄准江苏科技创新瞄准日常科技生活《新华日报科技周刊》第203期聚焦《流浪地球2》中的大国重器其实就在我们身边重点报道了蓝海创意云渲染农场为《流浪地球2》提供了云计算渲染服务的重要成果“数字生命计划”就是元宇宙吗?电影中人类面临末日危机&…

0基础如何入门人工智能?

1.1 概念 根据维基百科的解释,人工智能是被机器展示的智力,与人类和其他动物的自然智能相反,在计算机科学中 AI 研究被定义为 “代理人软件程序”:任何能够感受周围环境并且能最大化它成功机会的设备。 1.2 重大事件 2016 年 3…

[Java]JavaWeb学习笔记(尚硅谷2020旧版)

文章目录🏀 视频及资料地址🏀 XML⚽ XML 简介🏐 xml 的作用⚽ XML 语法🏐 文档声明🏐 注释🏐 元素(标签)⚾ XML 命名规则⚾ xml 中的元素(标签)也分单双标签🏐 xml 元素属性🏐 语法规…

PHP控制反转和依赖注入的理解(通俗易懂)

目录 1.IoC是什么 2.IoC能做什么 3.IoC和DI 4.IoC(控制反转) 5.DI(依赖注入) 6.我对IoC(控制反转)和DI(依赖注入)的理解 学习PHP各个框架的过程中,都会听过IoC(控制反转) 、DI(依赖注入)这两个概念,总觉得IoC 、DI这两个概念是模糊不清的&#xff…

WINSOFT JSEngine Delphi 6-D11

WINSOFT JSEngine Delphi 6-D11 WinsoftJSEngine被认为是一个海豚引擎,包括一个强大的JavaScript引擎。 Winsoft JSEngine的功能和特点: Microsoft ChakraCore JavaScript强大的引擎实用程序 支持32位和64位窗口 提供给海豚版本6 Eli 10.1和Lazarus 为产…

29岁,从餐饮到网络安全,大龄转行逆袭成功

大龄转行,一直在网络上备受讨论。 从学习能力、试错成本来考虑,转行一定是越早越好,而大龄转行风险极大。 大龄转行,固然并非一条绝路,苏老泉,二十七,始发愤,读书籍,有的…

C++学习记录——사 类和对象(1)

文章目录1、面向对象和面向过程的初步理解2、类的引入3、类的定义4、类的访问限定符及封装1、访问限定符2、封装5.类的实例化6、类对象模型7、this1、this指针2、空指针问题3、C语言和C简单对比1、面向对象和面向过程的初步理解 C语言是一个面向过程的语言,C是一个…