1. 什么是Smart Components?
Smart Components 能够帮助您快速、轻松地为您的 .NET 应用添加真正强有力的AI 功能,同时为你开发节省成本。您不需要花费太多的开发时间重新设计现有的用户界面或研究机器学习和prompt工程。Smart Components 是预先构建好的端到端 AI 功能,您可以将其直接嵌入到现有的用户界面中,从而真正提升应用的用户体验和生产力。
目前初步支持 ASP.NET Core 6.0 及更高版本,兼容:
ASP.NET Core Blazor请参见:
https://github.com/dotnet-smartcomponents/smartcomponents/blob/main/docs/getting-started-blazor.mdASP.NET Core MVC/Razor Pages请参见:https://github.com/dotnet-smartcomponents/smartcomponents/blob/main/docs/getting-started-mvc-razor-pages.md
后期会根据实际的反馈情况,为其他用户界面技术提供支持。
2. Smart Components包含哪些组件?这是一个按钮,可以使用用户剪贴板中的数据自动填写表单。您可以在您的Web应用程序中的任何现有表单中使用它。这有助于用户从外部源添加数据,而无需重新输入
https://github.com/dotnet-smartcomponents/smartcomponents/blob/main/docs/smart-paste.md这是对传统文本区域的一种智能升级。您可以根据自己的喜好配置其如何自动补全整个句子,包括语气、策略、网址等。这有助于用户更快地输入,并且无需记住网址等信息。
https://github.com/dotnet-smartcomponents/smartcomponents/blob/main/docs/smart-textarea.md2.3 Smart ComboBox
这款组件对传统下拉框进行了升级,通过基于语义匹配的方式提供建议,而不是使用传统的模糊匹配,帮助用户更快找到所需内容。
https://github.com/dotnet-smartcomponents/smartcomponents/blob/main/docs/smart-combobox.md2.4 Local Embeddings
这个工具可以计算两个自然语言词语之间语义相似度,或者从一组候选词语中找到最匹配的项。在您的服务器CPU上本地运行,不需要接入外部任何AI服务。
例如:评估两个词语之间的语义相似度。
var article1 = embedder.Embed("Vacation allowance policy");
var article2 = embedder.Embed("Returning a company vehicle");
var article3 = embedder.Embed("How to get your boss fired");
var searchTerm = embedder.Embed("car");
Console.WriteLine(searchTerm.Similarity(article1)); // Outputs: 0.41
Console.WriteLine(searchTerm.Similarity(article2)); // Outputs: 0.70
Console.WriteLine(searchTerm.Similarity(article3)); // Outputs: 0.38
例如:找到最接近的匹配
// Find closest matches to "ball game"
var candidates = embedder.EmbedRange(["Soccer", "Tennis", "Swimming", "Horse riding", "Golf", "Gymnastics"]);
var closest = LocalEmbedder.FindClosest(
embedder.Embed("ball game"), candidates, maxResults: 3);
Console.WriteLine(string.Join(", ", closest)); // "Soccer, Golf, Tennis"
关于Smart ComboBox更多内容请查看
https://github.com/dotnet-smartcomponents/smartcomponents/blob/main/docs/local-embeddings.md注意:
如果您想运行Smart Paste或Smart TextArea的示例,需要一个azure的openai服务,并为其添加API密钥,请配置解决方案下的RepoSharedConfig.json文件,如果您只想运行Smart ComboBox或Local Embeddings示例,可以跳过这一步,因为它们完全在本地运行。配置请查看https://github.com/dotnet-smartcomponents/smartcomponents/blob/main/docs/configure-openai-backend.md不同模型的质量和速度差异很大。为了获得最佳结果,建议使用 GPT 3.5 Turbo 或更高版本 - 这样可以快速且高质量地响应。GPT 3.5 Turbo 产生高质量的结果,且速度很快。Mistral 7B 在 Smart TextArea 中产生良好的输出,但在 Smart Paste 中表现不一(填充一些表单,但留下其他表单为空或引入奇怪的字符)。对于本地模型来说,输出速度还不错,但在大多数工作站上仍然比托管服务慢得多。
Llama2 7B 的输出质量不足(使用 Smart Paste 时,它会在表单字段中放入奇怪或幻觉般的文本,而使用 Smart TextArea 时,它写出的文本很笼统,没有很好地考虑配置的短语)。
Mixtral 47B 在 Smart TextArea 中产生了良好的输出,但不会正确遵循 Smart Paste 的指令,因此表单会留空。此外,它太大,无法在大多数工作站 GPU 上运行,因此可能非常慢。
特定的模型或自定义提示(请参阅文档)可能表现更好,因此如果您发现提高与本地模型的兼容性或性能的方法,请告诉我们!
Smart Component组件地址:https://github.com/dotnet-smartcomponents/smartcomponents作者github地址:https://github.com/bingbing-gui