编辑
2025-11-20
MySQL
00

什么是MySQL数据库?

MySQL是一种开源的关系型数据库管理系统(RDBMS),广泛应用于各种规模的应用程序中。它是由瑞典公司MySQL AB开发并维护的,后来被Sun Microsystems收购,现在是Oracle公司的一部分。MySQL数据库以其高性能、可靠性和灵活性而闻名,被广泛用于Web应用程序、企业级应用程序和嵌入式系统中。

image.png

MySQL的特点与优势

MySQL具有以下特点和优势:

开源与免费

MySQL是一种开源的关系型数据库管理系统(RDBMS),它是由瑞典MySQL AB公司开发的,并且现在由Oracle公司维护和支持。作为开源软件,MySQL遵循GNU通用公共许可证(GPL),这意味着用户可以免费使用、修改和分发MySQL。这使得MySQL成为许多开发者和组织的首选数据库解决方案,因为它提供了灵活性、可定制性和经济性。开发者可以根据自己的需求自由地修改和定制MySQL,并将其集成到他们的应用程序中。此外,MySQL具有良好的性能、可靠性和可扩展性,使其成为处理大量数据和高并发访问的理想选择。

编辑
2025-11-20
C#
00

想象一下,你正在为公司开发一个智能客服系统,产品经理突然提出需求:"用户问天气的时候,系统能不能自动调用天气API,而不是只会说'请稍等,我帮您查询'?"

本文将通过实战代码,教你如何让C#应用获得**"函数调用"**这一AI时代的核心能力,让你的程序不再是简单的问答机器人,而是真正具备执行能力的智能助手。

🤔 痛点分析:传统AI对话的局限性

传统的AI对话系统存在一个致命缺陷:只能"说"不能"做"

用户问:"明天需要穿雨衣吗?"

传统AI回答:"抱歉,我无法获取实时天气信息,请您查询天气预报。"

这种体验让用户感觉AI"很傻",明明知道用户需要什么,却无法主动帮助解决问题。而**Function Calling(函数调用)**技术的出现,彻底改变了这一现状。

💡 解决方案:两个实用场景展示

🌤️ 场景一:智能天气助手

让我们先看看如何创建一个能够主动获取天气信息的AI助手:

