找回密码
 立即注册
首页 业界区 安全 Semantic Kernel实战:微软AI编排框架的Java落地指南 ...

Semantic Kernel实战:微软AI编排框架的Java落地指南

湄圳啸 5 小时前
前言

Semantic Kernel(SK)是微软推出的 AI 编排框架,帮助开发者将大模型能力无缝集成到现有应用中。虽然官方主推 C#,但 Java 开发者也能使用 SK 的核心功能。本文带你快速上手 Semantic Kernel Java。
一、核心概念


  • Kernel:AI 编排的核心,管理所有技能和插件
  • Skill:一组相关能力的集合(如文本处理、搜索)
  • Plugin:外部工具的封装,供大模型调用
  • Planner:自动规划任务分解和执行顺序
二、环境准备
  1.     com.microsoft.semantic-kernel    kernel-core    1.0.0-beta1    com.microsoft.semantic-kernel    connectors-ai-openai    1.0.0-beta1
复制代码
三、初始化 Kernel
  1. import com.microsoft.semantic kernel.Kernel;import com.microsoft.semantic kernel.services AIServiceRequestHandlerConfig;public class SemanticKernelDemo {    public static void main(String[] args) {        // 配置 OpenAI        OpenAIChatCompletion model = OpenAIChatCompletion.builder()            .withModelId("gpt-4o-mini")            .withAPIKey(System.getenv("OPENAI_API_KEY"))            .build();        // 创建 Kernel        Kernel kernel = Kernel.builder()            .withDefaultAIService(ChatCompletionService.class, model)            .build();        System.out.println("Semantic Kernel initialized successfully");    }}
复制代码
四、创建原生函数(Native Functions)
  1. import com.microsoft.semantic kernel.skills.annotation.KernelFunction;public class WeatherPlugin {    @KernelFunction(name = "get_weather", description = "获取指定城市的天气")    public String getWeather(String location) {        // 实际项目中调用天气 API        return location + "今天晴,气温22-28度,适合出行";    }    @KernelFunction(name = "get_date", description = "获取当前日期")    public String getCurrentDate() {        return LocalDate.now().toString();    }}
复制代码
五、注册插件并调用
  1. import com.microsoft.semantic kernel.skills.core.SkillsFactory;public class PluginDemo {    public static void main(String[] args) {        Kernel kernel = createKernel();        // 注册插件        kernel.importSkill(new WeatherPlugin(), "weather");        // 执行自然语言任务        String prompt = "帮我查一下北京今天的天气,并告诉我今天是几号";        String result = kernel.run(prompt);        System.out.println(result);        // 输出:北京今天晴,气温22-28度,适合出行。今天是2026-04-02。    }}
复制代码
六、使用 Memory 实现记忆
  1. import com.microsoft.semantic kernel.memory.MemorySkill;import com.microsoft.semantic kernel.memory.builder.InMemoryTextMemory;public class MemoryDemo {    public static void main(String[] args) {        InMemoryTextMemory memory = new InMemoryTextMemory();        // 保存对话记忆        memory.save("user_name", "张三");        memory.save("user_preference", "喜欢Java技术");        // 检索记忆        String name = memory.get("user_name").join();        System.out.println("User name: " + name);        // 输出:User name: 张三    }}
复制代码
七、Planner 自动任务规划
  1. public class PlannerDemo {    public static void main(String[] args) {        Kernel kernel = createKernel();        kernel.importSkill(new WeatherPlugin(), "weather");        kernel.importSkill(new SearchPlugin(), "search");        // 复杂任务:自动分解为多个步骤        String userGoal = "先查北京天气,然后搜索相关的旅游攻略";        // SK 会自动规划执行步骤        // Step 1: 调用 weather.get_weather(location="北京")        // Step 2: 调用 search.search(query=北京旅游攻略)        // Step 3: 整合结果返回给用户    }}
复制代码
总结

Semantic Kernel 为 Java 开发者提供了接入大模型的统一编排方案。核心优势:

  • 统一抽象:一套代码支持 OpenAI、Azure OpenAI、HuggingFace 等
  • 插件生态:丰富的内置技能和第三方插件
  • Planner 能力:自动任务分解,降低开发复杂度
  • 企业级支持:微软官方维护,可靠性有保障

觉得有帮助请点赞收藏!有问题欢迎评论区交流
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册