在当今快速发展的信息时代,实时获取最新新闻并将其有效整合到大语言模型(LLM)中是提高AI应用能力的关键步骤。AskNews提供了一种强大的解决方案,通过一个简单的自然语言查询,将最新的全球或历史新闻注入到任何LLM中。AskNews每天丰富超过30万篇文章,并将其翻译、摘要、实体提取、索引到热/冷向量数据库中。这些数据库提供低延迟的访问,为你的查询返回经过优化的提示字符串,涵盖所有重要的新闻信息,使得无需自行管理新闻RAG(Retrieve, Augment, Generate),并有效传达浓缩的新闻信息到LLM。
技术背景介绍
AskNews专注于透明度,监控并多样化覆盖全球数百个国家、13种语言和5万个来源。用户可以通过AskNews透明度仪表板跟踪其源覆盖情况。集成AskNews的步骤简单,主要依赖于langchain-community包和asknews包。
核心原理解析
AskNews通过向量数据库快速响应查询,为你的LLM提供最相关的新闻丰富内容。这意味着你可以专注于LLM的应用而非数据管理和提取。
代码实现演示
以下是如何设置和使用AskNews进行新闻查询的示例代码:
import getpass
import os
# 设置AskNews API凭证
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: ")
# 导入必要的包
from langchain_community.retrievers import AskNewsRetriever
from datetime import datetime, timedelta
# 设置时间范围
start = (datetime.now() - timedelta(days=7)).timestamp()
end = datetime.now().timestamp()
# 创建一个AskNews检索器并设置类别和搜索方法
retriever = AskNewsRetriever(
k=3, # 返回最相关的3篇文章
categories=["Business", "Technology"],
start_timestamp=int(start),
end_timestamp=int(end),
method="kw", # 关键字搜索
offset=10, # 分页结果
)
# 执行查询
articles = retriever.invoke("federal reserve S&P500")
for article in articles:
print(article.page_content)
该代码设置了AskNews API凭证并实例化了一个检索器,可以根据指定的时间和类别进行新闻搜索。然后它执行查询并输出包含相关内容的文档结构。
应用场景分析
AskNews可以用于实时获取最新的市场信息、全球事件或特定领域的新闻并将其注入到你的LLM中。这对于金融预测、市场分析、政策影响分析等应用场景尤为重要。
实践建议
- 确保API凭证的安全性,不要在源码中明文存储。
- 为高效的数据处理设置合理的时间范围和返回文档数量。
- 结合AskNews的透明度仪表板优化数据源选择。
如果遇到问题欢迎在评论区交流。
—END—