API申请与调用 | 豆包MarsCode AI刷题

285 阅读4分钟

做练中学的时候发现,申请各种api着实费功夫,调用api也略麻烦。这里总结了需要用到的几个api的申请方式,以及它们的调用方法,希望能有所帮助。当然,由于篇幅有限,这里只是总结了注册中的几个关键要点,有些在掘金小册中已有的注册方法就不再重复。

一、申请

首先,国外的api申请需要科学上网,有些甚至还需要各种其他附加条件,如国外手机号码、国外的信用卡号等等。因此,除非不得已,尽量使用国内api,能省不少事情。

1. openai API

申请openai步骤非常繁琐,包括以下步骤:

1. 科学上网

由于相关法律法规限制,这里不便细说,不过我相信想要申请openai api的大部分都能解决这个问题。

2. 申请国外手机号码

这里推荐一个网站:sms-activate.org/ ,可以注册虚拟手机号码。当然这个网站需要科学上网才能登陆。具体步骤可以参考这个视频:www.bilibili.com/video/BV14N…

3. 申请谷歌邮箱gmail

网站:mail.google.com/

4. 注册chatgpt账号

网站:chatgpt.com/auth/login,…

5. 申请api

网站:platform.openai.com/docs/overvi… ;点击Your profile,找到API keys,可以看到管理api的界面。右上角被下拉框遮挡处有一个create new secret key,即可创建api。

image.png

6.注册虚拟信用卡

新用户有五美元的免费额度。有时间限制,超过期限就得使用信用卡。需要国外信用卡,可以注册一个虚拟信用卡。可以参考这个视频:www.bilibili.com/video/BV1nn…

整个流程非常繁琐,可以单开一篇文章来写,这里只是概述一下,并提供了相应的网站,稍微摸索下应该都能解决。

2. 豆包API

申请豆包api在教程里都有,这里就不赘述,值得注意的是,本次练中学需要用到两个豆包api,一个是豆包大模型api,一个是嵌入模型api。嵌入模型注册方法与大模型类似,只是在选择模型时换成embedding模型。

image.png

网站:

3. HuggingFace API

huggingface的api位于access tokens下,只要注册huggingface账号,基本就没有太大的难度。

image.png

网站:huggingface.co/

4. SERP API

serp api在小册里面也有描述。唯一的难点是验证要国外手机号码,但实际试了下,其实用国内的手机也能注册,只要在接收信息前将手机连接vpn,就能收到验证消息。

网站:serpapi.com/

5. GMAIL API

小册中也有详细步骤,依次完成就行了。实际注册过程中,最麻烦的是OAuth授权,把gmail api相关的设为非敏感范围就可以了,或者参考小册中的设置。

image.png

二、调用

总结所知道的有四种调用api方法,知道其他方法的也可以补充。

方法一:os

在代码的开头输入以下内容,过程方便,但是有泄露key的风险。

import os
os.environ["OPENAI_API_KEY"]="你的Open API Key"
os.environ["OPENAI_BASE_URL"]="你的Open_base_url"
MODEL_NAME="你的model_name"

方法二:openai库

调用模型的时候输入api,同样也有泄露key的风险。

from openai import OpenAI
client=OpenAI(
    api_key="你的Open API Key",
    base_url="你的Open_base_url"
)

方法三:操作系统定义环境变量

在操作系统中预先定义环境变量,source运行即可不用重复输入。

export OPENAI_API_KEY='你的Open API Key' 
export OPENAI_BASE_URL='你的Open_base_url'
export LLM_MODELEND='你的model_name'

方法四:python-dotenv库

  1. 安装python-dotenv库
pip install python-dotenv
  1. 在项目根目录下创建一个 .env 文件,并在这个文件中设置环境变量。
OPENAI_API_KEY='你的Open API Key' 
OPENAI_BASE_URL='你的Open_base_url'
LLM_MODELEND='你的model_name'
  1. 在python脚本中加载.env里的环境变量。
from dotenv import load_dotenv

# 加载.env文件中的环境变量
load_dotenv()

MODEL_NAME=os.getenv("LLM_MODELEND")
OPENAI_API_KEY=os.getenv("OPENAI_API_KEY")
OPEN_BASE_URL=os.getenv("OPEN_BASE_URL")