超简单,手把手教你快速接入deepseek模型示例

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

此文档教你快速实现一个可以在本地运行的deepseek模型接入示例,帮助你快速了解模型接入流程。

1、deepseek密钥申请

deepseek官网
在这里插入图片描述
这个页面自行创建申请,也可以选择在本地使用Ollama、LMstudio本地运行开源模型涉及私密数据建议本地运行

2、接口开发

这里可以选择使用Java语言也可以python,为了使用方便我这边就使用python进行开发实现了,以下是代码:

from flask import Flask, request, jsonify
from flask_cors import CORS
from openai import OpenAI
import json

app = Flask(__name__)
cors = CORS(app)  # 这将允许所有域的跨域请求

# 配置OpenAI客户端
openai_client  = OpenAI(api_key="sk-f56***********9da04**********8a0a3c", base_url="https://api.deepseek.com/v1")

# 系统提示(用于OpenAI API交互)
system_prompt = "你是一个充满正能量的赞美鼓励机器人,时刻用温暖的话语给予人们赞美和鼓励,让他们充满自信与动力。"



@app.route('/generate_text/<user_content>', methods=['GET'])
def generate_text(user_content):
    try:
        # 与OpenAI API交互,生成文本
        response = openai_client.chat.completions.create(
            model="deepseek-reasoner",
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": user_content},
            ],
            stream=False
        )

        # 从响应中提取生成的文本(这里假设响应结构是已知的)
        generated_text = response.choices[0].message.content
        print(generated_text)
        print(jsonify({"generated_text": generated_text}))
        return jsonify({"generated_text": generated_text})
    except Exception as e:
        # 在出现异常时返回错误信息
        return jsonify({"error": str(e)}), 500


if __name__ == '__main__':
    app.run(debug=True)

具体代码都有解释

3、页面实现

这里就简单使用html进行简单的接口调用

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>deepseeker-chat</title>
    <style>
        .chat-interface {
            max-width: 600px;
            margin: 0 auto;
            padding: 20px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.1);
            border-radius: 8px;
            background-color: #fff;
        }

        .chat-history {
            padding: 16px;
            overflow-y: auto;
            max-height: 400px;
            border-bottom: 1px solid #ebeef5;
        }

        .chat-message {
            margin-bottom: 16px;
        }

        .message-user, .message-bot {
            display: flex;
            align-items: center;
            line-height: 40px;
            text-align: center;
            color: #fff;
        }

        .message-user { justify-content: flex-end; }
        .message-bot { justify-content: flex-start; }

        .avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            margin: 0 12px;
        }

        .message-user .avatar { background-color: #409EFF; }
        .message-bot .avatar { background-color: #F56C6C; }

        .content {
            max-width: calc(100% - 52px);
            padding: 8px 16px;
            border-radius: 4px;
            background-color: #f0f0f0;
            color: #333;
        }

        .message-user .content { background-color: #e6f7ff; }
        .message-bot .content { background-color: #fff3e0; }

        .input-area {
            display: flex;
            padding: 16px;
            border-top: 1px solid #ebeef5;
        }

        .input-box {
            flex: 1;
            padding: 8px;
            border: 1px solid #dcdfe6;
            border-radius: 4px;
            margin-right: 12px;
        }

        .send-button {
            padding: 8px 15px;
            background-color: #409EFF;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div class="chat-interface">
        <div class="chat-history" id="chatHistory"></div>
        <div class="input-area">
            <input type="text" class="input-box" id="userInput" placeholder="输入你的问题">
            <button class="send-button" id="sendButton">发送</button>
        </div>
    </div>

    <script>
        const chatHistory = document.getElementById('chatHistory');
        const userInput = document.getElementById('userInput');
        const sendButton = document.getElementById('sendButton');

        let messages = [];
        let loading = false;

        sendButton.addEventListener('click', sendMessage);

        function sendMessage() {
            const input = userInput.value.trim();
            if (input && !loading) {
                // 添加用户消息
                messages.push({ type: 'user', content: input });
                renderMessages();

                // 发送请求
                sendToServer(input);

                userInput.value = '';
            }
        }

        function sendToServer(input) {
            loading = true;
            const loadingDiv = document.createElement('div');
            loadingDiv.className = 'loading';
            loadingDiv.textContent = '加载中...';
            chatHistory.appendChild(loadingDiv);

            fetch(`http://127.0.0.1:5000/generate_text/${encodeURIComponent(input)}`)
                .then(response => response.json())
                .then(data => {
                    messages.push({ type: 'bot', content: data.generated_text });
                    renderMessages();
                })
                .catch(error => {
                    console.error('Error:', error);
                    messages.push({ type: 'bot', content: '系统错误' });
                    renderMessages();
                })
                .finally(() => {
                    loading = false;
                    chatHistory.removeChild(loadingDiv);
                });
        }

        function renderMessages() {
            chatHistory.innerHTML = '';
            messages.forEach((message, index) => {
                const msgDiv = document.createElement('div');
                msgDiv.className = `chat-message ${message.type}-message`;

                const avatar = document.createElement('div');
                avatar.className = 'avatar';
                avatar.textContent = message.type === 'user' ? '我' : 'deepseek';

                const content = document.createElement('div');
                content.className = 'content';
                content.textContent = message.content;

                msgDiv.appendChild(avatar);
                msgDiv.appendChild(content);
                chatHistory.appendChild(msgDiv);
            });

            // 自动滚动到底部
            chatHistory.scrollTop = chatHistory.scrollHeight;
        }
    </script>
</body>
</html>

实现效果如下

在这里插入图片描述
简单易懂,运行简单懂得都懂

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三横同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值