Metaphor(EXA) 基于大语言模型的搜索引擎

news2025/1/18 18:08:06

在这里插入图片描述


文章目录

    • 关于 Metaphor
    • 使用示例


关于 Metaphor

Metaphor是基于大语言模型的搜索引擎,允许用户使用完整的句子和自然语言搜索,还可以模拟人们在互联网上分享和谈论链接的方式进行查询内容。
Metaphor同时还能与LLMs结合使用,允许LLMs连接互联网,查询自己知识库外部的内容。

  • 官网:https://exa.ai
  • github : https://github.com/NorthBit/Metaphor

相关教程

  • Metaphor:改变搜索方式,搜索引擎革命,基于大语言模型的AI搜索引擎(1min)
    https://www.bilibili.com/video/BV1om4y1M7XM/
    https://www.1aibox.com/sites/2222.html
  • LLM之RAG实战(二):使用LlamaIndex + Metaphor实现知识工作自动化
    https://mp.weixin.qq.com/s/RsaqhgB9VmMtXDc5UW-1vQ

使用示例

安装环境

!pip install exa_py
!pip install langchain 
!pip install llama_hub  
!pip install llama_index   

  • api_key 为从官网 https://exa.ai 注册后,个人的 key
  • 过去使用 MetaphorToolSpec,后面改为使用 ExaToolSpec
from llama_hub.tools.exa.base import ExaToolSpec 
metaphor_tool = ExaToolSpec( api_key="xxx" )

metaphor_tool_list = metaphor_tool.to_tool_list() 

for tool in metaphor_tool_list:
    print(tool.metadata.name)


'''
search
retrieve_documents
search_and_retrieve_documents
search_and_retrieve_highlights
find_similar
current_date
'''

metaphor_tool.search('machine learning transformers', num_results=3)
'''
[Exa Tool] Autoprompt: Here's an insightful article on machine learning transformers:
[{'title': 'On the potential of Transformers in Reinforcement Learning',
  'url': 'https://lorenzopieri.com/rl_transformers/',
  'id': 'snjxQqPfYVWKEmVXunkqhg'},
 {'title': 'How Transformers work in deep learning and NLP: an intuitive introduction | AI Summer',
  'url': 'https://theaisummer.com/transformer/',
  'id': 'kzGcf36vWzWeyL28Az1fNQ'},
 {'title': 'Transformers in Computer Vision: Farewell Convolutions!',
  'url': 'https://towardsdatascience.com/transformers-in-computer-vision-farewell-convolutions-f083da6ef8ab?gi=a1d0a9a2896c',
  'id': 'xF0V2oTHAfVmfS5UvJIFDA'}]
'''


# 使用 Mataphor 设置 OpenAI Agent

from llama_index.agent import OpenAIAgent
agent = OpenAIAgent.from_tools(
    metaphor_tool_list,
    verbose=True,
)

# 直接查询
agent.chat('what are the best restaurants in torando?')



from llama_index.tools.tool_spec.load_and_search.base import LoadAndSearchToolSpec

# The search_and_retrieve_documents tool is the third in the tool list, as seen above
wrapped_retrieve = LoadAndSearchToolSpec.from_defaults(
  metaphor_tool_list[2],
)

# Just pass the wrapped tools and the get_date utility
agent = OpenAIAgent.from_tools(
  [*wrapped_retrieve.to_tool_list(), metaphor_tool_list[4]],
  verbose=True,
)
agent.chat('Can you summarize everything published in the last month regarding news on superconductors')



伊织 2024-01-27(六)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

༺༽༾ཊ—Unity之-05-抽象工厂模式—ཏ༿༼༻

首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务:使用 抽象工厂模式 创建 人物与宠物 模型, 首先资源商店下载 人物与宠物…

【JavaWeb】【C00153】基于SSM的大学生家教平台管理系统(论文+PPT)

基于SSM的大学生家教平台管理系统(论文PPT) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm大学生家教平台管理系统 本系统分为前台模块、后台管理员模块、用户木块及家教模块。 其中前台的权限为:首页、家教、公告信息…

猫用空气净化器哪款牌子好?好用能吸毛的宠物空气净化器推荐

作为一个养猫多年的铲屎官,我真的无法抗拒猫星人的可爱魅力!以前,每当我路过宠物店,我总会忍不住停下来,在玻璃窗前停留半个小时以上。但是后来,我终于有了自己的猫咪。每天都能享受到给它摸小肚子的乐趣&a…

Filter Listener

文章目录 一 过滤器(Filter)1 什么是过滤器2 为什么使用过滤器3 过滤器执行流程4 过滤器的生命周期5 过滤器的注册5.1 XML方式5.2 WebFilter 注解方式 6 FilterConfig7 过滤器链8 过滤器应用 二 什么是监听器1 监听器分类2 监听器使用2.1 监听对象的创建…

Mac忘记本机MySql怎么办?

Mac忘记本机MySql怎么办? 1.打开系统偏好设置 2.打开Mysql 3.停止服务 4.直接初始化服务上图有一个初始化数据库 5.输入8位密码确认 6.重启服务

Blender教程(基础)-初始用户界面-01

开始第一天的Blender学习、也是业余学习。希望记录下这一份学习的过程、并且分享给大家。今天带大家认识Blender这一款软件,先说说我为什么选择了Blender,我在软件市场找了好久,市场上其他雷同软件都是要么收费要么不好用,最终决定…

【面试深度解析】滴滴后端二面:12306场景设计、Redis缓存设计、MyBatis两级缓存(下)

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

Mac安装nvm,安装多个不同版本node,指定node版本

一.安装nvm brew install nvm二。配置文件 touch ~/.zshrc echo export NVM_DIR~/.nvm >> ~/.zshrc echo source $(brew --prefix nvm)/nvm.sh >> ~/.zshrc三.查看安装版本 nvm -vnvm常用命令如下:nvm ls :列出所有已安装的 node 版本nvm…

一张图文深入了解信息量概念

通信原理第10页最后一段: 概率论告诉我们,事件的不确定程度可以用其出现的概率来描述。因此,消息中包含的信息量与消息发生的概率密切相关。消息出现的概率越小,则消息中包含的信息量就越大。 这句话怎么理解呢? 比如…

小红构造数组-牛客周赛 Round 29(DFS方法)

题目很直白,方法就是暴力即可。 虽然说数据范围显得很大,但是在长整型范围内,一个数字的素因子数量最多不超64,而如果是不相同的素因子,虽然没有计算过,但是如果是12个不同的素因子应该会超过数据范围了。…

消息中间件之八股面试回答篇:三、RabbitMQ如何解决消息堆积问题(100万条消息堆积)+RabbitMQ高可用性和强一致性机制+回答模板

RabbitMQ中的消息堆积问题 当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题。 解决消息堆积有三种种思路…

c++阶梯之引用与内联函数

1. 引用 1.1 引用概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 语法 类型& 引用变量名(对象名) 引用实体; 示例 很显然,在下面这…

21.Arrays类

Arrays类 1. 概述2. 常见方法3. sort 方法的自定义排序4. 代码示例5. 输出结果6. 注意事项 具体信息请查看 API 帮助文档 1. 概述 Arrays类是Java中的一个工具类,位于java.util包中。 它提供了一组静态方法,用于操作数组。通过Arrays类,我们…

springboot136人口老龄化社区服务与管理平台

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

web前端---------盒子模型2

一------内边距 padding 属性用来设置元素的内边距长度,元素在默认情况下没有内边距,其值为none。 (1)当 padding 属性中仅含一个值时,该长度应用在上、下、左、右四个区域。 (2)当 padding …

Java二分查找-图文

一、二分查找概念 二分查找也叫折半查找,是在一组有序(升序/降序)的数据中查找一个元素,它是一种效率较高的查找方。 二、二分查找原理 1.二分查找的数组必须是有序数值型数组。 2.将想要查找的目标元素与查找范围内的中间元素进行比较,如果…

文件包含漏洞长度截断

长度截断 文件漏洞的利用方式什么是长度截断通过实操理解00截断对版本要求更高一点,而长度截断则是利用了windows的系统漏洞,就是windows文件名(就是文件名后缀之后)之后如果有空格,或者是点都会被忽略掉,也…

研发日记,Matlab/Simulink避坑指南(八)——else if分支结构Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记,Matlab/Simulink避坑指南(三)——向上取整Bug》 见《研发日记,Matlab/Simulink避坑指南(四)——transpose()转置函数Bug》 见《研发日记,Matlab/Simuli…

Spring Cloud + Vue前后端分离-第13章 网站开发

源代码在GitHub - 629y/course: Spring Cloud Vue前后端分离-在线课程 Spring Cloud Vue前后端分离-第13章 网站开发 13-1 网站模块的搭建 新建web模板 1.网站开发,增加web模块,使用命令:vue create web vue版本4.2.3 大家拿到一个v…

【Web】小白也能做的RWCTF体验赛baby题部分wp

遇到不会的题,怎么办!有的师傅告诉你完了,废了,寄了!只有Z3告诉你,稳辣!稳辣!都稳辣! 这种CVE复现的题型,不可能要求选手从0到1进行0day挖掘,其实…