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


文章目录


关于 Metaphor

Metaphor是基于大语言模型的搜索引擎,允许用户使用完整的句子和自然语言搜索,还可以模拟人们在互联网上分享和谈论链接的方式进行查询内容。

Metaphor同时还能与LLMs结合使用,允许LLMs连接互联网,查询自己知识库外部的内容。


相关教程


使用示例

安装环境

shell 复制代码
!pip install exa_py
!pip install langchain 
!pip install llama_hub  
!pip install llama_index   

  • api_key 为从官网 https://exa.ai 注册后,个人的 key
  • 过去使用 MetaphorToolSpec,后面改为使用 ExaToolSpec
python 复制代码
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'}]
'''

python 复制代码
# 使用 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?')

python 复制代码
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(六)

相关推荐
夜影风19 小时前
LangGraph实战:搭建一个带人工介入的智能客服系统
人工智能·langchain·langgraph
测试员周周19 小时前
【Appium 系列】第04节-Page Object 模式 — BasePage 基类设计
开发语言·数据库·人工智能·python·语言模型·appium·web app
学习论之费曼学习法19 小时前
AI 入门 30 天挑战 - Day 29 - 面试准备指南
人工智能·面试·职场和发展
爱学习的徐徐19 小时前
监督学习核心算法:单变量线性回归
人工智能·机器学习
JavaGuide19 小时前
万字详解 Harness Engineering:六层架构、上下文管理与一线团队实战
人工智能·ai编程
java1234_小锋19 小时前
Spring AI 2.0 开发Java Agent智能体 - 工具调用(Function Calling / Tools)
java·人工智能·spring
nix.gnehc19 小时前
AI Agent 设计范式的演进之路:从工具调用到多智能体协作
人工智能·agent
小辰记事本19 小时前
RDMA:AI算力集群的“网络命脉”
网络·人工智能·网络协议·rdma
keineahnung234519 小时前
PyTorch SymNode 的 _is_contiguous 從何而來?──sizes_strides_impl 實作詳解
人工智能·pytorch·python·深度学习
测试员周周19 小时前
【Appium 系列】第02节-环境搭建 — Android + iOS 双平台环境配置
开发语言·人工智能·功能测试·appium·自动化·测试用例·web app