不会编程也能搭建聊天机器人?ChatGPT + Notion AI助你一臂之力!

news2024/12/22 20:39:53

体验链接:Aitrend ChatBot (无需环境,无需账号,打开即用,完全免费,回答能力同ChatGPT)

https://img-1316868354.cos.ap-guangzhou.myqcloud.com/img/E3FB59D9-5E57-4D2B-977C-03AF761188EF_1_105_c.jpeg

  1. 背景介绍
    • 本文主要谈关于如何使用ChatGPT(实际使用主力工具为Notion AI),应用官方API接口,搭建一个完整的聊天机器人。
    • 本文的核心目的不是教会读者如何去搭建一个机器人,而是学会如何使用Notion AI去辅助自己编程,或者解决更多的问题。并由此谈一谈我在使用过程中的一些心得。
  2. 关于我
    • 本人并非是专业的程序员,只是一名对ChatGPT十分感兴趣的数据分析师,熟悉Python和基础的HTML以及CSS的知识。
    • 搭建这个主要是想锻炼下自己的能力,以及了解GPT到底有多大的潜力,以及在应用于的Notion AI的GPT到底能发挥多大的潜力,未来ChatGPT到底有没有机会取代程序员。
  3. 准备工作及环境搭建
    • 基础框架:Python+Flask+HTML
    • 环境:国外服务器+域名
  4. 使用 Notion AI 训练模型【重点】

开始前:网上找了一个python调用最新的API(GPT-3.5-Turbp)进行连续对话,并测试跑通。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai

openai.api_key = "your_key"

def chatgpt():
    messages = []
    while True:
        input_ = input("please input your questions: ")
        messages.append({"role": "user", "content": input_})
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=messages
        )

        # for decoding in Chinese
        answer = response['choices'][0]['message']['content'].encode('utf-8').decode('utf-8')
        messages.append({"role": response['choices'][0]['message']['role'], "content": answer})

        print(answer)

chatgpt()

阶段一:提问代码

Q:你好,我想要用python写一个连续对话的聊天机器人网页,你可以帮助我吗?(开始的问题是问题是用ChatGPT提问的,后面因为经常掉线切换到了Notion AI)

A:给了一个完整的py代码,以及HTML的代码

接着把上面写好的py和html代码贴到Notion AI中,debug中遇到的问题一个个丢给了Notion AI。

Q:上面的代码遇到了(xx)问题,怎么办

A:可能是(xx)原因,你可以这样做(xx)。

Q:给出更新后的代码(或者是py代码、html代码)

用更新后的代码放到IDE中测试,如果跑通就更新下Notion中的代码,没跑通就自行修改或者循环提问。经过不断提问一个0.1版本的demo基本就出来了。

https://img-1316868354.cos.ap-guangzhou.myqcloud.com/img/0.1demo.gif

阶段二:样式优化

Q:我想用Bootstrap框架美化一下网页,让它像一个专业的聊天机器人网站?

A:给出了CSS样式代码和更新后的html代码

接着就是不断的提问和优化,当代码满意的时候贴回Notion中,让它在此基础上继续优化和更新。

https://img-1316868354.cos.ap-guangzhou.myqcloud.com/img/202303102244581.png

阶段三:网页部署

Q:我想要把搭建好的网页部署到服务器中,需要怎么做?

A:给出了一个流程,我在此基础上让它展开来一步步详细地说,针对每一步流程进一步提问,遇到不懂的或者需要什么Linux命令也直接让它输出。

https://img-1316868354.cos.ap-guangzhou.myqcloud.com/img/202303102246817.png

  1. 使用Notion AI搭建网页过程中的心得

1)ChatGPT这类AI能取代程序员吗?

A:目前还不能,但是会是程序员非常好的辅助,未来一个程序员也许就能做两到三个人的工作,造成工作上的挤兑,也许也是一种变相取代。

2)Notion AI的代码写得好吗?

A:还可以,感觉水平能有一个中级程序员的程度,代码的质量取决于你对它提问的深度,以及不断地让它在现有的代码上进行提问优化,涉及到复杂系统搭建的话情况也许会有所不同,此处不做讨论。

3)Notion AI在使用过程中有哪些局限性?

A:由于数据库只到2021年,即便我给出了最新的接口调用代码,它也总会把我的代码修改成调用GPT2的代码,所以它给出的代码也不能全信。

总结

整个的尝试下来,其实超出了我原本对Notion AI原本只是用于写作的期待,它使用在其他也同样出色。甚至在某些方面的体验远优于ChatGPT,如可以随意地更新代码而不需要重新提问,输出的结果可以方便的保存,使用过程更加稳定可靠(相对于非收费的ChatGPT),也许在输出质量上还有一点差距,但是随着后面API迭代相信差距也会进一步缩小。

这次的聊天机器人搭建是一个小小的尝试,距离专业程序员搭建的网页还有很大的差距,但是ChatGPT的出现也确实让更多非专业的人能够完成从0到1的尝试,哪怕对于初学者也能有极大的学习效率提升。

未来我还会继续输出更多ChatGPT或者Notion AI的一些使用心得和技巧,对此如有兴趣可以点下关注~

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

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

相关文章

Seay代码审计工具

一、简介Seay是基于C#语言开发的一款针对PHP代码安全性审计的系统,主要运行于Windows系统上。这款软件能够发现SQL注入、代码执行、命令执行、文件包含、文件上传、绕过转义防护、拒绝服务、XSS跨站、信息泄露、任意URL跳转等漏洞,基本上覆盖常见PHP漏洞…

