用Python调用OpenAI API做有趣的事

news2024/11/28 12:35:18

获取 API KEY

首先需要 可以开全局的梯子,选择日本或韩国节点,可以通过 ipinfo 检查当前 IP 地址是否为日本或韩国地区,然后访问 OpenAI 网站注册账号并完成认证。

如果自己完成账号认证的成本太高,可以在某宝直接购买一个已经通过认证的 OpenAI 账号

获得可用 OpenAI 账号后,访问 View API keys -> API Keys 页面,点击 Create new secret key 获取一个 openai.api_key 再继续后面的内容。

在这里插入图片描述

使用 Python 调用 OpenAI API 的方式非常便捷,只需安装 OpenAI 提供的 openai 库就可以调用其 API 服务:

pip install openai

OpenAI 文本编写

调用 openai.Completion.create 函数需要了解几个基本参数:

  • model: 要使用的模型的 ID,访问 OpenAI Docs Models 页面可以查看全部可用的模型
  • prompt: 生成结果的提示文本,即你想要得到的内容描述
  • max_tokens: 生成结果时的最大 tokens 数,不能超过模型的上下文长度,可以把结果内容复制到 OpenAI Tokenizer 来了解 tokens 的计数方式
  • temperature: 控制结果的随机性,如果希望结果更有创意可以尝试 0.9,或者希望有固定结果可以尝试 0.0
  • top_p: 一个可用于代替 temperature 的参数,对应机器学习中 nucleus sampling,如果设置 0.1 意味着只考虑构成前 10% 概率质量的 tokens
  • frequency_penalty: -2.0 ~ 2.0 之间的数字,正值会根据新 tokens 在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性
  • presence_penalty: -2.0 ~ 2.0 之间的数字,正值会根据到目前为止是否出现在文本中来惩罚新 tokens,从而增加模型谈论新主题的可能性
  • stop: 最大长度为 4 的字符串列表,一旦生成的 tokens 包含其中的内容,将停止生成并返回结果

故事创作

输入 prompt 内容:

主题: 早餐 风
两句话的恐怖故事:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='主题: 早餐 风\n两句话的恐怖故事:',
  temperature=0.8,
  max_tokens=120,
  top_p=1.0,
  frequency_penalty=0.5,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

传说当晨风吹过的时候,一个可怕的早餐怪物就会出现,它会从你的厨房里抓走你的食物,然后吞下它们!

餐厅评论

输入 prompt 内容:

根据这些笔记写一篇餐厅评论
名称:大头鱼烧烤
茄子很棒,很吵,服务态度好,价格便宜。
评论:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='根据这些笔记写一篇餐厅评论\n名称:大头鱼烧烤\n茄子很棒,很吵,服务态度好,价格便宜。\n评论:',
  temperature=0.5,
  max_tokens=300,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

我最近去了大头鱼烧烤,真的很棒!服务态度很好,价格也很便宜。我尤其喜欢他们的茄子,味道非常棒!唯一缺点就是有点吵,但是这也是一家烧烤店的常态,所以我还是很满意的。总而言之,我强烈推荐大头鱼烧烤!

广告文案

输入 prompt 内容:

为以下产品写一则创意广告,在微博上针对家长进行宣传:
产品:云课堂是一个网络平台,帮助从幼儿园到高中的学生在学校表现出色。

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='为以下产品写一则创意广告,在微博上针对家长进行宣传:\n产品:云课堂是一个网络平台,帮助从幼儿园到高中的学生在学校表现出色。',
  temperature=0.5,
  max_tokens=300,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

家长们,你们的孩子是否想要在学校表现出色?云课堂是一个网络平台,可以帮助从幼儿园到高中的学生提高学习成绩,让他们在学校里取得更好的成绩。云课堂拥有丰富的资源,专业的老师,精心设计的课程,可以帮助孩子们更好地理解学习内容,提高学习效率。让你的孩子在学校表现出色,就选择云课堂吧!

会议记录

