NVIDIA免费模型调用#
注册#
官网:https://build.nvidia.com
需要手机验证
模型选择#
| 模型名称 | 模型ID | 核心优势 | 适用场景 |
|---|---|---|---|
| GLM-4.7 | z-ai/glm4.7 | 中文能力强,代码生成优秀 | 中文对话、编程助手、文本创作 |
| MiniMax M2.1 | minimaxai/minimax-m2.1 | 响应速度快,多模态支持 | 快速问答、原型开发 |
| DeepSeek V3.2 | deepseek-ai/deepseek-v3.2 | 编程能力突出,逻辑清晰 | 代码生成、算法解析、技术问答 |
| Llama 3.1 70B | meta/llama-3.1-70b-instruct | 英文通用能力强 | 英文内容处理、学术研究 |
| Kimi K2 | moonshotai/kimi-k2-thinking | 长文本处理出色 | 文档分析、长文总结 |
各模型在nvidia平台的上下文长度多为128K,GLM-4.7支持200K,满足大多数需求
调用方法#
python
from openai import OpenAI
import os
# 配置客户端
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1", # 固定地址
api_key=os.getenv("NVIDIA_API_KEY", "nvapi-xxx_xxx") # 替换为你的Key
)
def query_nim_model(prompt, model="z-ai/glm4.7", max_tokens=1024):
"""
调用英伟达NIM大模型
参数:
prompt: 用户输入的提示词
model: 模型ID,默认为GLM-4.7
max_tokens: 最大输出长度
返回:
模型生成的文本
"""
try:
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
temperature=0.7, # 控制随机性,0-1之间
max_tokens=max_tokens,
stream=False # 设为True可流式输出
)
return response.choices[0].message.content
except Exception as e:
return f"调用失败: {str(e)}"
# 使用示例
if __name__ == "__main__":
result = query_nim_model("用Python写一个快速排序算法,并添加详细注释")
print(result)参数解释:
# 完整API调用参数示例
response = client.chat.completions.create(
model="z-ai/glm4.7", # 必填,模型标识
messages=[ # 必填,对话历史
{"role": "system", "content": "你是一个资深Python开发专家"},
{"role": "user", "content": "解释Python的装饰器原理"}
],
temperature=0.7, # 随机性:0-2,越高越有创意
max_tokens=2048, # 最大输出长度
top_p=0.9, # 核采样:0-1,控制多样性
stream=False, # 是否流式输出
presence_penalty=0.0, # 话题新鲜度:-2到2
frequency_penalty=0.0 # 重复惩罚:-2到2
)异常处理#
常见的就是网络问题,重试:
# 添加重试机制的示例
import time
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
def robust_query(prompt):
return query_nim_model(prompt)批量处理优化#
def batch_process(queries, model="z-ai/glm4.7", delay=2):
"""批量处理多个查询,避免频率限制"""
results = []
for i, query in enumerate(queries):
if i > 0 and i % 10 == 0:
time.sleep(60) # 每10个请求暂停1分钟
result = query_nim_model(query, model)
results.append(result)
time.sleep(delay) # 请求间基础间隔
return results模型选择建议#
1. 中文任务:首选GLM-4.7,备选MiniMax
2. 编程任务:首选DeepSeek,备选GLM-4.7
3. 英文任务:首选Llama 3.1 70B
4. 长文档处理:首选Kimi K2,备选GLM-4.7