编辑
2025-11-05
C#
00

在人工智能快速发展的今天,多模态AI应用已成为技术前沿的热点。微软开源的Semantic Kernel为C#开发者提供了强大的工具,使创建多模态图像分析应用变得更加简单和高效。本文将深入探讨如何利用C#和Semantic Kernel构建图像分析应用,并提供详细的代码示例。

什么是Semantic Kernel?

Semantic Kernel是微软开源的一个轻量级AI开发套件,它能让开发者轻松构建AI Agent,并将最新的AI模型集成到C#、Python或Java代码库中。它的核心优势在于将传统编程语言与大型语言模型(LLM)AI技术相结合的能力,使开发者能够利用熟悉的编程语言,同时享受先进AI技术带来的便利。

Semantic Kernel的多模态能力

多模态是现代LLM的重要能力,特别是在处理图像、文本等不同类型数据时。Semantic Kernel通过集成OpenAI、Azure OpenAI等服务,支持图像分析和其他多模态任务,包括:

  • 图像内容识别与描述
  • 图像中文本提取
  • 图像场景理解与分析
  • 基于图像的问答
编辑
2025-11-05
C#
00

在AI快速发展的时代,越来越多的开发者希望将智能对话功能集成到自己的应用中。本文将详细介绍如何使用C#和Microsoft Semantic Kernel框架连接DeepSeek AI服务,构建一个功能完善的聊天应用。文章包含完整代码示例和详细注释,适合有基础C#知识的开发者学习。这个库NB的就是支持所有大模型,不过有些地方要调整一下。

项目概述与技术栈

我们将构建一个控制台应用程序,支持以下功能:

  • 与DeepSeek AI进行自然语言对话
  • 流式响应显示(打字机效果)
  • 会话历史管理
  • 完善的错误处理

使用的核心技术和库:

  • C# 10+
  • .NET 6/7/8
  • Microsoft Semantic Kernel
  • OpenAI C# SDK (用于连接DeepSeek API)
  • Microsoft.Extensions.Hosting

环境准备与项目设置

创建项目并安装依赖

首先,创建一个新的控制台应用程序,并安装必要的NuGet包:

Bash
dotnet add package Microsoft.SemanticKernel dotnet add package Microsoft.SemanticKernel.Connectors.OpenAI dotnet add package Microsoft.Extensions.Hosting
编辑
2025-11-05
C#
00

通过使用 Microsoft 的 Semantic Kernel,我们可以轻松地创建和管理聊天历史记录,以便在聊天会话中保持上下文和连贯性。本文将详细介绍如何使用 Semantic Kernel 调用 Ollama 历史聊天应用,并提供多个示例和注释,帮助开发者更好地理解和实现这一功能。

什么是 Semantic Kernel?

Semantic Kernel 是一个强大的工具,旨在简化与 AI 模型的交互。它提供了多种功能,包括聊天记录管理、函数调用和多模态支持,使开发者能够构建更智能的应用程序。

创建聊天历史对象

聊天历史对象是一个用于维护聊天会话中消息记录的列表。以下是如何在 C# 中创建一个聊天历史对象的示例:

C#
using Microsoft.SemanticKernel.ChatCompletion; // 创建聊天历史对象 ChatHistory chatHistory = new ChatHistory(); chatHistory.AddSystemMessage("你是一个有帮助的助手。"); chatHistory.AddUserMessage("可以点什么?"); chatHistory.AddAssistantMessage("我们有比萨、意大利面和沙拉可供选择。你想点什么?"); chatHistory.AddUserMessage("我想要第一个选项。");
编辑
2025-11-05
Python
00

在Python开发中,你是否遇到过这样的困扰:为了一个简单的计算功能,却要定义一个完整的函数?或者在使用map()filter()等高阶函数时,总是需要额外定义辅助函数?这些看似微不足道的问题,却会让代码变得冗长和难以维护。

Lambda表达式就是解决这些问题的利器!作为Python中的"匿名函数",它能让你用一行代码完成原本需要多行的功能定义,让代码更加简洁、优雅。无论你是在进行数据处理、GUI事件绑定,还是函数式编程,掌握Lambda表达式都能显著提升你的开发效率。

本文将从实际问题出发,通过丰富的代码实战,带你深入理解Lambda表达式的核心概念、使用场景和最佳实践,让你的Python编程技巧更上一层楼!

🔍 什么是Lambda表达式?

Lambda表达式是Python中定义匿名函数的一种简洁方式。它允许你在需要函数的地方直接定义简单的函数,而无需使用def关键字正式声明。

📝 基本语法

Python
lambda 参数: 表达式

让我们通过对比来理解Lambda的威力:

Python
# 传统函数定义 def square(x): return x ** 2 # Lambda表达式 square_lambda = lambda x: x ** 2 # 使用效果完全相同 print(square(5)) # 输出: 25 print(square_lambda(5)) # 输出: 25

image.png

🎯 Lambda表达式的核心优势

编辑
2025-11-05
Python
00

在Python开发过程中,你是否遇到过这样的困惑:明明定义了变量,为什么有时候能访问,有时候却报错?函数内部修改的变量,为什么在函数外部没有生效?这些问题的根源都指向一个重要概念——变量作用域

掌握Python的局部变量与全局变量,不仅能帮你避免90%的变量访问错误,更能让你的代码逻辑更清晰、维护性更强。本文将从实际问题出发,通过具体的代码示例,带你彻底理解Python变量作用域的机制和最佳实践。


🔍 问题分析:变量作用域常见痛点

💥 痛点一:函数内变量修改无效

Python
# 新手常见错误 count = 0 def increment(): count = count + 1 # UnboundLocalError: local variable referenced before assignment increment() print(count)

💥 痛点二:全局变量污染

Python
# 全局变量被意外修改 config_value = "default" def process_data(): config_value = "modified" # 这里创建了局部变量,并未修改全局变量 print(f"函数内: {config_value}") process_data() print(f"函数外: {config_value}")

image.png