输入 prompt 内容:

将我的速记转换成会议纪要
张三:利润增长50%
李四:新服务器上线了
王五:需要更多时间来修复BUG
李四:可以帮忙
赵六:Beta测试即将完成

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='将我的速记转换成会议纪要\n张三:利润增长50%\n李四:新服务器上线了\n王五:需要更多时间来修复BUG\n李四:可以帮忙\n赵六:Beta测试即将完成',
  temperature=0.0,
  max_tokens=300,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

会议纪要:

  1. 张三报告,公司利润增长了50%。
  2. 李四报告,新服务器已经上线。
  3. 王五报告,需要更多时间来修复BUG,李四表示可以提供帮助。
  4. 赵六报告,Beta测试即将完成。

面试问题

输入 prompt 内容:

为我面试一位Python后台开发创建一个包含8个问题的清单:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='为我面试一位Python后台开发创建一个包含8个问题的清单:',
  temperature=0.5,
  max_tokens=500,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

  1. 请描述你对Python后台开发的了解。
  2. 你有使用过哪些Python Web框架?
  3. 你是如何处理数据库的?
  4. 你曾经处理过大型数据集吗?
  5. 你有使用过什么样的API?
  6. 你有使用过Python中的任务调度模块吗?
  7. 你有使用过Python中的日志模块吗?
  8. 你有使用过Python中的安全和加密模块吗?

头脑风暴

输入 prompt 内容:

集思广益,提出一些结合AI和自动化测试的想法:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='集思广益,提出一些结合AI和自动化测试的想法:',
  temperature=0.6,
  max_tokens=500,
  top_p=1.0,
  frequency_penalty=1.0,
  presence_penalty=1.0,
)

print(response.choices[0].text)

响应的结果文本:

  1. 使用AI技术来自动生成测试用例:通过分析已有的代码及其行为,AI 可以自动生成覆盖所有可能情况的测试用例。
  2. 让 AI 来优化测试套件:通过将历史上失败的样例和新出现的样例作为特征数据集,AI 可以学习并改进当前的测试套件。
  3. 使用 AI 来预测应用性能:通过利用数据采集、日志分析和即时监控来帮助开发人员了解如何优化应用性能。
  4. 通过 AI 来实现对大量信息中快速定高限和低限: 通过场景建立、数学优化方法、回归方法等, AI 系统可以帮助开发者在一定限度之内尽快找出合理考虑各要素之间关系, 精准地定高低界限。

论文大纲

输入 prompt 内容:

为一篇关于《浮士德》中魔鬼形象及其矛盾性的文章创建一个大纲:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='为一篇关于《浮士德》中魔鬼形象及其矛盾性的文章创建一个大纲:',
  temperature=0.3,
  max_tokens=600,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

I. 引言
A. 《浮士德》的背景
B. 主要角色
II. 魔鬼形象
A. 魔鬼的外表
B. 魔鬼的性格特征
III. 魔鬼的矛盾性
A. 对人类的态度
B. 对浮士德的态度
IV. 结论
A. 魔鬼的矛盾性
B. 对浮士德的影响

学习笔记

输入 prompt 内容:

研究中国古代文论时我应该知道的5个要点是什么?

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='研究中国古代文论时我应该知道的5个要点是什么?',
  temperature=0.3,
  max_tokens=800,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

  1. 中国古代文论的发展史:从《诗经》到《文心雕龙》,介绍中国古代文论的发展历程。
  2. 中国古代文论的主要思想:介绍中国古代文论的主要思想,如儒家文论、道家文论、墨家文论、法家文论等。
  3. 中国古代文论的主要著作:介绍中国古代文论的主要著作,如《论语》、《孟子》、《庄子》、《诗经》、《文心雕龙》等。
  4. 中国古代文论的影响:介绍中国古代文论对中国文学、文化、思想等方面的影响。
  5. 中国古代文论的现代研究:介绍中国古代文论的现代研究,如文论史、文论理论、文论方法等。

