簡體   English   中英

如何使用 Codex API 獲取令牌或代碼嵌入?

[英]How to get token or code embedding using Codex API?

對於給定的代碼片段,如何使用 Codex API 進行嵌入?

 import os import openai import config openai.api_key = config.OPENAI_API_KEY def runSomeCode(): response = openai.Completion.create( engine="code-davinci-001", prompt="\"\"\"\n1. Get a reputable free news api\n2. Make a request to the api for the latest news stories\n\"\"\"", temperature=0, max_tokens=1500, top_p=1, frequency_penalty=0, presence_penalty=0) if 'choices' in response: x = response['choices'] if len(x) > 0: return x[0]['text'] else: return '' else: return '' answer = runSomeCode() print(answer)

但我想弄清楚給定一個 python 代碼塊,如下所示,我可以從 codex 獲得嵌入嗎?

輸入:

 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 ")

Output:

  • 嵌入輸入代碼

是的,OpenAI 可以為任何輸入文本創建嵌入——即使它是代碼。 試試這個代碼:

# Standard library imports
from typing import List

# Third-party imports
import openai


def get_embedding(text: str, engine="text-similarity-davinci-001") -> List[float]:
    # replace newlines, which can negatively affect performance.
    text = text.replace("\n", " ")

    return openai.Embedding.create(input=[text], engine=engine)["data"][0]["embedding"]


embedding = get_embedding("Sample query text goes here")
print(len(embedding))

# Output:
# 12288


embedding = get_embedding("""
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.")
""")
print(len(embedding))

# Output:
# 12288

注意:您可以使用get_embedding()engine參數替換模型或引擎。

參考:

function get_embedding將為我們提供輸入文本的嵌入。

此處來自 OpenAI 的規范代碼: https://github.com/openai/openai-python/blob/main/examples/embeddings/Get_embeddings.ipynb

 import openai from tenacity import retry, wait_random_exponential, stop_after_attempt @retry(wait=wait_random_exponential(min=1, max=20), stop=stop_after_attempt(6)) def get_embedding(text: str, engine="text-similarity-davinci-001") -> List[float]: # replace newlines, which can negatively affect performance. text = text.replace("\n", " ") return openai.Embedding.create(input=[text], engine=engine)["data"][0]["embedding"] embedding = get_embedding("Sample query text goes here", engine="text-search-ada-query-001") print(len(embedding))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM