•灵活的插件架构:允许开发者定义可以链接在一起的插件,仅需几行代码即可实现复杂的功能。
•AI 驱动的插件编排:可以使用 Semantic Kernel规划器让 LLM 生成一个计划来实现用户的独特目标,然后 Semantic Kernel 将为用户执行该计划。
•多语言支持:支持 C#、Python 和 Java 编程语言,方便不同技术背景的开发者使用。
•企业级:
•微软和其他财富 500 强公司已经在利用 Semantic Kernel,因为它灵活、模块化且可观察。
•它还具备安全性增强功能,如遥测支持、钩子和过滤器,因此您可以放心地大规模交付负责任的 AI 解决方案。
•版本 1.0+ 支持 C#、Python 和 Java,这意味着它是可靠的,致力于不间断的更改。任何现有的基于聊天的 API 都可以轻松扩展以支持其他模式,如语音和视频。
•自动化业务流程:
• Semantic Kernel 将提示与现有 API 相结合来自动执行操作。
•通过向 AI 模型描述您现有的代码,它们将被调用来处理请求。
•当发出请求时,模型会调用一个函数,而 Semantic Kernel 是将模型的请求转换为函数调用并将结果传递回模型的中间件。
•模块化和可扩展性:
•通过将现有代码添加为插件,您可以灵活地通过一组现成的连接器集成 AI 服务,从而最大限度地提高投资回报率。
• Semantic Kernel 使用 OpenAPI 规范(如 Microsoft 365 Copilot),因此您可以与公司中的其他专业或低代码开发人员共享任何扩展。
•面向未来:
• Semantic Kernel 旨在面向未来,可以轻松地将您的代码连接到最新的 AI 模型,并随着技术的进步而发展。
•当新模型发布时,您只需将它们替换掉,而无需重写整个代码库。
您可以使用以下命令轻松安装 Semantic Kernel:
pipinstallsemantic-kernel
微软提供了丰富的 Semantic Kernel Notebooks,帮助开发者快速上手。这些 Notebooks 包含详细的代码示例和说明,涵盖了从基础概念到高级应用的各种主题,即使是 AI 初学者也能轻松理解和使用。
•C# 入门 Notebook
•Python 入门 Notebook
以下是一个使用 Python 编写的简单控制台应用程序示例:
importasyncio
fromsemantic_kernelimportKernel
fromsemantic_kernel.functionsimportkernel_function
fromsemantic_kernel.connectors.ai.open_aiimportAzureChatCompletion
fromsemantic_kernel.connectors.ai.function_call_behaviorimportFunctionCallBehavior
fromsemantic_kernel.connectors.ai.chat_completion_client_baseimportChatCompletionClientBase
fromsemantic_kernel.contents.chat_historyimportChatHistory
fromsemantic_kernel.functions.kernel_argumentsimportKernelArguments
fromsemantic_kernel.connectors.ai.open_ai.prompt_execution_settings.azure_chat_prompt_execution_settingsimport(
AzureChatPromptExecutionSettings,
)
asyncdefmain():
#Initializethekernel
kernel=Kernel()
#AddAzureOpenAIchatcompletion
kernel.add_service(AzureChatCompletion(
deployment_name="your_models_deployment_name",
api_key="your_api_key",
base_url="your_base_url",
))
#Setthelogginglevelforsemantic_kernel.kerneltoDEBUG.
logging.basicConfig(
format="[%(asctime)s-%(name)s:%(lineno)d-%(levelname)s]%(message)s",
datefmt="%Y-%m-%d%H:%M:%S",
)
logging.getLogger("kernel").setLevel(logging.DEBUG)
#Addaplugin(theLightsPluginclassisdefinedbelow)
kernel.add_plugin(
LightsPlugin(),
plugin_name="Lights",
)
chat_completion:AzureChatCompletion=kernel.get_service(type=ChatCompletionClientBase)
#Enableplanning
execution_settings=AzureChatPromptExecutionSettings(tool_choice="auto")
execution_settings.function_call_behavior=FunctionCallBehavior.EnableFunctions(auto_invoke=True,filters={})
#Createahistoryoftheconversation
history=ChatHistory()
#Initiateaback-and-forthchat
userInput=None
whileTrue:
#Collectuserinput
userInput=input("User>")
#Terminatetheloopiftheusersays"exit"
ifuserInput=="exit":
break
#Adduserinputtothehistory
history.add_user_message(userInput)
#GettheresponsefromtheAI
result=(awaitchat_completion.get_chat_message_contents(
chat_history=history,
settings=execution_settings,
kernel=kernel,
arguments=KernelArguments(),
))[0]
#Printtheresults
print("Assistant>"+str(result))
#Addthemessagefromtheagenttothechathistory
history.add_message(result)
#Runthemainfunction
if__name__=="__main__":
asyncio.run(main())| 特性 | Semantic Kernel | LangChain |
| 开发语言 | C#, Python, Java | Python, JavaScript |
| 插件生态 | 仍在发展中 | 拥有大量可用的集成 |
| 易用性 | 对传统开发者友好,易于集成到现有应用程序中 | 对熟悉 LLM 和提示工程的开发者友好 |
| 功能 | 提供规划器,允许 LLM 生成计划并执行 | 提供链接各种工具和 LLM 的方法 |
| 文档和社区支持 | 提供官方文档和 GitHub 社区支持 | 拥有活跃的社区和丰富的文档 |
| 企业级功能 | 专注于提供企业级功能,例如安全性增强功能和与企业系统的集成 | 更加注重快速原型设计和实验 |
| 学习曲线 | 对传统开发者来说学习曲线相对平缓 | 对熟悉 LLM 和提示工程的开发者来说学习曲线相对平缓 |
| 最佳使用场景 | 构建需要与现有系统集成、注重安全性和可维护性的企业级 AI 应用程序 | 快速构建原型、实验不同的 LLM 和提示工程技术、构建不需要与现有系统深度集成的小型 AI 应用程序 |
Semantic Kernel 是微软开源的一款强大的 AI SDK,它为开发者构建智能应用提供了全新的解决方案。凭借其企业级、自动化、模块化和面向未来的特性,Semantic Kernel 将成为 AI 应用开发领域的重要工具,引领 AI 应用开发的新潮流。对于正在寻找 LangChain 替代品的开发者来说,Semantic Kernel 无疑是一个值得考虑的强大选择。
• Semantic Kernel GitHub 仓库:https://github.com/microsoft/semantic-kernel
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |