LLM免费api平台

平时使用AI模型进行学习和尝试开发一些简单的agent,会消耗大量token,这里介绍两个提供免费API的平台,自用下来感觉回复速度和服务器稳定性很不错:

硅基流动

https://siliconflow.cn/zh-cn/

官网介绍:专为大模型微调与托管打造的一站式服务平台。通过该平台,用户可以快速、无缝地将自定义模型部署为服务,并根据自己上传的数据进行模型微调。

可用的免费模型还是很多的,这里演示一下推理模型的使用,先看一下参数:

使用OpenAI SDK进行流式输出的简单demo:

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.getenv("SILICONFLOW_API_KEY"), #这里使用你自己的api key 
    base_url="https://api.siliconflow.cn/v1"
)
completion = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", #这个是推理模型,推理内容在reasoning_content里
    # model="Qwen/Qwen2-7B-Instruct", # 自行切换非推理模型对比效果
    messages=[{
        "role": "user",  
        "content": "9.9和9.11谁大?"  
    }],
    stream=True
)
reasoning = ""
content = ""
for chunk in completion:
    # print('chunk.choices[0]:', chunk.choices[0])
    delta = chunk.choices[0].delta
    
    delta_reasoning = getattr(delta, 'reasoning_content', '')
    delta_content = getattr(delta, 'content', '')
    
    if delta_reasoning:
        reasoning += delta_reasoning
        print(delta_reasoning, end="", flush=True)
    if delta_content:
        content += delta_content
        print(delta_content, end="", flush=True)

# print('\n'*2)
# if reasoning:
#     print("-"*50)
#     print("完整推理:", reasoning)

# print("-"*50)
# print("完整回答:", content)

运行演示


OpenRouter平台

https://openrouter.ai/

官网介绍:一个支持LLM统一接口的平台

和硅基流动一样,注册、创建apikey、选择模型;

模型列表 :
其中也有昨天刚发布的deepseek最新版V3,也有Qwen: QwQ 32B 和 DeepSeek: R1,这些在硅基流动上都是收费的,不确定openrouter后续会不会收费,至少可以试用的情况下可以优先使用这个平台进行测试

同样使用OpenAI SDK进行流式输出的简单demo:

这里需要注意的是,思考的字段是reasoning,以下是完整代码,基本和上面一致:

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.getenv("OPEN_ROUTER_API_KEY"), #这里使用你自己的api key 
    base_url="https://openrouter.ai/api/v1"
)

# 自行切换非推理模型对比效果
completion = client.chat.completions.create(
#   model="deepseek/deepseek-chat-v3-0324:free",
#   model="qwen/qwq-32b:free",
#   model="qwen/qwen-2.5-72b-instruct:free",
  model="deepseek/deepseek-r1:free", #这个是推理模型,推理内容在reasoning里
  messages=[
    {
      "role": "user",
      "content": "9.9和9.11谁大?"
    }
  ],
  stream=True
)
reasoning = ""
content = ""
for chunk in completion:
    # print('chunk.choices[0]:', chunk.choices[0])
    delta = chunk.choices[0].delta
    
    # 使用 getattr 安全地获取属性,如果不存在则返回空字符串
    delta_reasoning = getattr(delta, 'reasoning', '')
    delta_content = getattr(delta, 'content', '')
    
    # 如果delta_reasoning存在,则将它添加到reasoning中,并打印出来
    if delta_reasoning:
        reasoning += delta_reasoning
        print(delta_reasoning, end="", flush=True)
    # 如果delta_content存在,则将它添加到content中,并打印出来
    if delta_content:
        content += delta_content
        print(delta_content, end="", flush=True)

# print('\n'*2)
# if reasoning:
#     print("-"*50)
#     print("完整推理:", reasoning)

# print("-"*50)
# print("完整回答:", content)

就不放视频了,基本效果和上面视频里是差不多的: