我的 .NET 旅行 AI 库支持多模型适配实操

大Leo的日常 中级 2天前 613 浏览 5 点赞 约 1 分钟

强行要求用户必须有 Azure 订阅才能跑通 Demo,是很多开源库下载量低的主要原因。我之前的 TravelAI.Core 就踩了这个坑,初期只支持 Azure OpenAI 和 AI Search,导致很多开发者在还没看到效果前就被繁琐的配置劝退了。

为了降低门槛,我重构了提供者层,现在一套代码可以无缝切换 OpenAI、Anthropic、Ollama 以及 Azure。

核心实现逻辑

我定义了一个统一的 ILlmProvider 接口,把具体的模型调用细节屏蔽掉。无论底层是调用 Anthropic.SDK 还是给 Ollama 发 HTTP 请求,上层业务逻辑(如行程生成、价格异常检测)完全不需要改动。

public interface ILlmProvider
{
 Task GenerateAsync(
 string systemPrompt,
 string userPrompt,
 CancellationToken ct = default);
}

在配置端,现在可以通过简单的扩展方法快速切换:

builder.Services.AddTravelAI(options => options.UseMock()); // 离线模拟,无需 Key
builder.Services.AddTravelAI(options => options.UseOpenAI("sk-..."));
builder.Services.AddTravelAI(options => options.UseAnthropic("sk-ant-..."));
builder.Services.AddTravelAI(options => options.UseOllama("http://localhost:11434"));
builder.Services.AddTravelAI(options => options.UseAzureOpenAI("endpoint", "key", "gpt-4o"));

实测体验与对比

  • Mock Provider: 这是我最推荐的入门方式。完全离线,直接返回预设的罗马三日游 JSON,适合在没网的环境下快速跑通整个工作流
  • Ollama 适配: 走的是 /api/chat 接口。为了保持适配器无状态,我关掉了 streaming,实测生成行程这种短文本任务,响应速度完全可以接受。
  • 多模型切换: 同样的提示词,Claude 在行程细节的描述上比 GPT-4o 更具“人味”,而 Ollama 跑本地模型则解决了隐私焦虑。

快速部署指南

如果你想在 .NET 项目里试一下这个大模型工作流,直接执行:

dotnet add package TravelAI.Core

建议先用 UseMock() 验证业务逻辑,确认没问题后再更换为实际的 API Key。

项目源码路径:

https://github.com/aftabkh4n/TravelAI.Core
AI大模型LLMwebdevazure

全部回复 (3)

内卷王调参侠 中级 2天前
支持Ollama的话,本地跑Llama3这种规模的模型,响应速度怎么样?
0 回复
产品经理阿强 中级 2天前
确实,适配多模型后,建议把不同供应商的Token计费逻辑也统一下。
0 回复
前端大鹏 初级 2天前
之前试过几个库全得绑外卡,太折腾了,能接本地模型确实方便。
0 回复

发表回复

支持 Markdown 格式