创建食谱

输入 prompt 内容:

根据这些食材编写食谱:黑椒蛋炒饭
食材:黑胡椒 农家土鸡蛋 隔夜的木桶饭 切小块的香肠 葱花
食谱:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='根据这些食材编写食谱:黑椒蛋炒饭\n食材:黑胡椒 农家土鸡蛋 隔夜的木桶饭 切小块的香肠 葱花\n食谱:',
  temperature=0.3,
  max_tokens=800,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

黑椒蛋炒饭

材料:

  • 隔夜的木桶饭:2杯
  • 农家土鸡蛋:2个
  • 黑胡椒:1茶匙
  • 切小块的香肠:2汤匙
  • 葱花:2汤匙

做法:

  1. 先将木桶饭放入锅中,加入适量清水,用中火煮沸,然后转小火煮5分钟,直到饭熟透。
  2. 热锅,放入适量油,放入香肠炒香,加入黑胡椒粉炒出香味。
  3. 加入鸡蛋,翻炒均匀,直到蛋液完全凝固。
  4. 加入煮好的木桶饭,翻炒均匀,直到饭粒完全熟透。
  5. 最后,加入葱花,翻炒均匀,即可出锅。

推荐书单

输入 prompt 内容:

推荐10本育儿方面的书:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='推荐10本育儿方面的书:',
  temperature=0.5,
  max_tokens=900,
  top_p=1.0,
  frequency_penalty=0.52,
  presence_penalty=0.5,
  stop=['11.'],
)

print(response.choices[0].text)

响应的结果文本:

1.《宝宝育儿百科》(李淑霞著)
2.《幸福的孩子——健康快乐成长的智慧》(布莱恩·斯特劳斯著)
3.《家庭教育的全过程》(徐佳琪、刘星主编)
4. 《一步一个脚印——0~6岁儿童教育实用手册》(张小龙、吴保国等主编)
5. 《读者文摘·孩子需要什么样的教养?》 (当代读者出版社出版)
6. 《如何培养孩子的独立性? 》 (郭双双著)
7. 《孩子不是木头人——中国传统教养之道与当代家庭教育之道对比分析》 (王勇、张雪琴主编)
8. 《如何帮助孩子成长得快乐、健康、有能力? 》 (李重光、李重光、姚明宣主编)
9. 《小孩大心理——从出生到12岁家庭教育之道》 (郭双双著)
10. 《早期教养——了解并帮助0-3岁年龄段的孩子成长与发展。 》 (杜德耀、王海波主编)

产品名称

输入 prompt 内容:

根据下面的描述想几个产品名称
产品描述:夜灯
种子词:适合婴儿 可以啃咬 续航整晚 小巧
产品名称:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='根据下面的描述想几个产品名称\n产品描述:夜灯\n种子词:适合婴儿 可以啃咬 续航整晚 小巧\n产品名称:',
  temperature=0.8,
  max_tokens=600,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

  1. 婴儿星空夜灯
  2. 可啃夜灯
  3. 持久夜灯
  4. 迷你夜灯

总结内容

输入 prompt 内容:

帮我总结一下:
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='帮我总结一下:\n由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。',
  temperature=0.7,
  max_tokens=600,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

关闭TCP连接的4次握手:

  1. 主动关闭方发送FIN,表示它不再有数据需要发送。
  2. 被动关闭方收到FIN,发送ACK,表示它已经收到FIN,但它仍然有数据要发送。
  3. 被动关闭方发送FIN,表示它也不再有数据需要发送。
  4. 主动关闭方收到FIN,发送ACK,表示它已经收到FIN,此时TCP连接被完全关闭。

电子表格

输入 prompt 内容:

包含世界人口数和统计年份的两列电子表格:\n统计年份 | 世界人口数

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='包含世界人口数和统计年份的两列电子表格:\n统计年份 | 世界人口数',
  temperature=0.5,
  max_tokens=100,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

