https://www.ruapi.ai/v1,用的也是同一把 sk-... 密钥。代码里需要改的只有 base_url。
第一个向量
Python (OpenAI SDK)
resp.data 是一个列表:一段输入文本对应一个元素,元素里有 .embedding 字段。text-embedding-3-small 返回的向量含 1536 个数字。
想要更高质量,就用 text-embedding-3-large(每个向量 3072 个数字)。它在复杂文本上更准确,但更贵、更慢。大多数场景用 -small 就够了。
一次处理多段文本
把列表传给input,一次请求就能为每段文本返回一个向量——比逐条发送更快也更省请求。
五步搭一套完整 RAG
思路很简单:提前把文档切成小块,为每块算好向量;用户提问时,找出最相近的几块,作为上下文交给聊天模型。 1. 把文本切成块(chunk)。 块太长会稀释语义,太短又会丢失上下文。一般按段落,或者 200-500 词的窗口来切。注意事项
索引和查询要用同一个模型
索引和查询要用同一个模型
text-embedding-3-small 和 text-embedding-3-large 产出的向量无法互相比较——维度不同,语义空间也不同。用哪个模型建的索引,就用哪个模型算查询向量。换了模型,整个索引都得重建。用 input 列表做批量
用 input 列表做批量
逐条发送既慢又多耗请求。把列表传给
input(通常一次几百条以内),返回结果会保持同样的顺序。-small 与 -large:维度和成本
-small 与 -large:维度和成本
text-embedding-3-small 每个向量 1536 个数字,更便宜、更快,适合大多数场景。text-embedding-3-large 是 3072 个数字,在复杂长文本上更准,但更贵,占用的存储也翻倍。先用 -small,只有当检索质量不够时再换 -large。