SimpleAISearch:C# + DuckDuckGo 实现简单的AI搜索

news/2024/12/31 0:51:36/文章来源:https://www.cnblogs.com/mingupupu/p/18422209

最近AI搜索很火爆,有Perplexity、秘塔AI、MindSearch、Perplexica、memfree、khoj等等。

在使用大语言模型的过程中,或许你也遇到了这种局限,就是无法获取网上最新的信息,导致回答的内容不是基于最新的信息,为了解决这个问题,可以通过LLM+搜索引擎的方式实现。

以我之前开源的一个简单项目为例,如果直接问一般的大语言模型是不知道的,如下所示:

image-20240920103257679

对比可以联网的回答:

Perplexity

image-20240920103503743

khoj

image-20240920103739835

Kimi

image-20240920103933071

那么我们如何自己实现类似的效果呢?

先来看看自己实现的效果:

image-20240920104451845

源码GitHub地址:https://github.com/Ming-jiayou/SimpleAISearch

如果对此感兴趣的话,就可以继续往下阅读。

实现思路

本质上就是LLM+搜索引擎。

首先需要能够实现函数调用功能,在之前的文章中已经有所说明。主要介绍一下实现思路,源码已经开源,感兴趣的话可以自己去看下具体代码。

首先在插件中添加调用搜索引擎的代码,我这里搜索引擎选用的是DuckDuckGo。

开始执行时,LLM会判断需要调用这个函数,并且参数是问题:

image-20240920105218166

这个函数如下所示:

image-20240920105254572

搜索引擎会找到相关内容:

image-20240920105409114

让LLM根据获取到的这些信息给出回答:

image-20240920105518735

目前是经过总结之后显示在界面上,也可以修改为不经过总结的。

以上就是实现的一个简单思路。

快速体验

通过源码构建

和之前的LLM项目一样,只需appsettings.example.json修改为appsettings.json选择你使用的平台并填入API Key即可。

直接体验

我已经在github上发布了两个版本一个依赖框架,一个不依赖框架:

image-20240920113656942

下载解压之后,在appsettings中填入你的api key即可使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/800426.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于codepage

codepage就是各国的文字编码和Unicode之间的映射表。系统使用映射表就可以在各种编码中做转换。 查表 以gbk为例,它的codepage=936, 可以从ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT下载映射表。 “中”字的映射为验证 https://www.toolhelper…

七牛云——存储区域说明

​​ 区域和访问域名存储区域 Region 区域 Region ID 域名华东-浙江 z0 空间管理:http(s)://uc.qiniuapi.com​源站上传:http(s)://up-z0.qiniup.com​源站下载:http(s)://iovip-z0.qiniuio.com​对象管理:http(s)://rs-z0.qiniuapi.com​对象列举:http(s)://rsf-z0.qiniu…

linux 下安装 RabbitMq 及 .net core 实操多种模式

当前系统Debian GNU/Linux 12 安装命令1、sudo apt update    //更新系统2、sudo apt-get install rabbitmq-server    //安装rabbitMq 服务3、sudo service rabbitmq-server start     //启动 rabbitMq4、sudo systemctl enable rabbitmq-server //设置开机…

易基因:组学研究:MeRIP-seq等揭示m6A甲基化及调控因子在食管胃结合部腺癌(AEG)中的作用和调控机制

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 食管胃结合部腺癌(adenocarcinoma of the esophagogastric junction,AEG)是一种在食管胃结合部发生的腺癌,其发病率在全球范围内呈上升趋势,但具体的发病机制尚不明确。尽管在基因组、转录组、蛋白质组和磷…

NPN 和 PMOS 管脚

NPN三极管:以SS8050为例: PMOS :以SI2333 为例:可以看到,控制极都在1脚位置。

云栖大会Day1:云应用开发平台 CAP 来了

2024 云栖大会开幕,在大会第一天,阿里云正式发布全新产品——云应用开发平台 CAP。CAP 拥有丰富的场景化应用模板,可以极速体验,并且具备更低的成本优势以及灵活组装等特点,成为广大开发者与企业必备的一站式应用开发平台,让应用开发更简单。2024 云栖大会开幕,在大会第…

痞子衡嵌入式:MCUBootUtility v6.3发布,支持获取与解析启动日志

--痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v5.3.0)发布过去一年了,期间痞子衡也做过三个版本更新,但不足以单独介绍。这一次痞子衡为大家带来了全新重要版本v6.3.x,这次更新主要是想和大家特别聊聊 ROM 启动日志这个特性的支持。 一、v6.0 - v6.3更新记录 --…

帝国cms密码错误 帝国cms密码错误怎么回事

在使用帝国CMS时,如果遇到密码错误的情况,通常是因为输入的用户名或密码不正确。以下是一些可能的原因和解决方法:输入错误最常见的原因是用户输入了错误的密码。请仔细检查输入的密码是否正确,注意大小写和特殊字符。密码已更改如果你最近更改了密码但忘记了新密码,你需要…

Scratch少儿编程教程 | 绘制五星红旗

在国庆节来临之际,教孩子们使用Scratch绘制一面五星红旗是个有趣且有教育意义的项目。通过这个教程,孩子们不仅能学习编程的基本概念,还能深入理解国旗的构造与意义。下面是如何在Scratch中实现这个作品的详细步骤。 一、项目概述 项目名称:绘制五星红旗 目标效果:通过Scr…

gojs去水印,亲测好用 本人是2.1.49版本

1.String.fromCharCode(a.charCodeAt(g)^b[(b[c]+b[d])%256])2.在后面粘帖上如下代码:if(f.indexOf(GoJS 2.3 evaluation) > -1||f.indexOf(© 1998-2023 Northwoods Software) > -1||f.indexOf(Not for distribution or production use) > -1||f.indexOf(gojs.n…

SaaS架构:流程架构分析

大家好,我是汤师爷~ 今天聊聊SaaS架构中的流程架构分析。 业务流程的概念 业务流程是企业为实现目标而制定的一套系统化的工作方法。它由一系列有序的业务活动组成,按照既定规则将资源(输入)转化为有价值的结果(输出)。这一过程需结合企业的具体情况和可用资源,旨在为客…

高等数学 3.4 函数的单调性与曲线的凹凸性

目录一、函数单调性的判定法二、曲线的凹凸性与拐点 一、函数单调性的判定法定理1 设函数 \(y = f(x)\) 在 \([a, b]\) 上连续,\((a, b)\) 内可导。 (1)如果在 \((a, b)\) 内 \(f^{}(x) \geqslant 0\) 且等号仅限在有限多个点处成立,那么函数 \(y = f(x)\) 在 \([a, b]\) 上…