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

【Chat GPT】用 ChatGPT 运行 Python

前言

ChatGPT 是一个基于 GPT-2 模型的人工智能聊天机器人,它可以进行智能对话,同时还支持 Python 编程语言的运行,可以通过 API 接口进行调用。本文将介绍如何使用 ChatGPT 运行 Python 代码,并提供一个实际代码案例。

ChatGPT 简介

ChatGPT 是一个可以与人进行智能对话的人工智能聊天机器人,它基于 GPT-2 模型开发。GPT-2 是 OpenAI 公司开发的一种基于深度学习的自然语言处理模型,它能够生成高质量的文章、诗歌、故事等,同时还能够进行智能对话。ChatGPT 利用 GPT-2 模型进行自然语言理解和生成,可以与用户进行流畅的对话。

ChatGPT 接口

ChatGPT 提供了 API 接口,可以通过 HTTP 请求向 ChatGPT 发送消息并接收机器人的回复。发送的消息必须使用 JSON 格式,包含以下字段:


{"message": "你好"
}

接收到的机器人的回复也是一个 JSON 字符串,包含以下字段:

{"message": "你好呀!"
}


其中,message 字段表示回复的文本内容。

ChatGPT Python SDK

为了方便使用 ChatGPT,我们还提供了一个 Python SDK。可以通过 pip 安装:

pip install chatgpt

安装完成后,可以通过以下代码进行测试:

from chatgpt import ChatGPTchatbot = ChatGPT()
response = chatbot.get_response("你好")
print(response)

这段代码会向 ChatGPT 发送一个消息:“你好”,并输出机器人的回复。

ChatGPT Python 示例代码

下面我们来介绍一个实际的 ChatGPT Python 示例代码。这个代码会向 ChatGPT 发送用户输入的问题,然后调用一个外部的 API 获取答案,最后将答案发送给用户。

首先,我们需要导入必要的依赖:
import json
import requests
from chatgpt import ChatGPT
然后,我们需要定义 ChatGPT 的 API 地址和 API Key:
CHATGPT_API_URL = "http://api.chatgpt.com/message"
CHATGPT_API_KEY = "YOUR_API_KEY_HERE"
接着,我们需要定义一个函数,用来向外部的 API 发送问题并获取答案:
def get_answer(question):API_URL = "https://api.openai.com/v1/engine/davinci-codex/search"API_KEY = "YOUR_API_KEY_HERE"prompt = f"What is the answer to the question: {question}?"headers = {"Content-Type": "application/json","Authorization": f"Bearer {API_KEY}",}data = {"model": "davinci-codex-2022-06-23","prompt": prompt,"max_tokens": 30,"temperature": 0,"n": 1,"stop": [".", "?", "!"],}response = requests.post(API_URL, headers=headers, json=data).json()answer = response["data"][0]["answer"]["text"].strip()return answer

 这个函数使用了 OpenAI 的 GPT-3 模型,接收一个问题作为输入,调用 API 获取答案,并返回答案。

最后,我们需要定义一个主函数,用来接收用户的输入,向 ChatGPT 发送问题,并获取答案:
def main():chatbot = ChatGPT(api_url=CHATGPT_API_URL, api_key=CHATGPT_API_KEY)while True:question = input("> ")response = chatbot.get_response(question)answer = get_answer(response)print(answer)

这个主函数使用一个循环,等待用户输入问题。每次接收到问题后,它会向 ChatGPT 发送问题,并获取机器人的回复。然后,它会调用 get_answer() 函数获取答案,并将答案输出到控制台。

最后,我们需要在程序末尾调用主函数:


 

if __name__ == "__main__":main()

这个程序的完整代码如下:

import json
import requests
from chatgpt import ChatGPTCHATGPT_API_URL = "http://api.chatgpt.com/message"
CHATGPT_API_KEY = "YOUR_API_KEY_HERE"def get_answer(question):API_URL = "https://api.openai.com/v1/engine/davinci-codex/search"API_KEY = "YOUR_API_KEY_HERE"prompt = f"What is the answer to the question: {question}?"headers = {"Content-Type": "application/json","Authorization": f"Bearer {API_KEY}",}data = {"model": "davinci-codex-2022-06-23","prompt": prompt,"max_tokens": 30,"temperature": 0,"n": 1,"stop": [".", "?", "!"],}response = requests.post(API_URL, headers=headers, json=data).json()answer = response["data"][0]["answer"]["text"].strip()return answerdef main():chatbot = ChatGPT(api_url=CHATGPT_API_URL, api_key=CHATGPT_API_KEY)while True:question = input("> ")response = chatbot.get_response(question)answer = get_answer(response)print(answer)if __name__ == "__main__":main()

总结

这个程序使用 ChatGPT 进行智能对话,并使用 OpenAI 的 GPT-3 模型获取答案。你可以将 YOUR_API_KEY_HERE 替换成你自己的 API Key,运行这个程序,进行测试。

相关文章:

【Chat GPT】用 ChatGPT 运行 Python

前言 ChatGPT 是一个基于 GPT-2 模型的人工智能聊天机器人,它可以进行智能对话,同时还支持 Python 编程语言的运行,可以通过 API 接口进行调用。本文将介绍如何使用 ChatGPT 运行 Python 代码,并提供一个实际代码案例。 ChatGPT …...

cartographer发布畸变矫正后的scan数据

实现方式: 模仿源代码,在cartographer_ros写一个函数,以函数指针的方式传入cartographer后端,然后接收矫正后的scan数据,然后按照话题laserScan发布出来。 需要同时发布点云强度信息的,还要自己添加含有强度…...

Idea中git push to origin/master was rejected错误解决方案

Idea中git push to origin/master was rejected错误解决方案 问题描述解决方法 问题描述 idea开发中,需要将项目发布到gitee上,在gitee上创建仓库后,通过idea中git推送项目代码提示: push to origin/master was rejected 解决方法 gitee创建仓库时创建了README.md文件,本地…...

docker版jxTMS使用指南:自定义频率型动态管控

本文讲解4.4版jxTMS中如何自行定义一个频率型的动态管控,整个系列的文章请查看:docker版jxTMS使用指南:4.4版升级内容 docker版本的使用,请查看:docker版jxTMS使用指南 4.0版jxTMS的说明,请查看&#xff…...

【Docker】初识Docker以及Docker安装与阿里云镜像配置

目录 一、初识Docker 二、安装Docker 三、Docker架构 四、配置Docker镜像加速器 一、初识Docker Docker是一个开源的应用容器引擎,诞生于2013年,基于Go语言实现,dotCloud公司出品,Docker开源让开发者打包他们的应用以及依赖包到…...

C语言:动态内存管理

文章目录 一、动态内存函数1. malloc2. calloc3. realloc4. free 二、常见的错误1.malloc或calloc开辟的空间未检查2.越界访问3.对非malloc和calloc开辟的空间,用free释放4.对同一块动态内存多次释放5.用free释放动态内存的一部分 三、通讯录(动态版本改写)总结 一、…...

如何往MySQL中插入100万条数据?

需求 现在有一个 数据量 为100万的数据样本 100w_data.sql 其数据格式如下,截取最后十条数据 999991,XxGdnLZObA999991,XxGdnLZObA,XxGdnLZObA,2020-3-18,1 999992,TBBchSKobC999992,TBBchSKobC,TBBchSKobC,2020-9-8,2 999993,rfwgLkYhUz999993,rfwgLkYhUz,rfwgLk…...

IntelliJ IDEA 2023.2 最新变化

主要更新 AI Assistant 限定访问 Ultimate 在此版本中,我们为 IntelliJ IDEA 引入了一项重要补充 – AI Assistant。 AI Assistant 当前具备一组由 AI 提供支持的初始功能,提供集成式 AI 聊天,可以完成一些任务,例如自动编写文档…...

1300*B. T-primes

解析&#xff1a; 有且只有三个因数&#xff0c;当且仅当&#xff0c;完全平方数并且sqrt&#xff08;n&#xff09;为素数 #include<bits/stdc.h> using namespace std; typedef long long ll; const int N1e55; ll t,n; bool prime(ll x){if(x<2) return 0;for(int…...

重新C++系列之运算符重载