------------ | -------------
1950 | 2,556,000,000
1960 | 3,040,000,000
1970 | 3,700,000,000
1980 | 4,440,000,000
1990 | 5,286,000,000
2000 | 6,082,000,000
2010 | 6,908,000,000
2020 | 7,800,000,000

电子邮件

输入 prompt 内容:

帮我给张三写一封邮件,祝他生日快乐,同时祝贺他获得晋升。

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='text-davinci-003',
  prompt='帮我给张三写一封邮件,祝他生日快乐,同时祝贺他获得晋升。',
  temperature=1.0,
  max_tokens=300,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果文本:

亲爱的张三:
祝贺你获得晋升!期待你将更大的潜力发挥出来,将工作做得更出色,达到更高的水平!
今天是你的生日,祝你生日快乐!愿你新的一年快乐无比,身体健康,心想事成!
此致
敬礼!

OpenAI 代码续写

Go代码

输入 prompt 内容:

/*
Go 语言
创建动物列表
创建城市列表
生成关于我在每个城市的动物园看到的故事列表
*/

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
    model='code-davinci-002',
    prompt='/*\nGo 语言\n创建动物列表\n创建城市列表\n生成关于我在每个城市的动物园看到的故事列表\n*/',
    max_tokens=320,
    temperature=0.0,
    top_p=1.0,
    presence_penalty=0.0,
    frequency_penalty=0.0,
)

print(response.choices[0].text)

响应的结果代码:

package main

import (
        "fmt"
        "math/rand"
        "time"
)

func main() {
        rand.Seed(time.Now().UnixNano())
        animals := []string{"cat", "dog", "pig", "cow", "horse", "sheep", "goat", "chicken", "duck", "goose"}
        cities := []string{"beijing", "shanghai", "guangzhou", "shenzhen", "hangzhou", "chengdu", "wuhan", "chongqing", "tianjin", "nanjing"}
        for i := 0; i < 10; i++ {
                fmt.Printf("I saw a %s in %s zoo.\n", animals[rand.Intn(len(animals))], cities[rand.Intn(len(cities))])
        }
}

HTML代码

输入 prompt 内容:

<!-- 创建一个标题为 "OpenAI AUI" 的表单提交网页 -->
<!DOCTYPE html>

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
    model='code-davinci-002',
    prompt='<!-- 创建一个标题为 "OpenAI AUI" 的表单提交网页 -->\n<!DOCTYPE html>',
    max_tokens=200,
    temperature=0.0,
    top_p=1.0,
    presence_penalty=0.0,
    frequency_penalty=0.0,
    stop=['```'],
)

print(response.choices[0].text)

响应的结果代码:

<html>
<head>
    <meta charset="utf-8">
    <title>OpenAI AUI</title>
</head>
<body>
<form action="http://127.0.0.1:8000/api/v1/openai/aui" method="post">
    <input type="text" name="text" value="你好">
    <input type="submit" value="提交">
</form>
</body>
</html>

JavaScript函数

输入 prompt 内容:

// JavaScript 语言
// 创建一个从1数到100并返回和值的函数

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
    model='code-davinci-002',
    prompt='// JavaScript 语言\n// 创建一个从1数到100并返回和值的函数',
    max_tokens=200,
    temperature=0.0,
    top_p=1.0,
    presence_penalty=0.0,
    frequency_penalty=0.0,
    stop=['//'],
)

print(response.choices[0].text)

响应的结果代码:

function sum(n) {
    var sum = 0;
    for (var i = 1; i <= n; i++) {
        sum += i;
    }
    return sum;
}

Python代码

输入 prompt 内容:

1、创建一个包含10个名字列表
2、创建一个包含10个姓氏列表
3、将它们随机组合成5个完整的姓名
4、将这些姓名打印出来

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='code-davinci-002',
  prompt='1、创建一个包含10个名字列表\n2、创建一个包含10个姓氏列表\n3、将它们随机组合成5个完整的姓名\n4、将这些姓名打印出来',
  temperature=0.0,
  max_tokens=1000,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response.choices[0].text)

