首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

编程知识
2024年09月20日 10:57

最近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即可使用。

From:https://www.cnblogs.com/mingupupu/p/18422209
本文地址: http://shuzixingkong.net/article/2156
0评论
提交 加载更多评论
其他文章 痞子衡嵌入式:MCUBootUtility v6.3发布,支持获取与解析启动日志
-- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v5.3.0)发布过去一年了,期间痞子衡也做过三个版本更新,但不足以单独介绍。这一次痞子衡为大家带来了全新重要版本v6.3.x,这次更新主要是想和大家特别聊聊 ROM 启动日志这个特性的支持。 一、v6.0 - v6.3
痞子衡嵌入式:MCUBootUtility v6.3发布,支持获取与解析启动日志 痞子衡嵌入式:MCUBootUtility v6.3发布,支持获取与解析启动日志
Advanced .Net Debugging 11:完结篇
一、介绍 这是我的《Advanced .Net Debugging》这个系列的第十一篇文章,也是这个系列的最后一篇了。我已经把原书的前八章内容全部写完了,本来打算继续写第九章和第十章的内容,后来我放弃逐章逐节的编写,选择了将两章的内容进行过滤后,合为一篇,只把重要的内容包含进来的做法。原因是,我看了
Advanced .Net Debugging 11:完结篇 Advanced .Net Debugging 11:完结篇 Advanced .Net Debugging 11:完结篇
VS(visual studio) C++ 封装dll,以及其隐式调用与显式调用(静态\动态)
DLL介绍 DLL(动态链接库,Dynamic Link Library)是一种可执行文件,它包含可以在其他程序中调用的函数和数据。他是Windows操作系统中的一个重要概念,用于代码共享和模块化。 特点 代码共享:多个程序可以同时使用同一个DLL文件,而不需要将其代码编译到每个程序中。这样可以节省
VS(visual studio) C++ 封装dll,以及其隐式调用与显式调用(静态\动态) VS(visual studio) C++ 封装dll,以及其隐式调用与显式调用(静态\动态) VS(visual studio) C++ 封装dll,以及其隐式调用与显式调用(静态\动态)
.NET 7+Angular 4 轻量级新零售进销存系统
前言 给大家推荐一个专为新零售快消行业打造了一套高效的进销存管理系统。 系统不仅具备强大的库存管理功能,还集成了高性能的轻量级 POS 解决方案,确保页面加载速度极快,提供良好的用户体验。 项目介绍 Dorisoy.POS 是一款基于 .NET 7 和 Angular 4 开发的新零售快消进销存管理
.NET 7+Angular 4 轻量级新零售进销存系统 .NET 7+Angular 4 轻量级新零售进销存系统 .NET 7+Angular 4 轻量级新零售进销存系统
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验 RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验 RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
深入理解Java对象结构
一、Java对象结构 实例化一个Java对象之后,该对象在内存中的结构是怎么样的?Java对象(Object实例)结构包括三部分:对象头、对象体和对齐字节,具体下图所示 1、Java对象的三部分 (1)对象头 对象头包括三个字段,第一个字段叫作Mark Word(标记字),用于存储自身运行时的数据,
深入理解Java对象结构 深入理解Java对象结构 深入理解Java对象结构
Java Pom两个模块需要互相引用怎么办
本文简要介绍了Java POM模块化是什么、Java Pom两个模块需要互相引用方法示例、如何使用Maven模块化的内容,给出了详细的代码示例,清晰直观。
Nuxt Kit 中的模板处理
title: Nuxt Kit 中的模板处理 date: 2024/9/20 updated: 2024/9/20 author: cmdragon excerpt: 摘要:本文详细介绍了在Nuxt 3框架中,使用Nuxt Kit进行模板处理的方法,包括理解模板基本概念、使用addTemplate动
Nuxt Kit 中的模板处理 Nuxt Kit 中的模板处理