
API是什么?深入解析API及其应用
在 AI 技术飞速发展的今天,高昂的开发成本和复杂的部署流程常常让许多开发者望而却步。然而,市场上出现的免费 AI API 为个人开发者和初创企业带来了新的希望。这些免费的接口不仅降低了开发门槛,还为创意的快速验证和原型开发提供了可能。今天,就让我们一起盘点那些值得尝试的免费 AI API,看看它们如何助力你的项目起飞。
提到 AI,GPT 系列无疑是绕不开的话题。尽管 OpenAI 的官方 API 需要付费,但一些第三方平台提供了免费的 GPT 接口,虽然有调用次数限制,但对于小规模的测试和开发来说已经足够。
GPT_API_free 是一个基于 OpenAI 模型的免费接口服务。它支持每天 100 次的请求,虽然只能使用 gpt-3.5-turbo 模型,但对于简单的对话生成、文本补全等任务来说已经绰绰有余。开发者可以通过 GitHub 账号授权获取免费的 API Key,并通过国内中转的代理 URL 进行调用,大大降低了延时。
代码示例:
import os
import requests
from openai import OpenAI
api_key = os.getenv("OPENAI_API_KEY", "your_api_key")
base_urls = ["https://api.chatanywhere.tech/v1", "https://api.chatanywhere.com.cn/v1"]
client = OpenAI(api_key=api_key, base_url=base_urls[0])
def get_model_list():
url = base_urls[0] + "/models"
headers = {
'Authorization': f'Bearer {api_key}',
'User-Agent': 'Apifox/1.0.0 (https://apifox.com)'
}
response = requests.request("GET", url, headers=headers)
data = response.json()['data']
models = [model['id'] for model in data]
print(models)
def chat(model="gpt-3.5-turbo", messages=[], temperature=0.7):
completion = client.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
)
return completion.choices[0].message.content
if __name__ == '__main__':
messages = [
{'role': 'system', 'content': '你是百科全书'},
{'role': 'user', 'content': '鲁迅和周树人的关系'},
]
res = chat(model="gpt-3.5-turbo", messages=messages)
print(res)
GPT4free 提供了更为便捷的 Python 调用方式,开发者可以直接通过 pip 安装相关库,并快速集成到自己的项目中。不过需要注意的是,该接口容易封 IP,因此在使用时需要谨慎。
代码示例:
from g4f.client import Client
client = Client()
def text_generation(model="gpt-3.5-turbo", messages=[], temperature=0.7):
completion = client.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
)
return completion.choices[0].message.content
if __name__ == '__main__':
messages = [{'role': 'user', 'content': '你是谁'}]
print(text_generation(messages=messages))
Coze 是一个海外版的免费 GPT 调用平台,它封装了对 GPT 的调用接口,每个注册用户有 100 次免费调用额度。虽然额度有限,但对于一些简单的国际项目来说,Coze 是一个不错的选择。
代码示例:
import requests
import json
url = "https://api.coze.com/open_api/v2/chat"
headers = {
'Authorization': 'Bearer your_token',
'Content-Type': 'application/json',
'Accept': '*/*',
'Host': 'api.coze.com',
'Connection': 'keep-alive'
}
query = """
你了解遥远的救世主这本书么,结合搜索结果来回答
"""
data = {
"bot_id": "7370949251666477072",
"user": "0",
"conversation_id": "123",
"query": query,
"stream": False,
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
LLaMA3-70B 是由 NVIDIA 提供的一个强大的免费 AI 模型。它支持每天 1000 次的免费调用,这对于需要处理大量文本的开发者来说是一个巨大的福利。该模型的接口与 OpenAI API 类似,开发者可以轻松上手,快速实现复杂的文本生成任务。
代码示例:
from openai import OpenAI
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1",
api_key="your_api_key"
)
completion = client.chat.completions.create(
model="meta/llama3-70b-instruct",
messages=[{"role": "user", "content": "xxx"}],
temperature=0.5,
top_p=1,
max_tokens=1024,
stream=True
)
for chunk in completion:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
DeepSeek 为新注册用户提供了免费的 API 试用额度,有效期为一个月。它的接口设计与 OpenAI API 类似,开发者可以快速迁移和集成。DeepSeek 的模型在处理复杂问题时表现出色,适合需要高精度文本生成的项目。
Kimi 是由 Moonshot AI 提供的人工智能助手 API,新注册用户可以领取 15 元的 token 试用量。它支持多种速率限制方式,开发者可以根据自己的需求灵活选择。Kimi 提供了多种模型,包括适用于短文本、长文本和超长文本的模型,能够满足不同场景的需求。此外,Kimi 还支持文件内容抽取和存储功能,开发者可以将文件内容直接用于对话生成,大大提高了开发效率。
代码示例:
from openai import OpenAI
client = OpenAI(
api_key="your_api_key",
base_url="https://api.moonshot.cn/v1",
)
completion = client.chat.completions.create(
model="moonshot-v1-8k",
messages=[
{"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手。"},
{"role": "user", "content": "你好,我叫李雷,1+1等于多少?"}
],
temperature=0.3,
)
print(completion.choices[0].message.content)
ChatGLM 提供了多种模型选择,包括通用大模型、图像大模型和向量模型。新注册用户可以领取 18 元的 token 试用量。ChatGLM 的接口设计灵活,支持同步、异步和流式调用,开发者可以根据自己的需求选择合适的调用方式。此外,ChatGLM 还提供了丰富的功能,如系统提示、函数调用、检索和网页搜索等,能够满足复杂的应用场景。
代码示例:
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="your_api_key")
response = client.chat.completions.create(
model="glm-4",
messages=[
{"role": "system", "content": "你是一个乐于解答各种问题的助手。"},
{"role": "user", "content": "你好!你叫什么名字"}
],
stream=False,
)
print(response.choices[0].message)
Spark 提供了多种免费的 AI 模型选择,包括 Spark3.5 Max、Spark Pro 和 Spark Lite。其中,Spark3.5 Max 和 Spark Pro 分别提供 200 万 token 的免费额度,有效期为一年;Spark Lite 则完全免费。虽然 Spark 的接口与 OpenAI API 不完全相同,但开发者可以通过简单的封装实现兼容。
代码示例:
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler
from sparkai.core.messages import ChatMessage
SPARKAI_APP_ID = 'your_app_id'
SPARKAI_API_SECRET = 'your_api_secret'
SPARKAI_API_KEY = 'your_api_key'
model = 'spark lite'
if model == 'spark lite':
SPARKAI_URL = 'wss://spark-api.xf-yun.com/v1.1/chat'
SPARKAI_DOMAIN = 'general'
elif model == 'spark pro':
SPARKAI_URL = 'wss://spark-api.xf-yun.com/v3.1/chat'
SPARKAI_DOMAIN = 'generalv3'
elif model == 'spark max':
SPARKAI_URL = 'wss://spark-api.xf-yun.com/v3.5/chat'
SPARKAI_DOMAIN = 'generalv3.5'
spark = ChatSparkLLM(
spark_api_url=SPARKAI_URL,
spark_app_id=SPARKAI_APP_ID,
spark_api_key=SPARKAI_API_KEY,
spark_api_secret=SPARKAI_API_SECRET,
spark_llm_domain=SPARKAI_DOMAIN,
streaming=False,
)
if __name__ == '__main__':
messages = [ChatMessage(role="user", content='你好呀')]
handler = ChunkPrintHandler()
a = spark.generate([messages], callbacks=[handler])
print(a.generations[0][0].text)
考虑到大部分免费 AI API 都提供了与 OpenAI API 兼容的接口,开发者可以将所有服务封装成一个统一的类。这样,通过一套代码就可以调用任意想用的模型,大大提高了开发效率。开发者可以根据自己的需求,灵活选择不同的模型和接口,实现快速开发和验证。
代码示例:
from openai import OpenAI
# 枚举所有可用的模型服务
model_dict = {
'gpt-3.5-turbo': {
'api_key': 'your_api_key',
'base_url': 'https://api.chatanywhere.tech',
},
'gpt-4': {
'api_key': 'your_api_key',
'base_url': 'https://api.chatanywhere.tech',
},
}
# 设置人设提示词,根据需要进行修改
prompt_dict = {
'gpt-3.5-turbo': [
{"role": "system", "content": "你是 gpt-3.5"},
],
'gpt-4': [
{"role": "system", "content": "你是 gpt-4"},
],
}
class LLM_API:
def __init__(self, api_key, base_url, model):
self.client = OpenAI(
api_key=api_key,
base_url=base_url,
)
self.model = model
def __call__(self, messages, temperature=0.7):
completion = self.client.chat.completions.create(
model=self.model,
messages=messages,
temperature=temperature,
)
return completion.choices[-1].message.content
if __name__ == '__main__':
model = 'gpt-3.5-turbo'
llm = LLM_API(model_dict[model]['api_key'], model_dict[model]['base_url'], model)
user_question = "你是谁"
messages = prompt_dict[model] + [{"role": "user", "content": user_question}]
print(llm(messages))
免费 AI API 的出现,为开发者带来了前所未有的便利。它们不仅降低了开发成本,还为创意的快速验证和原型开发提供了强大的支持。无论是简单的对话生成,还是复杂的文本处理,这些免费的 API 都能够满足开发者的需求。希望本文的盘点能够帮助你在 AI 开发的道路上更进一步,开发出更多有趣的应用。如果你还有其他发现的免费 AI API,欢迎在评论区分享,让我们一起探索更多可能。