首页 > 编程语言 >SimpleAISearch:C# + DuckDuckGo 实现简单的AI搜索

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

时间:2024-09-25 13:44:54浏览次数:7  
标签:DuckDuckGo C# 搜索引擎 AI SimpleAISearch LLM

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

  合集 - C#(79)    

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

  合集: C# , WPF , SemanticKernel , AI相关

标签:DuckDuckGo,C#,搜索引擎,AI,SimpleAISearch,LLM
From: https://www.cnblogs.com/sexintercourse/p/18431196

相关文章

  • C# Winform 如何查找TabControl中某个tabPage
    在C#WinForms应用程序中,如果你需要查找TabControl中的某个特定TabPage,可以使用多种方法来实现。以下是一些常见的方法:方法1:通过索引查找如果你知道TabPage的索引位置,可以直接使用TabControl的TabPages集合来获取它。Csharp深色版本//假设我们知道TabPage......
  • C# Dictionary中的key修改
    在C#中,Dictionary<TKey,TValue>的键(key)是不可变的。一旦你将一个键值对添加到字典中,你就不能直接修改这个键。如果你需要更改键,你需要先删除旧的键值对,然后插入一个新的键值对。以下是一个示例,展示了如何更改Dictionary中的键:Csharp深色版本usingSystem;usingSystem......
  • Redisearch 入门指南构建高性能搜索应用
    1.概述Redisearch是一个强大的全文搜索引擎,基于流行的Redis数据库构建,专为高效的数据检索而设计。它结合了Redis的快速存储能力和搜索引擎的复杂查询功能,使得开发者能够在海量数据中实现实时搜索体验。Redisearch支持丰富的特性,包括模糊匹配、布尔搜索、聚合、地理......
  • 利用 Flink CDC 实现实时数据同步与分析
    1.概述1.1简要介绍什么是FlinkCDC(ChangeDataCapture)FlinkCDC(ChangeDataCapture)是一种用于实时捕获和处理数据库中数据变更的技术。它通过监控数据库的变更事件,将这些事件转化为流式数据,使得数据处理系统(如ApacheFlink)能够以流的方式实时处理和分析数据。FlinkC......
  • 【运维监控】Prometheus+grafana+blackbox_exporter+alertmanager监控业务接口异常预
    运维监控系列文章入口:【运维监控】系列文章汇总索引文章目录一、prometheus部署二、grafana部署三、blackbox_exporter部署1、下载2、解压3、启动4、验证四、prometheus集成blackbox_exporter1、添加prometheus监控规则2、添加prometheus的预警规则3、添加prometheus......
  • ElasticSearch安装分词器与整合SpringBoot
    ElasticSearch安装分词器与整合SpringBoot如果还没安装的点击安装ElasticSearch查看怎么安装分词器1.分词器在Elasticsearch中,分词器(Tokenizer)是分析器(Analyzer)的一部分,它的主要职责是将文本输入(如字符串)分割成一系列的词元(tokens)。这些词元是搜索和索引的基础单元。......
  • 【C++篇】解密 STL 动态之魂:全面掌握 C++ vector 的高效与优雅
    文章目录C++`vector`容器详解:从入门到精通前言第一章:C++`vector`容器简介1.1C++STL容器概述1.2为什么使用`vector`1.3`vector`的优缺点第二章:`vector`的构造方法2.1常见构造函数2.1.1示例:不同构造方法2.1.2相关文档第三章:`vector`容量与大小操作3.1......
  • 【论文阅读】RISE: 3D Perception Makes Real-World Robot Imitation Simple and Effe
    Abstract在模仿学习中,精确的机器人操作需要丰富的空间信息。基于图像的policies模型对象位置来自固定摄像头,对摄像头视图变化很敏感。利用3d点云的策略通常预测关键帧而不是连续动作,这在动态和联系人丰富的场景中造成了困难。为了有效地利用3d感知,我们提出了rise,这是一个用于......
  • 【论文阅读】ChainedDiffuser: Unifying Trajectory Diffusion and Keypose Predictio
    Abstract我们提出了chaineddiffuser,这是一种policy架构,它结合了动作键预测和轨迹扩散生成,用于从演示中学习机器人操作。我们的主要创新是使用全局基于转换器的动作预测器来预测关键帧的动作,这是一项需要多模态语义场景理解的任务,并使用局部轨迹扩散器来预测连接预测宏动作的轨......
  • ElasticSearch的安装与使用
    ElasticSearch的安装与使用docker安装docker进行安装Elasticsearch1.拉取镜像dockerpullelasticsearch:7.6.22.创建实例mkdir-p/docker/elasticsearch/configmkdir-p/docker/elasticsearch/dataecho"http.host:0.0.0.0">>/docker/elasticsearch/config/......