通过 API 与 Ollama 部署的 DeepSeek 模型进行交互,可以将其集成到自己的应用程序或服务中。以下是详细的步骤和方法:


1. 启动 Ollama 服务

在通过 API 与 DeepSeek 交互之前,需要确保 Ollama 服务正在运行。默认情况下,Ollama 会启动一个本地 HTTP 服务器。

  • 启动 Ollama 服务:

    1
    ollama serve

    这将启动一个本地服务器,默认监听 http://localhost:11434

2. 使用 Ollama 的 API 接口

Ollama 提供了 RESTful API,您可以通过 HTTP 请求与 DeepSeek 模型交互。以下是一些常用的 API 端点:

生成文本

  • URL: http://localhost:11434/api/generate

  • Method: POST

  • Body:

    1
    2
    3
    4
    5
    {
    "model": "deepseek",
    "prompt": "你好,DeepSeek!",
    "stream": false
    }
  • 参数说明:

    • model: 指定使用的模型,这里是 deepseek
    • prompt: 输入的提示词或问题。
    • stream: 是否启用流式输出。如果设置为 true,API 会以流式方式返回结果。
  • 示例请求:

    1
    2
    3
    4
    5
    6
    7
    curl -X POST http://localhost:11434/api/generate \
    -H "Content-Type: application/json" \
    -d '{
    "model": "deepseek",
    "prompt": "你好,DeepSeek!",
    "stream": false
    }'
  • 响应示例:

    1
    2
    3
    {
    "response": "你好!我是 DeepSeek,一个由深度求索公司开发的大型语言模型。有什么我可以帮你的吗?"
    }

流式生成文本

如果需要逐步获取生成的文本(例如在聊天场景中),可以将 stream 参数设置为 true

  • 示例请求:

    1
    2
    3
    4
    5
    6
    7
    curl -X POST http://localhost:11434/api/generate \
    -H "Content-Type: application/json" \
    -d '{
    "model": "deepseek",
    "prompt": "你好,DeepSeek!",
    "stream": true
    }'
  • 响应示例:

    1
    2
    3
    4
    5
    {"response": "你好"}
    {"response": "!"}
    {"response": "我是"}
    {"response": " DeepSeek"}
    {"done": true}

列出可用模型

  • URL: http://localhost:11434/api/tags

  • Method: GET

  • 示例请求:

    1
    curl http://localhost:11434/api/tags
  • 响应示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
    "models": [
    {
    "name": "deepseek",
    "modified_at": "2023-10-01T12:00:00Z",
    "size": 5000000000
    }
    ]
    }

删除模型

如果需要删除本地已下载的模型,可以使用以下 API:

  • URL: http://localhost:11434/api/delete

  • Method: DELETE

  • Body:

    1
    2
    3
    {
    "model": "deepseek"
    }
  • 示例请求:

    1
    2
    3
    4
    5
    curl -X DELETE http://localhost:11434/api/delete \
    -H "Content-Type: application/json" \
    -d '{
    "model": "deepseek"
    }'

3. 在代码中集成 API

您可以使用任何支持 HTTP 请求的编程语言与 Ollama API 交互。以下是 Python 示例:

Python 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import requests

# API 地址
url = "http://localhost:11434/api/generate"

# 请求数据
data = {
"model": "deepseek",
"prompt": "你好,DeepSeek!",
"stream": False
}

# 发送请求
response = requests.post(url, json=data)

# 解析响应
if response.status_code == 200:
result = response.json()
print(result["response"])
else:
print("请求失败,状态码:", response.status_code)

4. 进阶用法

  • 调整生成参数:
    您可以通过 API 调整生成文本的参数,例如:

    • temperature: 控制生成文本的随机性。
    • max_tokens: 限制生成文本的最大长度。
    • top_p: 控制生成文本的多样性。

    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    {
    "model": "deepseek",
    "prompt": "你好,DeepSeek!",
    "stream": false,
    "temperature": 0.7,
    "max_tokens": 100,
    "top_p": 0.9
    }
  • 多轮对话:
    通过将历史对话记录作为 prompt 的一部分,可以实现多轮对话。

    示例:

    1
    2
    3
    4
    5
    {
    "model": "deepseek",
    "prompt": "用户:你好!\nAI:你好!有什么我可以帮你的吗?\n用户:你能写一首诗吗?",
    "stream": false
    }

5. 注意事项

  • 性能:
    DeepSeek 是一个大型模型,运行它需要较高的计算资源。确保您的机器有足够的 CPU/GPU 和内存。
  • 安全性:
    Ollama 默认监听本地端口,如果需要暴露给外部网络,请确保配置适当的安全措施(如防火墙、身份验证等)。

通过以上方法,您可以轻松地将 DeepSeek 集成到自己的应用程序中,并利用其强大的自然语言处理能力!

参考资料: