从提问到扣篮:用 RAG 和 PostgreSQL 解答 NBA 问题

在这里插入图片描述

前言

想象你问计算机:“谁在 2023 年 NBA 总决赛中得分最多?”然后它能直接、流畅地给出有数据支撑的答案。这就是 Retrieval-Augmented Generation(RAG)的魔力:结合检索与 AI 文本生成,让 AI 能够依据知识库回答自然语言问题。

本文将教你如何用 RAG 加上 PostgreSQL 数据库,搭建你自己的 NBA 问答系统,并在本地运行。我们会用到:

  • bge-m3 用于文本嵌入(embedding)
  • PostgreSQL + pgvector 用于语义相似搜索
  • gemma3:12b 用于自然语言生成
  • Ollama 本地运行环境,支持 OpenAI 风格 API

无论你是篮球迷、开发者,还是想学习 AI 的入门者,这篇文章都将是你构建智能体育助手的第一步。


什么是 RAG?

RAG 是 Retrieval-Augmented Generation(检索增强生成)的缩写,它结合了两个核心组件:

  1. Retriever(检索器):从知识库中查找相关文档或信息;
  2. Generator(生成器):使用大型语言模型(LLM)基于检索结果生成回答。

这种组合方式将数据库的准确性与语言模型的表达能力结合起来,使 AI 回答更可靠、更自然。
在这里插入图片描述


你可以提出哪些 NBA 问题?

NBA 数据丰富,适合做语义搜索与问答系统。以下是一些常见问题类型:

  • 数据查询类:Curry 在 2022 年投进了多少个三分球?
  • 对比类:2023 季后赛中 Luka 和 Trae 谁的助攻更多?
  • 趋势类:2024 年 3 月 Lakers 哪位球员得分最多?
  • 历史类:勇士队上一次夺冠是哪一年?

一步步搭建你的 NBA 问答系统

第一步:使用 bge-m3 生成嵌入向量

bge-m3 是一款多语言、多任务的向量模型,用于语义搜索。它可以将一句话转换为 1024 维的向量,例如:

“2023 年总决赛得分王是谁?”

转化为:

[0.021, -0.033, ..., 0.008]

本地运行:
ollama pull bge-m3
ollama serve
使用 OpenAI API 格式调用:
import requests
res = requests.post("http://localhost:11434/v1/embeddings", json={
   
   
    "model": "bge-m3",
    "input": "2023 年 NBA 总决赛谁得分最多?"
})
embedding = res.json()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值