使用 embeddings
本 notebook 包含一些有用的代码片段,您可以通过 OpenAI API 使用 text-embedding-3-small
模型嵌入文本。
from openai import OpenAI
client = OpenAI()
embedding = client.embeddings.create(
input="Your text goes here", model="text-embedding-3-small"
).data[0].embedding
len(embedding)
1536
建议使用 'tenacity' 包或其他指数退避实现来更好地管理 API 速率限制,因为过快地大量访问 API 可能会触发速率限制。使用以下函数可确保您尽快获得 embeddings。
# 负面示例(速度慢且有速率限制)
from openai import OpenAI
client = OpenAI()
num_embeddings = 10000 # 一个较大的数字
for i in range(num_embeddings):
embedding = client.embeddings.create(
input="Your text goes here", model="text-embedding-3-small"
).data[0].embedding
print(len(embedding))
# 最佳实践
from tenacity import retry, wait_random_exponential, stop_after_attempt
from openai import OpenAI
client = OpenAI()
# 重试最多 6 次,每次重试的延迟呈指数增长,从 1 秒开始,最多 20 秒
@retry(wait=wait_random_exponential(min=1, max=20), stop=stop_after_attempt(6))
def get_embedding(text: str, model="text-embedding-3-small") -> list[float]:
return client.embeddings.create(input=[text], model=model).data[0].embedding
embedding = get_embedding("Your text goes here", model="text-embedding-3-small")
print(len(embedding))
1536