编辑
2025-11-20
C#
00

YAML架构是语义内核提供的一种声明式语法,用于定义AI提示模板。通过使用YAML,开发者可以更加结构化地创建、管理和维护提示,使得提示的版本控制、测试和部署变得更加简单。 问题来了,YAML是我现阶段最不喜欢的配置文件格式。。。。

YAML架构的基本结构

语义内核提示的YAML文件由几个关键部分组成,下面我们将详细介绍每个部分:

YAML
# 提示函数的基本信息 name: SummarizeText # 函数名称 description: 将文本概括为简明扼要的摘要 # 函数描述 template_format: semantic-kernel # 模板格式 template: | # 提示模板内容 请将以下文本概括为简洁的摘要: {{$input}} 摘要: # 输入变量定义 input_variables: - name: input # 变量名称 description: 需要被概括的文本 # 变量描述 is_required: true # 是否必需 default: "" # 默认值 # 输出变量定义 output_variables: - name: summary # 输出变量名 description: 生成的文本摘要 # 输出描述 # 执行设置 execution_settings: default: # 默认设置 service: OpenAI # 服务提供商 model: gpt-4 # 使用的模型 temperature: 0.7 # 温度参数 max_tokens: 500 # 最大令牌数
编辑
2025-11-20
C#
00

在人工智能和大型语言模型(LLM)的世界中,提示词(Prompts)扮演着至关重要的角色。它们是我们与AI沟通的桥梁,决定了AI输出的质量和相关性。本文将深入探讨Microsoft Semantic Kernel中的提示词工程,帮助您理解如何有效地利用提示词来提升AI应用的效果。

提示词的基本概念

提示词是我们提供给模型的输入或查询,以期获取特定的响应。在Microsoft Semantic Kernel中,提示词工程(Prompt Engineering)已成为一个新兴的专业领域,它需要创造力和对细节的关注。

提示词的重要性

有效的提示词设计对于从LLM AI模型中获得预期结果至关重要。通过精心选择正确的词语、短语、符号和格式,可以引导模型生成高质量且相关的文本。

例如,考虑以下两个提示词:

text
请给我讲述人类的历史。 请用3句话给我讲述人类的历史。

第一个提示词可能会产生一个冗长的报告,而第二个提示词则会产生一个简洁的回应。如果您正在构建空间有限的用户界面,第二个提示词会更适合您的需求。

编辑
2025-11-19
C#
00

今天突发灵感,撰写了这篇文章,希望能为大家带来一些启发。在当今软件开发快速迭代的时代,传统的静态编码模式已逐渐难以满足不断增长的灵活性需求。本文将深入探讨一种结合人工智能、动态编译和反射技术的创新解决方案,揭示编程范式的革命性变革。

核心技术架构

这个创新方案主要由三个关键技术组件构成:

  1. AI代码生成
  2. 动态代码编译
  3. 运行时插件加载

AI代码生成:智能编程助手

C#
var chatCompletionService = kernel.GetRequiredService<IChatCompletionService>(); var chatResult = await chatCompletionService.GetChatMessageContentsAsync( new ChatHistory { new ChatMessageContent(AuthorRole.System, "你是一个C#专家"), new ChatMessageContent(AuthorRole.User, Prompt) } );

这段代码展示了如何利用Semantic Kernel调用AI模型(如DeepSeek)生成代码。关键特点包括:

  • 动态生成符合特定接口的代码
  • 通过精确的Prompt引导AI生成目标代码
  • 温度(Temperature)和TopP参数控制生成的创造性和一致性
编辑
2025-11-19
C#
00

随着人工智能技术的普及,如何在资源有限的设备上高效运行大型模型成为关键挑战。本文深入解析不同精度量化技术,帮助你理解AI领域这一重要优化方向。

模型量化:AI轻量化的关键技术

image.png

在深度学习领域,模型量化是指将模型参数从高精度表示(如32位浮点数)转换为低精度表示(如16位、8位甚至更低)的过程。这项技术正成为推动AI大模型普及的关键因素,使其能够在手机、IoT设备等计算资源有限的环境中运行。

模型量化的核心优势在于:

  • 📱 显著减少模型体积
  • 加快推理速度
  • 🔋 降低能耗
  • 💻 减少内存占用

精度等级详解:从16比特到2比特

16比特全参数微调(FP16/BF16)

16比特全参数微调是当前大语言模型训练和微调中的主流选择,它使用半精度浮点数表示模型参数。

  • 技术细节:每个参数占用16位内存,相比标准32位浮点数(FP32)减少50%存储空间
  • 应用场景:大型语言模型(如GPT、LLaMA)的训练和微调
  • 优势
    • 保持较高精度的同时大幅降低显存需求
    • 加速训练和推理过程
    • 几乎不影响模型性能
  • 实际效果:在大多数任务中,16位模型与32位模型表现几乎相同

💡 小贴士:BF16(Brain Floating Point)是Google为机器学习优化的16位格式,与FP16相比具有更大的动态范围。

编辑
2025-11-19
Python
00

在Python开发过程中,你是否遇到过代码重复冗余、难以维护的问题?是否想过如何优雅地复用代码,让程序结构更加清晰?继承作为面向对象编程的三大特性之一,正是解决这些问题的利器。

本文将带你从零基础开始,深入掌握Python继承的方方面面。无论你是刚接触Python的新手,还是想深入理解继承机制的进阶开发者,这篇文章都将为你提供完整的学习路径。我们将通过实际的代码示例,让你彻底理解继承的本质,掌握在实际项目中的应用技巧。


🔍 什么是继承?为什么要使用继承?

问题分析

在日常开发中,我们经常会遇到这样的场景:

Python
# 没有使用继承的代码 - 存在大量重复 class Dog: def __init__(self, name, age): self.name = name self.age = age def eat(self): print(f"{self.name}正在吃饭") def sleep(self): print(f"{self.name}正在睡觉") def bark(self): print(f"{self.name}正在汪汪叫") class Cat: def __init__(self, name, age): self.name = name self.age = age def eat(self): print(f"{self.name}正在吃饭") def sleep(self): print(f"{self.name}正在睡觉") def meow(self): print(f"{self.name}正在喵喵叫")

可以看到,DogCat类中存在大量重复的代码,这违反了DRY原则(Don't Repeat Yourself)。