RAG(检索增强生成)是让模型基于你的数据作答的方法:在你的文档里检索相关片段,塞进提示,让模型基于这段上下文作答。生成这一步,正是 DeepSeek 这种又便宜又能打的模型发挥的地方:大多数 RAG 答案不需要前沿模型,需要的是好的检索加一个靠谱、便宜的生成器。
四步流水线
- 切块:把文档切成段落。
- 向量化并建索引:存进向量库(用你喜欢的任意 embedding 模型和向量库)。
- 检索:为查询取出最相关的几段。
- 生成:用 DeepSeek 基于这些段落生成答案。
本文聚焦第 4 步,也就是 DeepSeek 负责的部分,把检索当黑盒(Qdrant、pgvector、FAISS,随你)。
生成这一步
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TURILOOP_API_KEY"],
base_url="https://api.turiloop.com/v1",
)
def answer_with_context(question: str, passages: list[str]) -> str:
context = "\n\n".join(f"[{i+1}] {p}" for i, p in enumerate(passages))
system = (
"只用下面的上下文作答,引用来源标 [n];"
"如果上下文里没有答案,就直说没有。"
)
r = client.chat.completions.create(
model="deepseek-v4-flash", # 多数 RAG 用便宜的就够
messages=[
{"role": "system", "content": system + "\n\n上下文:\n" + context},
{"role": "user", "content": question},
],
temperature=0.2,
)
return r.choices[0].message.contentRAG 为什么用 DeepSeek V4-Flash
RAG 里检索是重活,模型只要读段落、写出有依据的答案,这完全在 V4-Flash 的能力范围内。每 token 近乎为零的成本,让你能用很少的钱跑一个高流量知识库。只在需要跨多段真正综合或推理的问题上,才升级到 deepseek-v4-pro。
两个省钱技巧
- 把 system prompt 和指令放最前、可变问题放最后,这样命中提示缓存,不再为同样的指令每次付全价。
- `temperature` 调低(0.1–0.3)保事实性,你要的是忠实答案,不是创意。
拼起来
向量库检索加 DeepSeek 生成,全在 Turiloop 一个 OpenAI 兼容的 Key 背后。先用 V4-Flash 省着跑,需要时按条升级。按量付费、国际卡、免中国手机号。
常见问题
RAG 用哪个 DeepSeek 模型最好? 多数 RAG 用 DeepSeek V4-Flash:检索是重活,所以一个能读好段落的便宜模型就够。只在需要跨多段综合或推理的问题上才升级到 DeepSeek V4-Pro。(见国产模型逐个说。)
DeepSeek 能配现有 RAG 框架吗? 能。因为 API 是 OpenAI 兼容的,LangChain、LlamaIndex 这类工具只要把 base URL 指向 Turiloop、模型设成 DeepSeek 的 id 就能用。一个 Key 调到所有模型。
怎么压低 RAG 成本? 把 system prompt 和指令放最前以命中提示缓存,检索更少但更准的段落,默认用 V4-Flash。