SQLServer RAG笔记5:为SQLServer 2025配置Ollama
环境准备
所需工具
| 工具 | 用途 | 下载地址 |
|---|---|---|
| Ollama | 本地运行 LLM 和嵌入模型 | https://ollama.com/ |
| nginx | 反向代理,提供 HTTPS 支持 | https://nginx.org/ |
| mkcert | 生成自签名证书 | https://github.com/FiloSottile/mkcert |
确保Ollama已安装并且下载基本嵌入模型
# 下载并运行嵌入模型 ollama run nomic-embed-text “Hello”为OLLAMA配置HTTPS
证书创建
由于Ollama 默认只提供 HTTP 服务,而 SQL Server 2025 要求外部 REST 端点必须使用 HTTPS,所以需要通过 nginx 配置反向代理实现 HTTPS 支持。
首先从网站https://github.com/FiloSottile/mkcert 下载并安装mkcert工具。
根据自己的环境去下载就可以,不需要编译,并且提供了MacOs以及Windows的AMD和ARM版。
下载完成后建议保存到一个比较容易访问到的目录,比如我是放在 d:\Cert,这样我就可以打开PowerShell,很容易的cd到这个目录。
在PowerShell下cd到 d:\Cert 目录,然后执行以下命令安装 mkcert 工具:
.\mkcert-v1.4.4-windows-amd64.exe -installTip:默认下载的程序名很长,敲PowerShell命令的时候可以先敲一个mk然后按Tab键自动补全,或者也可以直接将下载的文件重命名成mkcert.exe。
然后再执行以下命令生成服务器证书,需留意需要把192.168.1.160替换为你自己的IP地址。
.\mkcert-v1.4.4-windows-amd64.exe 192.168.1.160 localhost 127.0.0.1 ::1运行完成后会在 d:\Cert 目录下生成两个文件,分别是 <证书文件名>.pem 和 <证书文件名>-key.pem。
nginx 配置反响代理
首先需要再NGINX网站上下载并安装nginx。在Windows下的安装没什么特殊的说道,直接下载并解压即可。
比如我会在D盘目录下创建文件夹APPS然后再创建子文件夹NGINX,把解压的所有文件都复制到这下面。
在NGINX目录下创建一个文件夹,命名为 certs,然后将刚才生成的两个证书都复制到这里。
接下来是关键,找到NGINX的配置文件 nginx.conf,它在目录conf下,然后编辑它。
用以下http部分的配置覆盖默认的配置。
http { server { listen 443 ssl; server_name 192.168.1.160; # 替换为你的 IP ssl_certificate ../certs/<证书文件名>.pem; ssl_certificate_key ../certs/<证书文件名>-key.pem; location / { proxy_pass http://localhost:11434; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }保存配置文件后,需要重启NGINX服务。
# 启动 nginx(前台运行) nginx # 停止 nginx(在另一个终端) nginx -s stop # 后台启动 nginx start nginx最后一步验证 HTTPS 是否正常工作。
# 测试 HTTP 直接访问 Ollama curl http://localhost:11434 # 测试 HTTPS 通过 nginx 访问 curl https://localhost # 测试嵌入 API 通过 HTTPS Invoke-RestMethod -Uri https://localhost/api/embeddings ` -Method Post ` -Body '{"model": "nomic-embed-text:latest", "prompt": "博客园最帅的是谁"}' ` -ContentType 'application/json'SQL Server 2025 配置
启用外部 REST 端点
USE VectorDB; GO -- 启用外部 REST 端点 sp_configure 'external rest endpoint enabled', 1 GO RECONFIGURE WITH OVERRIDE; GO创建外部模型
USE VectorDB GO DROP EXTERNAL MODEL IF EXISTS ollama_nomic_embed_text GO CREATE EXTERNAL MODEL ollama_nomic_embed_text WITH ( LOCATION = 'https://192.168.1.160:443/api/embed', API_FORMAT = 'Ollama', MODEL_TYPE = EMBEDDINGS, MODEL = 'nomic-embed-text:latest' ); GO -- 验证模型创建 SELECT * FROM sys.external_models; GOTip:关于模型的名称,需要用Ollama list命令确认下名称,比如我的是nomic-embed-text:latest。但在我另一台机器里就是nomic-embed-text。
ollama list