ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流,你一定要学会使用ChatGPT。如果你想了解OpenAI最新发布的GPT-4模型,以及它如何为ChatGPT聊天机器人带来更强大的功能,那么你一定不要错过OpenAI官网推荐的48种最佳应用场景,不管你是资深开发者、初学者,你都能够从0到1快速入门,并掌握他们。

在这个AI大时代,如果不想被人颠覆,就要先颠覆别人。如果你颠覆不了别人,那你就努力运用ChatGPT提高你的技术水平和创造力。

如果要给一个python函数写高质量的文档字符串,程序员不仅要需要在文档字符串中描述函数的参数和返回值,并使用相应的标签(例如Args,Returns,Raises)来提升可读性,还需要注意相关的语法规则和格式。而ChatGPT的智能注释文档生成功能,能帮助程序员智能创建注释文档字符串,极大地提高了python函数注释效率。

Introduce 简介

Write a Python docstring 编写Python文档字符串

An example of how to create a docstring for a given Python function. We specify the Python version, paste in the code, and then ask within a comment for a docstring, and give a characteristic beginning of a docstring (""").

这是一个如何为给定的Python函数创建注释文档字符串的示例。我们指定Python版本,粘贴到代码中,然后在注释中请求一个文档字符串,并给予一个文档字符串的特征开头(""")。

setting 设置

Engine: text-davinci-003

Max tokens:150

Temperature:0

Top p:1.0

Frequency penalty:0.0

Presence penalty:0.0

Stop sequence# """

说明:

0、Engine 设置定义了你要使用的模型,例如 text-davinci-003是一个文本生成模型。这种模型可以根据输入的文本,生成新的、相关的文本。

1、Max tokens是指在请求中最多允许返回的 token 数目,比如你可以指定 chatGPT 返回最多60个 token。这可以帮助你控制输出的内容大小,以便更好地控制响应速度和结果。一般1个token约4个字符或者0.75个单词

2、Temperature 是一个参数,用于控制 chatGPT 的输出。它决定了 chatGPT 在生成文本时会多么“随意”。值越高,chatGPT 生成的文本就越不可预测;值越低,chatGPT 生成的文本就越可预测。它在0.0到2.0之间,Temperature设置为0意味着ChatGPT将会生成更加保守的回复,即更少的随机性和更多的准确性,这可以帮助你在聊天中更好地控制语义,并且可以防止ChatGPT产生不相关的内容。通常建议更改此值或 Top P,但不要同时更改这两个值。

3、Top p 是随温度采样的替代方案,称为核采样,其中模型考虑具有top_p概率质量的标记的结果。因此0.1意味着仅考虑包括前10%概率质量的记号。通常建议更改此值或 temperature,但不要同时更改这两个值。

4、Frequency penalty 是指在训练时,模型会根据词频来调整每个单词的重要性。它可以帮助模型更好地理解文本,并减少过拟合。介于-2.0和2.0之间的数字。正值会根据新标记在文本中的现有频率惩罚新标记,从而降低模型逐字重复同一行的可能性。Frequency penalty设置为0意味着模型不会对重复的词进行惩罚。它可以帮助模型生成更多的新词,而不是重复使用已有的词。

5、Presence penalty 是指在ChatGPT中,一些预先定义的条件或者状态可能会影响机器人回答的质量,介于-2.0和2.0之间的数字。正值会根据新标记到目前为止是否出现在文本中来惩罚它们,从而增加模型谈论新主题的可能性。如果将 Presence penalty 设置为 0,则表示不会有任何惩罚。

6、Stop sequence 是一种设置,通过它可以确定你的聊天会话的结束标志。当你在 ChatGPT中设置 Stop sequence为 # """ 时,表示你的聊天会话结束标志是注释符# """

Prompt 提示

