时间:2025-01-29 14:06
人气:
作者:admin
在本地部署大语言模型(LLM)并赋予其联网能力,是当前AI应用开发的重要方向。本文将基于Microsoft Semantic Kernel框架,结合DeepSeek本地模型和自定义搜索技能,展示如何构建一个具备联网增强能力的智能应用。
运行环境要求:
核心NuGet包:
Microsoft.SemanticKernel
Microsoft.SemanticKernel.Connectors.Ollama
[用户输入] → [搜索模块] → [结果预处理] → [LLM整合] → [最终响应]
var endpoint = new Uri("http://你的ollama地址:11434");
var modelId = "deepseek-r1:14b";
var builder = Kernel.CreateBuilder();
builder.AddOllamaChatCompletion(modelId, endpoint);
public class SearchSkill
{
// 执行搜索并处理结果
public async Task<List<SearchResult>> SearchAsync(string query)
{
// 构建请求参数
var parameters = new Dictionary<string, string> {
{ "q", query },
{ "format", "json" },
// ...其他参数
};
// 处理响应并解析
var jsonResponse = await response.Content.ReadAsStringAsync();
return ProcessResults(jsonResponse);
}
}
// 初始化服务
var kernel = builder.Build();
var chatService = kernel.GetRequiredService<IChatCompletionService>();
var searchService = kernel.GetRequiredService<SearchSkill>();
// 执行搜索
List<SearchResult> result = await searchService.SearchAsync(query);
// 构建提示词
var chatHistory = new ChatHistory();
chatHistory.AddSystemMessage($"找到{result.Count}条结果:");
// ...添加搜索结果
// 获取模型响应
await foreach (var item in chatService.GetStreamingChatMessageContentsAsync(chatHistory))
{
Console.Write(item.Content);
}
混合智能架构
搜索增强功能
var sortedResults = results.OrderByDescending(r => r.Score);
private List<Result> FilterResults(...)
以Vue-Pure-Admin模板开发为例:
用户输入:基于vue-pure-admin做一个表格页面
系统响应:
1. 搜索官方文档相关内容
2. 整合最佳实践代码示例
3. 给出分步实现建议
通过本文的实现方案,开发者可以:
完整项目代码已托管至GitHub(示例地址),欢迎开发者参考和贡献。这种本地+联网的混合架构,为构建安全可靠的智能应用提供了新的可能性。
https://github.com/zt199510/deepseeksk
Microsoft Agent Framework Skills 执行 Scripts(实
EF Core 原生 SQL 实战:FromSql、SqlQuery 与对