C#
using System.ComponentModel; using System.Text; using Microsoft.Extensions.AI; using OllamaSharp; namespace SmartWeatherAssistant { internal class Program { static async Task Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; Console.InputEncoding = Encoding.UTF8; // 🎯 关键点1:使用Description特性让AI理解函数用途 [Description("获取指定城市的当前天气情况,返回晴天或雨天")] string GetCurrentWeather( [Description("城市名称,如:北京、上海、广州")] string city = "当前位置") { // 🔧 实际项目中,这里应该调用真实的天气API var weather = Random.Shared.NextDouble() > 0.5 ? "晴天" : "雨天"; Console.WriteLine($"[系统] 正在获取{city}的天气信息..."); Console.WriteLine($"[结果] {city}当前天气:{weather}"); return $"{city}现在是{weather}"; } // 🚀 初始化Ollama客户端(需要本地运行Ollama服务) IChatClient client = new OllamaApiClient( new Uri("http://localhost:11434"), "qwen2.5:3b"); // 使用轻量级的3B模型 // 🔥 关键点2:启用函数调用功能 client = ChatClientBuilderChatClientExtensions .AsBuilder(client) .UseFunctionInvocation() // 这一行是魔法所在! .Build(); // 🛠️ 配置可用的工具函数 ChatOptions options = new() { Tools = [AIFunctionFactory.Create(GetCurrentWeather)] }; Console.WriteLine("🤖 智能天气助手已启动,请输入您的问题:"); // 💬 处理用户输入 var userInput = "明天北京需要穿雨衣吗?"; Console.WriteLine($"👤 用户:{userInput}"); Console.WriteLine("🤖 助手:"); // 🎬 流式响应,实时显示AI思考过程 var response = client.GetStreamingResponseAsync(userInput, options); await foreach (var update in response) { Console.Write(update); } } } }

image.png

编辑
2025-11-20
C#
00

🎯 还在为AI集成发愁?这个方案让你告别加班

最近和几个朋友聊天,发现一个有趣的现象:90%的C#开发者都想在项目中加入AI功能,但80%的人觉得太复杂而放弃

"调用OpenAI API要处理HTTP请求、token管理、错误重试..."

"接入本地模型要学Docker、API封装、流式处理..."

"老板催得紧,但光搭环境就要一周..."

如果你也有这些困扰,今天这篇文章将彻底改变你的想法。Microsoft.Extensions.AI 让AI集成变得像写Hello World一样简单,5行代码就能让你的应用具备AI对话能力


🔍 痛点分析:为什么AI集成这么难?

传统方式的三大拦路虎

1. 复杂的SDK集成

  • 每个AI服务商都有不同的SDK
  • API参数格式千差万别
  • 错误处理机制各不相同

2. 繁琐的基础设施

  • HTTP客户端配置
  • 重试策略实现
  • 流式响应处理

3. 高昂的学习成本

  • 需要深入了解各家API文档
  • 掌握异步编程最佳实践
  • 处理复杂的认证机制

💡 解决方案:Microsoft.Extensions.AI统一天下

Microsoft推出的 Extensions.AI 包就像是AI界的"万能适配器",一套代码,适配所有主流AI服务

🌟 核心优势

  • 统一接口:IChatClient一个接口走天下
  • 开箱即用:无需复杂配置,3行代码启动
  • 厂商无关:支持OpenAI、Ollama、Azure AI等
  • 流式支持:原生支持ChatGPT式的逐字输出

🛠️ 实战场景一:智能客服助手

想象一下,你正在开发一个客服系统,需要AI来回答常见问题。传统方式可能需要几十行代码,现在只需要这样:

C#
using Microsoft.Extensions.AI; using OllamaSharp; namespace AppMsAi { internal class Program { static async Task Main(string[] args) { // 🎯 关键点1:一行代码创建AI客户端 IChatClient client = new OllamaApiClient( new Uri("http://localhost:11434"), // 本地Ollama服务 "qwen2.5:3b"); // 使用轻量级模型 // 🎯 关键点2:设置客服场景的上下文 List<ChatMessage> customerServiceContext = [ new(ChatRole.System, "你是一个专业的电商客服,友好且高效地解决用户问题"), new(ChatRole.User, "我的订单什么时候能到?") ]; // 🎯 关键点3:获取AI回复 ChatResponse response = await client.GetResponseAsync(customerServiceContext); Console.WriteLine($"AI客服回复:{response}"); } } }

image.png

编辑
2025-11-20
C#
00

在人工智能快速发展的今天,如何将AI技术与实际应用场景无缝融合,已成为开发者的热门话题。本文将详细介绍如何使用 Microsoft Semantic Kernel 构建一个智能、高效的天气查询应用,让开发者了解如何利用 AI 赋能传统应用。

什么是 Semantic Kernel?

Semantic Kernel(语义内核)是微软推出的一个开源 SDK,它允许开发者轻松地将大语言模型(LLM)与传统编程方法结合。通过插件机制,开发者可以让 AI 调用 .NET 代码中的方法,实现更智能的交互。

项目架构与关键技术

技术选型

  • 编程语言:C# 10+
  • 框架:.NET 6/7/8
  • AI 服务:DeepSeek API
  • 核心库:Microsoft.SemanticKernel

核心特性

  1. 函数调用(Function Calling)
  2. 聊天历史管理
  3. 可插拔的服务插件
  4. 灵活的 AI 交互模式
编辑
2025-11-20
C#
00

在现代 AI 应用开发中,函数调用是一项强大的功能,它允许 AI 模型直接与应用程序的功能进行交互。Microsoft Semantic Kernel 作为一个开源框架,提供了简单而强大的方式来集成这一能力。本文将详细介绍如何在 Semantic Kernel 中使用聊天完成(Chat Completion)进行函数调用,帮助开发者构建更智能、更实用的 AI 应用。

什么是函数调用?

函数调用(Function Calling)允许 AI 模型识别何时应该调用预定义的函数,并以结构化的方式提供必要的参数。这使得 AI 能够:

  • 执行特定任务
  • 获取外部信息
  • 触发应用程序中的操作

在 Semantic Kernel 中,这一功能与大型语言模型(LLM)的能力无缝集成,使开发体验更加流畅。

Semantic Kernel 环境准备

首先,我们需要创建一个新的 C# 项目并安装必要的 NuGet 包:

image.png