csx 发表于 2025-2-16 11:24

本地部署的DeepSeek R1通过Apache前置机调用API

一、本地部署DeepSeek R1(基于Ollama),网上有大量的Ollama下本地部署deepseek的教程,这里就简单带过

1. 安装Ollama


    •下载安装包:访问 Ollama官网 ,根据操作系统(Windows/macOS/Linux)下载对应版本。

    •安装与验证:
      # 安装后验证版本(Windows通过命令提示符,macOS/Linux通过终端)
      ollama --version
   –若安装成功,任务栏会出现Ollama的小羊驼图标(Windows)或服务自动启动(macOS/Linux)。

2. 下载DeepSeek R1模型

    根据硬件配置选择模型版本(参考搜索结果):
    •低配置(4GB内存以下):ollama run deepseek-r1:1.5b
    •中配置(8-12GB内存):ollama run deepseek-r1:8b
    •高配置(16GB+内存):ollama run deepseek-r1:14b

3. 测试本地API

    Ollama默认在http://localhost:11434提供API服务,验证接口可用性:
    curl http://localhost:11434/api/generate -d '{

       "prompt": "你好",
       "stream": false
   }'

二、安装与配置Apache前置机

1. 安装Apache HTTP Server
    •Ubuntu/Debian:

    sudo apt update && sudo apt install apache2
    sudo a2enmod proxy proxy_http rewrite
    sudo systemctl restart apache2


    •Windows:通过 Apache Lounge 下载二进制包安装。

2. 配置反向代{过}{滤}理与时间戳验证

    编辑Apache配置文件(如/etc/apache2/sites-available/000-default.conf):

    <VirtualHost *:80>

      ServerName your-domain.com
      # 启用反向代{过}{滤}理

      ProxyPass /api/ http://localhost:11434/api/

      ProxyPassReverse /api/ http://localhost:11434/api/

      # 时间戳验证(防止重放攻击)

      RewriteEngine On

      RewriteCond %{QUERY_STRING} !timestamp={10}

      RewriteRule ^api/ -

      # 允许时间误差±5分钟(300秒)

      RewriteCond expr "abs(%{TIME_UNIX} - %{QUERY_STRING}|timestamp=([^&]+).*) > 300"

      RewriteRule ^api/ -

    </VirtualHost>


3. 重启Apache服务

   sudo systemctl restart apache2


三、客户端调用API(含时间戳)

1. 生成时间戳

    客户端需在请求中添加timestamp参数,值为当前时间戳(10位秒级),例如:

    import time
    timestamp = int(time.time())# 输出如1675843200

2. 发送请求至Apache前置机

    curl http://your-domain.com/api/generate?timestamp=1675843200 -d '{
      "prompt": "如何部署大模型?",
      "stream": false
    }'

3. 安全增强(可选)

    启用HTTPS:使用Let’s Encrypt免费证书配置SSL。
    IP白名单:通过Apache限制仅允许特定IP访问。
    <Location "/api/">

         Require ip 192.168.1.0/24
    </Location>

四、验证与调试

    验证时间戳机制
    发送不带timestamp的请求:应返回403 Forbidden。
    发送过期时间戳(如超过当前时间5分钟):应拒绝请求。
    查看日志
    日志路径(默认/var/log/apache2/access.log)可监控请求状态:

   -f /var/log/apache2/access.log

五、扩展:集成Dify或其他应用

    若需将DeepSeek R1集成到Dify等平台,可在Dify的模型配置中填写Apache前置机地址:

    模型供应商:Ollama
    模型名称:deepseek-r1:8b
    基础URL:http://your-domain.com/api

关键注意事项

硬件要求:根据模型版本选择合适配置,避免内存不足导致服务崩溃 。
安全性:
    时间戳机制:需客户端与服务端时间同步(建议使用NTP服务)。
    防火墙规则:仅开放Apache的80/443端口,禁止直接访问Ollama的11434端口。
性能优化:
    启用Apache缓存模块(如mod_cache)提升高频请求响应速度。
    使用GPU加速(需Ollama支持CUDA)提升推理效率 。
页: [1]
查看完整版本: 本地部署的DeepSeek R1通过Apache前置机调用API