# Python 3.7
def randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):
df = pd.read_json(folder + filename, lines=True)
train_name, test_name = "train.jsonl", "test.jsonl"
df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)
df_train.to_json(folder + train_name, orient='records', lines=True)
df_test.to_json(folder + test_name, orient='records', lines=True)
randomly_split_dataset('finetune_data/', 'dataset.jsonl')
# An elaborate, high quality docstring for the above function: 用于上述函数的详尽高质量文档字符串
"""

Sample response 回复样本

""" This function randomly splits a dataset into two parts, a training set and a test set, according to a given split ratio.
Parameters:
folder (str): The path to the folder containing the dataset.
filename (str): The name of the dataset file.
split_ratio (list): A list of two floats representing the ratio of the training set and the test set.
Returns:
None
"""
"""此函数根据给定的拆分比率将数据集随机拆分为两个部分:训练集和测试集。
参数:
folder (str):包含数据集的文件夹的路径。
filename (str):数据集文件的名称。
split_ratio(list):一个由两个浮点数组成的列表,表示训练集和测试集的比率。
返回:

"""

API request 接口请求

python接口请求示例

import os
import openai openai.api_key = os.getenv("OPENAI_API_KEY") response = openai.Completion.create(
model="text-davinci-003",
prompt="# Python 3.7\n \ndef randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):\n df = pd.read_json(folder + filename, lines=True)\n train_name, test_name = \"train.jsonl\", \"test.jsonl\"\n df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)\n df_train.to_json(folder + train_name, orient='records', lines=True)\n df_test.to_json(folder + test_name, orient='records', lines=True)\nrandomly_split_dataset('finetune_data/', 'dataset.jsonl')\n \n# An elaborate, high quality docstring for the above function:\n\"\"\"",
temperature=0,
max_tokens=150,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0,
stop=["#", "\"\"\""]
)

node.js接口请求示例

const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration); const response = await openai.createCompletion({
model: "text-davinci-003",
prompt: "# Python 3.7\n \ndef randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):\n df = pd.read_json(folder + filename, lines=True)\n train_name, test_name = \"train.jsonl\", \"test.jsonl\"\n df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)\n df_train.to_json(folder + train_name, orient='records', lines=True)\n df_test.to_json(folder + test_name, orient='records', lines=True)\nrandomly_split_dataset('finetune_data/', 'dataset.jsonl')\n \n# An elaborate, high quality docstring for the above function:\n\"\"\"",
temperature: 0,
max_tokens: 150,
top_p: 1.0,
frequency_penalty: 0.0,
presence_penalty: 0.0,
stop: ["#", "\"\"\""],
});

curl命令示例

curl https://api.openai.com/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "text-davinci-003",
"prompt": "# Python 3.7\n \ndef randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):\n df = pd.read_json(folder + filename, lines=True)\n train_name, test_name = \"train.jsonl\", \"test.jsonl\"\n df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)\n df_train.to_json(folder + train_name, orient='records', lines=True)\n df_test.to_json(folder + test_name, orient='records', lines=True)\nrandomly_split_dataset('finetune_data/', 'dataset.jsonl')\n \n# An elaborate, high quality docstring for the above function:\n\"\"\"",
"temperature": 0,
"max_tokens": 150,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0,
"stop": ["#", "\"\"\""]
}'

json格式示例

{
"model": "text-davinci-003",
"prompt": "# Python 3.7\n \ndef randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):\n df = pd.read_json(folder + filename, lines=True)\n train_name, test_name = \"train.jsonl\", \"test.jsonl\"\n df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)\n df_train.to_json(folder + train_name, orient='records', lines=True)\n df_test.to_json(folder + test_name, orient='records', lines=True)\nrandomly_split_dataset('finetune_data/', 'dataset.jsonl')\n \n# An elaborate, high quality docstring for the above function:\n\"\"\"",
"temperature": 0,
"max_tokens": 150,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0,
"stop": ["#", "\"\"\""]
}

其它资料下载

如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载

这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。

全网最详细中英文ChatGPT-GPT-4示例文档-智能编写Python注释文档字符串从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)的更多相关文章

  1. 基于 Token 的身份验证:JSON Web Token(附:Node.js 项目)

    最近了解下基于 Token 的身份验证,跟大伙分享下.很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强, ...

  2. Sublime Text3 配置Node.js运行命令

    ­ 在Sublime Text中可以很容易配置新的编译运行命令,下面的截图是汉化版的中文菜单,英文菜单请直接对照. 首先需要在本地安装Node,默认的Node会加入到系统的环境变量,这样执行Node命 ...

  3. nodejs学习笔记Node.js 调试命令

    3.4  调试        47  下面是一个简单的例子: $ node debug debug.js < debugger listening on port 5858 connecting ...

  4. node.js ffmpeg-concat 命令行形式处理多个视频的过度效果

    ffmpeg-concat 是利用 gl-transitions 处理多个视频的过度效果.详细说明参见 https://github.com/transitive-bullshit/ffmpeg-co ...

  5. 带你入门带你飞Ⅱ 使用Mocha + Chai + SuperTest测试Restful API in node.js

    目录 1. 简介 2. 准备开始 3. Restful API测试实战 Example 1 - GET Example 2 - Post Example 3 - Put Example 4 - Del ...

  6. 一种简单的生产环境部署Node.js程序方法

    最近在部署Node.js程序时,写了段简单的脚本,发觉还挺简单的,忍不住想与大家分享. 配置文件 首先,本地测试环境和生产环境的数据库连接这些配置信息是不一样的,需要将其分开为两个文件存储 到conf ...

  7. 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...

  8. Python自学笔记-字符串编码(来自廖雪峰的官网Python3)

    感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看.   1.理解变 ...

  9. node.js常用命令

    安装node 验证是否安装node $node -v $npm -v npm node package manager , Node 的包管理器 安装 包 # 安装到当前目录 $ npm instal ...

  10. node.js 开发命令行工具 发布npm包

    新建一个文件夹“nodecmd”: 在nodecmd下新建文件夹bin: 在bin文件夹下新建JavaScript文件hello.js #!/usr/bin/env node console.log( ...

随机推荐

  1. SaaS、PaaS、IaaS的区别

    我们从SaaS.PaaS.IaaS的定义.工业应用以及具体案例几方面来介绍他们之间的区别 一.定义层面的区别 SaaS.PaaS.IaaS简单的说都属于云计算服务,也就是云计算+服务. 我们对于云计算 ...

  2. Abp Abp.AspNetZeroCore 2.0.0 2.1.1 Path

    纯手工修改,移除校验代码可调试. 将文件复制到 %userprofile%\.nuget\packages\abp.aspnetzerocore 目录中 替换对应的文件 Abp.AspNetZeroC ...

  3. zynq 中断

    #include "stdio.h"#include "xparameters.h"#include "xgpiops.h"#include ...

  4. APPscan设置自动扫描时间

    一.设置位置 1.在设置自动扫描时间之前,我们要先创建扫描配置,然后再启动设置面板.2.启动AppScan,单击展开软件顶部菜单栏[工具]按钮,单击下拉菜单内[扫描调度程序],便可启动自动扫描的设置面 ...

  5. elementUI el-tree报错 Cannot read property ‘setCheckedKeys’ of undefined"

    给树节点赋值时,执行下面代码会报错,原因是:DOM元素未加载完成. 以下为错误写法. handleRowClick(row) { this.$refs.tree.setCheckedKeys(ids) ...

  6. CAD2023卸载方法,如何完全彻底卸载删除清理干净cad各种残留注册表和文件?【转载】

    cad2023卸载重新安装方法,使用清理卸载工具箱完全彻底删除干净cad2023各种残留注册表和文件.cad2023显示已安装或者报错出现提示安装未完成某些产品无法安装的问题,怎么完全彻底删除清理干净 ...

  7. shell脚本基本介绍

    1.编程介绍 驱动 硬件默认是不能使用的 CPU控制硬件.不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行"翻译": 更趋近与开发的工程师,要学习"汇编语言 ...

  8. YII oracle

    以 11.2 为例 , 注意必须要与数据库版本对应下载如下两个文件instantclient-basic-linux.x64-11.2.0.4.0.zip https://download.oracl ...

  9. 07 HBase操作

    1.理解HBase表模型及四维坐标:行键.列族.列限定符和时间戳. 2.启动HDFS,启动HBase,进入HBaseShell命令行. 3.列出HBase中所有的表信息list 4.创建表create ...

  10. scrcpy

    捕获配置 缩小尺寸 有时,以较低的清晰度镜像 Android 设备以提高性能很有用. 将宽度和高度限制为某个值(例如 1024): scrcpy --max-size 1024 scrcpy -m 1 ...