0109二分图-无向图-数据结构和算法(Java)

文章目录1 概念2 API3 分析和实现4 测试5 总结后记1 概念 二分图是一种能将所有结点分为两部分的图,其中图的每条边所连接的两个顶点都分别属于不同的部分。 2 API public classBipartiteBipartite(Graph G)预处理函数public booleanisBipartitle()是否是二分图pub…

【opensea】opensea-js 升级 Seaport v1.4 导致的问题及解决笔记

一、opensea 协议升级导致旧包不能使用了 我使用的是 “opensea-js”: "^4.0.12” 版本当SDK。于2023年3月9日之后,不能使用了,需要升级到 Seaport v1.4 协议的包。 报错如下: Error: API Error 400: Please provide an OPEN order type when us…

可逆神经网络的研究及其在图像中应用

一、摘要 可逆神经网络(INN)自被提出以来,就受到了广泛关注。由于其双射构造和高效可逆性,INN被用于各种推理任务,如图像隐藏、图像重缩放、图像着色、图像压缩和视频超分辨率等等。本文针对最新关于INN在图像方面应用的文献进行介绍&#x…

day30_JS

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、BOM 三、定时器 四、正则表达式 零、 复习昨日 事件 事件绑定方式鼠标事件 onmouseoveronmouseoutonmousemove 键盘事件 onkeydownonkeyupon…

一文带你深入理解【Java基础】· Java反射机制(下)

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

aws dynamodb 使用awsapi和PartiQL掌握dynamodb的CRUD操作

总结一下 dynamodb通常和java等后端sdk结合使用使用的形式可以是api或partiql语法调用dynamodb的用法不难,更重要的是维护成本,所需的服务集成,技术选型等和大数据结合场景下有独特优势 之后可能再看看java sdk中DynamoDBMapper的写法&…

登入vCenter显示503,证书过期解决办法

登入vCenter显示503 原因:当安全令牌服务 (STS) 证书已过期时,会出现这些问题。这会导致内部服务和解决方案用户无法获取有效令牌,从而导致无法按预期运行(证书两年后就会过期)。 解决办法&…

Yocto系列讲解[技巧篇]90 - toolchain交叉编译器SDK中安装的软件

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 问题背景toolchain生成回顾toolchain sdk安装方法1:安装libmyapi到SDK方法2:安装libmyapi到SDK演示过程返回总目录:Yocto开发讲解系…

Linux 学习笔记——二、主机规划与磁盘分区

一、Linux 与硬件的搭配 Linux 中所有设备均被视为文件,其命名规则如下: 设备文件名SCSI/SATA/USB 硬盘机/dev/sd[a-p]USB 闪存盘/dev/sd[a-p](与 SATA 相同)Virtl/O 界面/dev/vd[a-p](用于虚拟机内)软盘…

RabbitMQ高级特性

RabbitMQ高级特性 消息可靠性投递 Consumer ACK 消费端限流 TTL 死信队列 延迟队列 日志与监控 消息可靠性分析与追踪 管理 消息可靠性投递 在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制…

docker基本命令-容器

容器 基本概念 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 容…

.NET Framework .NET Core与 .NET 的区别

我们在创建C#程序时,经常会看到目标框架以下的选项,那么究竟有什么区别? 首先 .NET是一种用于构建多种应用的免费开源开发平台,可以使用多种语言,编辑器和库开发Web应用、Web API和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows窗体…

搭建一个中心化的定时服务

1. 背景 在物联网络,很多设备之间都在进行交互,其中云端在远程交流中起到了很重要的作用。比如,一台设备想进行调温,但是需要知道此时房间的温度,那就需要定时去查询传感器测出来的房间温度,如果温度过高&a…

【C++学习】【STL】list容器

list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。可以看到,list 容器中各个元素的前后顺序是靠指…

【NodeJs】使用ffmpeg将视频webm转换为mp4

使用Chrome浏览器录制视频文件是webm格式,但是很多媒体播放器是不支持的,不利于分享,需要转换为mp4格式才行,接下来给大家讲 ffmpeg ffmpeg是什么呢, 一个免费开源的视频转换工具,一款音视频编解码工具&…

日志与可视化方案:从ELK到EFK,再到ClickHouse

EFK方案 从ELK谈起 ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana。新增了一个FlieBeat,它是一个轻量级的日志收集处理工具,FlieBeat占用资源少,适用于在各个服务器上搜集…

JS语法(扫盲)

文章目录一、初识JavaScript二、第一个JS程序JS代码的引入JS程序的输出三、语法变量使用动态类型内置类型运算符强类型语言&弱类型语言条件语句循环语句数组创建数组获取数组元素新增数组元素删除数组元素函数语法格式形参实参个数的问题匿名函数&函数表达式作用域作用…

PHP 的运行方式有哪些?

PHP本质上的运行方式可以分为两种: 基于命令行的基于PHP-FPM的 但实际上,PHP能做的事很多,很多场景下,不同的运行方式能让开发更方便,减轻各种工作。 测试开发 PHP内置了一个HTTP 的server。这意味着,很…

stm32外设-GPIO

0. 写在最前 本栏目笔记都是基于stm32F10x 1. GPIO基本介绍 GPIO—general purpose intput output 是通用输入输出端口的简称,简单来说就是软件可控制的引脚, STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的…