将 LLM 作为特征提取器、排序评分模型,以及生成式/智能体推荐引擎三种模式的具体实现路径和优劣对比。
传统推荐系统依赖矩阵分解、双塔架构和大量人工设计的表格特征。虽然这些方法能够高效扩展到数十亿条交互数据,但在冷启动物品、跨领域语义和生成人类可读的推荐解释方面常常力不从心。大型语言模型带来了一种不同的方案——它们直接在非结构化文本上进行推理,从原始用户历史中推断细微偏好,无需大量特征工程即可产生可解释的推荐。
大多数生产流水线中 LLM 的使用方式可分为三种模式。
Feature extractor(特征提取器):BGE-Large 等嵌入模型将物品和用户画像转换为稠密向量。这些向量馈入传统的最近邻索引以进行候选检索。
Scoring and ranking(评分与排序):LLM 接收包含用户历史、候选物品描述和明确约束条件的提示词,返回相关性分数或排序列表,通常以 JSON 模式返回以便结构化解析。
Generative and agentic recommender(生成式与智能体推荐):模型充当智能体,提出澄清性问题,通过函数调用调用库存或定价工具,并在多轮对话中迭代优化候选列表。
每种模式都受益于长上下文窗口。丰富的用户画像(包含会话日志、产品评论和目录元数据)可以消耗数千个 token。因此,推理提供商的成本模型成为核心架构约束。
现实世界的推荐提示词增长迅速。传递用户六个月的行为历史、详细的产品描述和少量示例很容易超过标准上下文限制,并在基于 token 的平台上增加成本。当成本随输入长度线性增长时,每个额外的行为信号都带有价格惩罚。
Oxlo.ai 使用基于请求的定价。无论提示词长度如何,每次 API 请求支付一个固定费用。对于在单个提示词中传递长交互历史或大候选集的推荐系统,这种结构消除了与基于 token 提供商相关的线性成本惩罚。结果是可预测的支出,不会随输入规模增长,这使得 Oxlo.ai 对于长上下文和 agentic 工作负载显著更便宜。参见 https://oxlo.ai/pricing 了解当前计划详情。
一种实用的混合架构使用嵌入模型检索候选项,然后用 LLM 根据原始用户历史和自然语言条件对它们进行重新排序。Oxlo.ai 为两个阶段都提供完全兼容 OpenAI SDK 的端点。
import openai
client = openai.OpenAI(
base_url="https://api.oxlo.ai/v1",
api_key="YOUR_API_KEY"
)
# 1. Generate candidate embeddings with BGE-Large
items = [
{"id": "sku_42", "text": "Waterproof trail running shoes, aggressive lug pattern"},
{"id": "sku_77", "text": "Minimalist road running shoe, lightweight mesh upper"},
# ... additional catalog items
]
embedding_resp = client.embeddings.create(
model="bge-large", # BGE-Large on Oxlo.ai
input=[i["text"] for i in items]
)
# 2. Retrieve top-k via vector similarity (pseudo-code)
# candidates = vector_db.query(embedding_resp.data, top_k=5)
# 3. Rerank with an LLM using the full user history
user_history = """
Previously purchased: men's wool base layer, size L.
Recent views: ultralight backpacks, trekking poles.
Returns: none.
"""
rerank_prompt = f"""
User profile:
{user_history}
Candidate items:
1. {items[0]['text']}
2. {items[1]['text']}
Rank the items by relevance to the user. Return JSON with id and score keys.
"""
rerank_resp = client.chat.completions.create(
model="llama-3.3-70b", # Llama 3.3 70B on Oxlo.ai
messages=[{"role": "user", "content": rerank_prompt}],
response_format={"type": "json_object"}
)
print(rerank_resp.choices[0].message.content)
本例使用 bge-large 进行检索,llama-3.3-70b 进行排序,两者均可在 Oxlo.ai 上获取。由于提示词包含完整的用户历史,其 token 数量很高。在 Oxlo.ai 上,成本仍然是一次请求的费用。
对于旅行规划或企业软件采购等复杂场景,单个提示词是不够的。模型必须提出澄清性问题,调用外部 API 获取库存或定价信息,并进行迭代。这需要函数调用、多轮对话支持,以及对延迟敏感界面的流式响应。
Oxlo.ai 支持函数调用、工具使用、多轮对话和流式响应。Qwen 3 32B 和 GLM 5 等模型能够处理多语言推理和长时序 agentic 任务。你可以构建一个推荐 agent,查询产品数据库、按可用性筛选,并在多轮对话中向用户解释权衡,而无需担心每轮 token 成本膨胀。
Oxlo.ai 托管 45+ 个模型,涵盖推荐流水线相关的多个类别。
Embeddings:BGE-Large 和 E5-Large 用于候选检索和语义相似度。
General reasoning:Llama 3.3 70B 用于稳健的排序和偏好理解。
Multilingual and agentic:Qwen 3 32B 用于全球目录和工具使用工作流。
Deep reasoning:DeepSeek R1 671B MoE 和 Kimi K2.6 用于复杂约束满足,例如预算感知的捆绑推荐。
Vision:当推荐依赖于产品图片或用户生成的照片时,Gemma 3 27B 和 Kimi VL A3B。