
很多 AI 生成的文章看起来流畅,但经不起查:数据过时、来源编造、结论没有依据。 问题不在模型不会写,而在它只靠训练记忆写。
联网检索生成(Web RAG)解决的就是这件事: 先让程序去网上查资料,再把资料交给模型写。模型不再凭空回忆,而是基于证据组织语言。
核心流程只有五步:
下面是一个最小可运行版本,代码很少,但闭环完整。
import os, requests
from openai import OpenAI
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def search(q, k=5):
r = requests.post("https://api.tavily.com/search", json={
"api_key": os.getenv("TAVILY_API_KEY"),
"query": q, "max_results": k, "search_depth": "basic"})
return r.json()["results"]
def write(topic):
docs = search(topic)
ctx = "\n\n".join(
f"[{i+1}] {d['title']}\n{d['content']}\n{d['url']}"
for i, d in enumerate(docs)
)
prompt = f"根据资料写一篇800字文章,主题:{topic}。引用编号,不要编造。\n\n{ctx}"
res = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}]
)
return res.choices[0].message.content
print(write("AI Agent 在 2025 年的发展趋势"))这段代码做了三件事:
search():调用搜索 API,拿到 5 条网页结果;write():把结果拼成带编号的上下文;真正决定质量的,不是代码,而是这几个设计:
第一,查询改写。 用户问“AI Agent 最近怎么样”,搜索词应改成“AI Agent 2025 趋势 企业应用”。查询越具体,资料越干净。
第二,多源交叉。 至少取 3 到 5 个来源。只有一个来源,容易片面;来源互相矛盾,才值得分析。
第三,时间过滤。 新闻、融资、政策类主题,必须加日期。否则模型会把 2022 年的旧闻当新闻写。
第四,引用校验。 生成后检查编号是否对应真实链接。没有引用,就无法判断文章是检索生成,还是模型幻觉。
第五,失败重试。 搜索为空、结果不相关、网页打不开,都要换关键词重试,而不是硬写。
常见坑也很明显:
如果你用 Agent 框架,可以把 search 注册成一个工具,让模型自己决定什么时候查、查几次。但最小版本不需要框架:一个搜索 API,一个 LLM,二十行代码,就能跑通。
联网检索生成不是让模型变聪明,而是让它有证据。 少量代码解决“有没有查”,真正难的是“查得准、写得清、引得住”。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。