一、什么是运算符重载 简单来讲就是对运算符赋予新的意义&#xff0c;但是又不能改变原有的含义&#xff0c;它本身也就是一个函数。运算符重载的本质是以函数的方式来体现。 二、运算符重载有几种 1、按照作用域来划分&#xff0c;有全局操作符重载函数和成员函数操作符重载函…...

kotlin异常处理try-catch-finally

kotlin异常处理try-catch-finally fun main(args: Array<String>) {try {println("a")} catch (e: Exception) {//异常捕获println("a-catch: $e")} finally {//善后&#xff0c;无论是否异常&#xff0c;都会执行println("a-finally")}t…...

Pytorch在cuda、AMD DirectML和AMD CPU下性能比较

一、测试环境 CUDA环境: i7-8550u 16G DDR4 2133MHz nVidia MX150 2GB AMD DirectML环境: Ryzen 5 5600G 32G DDR4 3200MHz Vega7 4GB AMD 纯CPU环境&#xff1a;Ryzen 5 5600G 32G DDR4 3200MHz 其他硬件配置的硬盘、电源均一致。Pytorch版本为2.0.0&#xff0c;Pyt…...

哈工大计算机网络课程局域网详解之:交换机概念

哈工大计算机网络课程局域网详解之&#xff1a;交换机概念 文章目录 哈工大计算机网络课程局域网详解之&#xff1a;交换机概念以太网交换机&#xff08;switch&#xff09;交换机&#xff1a;多端口间同时传输交换机转发表&#xff1a;交换表交换机&#xff1a;自学习交换机互…...

Jenkins Pipeline的hasProperty函数

函数的作用 用于判断某个参数或者字段是否存在。 用法 例子一 def projectStr "P1,P2,P3" pipeline {agent anyparameters {extendedChoice(defaultValue: "${projectStr}",description: 选择要发布的项目,multiSelectDelimiter: ,,name: SELECT_PROJ…...

芯片制造详解.净洁室的秘密.学习笔记(三)

这是芯片制造系列的第三期跟学up主三圈&#xff0c;这里对其视频内容做了一下整理和归纳&#xff0c;喜欢的可以看原视频。 芯片制造详解03&#xff1a; 洁净室的秘密&#xff5c;为何芯片厂缺人&#xff1f; 芯片制造详解.净洁室的秘密.学习笔记 三 简介一、干净的级别二、芯片…...

可解释的 AI:在transformer中可视化注意力

Visualizing Attention in Transformers | Generative AI (medium.com) 一、说明 在本文中&#xff0c;我们将探讨可视化变压器架构核心区别特征的最流行的工具之一&#xff1a;注意力机制。继续阅读以了解有关BertViz的更多信息&#xff0c;以及如何将此注意力可视化工具整合到…...

k8s Webhook 使用java springboot实现webhook 学习总结

k8s Webhook 使用java springboot实现webhook 学习总结 大纲 基础概念准入控制器&#xff08;Admission Controllers&#xff09;ValidatingWebhookConfiguration 与 MutatingWebhookConfiguration准入检查&#xff08;AdmissionReview&#xff09;使用Springboot实现k8s-Web…...

JS逆向之猿人学爬虫第20题-wasm

文章目录 题目地址sign参数分析python算法还原往期逆向文章推荐题目地址 https://match.yuanrenxue.cn/match/20第20题被置顶到了第1页,题目难度 写的是中等 算法很简单,就一个标准的md5算法,主要是盐值不确定, 而盐值就在wasm里面,可以说难点就在于wasm分析 sign参数分…...

【双指针优化DP】The 2022 Hangzhou Normal U Summer Trials H

Problem - H - Codeforces 题意&#xff1a; 思路&#xff1a; 首先很明显是DP 因为只有1e6个站点&#xff0c;因此可以以站点作为阶段 注意到K很小&#xff0c;因此可以尝试把这个当作第二维 设dp[i][j]为到达第i个站点&#xff0c;已经花了j元钱的最小步数 然后就想了一…...

[论文笔记] LLM数据集——金融数据集

一、chatglm_金融 ModelScope 魔搭社区 请将modelscope sdk升级到v1.7.2rc0&#xff0c;执行&#xff1a; ​ pip3 install "modelscope1.7.2rc0" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html # 方式1 git clone http://www.modelscope…...

如何在Python中正确调用DeepSeek-Reasoner获取思考过程(附完整代码示例)

深度解析&#xff1a;Python调用DeepSeek-Reasoner获取思维链的工程实践 当开发者需要构建具备复杂推理能力的AI应用时&#xff0c;获取模型完整的思考过程&#xff08;Reasoning Content&#xff09;往往比最终答案更有价值。DeepSeek-Reasoner作为专为逻辑推理优化的模型&…...

昇腾910B+MindIE实战:从零部署DeepSeek-R1-Distill-Qwen-32B推理服务

1. 昇腾910B与MindIE环境准备 在Atlas 800I A2服务器上部署DeepSeek-R1-Distill-Qwen-32B模型&#xff0c;首先需要搭建好基础运行环境。我最近刚完成了一个类似项目的部署&#xff0c;整个过程虽然有些复杂&#xff0c;但只要按照步骤操作&#xff0c;2-3小时就能搞定。 操作系…...

nli-distilroberta-base案例集锦:12个已落地NLI应用场景与技术实现要点

nli-distilroberta-base案例集锦&#xff1a;12个已落地NLI应用场景与技术实现要点 1. 项目概述 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)Web服务&#xff0c;专门用于判断两个句子之间的关系。这个轻量级但强大的模型能够快速准确地分析句子对…...

小程序毕业设计基于微信小程序的校园跑腿小程序

前言 在校园生活节奏紧凑、同学们事务繁忙的当下&#xff0c;Spring Boot 基于微信小程序的校园跑腿小程序应运而生&#xff0c;为师生们提供了便捷高效的代劳服务&#xff0c;让校园生活更加从容有序。借助 Spring Boot 强大的后端支撑以及微信小程序无需安装、触手可及的优势…...

网盘下载加速工具:突破下载限制的直链提取技术详解

网盘下载加速工具&#xff1a;突破下载限制的直链提取技术详解 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 你是否也曾遇到这样的情况&#xff1a;明明是自己辛苦上传的文件&#xff0c;下…...

认知研究避坑指南:为什么CHARLS数据需要按教育程度分层修正?

认知研究避坑指南&#xff1a;教育程度分层在CHARLS数据修正中的关键作用 老龄化认知研究领域的数据分析常常面临一个棘手问题&#xff1a;如何确保不同时间点收集的认知测试分数具有可比性&#xff1f;中国健康与养老追踪调查&#xff08;CHARLS&#xff09;作为国内重要的老龄…...

不止于循迹:给你的51单片机智能小车加上‘遥控’和‘自动’双模式(附完整Keil工程)

双模智能小车开发实战&#xff1a;蓝牙遥控与红外循迹的完美融合 在创客圈里&#xff0c;51单片机智能小车堪称"电子制作的Hello World"&#xff0c;但大多数项目往往止步于单一功能的实现。今天我们要打破常规&#xff0c;打造一款兼具蓝牙遥控与红外自动循迹/避障双…...

AI 模型推理容器化性能优化方案

AI模型推理容器化性能优化方案 随着AI技术的快速发展&#xff0c;模型推理在生产环境中的部署需求日益增长。容器化技术凭借其轻量级、可移植性和高效资源管理的优势&#xff0c;成为AI模型部署的主流选择。在实际应用中&#xff0c;如何优化容器化AI推理的性能&#xff0c;降…...

League Toolkit:重新定义英雄联盟游戏体验的智能辅助工具集

League Toolkit&#xff1a;重新定义英雄联盟游戏体验的智能辅助工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在快节奏的…...

PCB开窗技术:设计要点与工程应用解析

PCB开窗技术详解&#xff1a;设计要点与工程应用1. PCB开窗基础概念1.1 开窗的定义与物理特性PCB开窗是指去除印刷电路板导线表面阻焊油墨层的工艺处理&#xff0c;使底层铜箔直接暴露。在标准PCB制造流程中&#xff0c;所有信号走线默认覆盖阻焊层&#xff08;Solder Mask&…...