编辑
2025-11-20
MySQL
00
编辑
2025-11-20
MySQL
00

MySQL是一种常用的关系型数据库管理系统,本文将介绍如何安装和配置MySQL。

下载MySQL

首先,前往MySQL官方网站(https://www.mysql.com/downloads/)下载适合您操作系统的MySQL安装文件。选择适合您操作系统的版本,例如Windows、Linux或Mac OS。

image.png

安装MySQL

Windows操作系统

image.png 在Windows上安装MySQL通常是一个简单的过程:

编辑
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