SearxNG 搜索 API 进行网络搜索。
您可以查看此链接获取更多关于 Searx API 参数的信息。
import pprint
from langchain_community.utilities import SearxSearchWrapper
search = SearxSearchWrapper(searx_host="http://127.0.0.1:8888")
answer,包装器将打印答案而不是完整的搜索结果列表。如果您想获取所有结果,可以使用包装器的 results 方法。
search.run("What is the capital of France")
'巴黎是法国的首都,法国是欧洲最大的国家,面积为55万平方公里(6500万居民)。截至2011年底,巴黎拥有223.4万居民。她是法兰西岛大区(1200万人口)的核心。'
自定义参数
SearxNG 支持 135 个搜索引擎。您还可以使用任意命名参数自定义 Searx 包装器,这些参数将传递给 Searx 搜索 API。在下面的示例中,我们将更有趣地使用来自 Searx 搜索 API 的自定义搜索参数。 在此示例中,我们将使用engines 参数查询维基百科。
search = SearxSearchWrapper(
searx_host="http://127.0.0.1:8888", k=5
) # k 用于最大项目数
search.run("large language model ", engines=["wiki"])
'大型语言模型(LLMs)代表了人工智能的重大进步,有望通过学习到的知识改变各个领域。过去几年,LLM 的规模每年增长 10 倍,随着这些模型在复杂性和规模上的增长,它们的能力也在增强。\n\nGPT-3 可以翻译语言、撰写文章、生成计算机代码等等——所有这些都几乎不需要监督。2020 年 7 月,OpenAI 发布了 GPT-3,这是一个当时已知最大的语言模型。简单来说,GPT-3 被训练来预测句子中的下一个词,这与文本消息自动完成功能的工作原理非常相似。\n\n大型语言模型(LLM)是一种深度学习算法,能够基于从海量数据集中获得的知识来识别、总结、翻译、预测和生成文本及其他内容。大型语言模型是 Transformer 模型最成功的应用之一。\n\n当今所有著名的语言模型——例如,OpenAI 的 GPT-3、Google 的 PaLM 或 LaMDA、Meta 的 Galactica 或 OPT、Nvidia/Microsoft 的 Megatron-Turing、AI21 Labs 的 Jurassic-1——都是……\n\n像 GPT-3 这样的大型语言模型(LLMs)正越来越多地用于生成文本。这些工具应谨慎使用,因为它们可能生成有偏见、无法验证、构成原创研究或侵犯版权的内容。'
language
search = SearxSearchWrapper(searx_host="http://127.0.0.1:8888", k=1)
search.run("deep learning", language="es", engines=["wiki"])
'深度学习(英语:deep learning)是一组机器学习算法,试图使用支持对以矩阵或张量形式表达的数据进行多次非线性迭代变换的计算架构来建模数据中的高级抽象。1'
获取带元数据的结果
在此示例中,我们将使用categories 参数查找科学论文,并将结果限制在 time_range 内(并非所有引擎都支持时间范围选项)。
我们还希望以结构化方式获取结果,包括元数据。为此,我们将使用包装器的 results 方法。
search = SearxSearchWrapper(searx_host="http://127.0.0.1:8888")
results = search.results(
"Large Language Model prompt",
num_results=5,
categories="science",
time_range="year",
)
pprint.pp(results)
[{'snippet': '… 关于自然语言指令,大型语言模型(… 用于引导模型的提示,以及最有效的提示… 关于提示工程,我们提出自动提示…',
'title': '大型语言模型是人类水平的提示工程师',
'link': 'https://arxiv.org/abs/2211.01910',
'engines': ['google scholar'],
'category': 'science'},
{'snippet': '… 大型语言模型(LLMs)为使用 AI 进行原型设计引入了新的可能性 [18]。在大量文本数据上预训练,模型… 称为提示的语言指令。…',
'title': 'Promptchainer:通过可视化编程链接大型语言模型提示',
'link': 'https://dl.acm.org/doi/abs/10.1145/3491101.3519729',
'engines': ['google scholar'],
'category': 'science'},
{'snippet': '… 可以内省大型提示模型。我们从 T01 推导出视图 ϕ0(X) 和模型 h0。然而,我们没有在共同训练期间完全微调 T0,而是专注于软提示调优…',
'title': '共同训练改进了基于提示的大型语言模型学习',
'link': 'https://proceedings.mlr.press/v162/lang22a.html',
'engines': ['google scholar'],
'category': 'science'},
{'snippet': '… 随着代码大型语言模型(LLMs)的成功及其作为… 提示设计过程变得重要。在这项工作中,我们提出了一个名为 Repo-Level Prompt 的框架…',
'title': '面向代码大型语言模型的仓库级提示生成',
'link': 'https://arxiv.org/abs/2206.12839',
'engines': ['google scholar'],
'category': 'science'},
{'snippet': '… 图 2 | 提示的不同组件对最大语言模型(Gopher)的益处,通过层次逻辑回归估计。每个点估计了独特的…',
'title': '语言模型能从上下文中的解释中学习吗?',
'link': 'https://arxiv.org/abs/2204.02329',
'engines': ['google scholar'],
'category': 'science'}]
results = search.results(
"Large Language Model prompt", num_results=5, engines=["arxiv"]
)
pprint.pp(results)
[{'snippet': '得益于大型预训练语言模型的先进改进,基于提示的微调在各种下游任务上被证明是有效的。尽管已经研究了许多提示方法,但三种提示类型(即人工设计的提示、模式提示和空提示)中哪一种最有效仍然未知。在这项工作中,我们实证比较了三种提示在少样本和完全监督设置下的效果。我们的实验结果表明,模式提示通常是最有效的。此外,当训练数据规模变大时,性能差距往往会减小。',
'title': '提示是否使用自然语言解决 NLP 任务?',
'link': 'http://arxiv.org/abs/2203.00902v1',
'engines': ['arxiv'],
'category': 'science'},
{'snippet': '跨提示自动作文评分(AES)要求系统使用非目标提示的作文为目标提示的作文评分。由于获取大量针对特定提示的预评分作文通常很困难且不现实,跨提示 AES 任务对于现实世界 AES 系统的发展至关重要,但它仍然是一个研究不足的领域。为特定提示设计的 AES 模型严重依赖于特定提示的知识,在跨提示设置中表现不佳,而当前的跨提示 AES 方法要么需要一定数量的标记目标提示作文,要么需要大量未标记的目标提示作文以多步骤方式进行迁移学习。为了解决这些问题,我们引入了提示无关作文评分器(PAES)用于跨提示 AES。我们的方法在训练期间无需访问标记或未标记的目标提示数据,并且是单阶段方法。PAES 易于在实践中应用,并在自动学生评估奖(ASAP)数据集上实现了最先进的性能。',
'title': '提示无关作文评分器:一种面向跨提示自动作文评分的领域泛化方法',
'link': 'http://arxiv.org/abs/2008.01441v1',
'engines': ['arxiv'],
'category': 'science'},
{'snippet': '关于提示的研究表明,在许多任务上,即使没有或只有很少的监督训练,也能取得出色的性能。然而,文献中对机器翻译的提示仍然探索不足。我们通过提供关于翻译提示策略的系统研究来填补这一空白,考察了提示模板和示例选择的各种因素。我们进一步探讨了使用单语数据以及跨语言、跨领域和句子到文档迁移学习在提示中的可行性。使用 GLM-130B(Zeng 等人,2022)作为测试平台的大量实验表明:1)提示示例的数量和质量很重要,使用次优示例会降低翻译质量;2)提示示例的几个特征,如语义相似性,与其提示性能显示出显著的斯皮尔曼相关性;然而,没有一个相关性足够强;3)使用通过零样本提示从单语数据构建的伪并行提示示例可以提高翻译质量;4)通过从其他设置中选择的提示示例转移知识可以实现性能提升。我们最后对模型输出进行了分析,并讨论了提示仍然存在的一些问题。',
'title': '面向机器翻译的大型语言模型提示:一个案例研究',
'link': 'http://arxiv.org/abs/2301.07069v2',
'engines': ['arxiv'],
'category': 'science'},
{'snippet': '大型语言模型可以以零样本方式执行新任务,只需提供指定所需行为的自然语言提示。这些提示通常是手工设计的,但也可以通过基于梯度的方法从标记数据中学习。然而,是什么因素使提示有效,尤其是当提示是自然语言时,这一点尚未得到充分探索。在本文中,我们研究了有效提示共享的常见属性。我们首先提出了一种基于朗之万动力学的人类可读提示调优方法(FLUENT PROMPT),该方法结合了流畅性约束,以找到有效且流畅提示的多样化分布。我们的分析表明,有效提示在主题上与任务领域相关,并校准了标签词的先验概率。基于这些发现,我们还提出了一种仅使用未标记数据生成提示的方法,在三个任务上平均准确率比强基线高出 7.0%。',
'title': '迈向人类可读的提示调优:库布里克的《闪灵》是一部好电影,也是一个好提示吗?',
'link': 'http://arxiv.org/abs/2212.10539v1',
'engines': ['arxiv'],
'category': 'science'},
{'snippet': '将大型生成式语言模型映射到监督任务的主流方法可能无法充分探测模型的新能力。以 GPT-3 为例,我们表明零样本提示可以显著优于少样本提示。我们建议,在这些情况下,少样本示例的作用最好描述为定位一个已经学习的任务,而不是元学习。这一分析促使我们重新思考提示在控制和评估强大语言模型中的作用。在这项工作中,我们讨论了提示编程的方法,强调通过自然语言视角考虑提示的有用性。我们探索了利用叙事和文化锚点来编码细微意图的技术,以及鼓励在做出判断之前将问题分解为组成部分的技术。基于这种更全面的提示编程理论,我们还引入了元提示的概念,该概念引导模型为一系列任务生成自己的自然语言提示。最后,我们讨论了这些更通用的与语言模型交互的方法如何被纳入现有和未来的基准测试和实际应用中。',
'title': '大型语言模型的提示编程:超越少样本范式',
'link': 'http://arxiv.org/abs/2102.07350v1',
'engines': ['arxiv'],
'category': 'science'}]
it 类别下查询 large language models。然后我们过滤来自 github 的结果。
results = search.results("large language model", num_results=20, categories="it")
pprint.pp(list(filter(lambda r: r["engines"][0] == "github", results)))
[{'snippet': '使用预训练源代码大型语言模型的指南',
'title': 'Code-LMs',
'link': 'https://github.com/VHellendoorn/Code-LMs',
'engines': ['github'],
'category': 'it'},
{'snippet': 'Dramatron 使用大型语言模型生成连贯的剧本和电影剧本。',
'title': 'dramatron',
'link': 'https://github.com/deepmind/dramatron',
'engines': ['github'],
'category': 'it'}]
github 和其他源代码托管平台的结果。
results = search.results(
"large language model", num_results=20, engines=["github", "gitlab"]
)
pprint.pp(results)
[{'snippet': 'Kirchenbauer & Geiping 等人论文《大型语言模型的水印》的实现',
'title': 'Peutlefaire / LMWatermark',
'link': 'https://gitlab.com/BrianPulfer/LMWatermark',
'engines': ['gitlab'],
'category': 'it'},
{'snippet': '使用预训练源代码大型语言模型的指南',
'title': 'Code-LMs',
'link': 'https://github.com/VHellendoorn/Code-LMs',
'engines': ['github'],
'category': 'it'},
{'snippet': '',
'title': 'Simen Burud / 用于对话语音识别的大规模语言模型',
'link': 'https://gitlab.com/BrianPulfer',
'engines': ['gitlab'],
'category': 'it'},
{'snippet': 'Dramatron 使用大型语言模型生成连贯的剧本和电影剧本。',
'title': 'dramatron',
'link': 'https://github.com/deepmind/dramatron',
'engines': ['github'],
'category': 'it'},
{'snippet': 'loralib 的代码,"LoRA:大型语言模型的低秩适应"的实现',
'title': 'LoRA',
'link': 'https://github.com/microsoft/LoRA',
'engines': ['github'],
'category': 'it'},
{'snippet': '论文《评估在代码上训练的大型语言模型》的代码',
'title': 'human-eval',
'link': 'https://github.com/openai/human-eval',
'engines': ['github'],
'category': 'it'},
{'snippet': '一个始于《思维链提示在大型语言模型中引发推理》的趋势。',
'title': 'Chain-of-ThoughtsPapers',
'link': 'https://github.com/Timothyxxx/Chain-of-ThoughtsPapers',
'engines': ['github'],
'category': 'it'},
{'snippet': 'Mistral:一股强劲的西北风:使用 Hugging Face 🤗 Transformers 构建的透明且可访问的大规模语言模型训练框架。',
'title': 'mistral',
'link': 'https://github.com/stanford-crfm/mistral',
'engines': ['github'],
'category': 'it'},
{'snippet': '一项寻找导致大型语言模型出现逆缩放任务的奖项',
'title': 'prize',
'link': 'https://github.com/inverse-scaling/prize',
'engines': ['github'],
'category': 'it'},
{'snippet': 'Optimus:第一个大规模预训练的 VAE 语言模型',
'title': 'Optimus',
'link': 'https://github.com/ChunyuanLI/Optimus',
'engines': ['github'],
'category': 'it'},
{'snippet': '大型语言模型研讨会(UNC Chapel Hill,2022 年秋季,COMP790-101)',
'title': 'llm-seminar',
'link': 'https://github.com/craffel/llm-seminar',
'engines': ['github'],
'category': 'it'},
{'snippet': '一个关于大型语言模型中思维链推理的数据和工具的中心开放资源。由 Samwald 研究小组开发:https://samwald.info/',
'title': 'ThoughtSource',
'link': 'https://github.com/OpenBioLink/ThoughtSource',
'engines': ['github'],
'category': 'it'},
{'snippet': '一份使用大型语言/多模态模型用于机器人/强化学习的论文综合列表,包括论文、代码和相关网站',
'title': 'Awesome-LLM-Robotics',
'link': 'https://github.com/GT-RIPL/Awesome-LLM-Robotics',
'engines': ['github'],
'category': 'it'},
{'snippet': '用于策划大规模语言建模生物医学训练数据的工具',
'title': 'biomedical',
'link': 'https://github.com/bigscience-workshop/biomedical',
'engines': ['github'],
'category': 'it'},
{'snippet': 'ChatGPT @ Home:大型语言模型(LLM)聊天机器人应用程序,由 ChatGPT 编写',
'title': 'ChatGPT-at-Home',
'link': 'https://github.com/Sentdex/ChatGPT-at-Home',
'engines': ['github'],
'category': 'it'},
{'snippet': '设计和部署大型语言模型应用',
'title': 'dust',
'link': 'https://github.com/dust-tt/dust',
'engines': ['github'],
'category': 'it'},
{'snippet': 'Polyglot:在多语言方面具有均衡能力的大型语言模型',
'title': 'polyglot',
'link': 'https://github.com/EleutherAI/polyglot',
'engines': ['github'],
'category': 'it'},
{'snippet': '论文《从大型语言模型学习视频表示》的代码发布',
'title': 'LaViLa',
'link': 'https://github.com/facebookresearch/LaViLa',
'engines': ['github'],
'category': 'it'},
{'snippet': 'SmoothQuant:大型语言模型的准确高效训练后量化',
'title': 'smoothquant',
'link': 'https://github.com/mit-han-lab/smoothquant',
'engines': ['github'],
'category': 'it'},
{'snippet': '此仓库包含论文《XL-Sum:面向 44 种语言的大规模多语言抽象摘要》的代码、数据和模型,该论文发表于计算语言学协会发现:ACL-IJCNLP 2021。',
'title': 'xl-sum',
'link': 'https://github.com/csebuetnlp/xl-sum',
'engines': ['github'],
'category': 'it'}]
连接这些文档 到 Claude、VSCode 等,通过 MCP 获取实时答案。

