Py学习  »  Python

极简 Python:10分钟会用 OpenAI / Kimi API

赛博禅心 • 2 周前 • 67 次点击  

背景

之前写了一份:写给不会代码的你:20分钟上手 Python + AI但感觉还不够简单粗暴。


于是就有了这篇 10 分钟版的,让你快速的开始使用各 AI 厂的 API。


作为准备工作,请先打开 Colab 的网站,并新建一个笔记本。

网址: https://colab.research.google.com



基础版

一切之前,你需要先获取你 API key


对于 OpenAI 用户,访问这里:

https://platform.openai.com/api-keys


对于 Kimi 用户,访问这里:

https://platform.moonshot.cn/console/api-keys


对于其他用户...你自己看着找吧



01
 复制代码

如果你是 OpenAI 的用户,请将下面的代码复制进 Colab:

!pip install openaifrom openai import OpenAI
client = OpenAI(    api_key="sk-yTmYibGsJ637VUkki2GZUzZ9vh7EWFEJ",    )completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": "你好"} ])
print(completion)


如果你是其他 AI 的用户,以 Kimi 为例,复制这个:

!pip install openaifrom openai import OpenAI
client = OpenAI( api_key="sk-yTmYibGsJ637VUkki2GZUzZ9vh7EWFEJ", base_url="https://api.moonshot.cn/v1"    )completion = client.chat.completions.create( model="moonshot-v1-8k", messages=[ {"role": "user", "content": "你好"} ])
print(completion)


注意:你要把 api_key 换成你的

细心的你会发现,无论是什么 AI API,大家的接口调用方法,都几乎一致。唯变化的,是 base_url 和 model 的值。

02
 执行代码

选择代码单元格,点击左侧的“运行”按钮或快捷键 Ctrl + Enter,开始运行代码。 

刚开始运行时,Colab 会安装 OpenAI 库,可能需要几十秒,并输出类似这样的内容:


安装完成后,你会看到回复被打印出来,类似这样:


仔细看这里的中文部分:‘你好!今天我能帮你做什么?’

接口是通的!恭喜你已经成功地与 AI 完成了第一次对话!

03
 获取回复内容

仔细看回复,是不是很奇怪?里面有着 id、choices 这样的词。 


其实,这就像一个包裹,AI 的回复内容被装在了好几层「盒子」里面。我们要一层一层地打开,才能看到最里面的回复内容。 completion 就是最外面的那个大「盒子」,我们需要先打开它。 接下来是 choices,"choices"的意思是「选择」,这里面装着几个备选的回复,但通常我们只需要第一个。


在 Python 里,我们用 [0] 来表示第一个。再打开 choices[0],我们会看到一个叫 message 的盒子。这里面装的就是 ChatGPT 的回复了,但还差一点点。 最后,message 里面还有一层叫 content 的盒子,打开它,我们就能看到 ChatGPT 的回复内容了。 


所以,想要看到 ChatGPT 的回复,我们需要一步一步地「拆盒子」: completion → choices → [0] → message → content 在代码里,就是这样写: completion.choices[0].message.content。


现在,让我们把 print(completion) 改成 print(completion.choices[0].message.content) :

!pip install openaifrom openai import OpenAI
client = OpenAI(    api_key="sk-yTmYibGsJ637VUkki2GZUzZ9vh7EWFEJ",    )completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": "你好"} ])
print(completion.choices[0].message.content)


这时候再运行代码,你就能看到 ChatGPT 干净利落的回复了: 



虽然这些"盒子"的名字看起来有点复杂,但你只需要记住用 completion.choices[0].message.content 就能打开最后一个"盒子",看到回复内容。 以后如果你在学习 Python 时遇到了类似的情况,不要害怕,就想象成在拆一个套娃,一层一层地打开,最后你就能得到你想要的结果了。

到这里,你已经学会使用 OpenAI API 了!


高级一点

如果每次提问,都要重复改代码,就太累了

所以,我们可以试试函数


01
 函数是啥

函数是一段可以不断被复用的代码,给定输入后,就可以按逻辑给出输出,你可以把很多东西都封装成函数。

举个例子,给手游充值,就是一个函数。现在定义一个函数:充值(金额),输入一个金额后,就会返回对应的结果:

  • 充值(0元),返回:「想一想,不充钱你会变得更强吗?」

  • 充值(6元),返回:「想一想,就充这么一点,你会变得更强吗?」

  • 充值(618元),返回:「想一想,再充一点,你就更强了」

  • 充值(114514元),返回:「你真是个大冤种」


再来个,可放在代码里的例子,诗词填空:_______,从此君王不早朝

def poem(s):  print(f"{s},从此君王不早朝")


在这个代码里,把值放到 s 所在的位置,然后调用,它就会把你输入的内容+“从此君王不早朝”一并输出,比如

poem("春宵苦短日高起")poem("但使龙城飞将在")poem("我为将军解战袍")poem("鸡哥练习两年半")


则你会得到:

春宵苦短日高起,从此君王不早朝但使龙城飞将在,从此君王不早朝我为将军解战袍,从此君王不早朝鸡哥练习两年半,从此君王不早朝


注意:这里说一些代码规范

  • def poem(s): 其中的 def 是定义函数的意思,poem 是函数名,s 是参数名。

    • def 是固定写法,别改

    • poem 和 s 你随便改,看你喜欢

  • print(f"{s},从此君王不早朝"):是函数的输出

    • 在函数里,内容都要有一个缩进(我通常是打一个 tab)

    • print() 的括号是英文括号

    • f"{s},从此君王不早朝" 的意思是,将"{s},从此君王不早朝"中的{s}替换成 s 的值,比如替换成:鸡哥练习两年半

02
 封装提问

现在,让我们来用更正式的方式来重写上面的调用。


第一步,通过 pip 安装 openai 的库,并运行(因为,你并不需要每次运行代码前,都重新安装一遍环境):

!pip install openai


第二步,定义一个名为 ask 的函数,将之前的提问代码封装起来,然后运行,如:

from openai import OpenAI
client = OpenAI( api_key="sk-yTmYibGsJ637VUkki2GZUzZ9vh7EWFEJ" )
def ask(question): completion = client.chat.completions.create( model="gpt-3.5-turbo" , messages=[ {"role": "user", "content": f"{question}"} ])  print(completion.choices[0].message.content)


这里我问了 GPT-3.5 三个问题:

ask("陨石为什么总落在坑里?")ask("ATM 机里一般有几个工作人员?")ask("GPT-5 啥时候发布?")


运行后,得到了:

陨石总落在坑里是因为坑可以提供一定程度的保护和集中力量,有助于减轻陨石冲击时的压力和破坏力。此外,坑也可能会吸引和引导陨石朝向更集中的区域落下。因此,陨石在落下时通常会选择坑陷落。通常情况下,ATM 机内部不需要工作人员驻守。ATM 机是自助式设备,用户可以直接在机器上进行各种操作,如取款、存款、转账等。不过ATM 机由银行或金融机构负责维护和监控,他们可能会派遣技术人员定期检查和维护机器。目前还没有官方消息表明GPT-5什么时候发布。OpenAI可能会在未来一两年内发布GPT-5或其他技术升级版本,但具体时间表尚不清楚。建议关注OpenAI官方发布的消息以获取最新动态。

到这里,你已经足以用 OpenAI API 来处理各种日常工作了!


最后

如果你希望学习更多模型的调用,比如声音转文字、文字转图片,或者更加细致的定义处理风格(严谨还是更有创意的),可以参考 OpenAI 的官方文档。


文档地址:

https://platform.openai.com/docs/api-reference


接下来本大聪明还会「以实用为核心」,再更新一篇新手极其友好的「Python Cheat Sheet」,帮助大家温故知新。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169549
 
67 次点击