怎么样使用OpenAI的Python API

随着ChatGPT和GPT-4等的火爆,相信很多朋友也都想试试Open AI的API,这里我简单介绍一下:

搜索“openai api”,可以看到下面几个网页:

OpenAI API:这里只是简单介绍了一下API的目的和他们的一些考虑;

https://platform.openai.com/docs/introduction:这里是OpenAi docs的整体介绍;

https://platform.openai.com/docs/api-reference:这个页面就更有针对性一些,介绍了怎么在Python和Node.js中使用API。

首先:

pip install openai

其次,如果在刚才第一个页面中点Sign up,然后登录,在右上角自己用户名的图标点一下,可以看到有“View API keys”,然后就可以创建或者使用自己已有的API key了。有趣的是,生成了的API key,第二次在网站上也看不到字符串了。

接下来就可以写一些简单的测试代码了:

import openai

openai.api_key="OPENAI_API_KEY"
print(openai.Model.list())

这样就会列出所有的model名字,不过大家应该注意,每一次API调用都是要收钱的,我也不知道打印个list需要收钱不,保险起见,不运行也可以。

在Pricing这个页面里可以看到不同模型的价格:Pricing

这里对目前的model进行了介绍:https://platform.openai.com/docs/models

例如我对这里的embedding比较感兴趣,在这里:https://platform.openai.com/docs/guides/embeddings有对embedding model的介绍(不得不说,OpenAI这doc写得真烂,乱七八糟的)

推荐使用的是下面这个model:

Model nametokenizermax input tokensoutput dimensions
text-embedding-ada-002cl100k_base81911536

可以看到,输入序列的最大token个数是8191,按照这里的介绍:

https://platform.openai.com/docs/guides/embeddings/how-can-i-tell-how-many-tokens-a-string-has-before-i-embed-it

可以在嵌入之前先计算一下序列的长度,但文档里并没有说超长了怎么处理,是截断还是直接不处理了呢。另外,使用的tokenizer是tiktoken,具体的编码方式是cl100k_base:

For second-generation embedding models like text-embedding-ada-002, use the cl100k_base encoding.

综合https://platform.openai.com/docs/guides/embeddings/use-cases和上面这个网页的例子,可以试一个简单的例子:

import openai
import tiktoken

def num_tokens_from_string(string: str, encoding_name: str) -> int:
    """Returns the number of tokens in a text string."""
    encoding = tiktoken.get_encoding(encoding_name)
    num_tokens = len(encoding.encode(string))
    return num_tokens

openai.api_key = "OPENAI_API_KEY"

embedding_test = "Let spend some money to test the embedding model"
num_tokens = num_tokens_from_string(embedding_test, "cl100k_base")
print(num_tokens)

response_embedding=openai.Embedding.create(input = [num_tokens], model="text-embedding-ada-002")['data'][0]['embedding']
print(response_embedding)

当然,这里只是最简单的使用方法,具体也可以参考:openai-cookbook/Obtain_dataset.ipynb at main · openai/openai-cookbook · GitHub

就先总结这么多。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值