响应的结果代码:

import random

first_name = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈']
last_name = ['小明', '小红', '小刚', '小霞', '小强', '小芳', '小燕', '小丽', '小兰', '小红']

for i in range(5):
    print(random.choice(first_name) + random.choice(last_name))

Python函数

输入 prompt 内容:

def getUserBalance(id):
    """
    在MongoDB的tp_backend数据库的UserData表中查找用户并返回他们的账户余额
    """

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
    model='code-davinci-002',
    prompt='def getUserBalance(id):\n    """\n    在MongoDB的tp_backend数据库的UserData表中查找用户并返回他们的账户余额\n    """',
    max_tokens=200,
    temperature=0.0,
    top_p=1.0,
    presence_penalty=0.0,
    frequency_penalty=0.0,
    stop=['def'],
)

print(response.choices[0].text)

响应的结果代码:

    client = MongoClient(host=MONGO_HOST, port=MONGO_PORT)
    db = client.tp_backend
    userData = db.UserData
    user = userData.find_one({"id": id})
    if user is None:
        return None
    else:
        return user["balance"]

Python测试代码

输入 prompt 内容:

# Python 3
def sum_numbers(a, b):
    return a + b
# Unit test
def

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
    model='code-davinci-002',
    prompt='# Python 3\ndef sum_numbers(a, b):\n  return a + b\n# Unit test\ndef',
    max_tokens=320,
    temperature=0.0,
    top_p=1.0,
    presence_penalty=0.0,
    frequency_penalty=0.0,
    stop=['#'],
)

print(response.choices[0].text)

响应的结果代码:

 test_sum_numbers():
  assert sum_numbers(1, 2) == 3
  assert sum_numbers(1, -1) == 0
  assert sum_numbers(0, 0) == 0
  assert sum_numbers(10, -10) == 0
  assert sum_numbers(10, 10) == 20
  assert sum_numbers(0, 10) == 10
  assert sum_numbers(10, 0) == 10
  assert sum_numbers(10, 10) == 20
  assert sum_numbers(10, -10) == 0
  assert sum_numbers(0, 0) == 0
  assert sum_numbers(1, -1) == 0
  assert sum_numbers(1, 2) == 3
  print("YOUR CODE IS CORRECT!")

Python修复BUG

输入 prompt 内容:

import Random
a = random.randint(1,12)
b = random.randint(1,12)
for i in range(10):
    question = "What is "+a+" x "+b+"? "
    answer = input(question)
    if answer = a*b
        print (Well done!)
    else:
        print("No.")
# 修复上面函数中的错误

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='code-davinci-002',
  prompt='import Random\na = random.randint(1,12)\nb = random.randint(1,12)\nfor i in range(10):\n    question = "What is "+a+" x "+b+"? "\n    answer = input(question)\n    if answer = a*b\n        print (Well done!)\n    else:\n        print("No.")\n# 修复上面函数中的错误',
  temperature=0.0,
  max_tokens=200,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=['#', '\"\"\"'],
)

print(response.choices[0].text)

响应的结果代码:

import random
a = random.randint(1,12)
b = random.randint(1,12)
for i in range(10):
    question = "What is "+str(a)+" x "+str(b)+"? "
    answer = input(question)
    if int(answer) == a*b:
        print ("Well done!")
    else:
        print("No.")

Python注释文档

输入 prompt 内容:

# Python 3.8
def fib(num):
    if num <= 1:
        return num
    else:
        return fib(num-1) + fib(num-2)
print(fib(10))
# 上述函数的文档
"""

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='code-davinci-002',
  prompt='# Python 3.8\ndef fib(num):\n    if num <= 1:\n        return num\n    else:\n        return fib(num-1) + fib(num-2)\nprint(fib(10))\n# 上述函数的文档\n"""',
  temperature=0.0,
  max_tokens=200,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=['#', '\"\"\"'],
)

