You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Codex API获取代码片段的Token与Embedding嵌入向量

基于OpenAI Python库调用Codex API获取代码Embedding结果实现方案

前置依赖配置

  • 安装官方openai Python库,执行安装命令:pip install openai
  • 在代码中完成API密钥初始化,配置语句:openai.api_key = "你的OpenAI API密钥"

核心调用实现

你之前调用code-davinci-001引擎的Completion接口用于代码生成,获取代码嵌入结果需要调用同属Codex技术线的Embedding接口,直接传入任意格式正确的Python代码块作为输入即可,参考实现代码如下:

import openai

# 初始化API密钥
openai.api_key = "替换为你自己的API密钥"

# 示例输入:乘法练习Python代码块,可替换为任意待处理Python代码
target_code_block = """
import random
def multiplication_practice():
    factor1 = random.randint(1, 9)
    factor2 = random.randint(1, 9)
    print(f"请计算:{factor1} × {factor2} = ?")
    input_result = int(input("输入计算结果:"))
    if input_result == factor1 * factor2:
        print("答案正确!")
    else:
        print(f"答案错误,正确结果为{factor1 * factor2}")

if __name__ == "__main__":
    multiplication_practice()
"""

# 调用Codex嵌入接口
api_response = openai.Embedding.create(
    model="code-search-ada-code-001",
    input=target_code_block
)

# 提取最终嵌入向量结果
code_embedding_result = api_response["data"][0]["embedding"]

# 结果验证输出
print(f"生成嵌入向量总长度:{len(code_embedding_result)}")
print(f"嵌入向量前10个维度值示例:{code_embedding_result[:10]}")

关键参数说明

  • model:代码嵌入场景固定使用Codex线专属代码嵌入模型,适配代码语义特征提取,和你之前使用的code-davinci-001补全模型能力互补
  • input:接收字符串格式的Python代码块,传入时保持代码原有缩进、换行格式即可,无需额外特殊处理;批量处理多段代码时可传入字符串列表,接口会按顺序返回每段代码对应的嵌入结果
  • 返回结构中api_response["data"][0]["embedding"]为对应输入代码的一维浮点型语义向量,可直接用于代码相似度匹配、代码分类、代码检索等下游任务

注意事项

  • Embedding接口和Completion接口为独立接口,前者用于生成语义向量,后者用于内容生成/补全,不要混淆调用
  • 传入代码总长度不要超过对应模型的最大上下文窗口限制,超长代码需要提前做截断或分块处理
  • 若调用时出现权限报错,检查你的API密钥是否有Codex系列模型的访问权限

内容的提问来源于stack exchange,提问作者Exploring

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:39:22