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