print(response.choices[0].text)

响应的结果代码:

fib(num)
    返回斐波那契数列的第num项

Python代码重构

输入 prompt 内容:

    if num ==1:
        print(a)
    else:
        print(a)
        print(b)
        # 序列从0,1开始
        print(fib(10))
        for i in range(2,num):
            c = a+b
            a = b
            b = c
            print(c)
fibonacci(10)
# 将代码重构成递归函数

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='code-davinci-002',
  prompt='    if num ==1:\n        print(a)\n    else:\n        print(a)\n        print(b)\n        # 序列从0,1开始\n        print(fib(10))\n        for i in range(2,num):\n            c = a+b\n            a = b\n            b = c\n            print(c)\nfibonacci(10)\n# 将代码重构成递归函数',
  temperature=0.0,
  max_tokens=200,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=['#', '\"\"\"'],
)

print(response.choices[0].text)

响应的结果代码:

def fib(num):
    if num ==1:
        return 1
    elif num ==2:
        return 1
    else:
        return fib(num-1)+fib(num-2)
print(fib(10))

Python翻译成Java

输入 prompt 内容:

### 把这个函数从Python翻译成Java
## Python
    def predict_proba(X: Iterable[str]):
        return np.array([predict_one_probas(tweet) for tweet in X])
## Java

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='code-davinci-002',
  prompt='### 把这个函数从Python翻译成Java\n## Python\n    def predict_proba(X: Iterable[str]):\n        return np.array([predict_one_probas(tweet) for tweet in X])\n## Java',
  temperature=0.0,
  max_tokens=200,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=['##'],
)

print(response.choices[0].text)

响应的结果代码:

    public static double[][] predictProba(String[] X) {
        double[][] result = new double[X.length][];
        for (int i = 0; i < X.length; i++) {
            result[i] = predictOneProbas(X[i]);
        }
        return result;
    }

R代码

输入 prompt 内容:

# R 语言
# 计算points数组中的point的平均值

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
    model='code-davinci-002',
    prompt='# R 语言\n# 计算points数组中的point的平均值',
    max_tokens=200,
    temperature=0.0,
    top_p=1.0,
    presence_penalty=0.0,
    frequency_penalty=0.0,
    stop=['#'],
)

print(response.choices[0].text)

响应的结果代码:

points <- c(1,2,3,4,5,6,7,8,9,10)
mean(points)

MySQL查询

输入 prompt 内容:

# 表customers,列=[CustomerId,FirstName,LastName,Company,Address,City,State,Country,PostalCode,Phone,Fax,Email,SupportRepId]
# 创建MySQL查询:所有住在深圳的姓张的用户
query = 

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='code-davinci-002',
  prompt='# 表customers,列=[CustomerId,FirstName,LastName,Company,Address,City,State,Country,PostalCode,Phone,Fax,Email,SupportRepId]\n# 创建MySQL查询:所有住在深圳的姓张的用户\nquery = ',
  temperature=0.0,
  max_tokens=200,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=['#', ';'],
)

print(response.choices[0].text)

响应的结果代码:

SELECT * FROM customers WHERE City = 'Shenzhen' AND LastName = 'Zhang'

PostgreSQL查询

输入 prompt 内容:

# Postgres SQL 表及其属性:
Employee(id, name, department_id)
Department(id, name, address)
Salary_Payments(id, employee_id, amount, date)
# 查询列出过去3个月内雇用超过10名员工的部门名称:

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
  model='code-davinci-002',
  prompt='# Postgres SQL 表及其属性:\nEmployee(id, name, department_id)\nDepartment(id, name, address)\nSalary_Payments(id, employee_id, amount, date)\n# 查询列出过去3个月内雇用超过10名员工的部门名称:',
  temperature=0.0,
  max_tokens=400,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=['#', ';'],
)

print(response.choices[0].text)

响应的结果代码:

SELECT d.name
FROM Department d
WHERE (SELECT COUNT(*) FROM Employee e WHERE e.department_id = d.id) > 10
AND d.id IN (SELECT DISTINCT department_id FROM Employee e WHERE e.id IN (SELECT employee_id FROM Salary_Payments WHERE date > NOW() - INTERVAL '3 months'))

TypeScript函数

输入 prompt 内容:

// TypeScript 语言
// 创建一个从1数到100并返回和值的函数

完整的调用代码:

import openai
openai.api_key = 'xx-xxxxxxxx'

response = openai.Completion.create(
    model='code-davinci-002',
    prompt='// TypeScript 语言\n// 创建一个从1数到100并返回和值的函数',
    max_tokens=200,
    temperature=0.0,
    top_p=1.0,
    presence_penalty=0.0,
    frequency_penalty=0.0,
    stop=['//'],
)

print(response.choices[0].text)

响应的结果代码:

function sum(n: number): number {
  let result = 0;
  for (let i = 1; i <= n; i++) {
    result += i;
  }
  return result;
}

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

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

相关文章

存储也能“一键美颜”?看 XOCP 如何助力互联科技图片业务转型

近日&#xff0c;XSKY星辰天合联合“互联科技”推出了“图片云在线处理”解决方案&#xff0c;提供海量图片高效存储访问和在线图片处理服务&#xff0c;深入业务场景简化操作流程&#xff0c;提升照片流转速度&#xff0c;为客户打造高效敏捷的拍照体验。互联科技&#xff08;…

DAS Over FC 技术允许 ATTO 分解存储并完成 vSAN 认证套件

一、介绍 最近&#xff0c;ATTO Technology, Inc. 以前所未有的方式 完成了 VMware vSAN ReadyNode 认证套件。 测试台本身是公式化的&#xff0c;以三台 Dell R640 服务器作为主机。 除了用于引导的 SD 卡和用于日志记录的单个 SAS SSD 之外&#xff0c;不存在任何内部存储…

EXCEL基础:IFNA、VLOOKUP、SUMIFS函数的使用

注意&#xff1a;本操作数据来源于excel home&#xff0c;特此声明。 查看原始数据&#xff0c;如下所示为【商品】的相关信息&#xff1a; 查看原始数据&#xff0c;如下所示为【供应商】的相关信息&#xff1a; 主要目的&#xff1a;把以上相关信息搞在一张表上。 把下表…

基于jsp+mysql+ssm台球俱乐部管理系统-计算机毕业设计

项目介绍 台球俱乐部系统设计主要是管理员登录后对整个系统相关操作进行处理&#xff0c;可进行管理员的添加和删除&#xff0c;会员信息管理、付费信息管理、球桌信息管理、订桌信息管理等操作管理。采用目前最流行的ssm框架和eclipse编辑器、mysql数据库设计并实现的 本系统…

[附源码]计算机毕业设计冬奥会网上商城Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

什么是BPM系统?BPM流程管理系统介绍

一、什么是BPM系统&#xff1f; BPM系统&#xff08;英文全称&#xff1a;Business Process Management&#xff0c;翻译后简称BPM&#xff09;即业务流程管理系统&#xff0c;是指对端到端业务流程进行建模、分析和优化&#xff0c;以实现战略业务目标&#xff0c;其特点是注…

Elasticsearch:如何在 CentOS 上创建多节点的 Elasticsearch 集群 - 8.x

在我之前的文章 “Elasticsearch&#xff1a;使用 RPM 安装包来安装 Elastic Stack 8.x” 里&#xff0c;我详细地介绍了如何使用 RPM 安装包来安装 Elastic Stack 8.x。在今天的文章中&#xff0c;我来详细描述如何从零开始来创建一个含有三个节点的 Elasticsearch 集群。我们…

python文本处理尝试

Python文本处理尝试 最近打算看CSAPP&#xff0c;GitHub上看到有英语字幕ass源文件&#xff0c;想把字幕提取出来提高学习效率&#xff0c;先把ass文件转成txt文件&#xff0c;发现是这样&#x1f447; 都在Dialogue的后面&#xff0c;打算尝试提取一下 不太熟练&#xff0c;下…

解决 Eclipse 中不见 Maven 问题

在 Windows -> Preferences 不见 Maven 和 File -> New -> Project 均不见 Maven&#xff0c;但 Help -> Eclipse Marketplace -> installed 却可见已经安装&#xff0c;网上的各种方法都不能解决。 解决步骤&#xff1a; 关闭 Eclipse&#xff1b;清空目录 C:…

肿瘤网络平台

肿瘤网络平台是为广大肿瘤医生量身定做的学习&#xff0c;交流功能健全的网络平台&#xff0c;平台汇聚了会议、病例、专家讲堂等内容&#xff0c;广大的肿瘤医生可以随时分享、讨论专业知识。 一、平台价值 让医生 了解肿瘤前沿进展 提高业务水平 丰富临床经验 二、平台架构…

如何挖掘外贸客户需求

是客户的衣食父母。 俗话说“知己知彼&#xff0c;百战不殆”&#xff0c;外贸业务员都想把自己的产品推销给客户。除了知道自己产品的特点&#xff0c;还应该知道客户的需求是什么。因此&#xff0c;前期的客户调研工作非常重要。 不是所有的客户都是意向或潜在客户。只有当…

小程序canvas 缩放/拖动/还原/封装和实例--开箱即用

小程序canvas 缩放/拖动/还原/封装和实例一、预览二、使用2.1 创建和配置方法三、源码3.1 实例组件3.2 核心类一、预览 之前写过web端的canvas 缩放/拖动/还原/封装和实例。最近小程序也需要用到&#xff0c;但凡是涉及小程序canvas还是比较多坑的&#xff0c;而且难用多了&am…

[附源码]Node.js计算机毕业设计订餐系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

Linux中如何查看ntp是否同步?

Linux中如何查看ntp是否同步?在Linux中&#xff0c;查看ntp是否同步的方法主要有三种&#xff0c;分别是&#xff1a;ntpd命令、ntpstat命令、timedatectl命令&#xff0c;接下来是详细的内容介绍。  NTP用于将计算机客户或服务器的时间同步到另一服务器或参考时钟源。它使用…

Java基于微信小程序的计算机等级考试考练 毕业设计

网络的广泛应用给生活带来了十分的便利。所以把计算机等级考试考练与现在网络相结合&#xff0c;利用java技术建设计算机等级考试考练APP&#xff0c;实现计算机等级考试考练的信息化。则对于进一步提高计算机等级考试考练发展&#xff0c;丰富计算机等级考试考练经验能起到不少…

[附源码]Python计算机毕业设计电商后台系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

web前端期末大作业——HTML+CSS+JavaScript仿王者荣耀游戏网站设计与制作

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

基于kmeans算法的数据聚类matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 聚类算法也许是机器学习中“新算法”出现最多、最快的领域&#xff0c;一个重要的原因是聚类不存在客观标准&#xff0c;给定数据集总能从某个角度找到以往算法未覆盖的某种标准从而设计出新算法…

VR工厂:助力工厂数字化升级

近年来&#xff0c;疫情全球常态化和数字化进程加速&#xff0c;给传统制造业工厂在生产制作、业务销售上带来巨大考验。随着物联网、云计算、大数据和5G等信息技术的发展&#xff0c;制造工厂面临着第四次工业革命。2021年&#xff0c;国家发布“十四五规划”&#xff0c;着重…

Geometry空间几何数据的处理应用(全)

学前小故事 学前必备基础知识 WTK格式的Geomotry GeoJSON格式的Geomotry JTS(Java Topology Suite) Java拓扑套件 JTS(Java Topology Suite) 可视化界面 泰森多边形 向空间数据库插入数据 栅格 GDAL GeoTools QGIS 学前小故事 项目需求是跟用户当前位置判断是否在…