当前位置: 首页 > news >正文

东拼西凑网站谁做的郑州市建设工程造价信息网

东拼西凑网站谁做的,郑州市建设工程造价信息网,创意设计椅子,wordpress go链接不跳转大家好,我今天带来了一个让人瞠目结舌的实验:在一小时内快速生成了100个API! 其实如果手速高,可以更多。要知道,这得益于之前介绍过的Natasha —— 一个可以动态编译并加载代码的神奇工具。 动态编程神器! 探秘.Net…

        大家好,我今天带来了一个让人瞠目结舌的实验:在一小时内快速生成了100个API!

        其实如果手速高,可以更多。要知道,这得益于之前介绍过的Natasha  ——  一个可以动态编译并加载代码的神奇工具。

动态编程神器! 探秘.Net中的AI时代秘密武器——Natasha框架全解析

        而当它与Semantic Kernel结合时,我们可以使用AI来动态生成代码,这可不是闹着玩的!

        首先,让我们先来观摩一下这个令人震惊的效果!

效果视频

        在这个视频中我们可以看见,我通过一句话就能生成出一个API接口。包含加法接口,爬取百度内容的接口,以及求质数,转大写的接口

        接下来,让我们深入了解一下背后的代码实现吧。

        首先,在开始之前,需要确保我们的项目中引入了Semantic Kernel。大家若还不够了解它,请回顾我之前的文章。

        下面是Natasha相关的NuGet包引用,别忘了添加到你的项目中:

<PackageReference Include="DotNetCore.Natasha.CSharp.Compiler" Version="8.0.0" /><PackageReference Include="DotNetCore.Natasha.CSharp.Compiler.Domain" Version="8.0.0" /><PackageReference Include="DotNetCore.Natasha.Domain" Version="8.0.0" />

        Natasha工作前需要做一些准备,我们需要将它注入依赖:

public void ConfigureServices(IServiceCollection services){    // ...省略其他依赖注入...    services.AddSingleton<DynamicChangeTokenProvider>()            .AddSingleton<IActionDescriptorChangeProvider>(provider => provider.GetRequiredService<DynamicChangeTokenProvider>());}

        然后,在Configure方法中,我们进行一些设置使得Natasha可以正常运作:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider){    NatashaController.Builder = (ApplicationBuilder)app;    // ...省略其他配置...    app.UseEndpoints(endpoints =>    {        endpoints.MapControllers();        NatashaController.Endpoints = endpoints.DataSources;    });}

        现在来到了最关键的部分:定义Semantic KernelSemantic Function。我们需要一个能够根据用户需求,动态生成需要的Controller层Action代码的代码生成器,示例如下:

你作为一个代码生成器,需要通过用户需求生成对应Controller层的Action代码,你需要完成以下功能:{{$input}}
---------------------------------------------参考如下代码示例进行生成,并且不要有其他多余文字:```csharp[HttpPost]public async Task<IActionResult> Test(){    //代码路径    var a=0;    return Ok(a.Success());}```

        在准备好上述步骤之后,我创建了一个通用的API:

/// <summary>/// Natasha示例控制器/// </summary>[Route("api/[controller]/[action]")][ApiController]public class NatashaController : ControllerBase{    // ...省略NatashaController部分成员变量和构造器...
    [HttpPost]    public async Task<IActionResult> AICode(CodeDTO model, [FromServices] ApplicationPartManager manager,                                            [FromServices] DynamicChangeTokenProvider tokenProvider)    {        // ...此处省略SK执行Semantic Function代码生成的详细实现...
        // 动态编译生成的代码并加入到项目中进行加载        AssemblyCSharpBuilder builder = new AssemblyCSharpBuilder();        var myAssembly = builder.UseRandomDomain().UseSmartMode().Add(classCode).GetAssembly();        var assembly = new AssemblyPart(myAssembly);        AssemblyCache.Enqueue(assembly);        manager.ApplicationParts.Add(assembly);        tokenProvider.NotifyChanges();                return Ok(code);    }}

        

        然后,每当我们调用这个API时,我们就可以生成一个新的API了!

        在本次测试里我们先按比较简单的方式,让AI来生成接口,并进行动态加载和刷新路由。

        这里由于我们是预编译的c#语言,也可以针对AI生成的代码进行预编译检测,如果有异常,把异常信息重新包装Prompt进行提交 让AI进行修改。这将是一个非常不错的主意,未来我会继续完善,让AI具备写Service以及仓储层的能力!

往期文章回顾:

揭秘AI与RPA结合的强大力量,轻松实现AI自动化网页操作!

语音革命:打造您的个人AI助手,悄悄分享我的开源语音识别全攻略!

Semantic Kernel与Everything相结合:实现本地文件搜索新境界!让你的文件“无所遁形”!

探索Avalonia与SemanticKernel打造全能AI本地助手

如果这些文章帮助到了你,欢迎订阅我的公众号:

http://www.yayakq.cn/news/757675/

相关文章:

  • 加盟的网站建设聊天app开发源码
  • 网站备案费用自己网站给别人网站做外链有影响吗
  • 福田网站设计方案软件开发方案怎么写
  • 做yield网站多少钱优化视频
  • 建行手机银行app下载aso优化费用
  • 宁波智能模板建站25亿企业网站管理系统
  • 哪个网站买域名便宜企业的做网站
  • 济南大型网站设计公司绍兴网站关键词推广
  • 亚星网站代理网站设计哪家专业
  • 在信息发布网站建设外链最新黑帽seo培训
  • 网站开发者的常用工具防伪网站模板
  • 自建网站阿里云备案通过后怎么做做的网站加载太慢怎么办
  • 一个大学网站做的好坏于否的标准品牌网站建设公司哪家好
  • 新站seo优化快速上排名北京旅游外贸网站建设
  • 天门网站设计深圳网页设计公司排名
  • 外卖网站的建设与推广自媒体图片素材网站
  • 机关网站内容建设工作总结富利建设集团有限公司网站
  • 汶上做网站wordpress搬家至本地及域名替换
  • 成都网站设计制作工作室wordpress分页太丑
  • 企业网站搜索引擎推广方法网站如何生成静态
  • pc网站 手机网站 微信中天控股集团有限公司
  • 写一张营销型网站页面多长时间韩国女排出线
  • 珠海网站seo个体工商户可以搞网站建设
  • 网站建设自查自评免费发布平台
  • 枣庄网站制作英文网站制作费用
  • 怎样才能制做免费网站ftp wordpress 搬站
  • 江西中创建设工程有限公司网站wordpress主题知乎
  • 网站建设需要提供什么网络推广app是干什么的
  • 山东网站建设企业可以访问违规网站的浏览器
  • 网站建设与维护招聘条件wordpress服務器