- 📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!
- 📢本文作者:由webmote 原创
- 📢作者格言:2026年,一个巨大的转折点,开启自由职业,技术栈.NET、VUE、嵌入式C、大量低价接私活中,欢迎dddd......
序言
英伟达免费的大模型Nemotron最大的优点就是免费,可商用以及支持单卡部署,极大降低了大模型私有化的难度,鉴于此,咱们就来尝尝鲜吧。由于我手头没有显卡支持,只好退而求其次,使用英伟达免费的线上模型尝试了...
1、为什么选择 Nemotron 3 Super
2025 年 12 月,NVIDIA 发布 Nemotron 3 开放模型家族,覆盖 Nano、Super 和 Ultra,目标直指 Agent、工具调用和多智能体工作流。2026 年 3 月上线的 Nemotron 3 Super 120B-A12B 共有 120B 参数,但每个 token 只激活约 12B 参数;它采用 Mamba-2、Attention、Latent MoE 和多 token 预测的混合架构,在效率与能力之间做了很有意思的平衡。
根据 NVIDIA 模型介绍,Super 支持中文、代码、工具调用和长上下文,最高可扩展到 100 万 token,尤其适合聊天机器人、RAG 和 Agent 场景。对 .NET 开发者更实用的一点是:NVIDIA 托管接口兼容 OpenAI API,因此现有 OpenAIClient 和 Microsoft Agent Framework 基本不需要更换编程模型。
2、开英伟达账号
直接导航到英伟达开发社区,点它即可。
点这个大大的按钮,然后在页面右上角点击登录或注册账号即可,推荐使用gmail邮箱。 注册登录后,依然到这个页面,搜索 Nemotron 3 Super。
选择第一个搜索结果,然后开通API Key,右上角。
开通api时需要填写手机号,这个可以用打码平台,开通后按照例子就可以简单测试了。 权益还是可以轻松应对测试的。 
3、项目搭建
先输入ai配置,如下:
json
{
"OpenApi": {
"UseModel": "Nemotron3",
"Nemotron3": {
"BaseUrl": "https://integrate.api.nvidia.com/v1",
"Model": "nvidia/nemotron-3-super-120b-a12b",
"ApiKey": "<NVIDIA_API_KEY>",
"Temperature": 1.0,
"TopP": 0.95,
"Timeout": 300
}
}
}
3.1、建立OppenAI的兼容客户端
NVIDIA 模型并不是 OpenAI 模型,但接口协议兼容,因此只需替换端点、密钥和模型名:
csharp
OpenAIClient client = new(
new ApiKeyCredential(currentAi.ApiKey),
new OpenAIClientOptions
{
Endpoint = new Uri(currentAi.BaseUrl),
NetworkTimeout = TimeSpan.FromSeconds(currentAi.Timeout)
});
var chatClient = client.GetChatClient(currentAi.Model);
AIAgent agent = chatClient.AsAIAgent(
instructions: "你是个非常友善的小助手,每次回答问题都很简洁。",
name: "对话小助手");
这也是参考文章中接入第三方模型的关键思路:让兼容接口负责推理,让 Agent Framework 负责会话、上下文和后续工具编排。
3.2、同一个 Session,就是多轮对话的关键
微软的MAF采用Session管理多次会话,模型接口本身不会凭空记住上一次独立请求。真正让第二轮理解"我是谁"的,是两次调用复用了同一个 AgentSession:
csharp
AgentSession session = await agent.CreateSessionAsync();
await foreach (var update in agent.RunStreamingAsync(
"我叫嘟嘟,我热爱大象", session))
{
Console.Write(update);
}
Console.WriteLine();
await foreach (var update in agent.RunStreamingAsync(
"你知道我是谁吗?", session))
{
Console.Write(update);
}
第一轮把"名字是嘟嘟、喜欢大象"写入会话历史;第二轮虽然没有重复这些信息,但 Framework 会把相关历史随请求交给 Nemotron。因此,正常效果应是模型回答"你叫嘟嘟",并可能补充"你喜欢大象"。如果第二轮新建了另一个 session,这段上下文就不会自动存在。
RunStreamingAsync 还会把生成内容分片写到控制台。它不会改变最终答案,却显著缩短用户感知到的首字等待时间,适合客服和聊天窗口。
3.3、运行结果
简介的对话,对话中 可见,AI确实记录了上次对话中的内容。
3.4、 演示到生产
当前示例验证的是进程内短期记忆。项目还提供了 VectorChatHistoryProvider:它按 SessionId 保存请求与响应,调用前取回最近 10 条记录。这为跨请求、跨进程的持久化留下了接口,但生产环境还应继续处理:
- 用真正的向量数据库或持久化存储替代临时实现,并设置历史裁剪策略;
- 不记录 API Key、完整请求头和敏感对话,生产环境关闭消息级 Debug 日志;
- 对 429、超时和网络错误增加退避重试与取消令牌;
- 用固定问题集评估中文一致性、上下文召回率、首 token 延迟和单轮成本;
- 长上下文容量不是无限记忆的替代品,历史越长,延迟和费用通常也越高。
4、结论

这次接入最有价值的地方,不是写了多少适配代码,而是边界非常清晰:Nemotron 3 Super 提供推理与对话能力,OpenAI 兼容层降低 SDK 迁移成本,Microsoft Agent Framework 用 AgentSession 管理多轮上下文。只要复用 session,我们就从一次性问答迈进了真正连贯的 Agent 对话;再接入持久化历史、工具和 RAG,就能逐步扩展为生产级应用。
参考资料
好了,你学废了吗?