
关于
LLM 运维——RAG、嵌入、向量数据库、微调、高级提示工程、LLM 成本、质量评估和生产级 AI 架构。
name: llm-ops description: "LLM 运维 -- RAG、嵌入向量、向量数据库、微调、高级提示工程、LLM 成本优化、质量评估和生产级 AI 架构。" risk: safe source: community date_added: '2026-03-06' author: renat tags:
- llm
- rag
- embeddings
- vector-db
- fine-tuning tools:
- claude-code
- antigravity
- cursor
- gemini-cli
- codex-cli
LLM-OPS -- 生产级 AI 运维
概述
LLM 运维 -- RAG、嵌入向量、向量数据库、微调、高级提示工程、LLM 成本优化、质量评估和生产级 AI 架构。适用场景:实现 RAG、创建嵌入向量管道、Pinecone/Chroma/pgvector、微调、提示工程、降低 LLM 成本、评估、语义缓存、流式传输、智能体。
何时使用此技能
- 当你需要该领域的专业协助时
不适用场景
- 任务与 LLM 运维无关
- 更简单、更具针对性的工具可以处理该请求
- 用户需要的是通用辅助而非领域专业知识
工作原理
AI 原型与 AI 产品之间的区别在于可运维性。 LLM-Ops 是让 AI 变得可靠、可扩展且经济高效的工程实践。
完整 RAG 架构
[文档] -> [分块] -> [嵌入向量] -> [向量数据库] | [查询] -> [嵌入查询] -> [语义搜索] -> [Top K 分块] | [LLM + 上下文] -> [响应]
索引管道
from anthropic import Anthropic
import chromadb
client = Anthropic()
chroma = chromadb.PersistentClient(path="./chroma_db")
def chunk_text(text, chunk_size=500, overlap=50):
words = text.split()
chunks = []
for i in range(0, len(words), chunk_size - overlap):
chunk = " ".join(words[i:i + chunk_size])
if chunk: chunks.append(chunk)
return chunks
def index_document(doc_id, content_text, metadata=None):
chunks = chunk_text(content_text)
ids = [f"{doc_id}_chunk_{i}" for i in range(len(chunks))]
collection.upsert(ids=ids, documents=chunks)
return len(chunks)
RAG 查询管道
def rag_query(query, top_k=5, system=None):
results = collection.query(
query_texts=[query], n_results=top_k,
include=["documents", "metadatas", "distances"])
context_parts = []
for doc, meta, dist in zip(results["documents"][0],
results["metadatas"][0],
results["distances"][0]):
if dist < 1.5:
src = meta.get("source", "doc")
context_parts.append(f"[来源: {src}]\n{doc}")
context = "\n\n---\n\n".join(context_parts)
response = client.messages.create(
model="claude-opus-4-20250805", max_tokens=1024,
system=system or "基于上下文进行回答。",
messages=[{"role": "user", "content": f"上下文:\n{context}\n\n{query}"}])
return response.content[0].text
向量数据库选型
| 数据库 | 最佳场景 | 部署方式 | 成本 | |----|------------|---------|-------| | Chroma | 开发环境、本地 | 自托管 | 免费 | | pgvector | 已使用 PostgreSQL | 自托管/云 | 免费 | | Pinecone | 托管生产环境 | 云 | 70+ 美元/月 | | Weaviate | 多模态 | 自托管/云 | 免费+ | | Qdrant | 高性能 | 自托管/云 | 免费+ |
pgvector
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE knowledge_embeddings (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
content TEXT NOT NULL,
embedding vector(1536),
metadata JSONB,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX ON knowledge_embeddings
USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
SELECT content, 1 - (embedding <=> QUERY_VECTOR) AS similarity
FROM knowledge_embeddings ORDER BY similarity DESC LIMIT 5;
精英级提示结构
系统提示组件:
- 身份:名称、语气(自然、温暖、直接)、平台
- 规则:最多3个短段落、无 markdown、对话式语言
- 能力:商业分析、数据驱动建议、创造力
- 限制:无实时互联网、无金融交易
- 个性化:{user_name}、{user_preferences}、{relevant_history}
思维链
def cot_analysis(problem: str) -> str:
steps = [
"1. 具体要求是什么?",
"2. 解决问题的关键信息是什么?",
"3. 有哪些可能的方法?",
"4. 哪种方法最好,为什么?",
"5. 存在哪些风险或限制?",
]
prompt = f"逐步分析:\n\n问题:{problem}\n\n"
prompt += "\n"