当前位置: 首页 > news >正文

使用django调用deepseek api,搭建ai网站

一、deepseek简介

DeepSeek是一家人工智能公司,专注于开发先进的人工智能模型和技术。以下是关于DeepSeek的一些详细介绍:

1.公司背景

DeepSeek由杭州深度求索人工智能基础技术研究有限公司开发,致力于通过创新的技术和算法,推动人工智能领域的发展。

2.技术与模型

  • DeepSeek-V3:这是DeepSeek开发的一个大型语言模型,具有超过600B的参数,在多项性能指标上与国际顶尖模型相当。
  • DeepSeek-R1:这是DeepSeek的第一代推理模型,通过大规模强化学习(RL)进行训练,展示出了在推理任务上的优异性能。
  • DeepSeek-R1-Distill:这些是从DeepSeek-R1中蒸馏出的小模型,具有更好的性能和效率,适合在资源受限的环境中使用。

3.应用领域

  • 自然语言处理:DeepSeek的模型在文本生成、知识问答、推理等任务中表现出色,能够为用户提供高质量的语言交互服务。
  • 智能助手:DeepSeek开发了AI智能助手,可用于搜索、写作、阅读、解题、翻译等多种任务,帮助用户提高效率。

4.优势与特点

  • 成本优势:DeepSeek的模型训练成本低,调用接口成本也较低,具有较高的性价比。
  • 中文处理能力强:对中文语法、成语、文化背景理解更深入,在中文文本生成、摘要、情感分析等任务中表现自然。
  • 开源优势:DeepSeek-R1模型权重和技术报告开源,便于开发者二次开发和创新。

5.产品与服务

  • DeepSeek API:提供与OpenAI兼容的API,方便开发者将DeepSeek的模型集成到自己的应用中。
  • DeepSeek App:提供AI智能助手应用,可在App Store上下载,支持多种功能,如智能对话、搜索、写作等。

二、获取apikey

deepseek官方的api暂时无法充值,我使用的是阿里云的百炼平台的deepseek v1模型,阿里云百炼平台注册送百万token,可以白嫖。打开百炼控制台,开通服务,随便选择一个模型,点击右上角的“查看我的apikey”,获取apikey。

三、创建django项目,并startapp

使用django创建一个新的项目,python manage.py startapp chat新建app作为主要代码文件夹。

四、编写代码

chat\views.py

from django.shortcuts import render
from openai import OpenAI
import os
from django.conf import settingsdef get_ai_response(messages):
client = OpenAI(
api_key="xxx",//填写apikey
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)try:completion = client.chat.completions.create(model="qwen2.5-14b-instruct-1m",messages=messages)return {'content': completion.choices[0].message.content,'reasoning': getattr(completion.choices[0].message, 'reasoning_content', '')}
except Exception as e:return {'content': f"发生错误:{str(e)}",'reasoning': ''}def chat_view(request):
if 'messages' not in request.session:
request.session['messages'] = []if request.method == 'POST':user_message = request.POST.get('message', '')if user_message:request.session['messages'].append({'role': 'user', 'content': user_message})response = get_ai_response(request.session['messages'])request.session['messages'].append({'role': 'assistant','content': response['content'],'reasoning': response['reasoning']})request.session.modified = Truereturn render(request, 'chat.html', {'messages': request.session['messages']
})

要将api_key="xxx"中xxx替换为自己的apikey。

urls.py

from django.contrib import admin
from django.urls import path
from chat import viewsurlpatterns = [path('admin/', admin.site.urls),path('', views.chat_view, name='chat'),
]

前端代码

<!DOCTYPE html>
<html>
<head><title>AI对话助手(Markdown支持版)</title><!-- Markdown 渲染依赖 --><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/github-markdown-css@5.2.0/github-markdown.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/github-dark.min.css"><style>:root {--user-color: #1a73e8;--assistant-color: #0b8043;}body {max-width: 800px;margin: 0 auto;padding: 20px;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;background-color: #f8f9fa;}.chat-container {background: white;border-radius: 12px;box-shadow: 0 2px 8px rgba(0,0,0,0.1);padding: 20px;margin-bottom: 20px;}.message {margin: 15px 0;padding: 12px 16px;border-radius: 8px;}.user-message {background-color: #e8f0fe;border: 1px solid var(--user-color);margin-left: 30px;}.assistant-message {background-color: #e6f4ea;border: 1px solid var(--assistant-color);margin-right: 30px;}.role-label {font-weight: 500;margin-bottom: 8px;display: flex;align-items: center;gap: 8px;}.role-label::before {content: '';display: inline-block;width: 12px;height: 12px;border-radius: 50%;}.user-message .role-label::before {background: var(--user-color);}.assistant-message .role-label::before {background: var(--assistant-color);}form {display: flex;gap: 10px;margin-top: 20px;}input[type="text"] {flex: 1;padding: 12px;border: 1px solid #ddd;border-radius: 8px;font-size: 16px;}button {padding: 12px 24px;background-color: var(--user-color);color: white;border: none;border-radius: 8px;cursor: pointer;transition: background 0.2s;}button:hover {background-color: #1557b0;}.markdown-body pre {padding: 16px;border-radius: 8px;overflow-x: auto;}.reasoning-box {margin-top: 12px;padding: 12px;background: #fff8e5;border-left: 4px solid #ffd700;border-radius: 4px;}</style>
</head>
<body><div class="chat-container"><h1 style="color: var(--user-color); text-align: center;">AI对话助手</h1><div class="messages">{% for message in messages %}<div class="message {% if message.role == 'user' %}user-message{% else %}assistant-message{% endif %}"><div class="role-label">{% if message.role == 'user' %}👤 用户{% else %}🤖 助手{% endif %}</div><!-- Markdown 内容容器 --><div class="markdown-body"data-markdown="{{ message.content|escape }}"data-raw="{{ message.content|escape }}">{{ message.content|safe }}</div>{% if message.reasoning %}<div class="reasoning-box"><div class="reasoning-label">💡 思考过程</div><div class="markdown-body"data-markdown="{{ message.reasoning|escape }}"data-raw="{{ message.reasoning|escape }}">{{ message.reasoning|safe }}</div></div>{% endif %}</div>{% endfor %}</div><form method="post">{% csrf_token %}<input type="text" name="message" placeholder="请输入您的问题..." required autofocus><button type="submit">发送</button></form></div><!-- 依赖库 --><script src="https://cdn.jsdelivr.net/npm/marked@12.0.0/lib/marked.min.js"></script><script src="https://cdn.jsdelivr.net/npm/dompurify@3.0.5/dist/purify.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script><script>// 初始化配置marked.setOptions({breaks: true,highlight: (code, lang) => {const language = hljs.getLanguage(lang) ? lang : 'plaintext';return hljs.highlight(code, { language }).value;}});// Markdown 渲染函数const renderMarkdown = () => {document.querySelectorAll('.markdown-body').forEach(container => {try {// 优先使用 data-markdown 属性const raw = container.dataset.markdown || container.dataset.raw;const clean = DOMPurify.sanitize(raw, {ALLOWED_TAGS: ['b', 'i', 'em', 'strong', 'code', 'pre', 'blockquote','ul', 'ol', 'li', 'h1', 'h2', 'h3', 'a', 'p', 'br', 'hr'],ALLOWED_ATTR: ['href', 'target']});container.innerHTML = marked.parse(clean);} catch (e) {console.error('Markdown渲染失败:', e);container.innerHTML = container.dataset.raw;}});// 触发代码高亮hljs.highlightAll();};// 确保依赖加载完成后执行const checkDependencies = () => {if (window.marked && window.DOMPurify && window.hljs) {renderMarkdown();} else {setTimeout(checkDependencies, 100);}};// 启动渲染流程document.addEventListener('DOMContentLoaded', checkDependencies);</script>
</body>
</html>

迁移数据库

python manage.py makemigrations
python manage.py migrate

五、效果展示

六、将模型切换为deepseek

切换模型只要修改model="qwen2.5-14b-instruct-1m"为deepseek.

相关文章:

使用django调用deepseek api,搭建ai网站

一、deepseek简介 DeepSeek是一家人工智能公司&#xff0c;专注于开发先进的人工智能模型和技术。以下是关于DeepSeek的一些详细介绍&#xff1a; 1.公司背景 DeepSeek由杭州深度求索人工智能基础技术研究有限公司开发&#xff0c;致力于通过创新的技术和算法&#xff0c;推…...

YOLOv12 ——基于卷积神经网络的快速推理速度与注意力机制带来的增强性能结合

概述 实时目标检测对于许多实际应用来说已经变得至关重要&#xff0c;而Ultralytics公司开发的YOLO&#xff08;You Only Look Once&#xff0c;只看一次&#xff09;系列一直是最先进的模型系列&#xff0c;在速度和准确性之间提供了稳健的平衡。注意力机制的低效阻碍了它们在…...

两台互通的服务器使用Docker部署一主两从MySQL8.0.35

文章目录 1. 使用Docker Overlay网络&#xff08;需Swarm模式&#xff09;在服务器1&#xff08;172.25.0.19&#xff09;上&#xff1a;在服务器2&#xff08;172.25.0.20&#xff09;上&#xff1a;创建 overlay 网络&#xff08;172.25.0.19&#xff09;&#xff1a; 2. 部署…...

Java23种设计模式案例

目录 一、概述 二、创建型模式 (Creational Patterns) 单例模式 (Singleton Pattern) 工厂方法模式 (Factory Method Pattern) 抽象工厂模式 (Abstract Factory Pattern) 建造者模式 (Builder Pattern) 原型模式 (Prototype Pattern) 三、结构型模式 (Structu…...

stm32hal库寻迹+蓝牙智能车(STM32F103C8T6)

简介: 这个小车的芯片是STM32F103C8T6&#xff0c;其他的芯片也可以照猫画虎,基本配置差不多,要注意的就是,管脚复用,管脚的特殊功能,(这点不用担心,hal库每个管脚的功能都会给你罗列,很方便的.)由于我做的比较简单,只是用到了几个简单外设.主要是由带霍尔编码器电机的车模,电机…...

JavaScript知识点4

1.解释一下这段JavaScript代码 var fruits ["Apple", "Orange", "Apple", "Mango"]; var a fruits.indexOf("Apple",-1); console.log("index"a); 输出的a值为-1&#xff0c;indexOf的第二个参数是-1&#xf…...

形式化数学编程在AI医疗中的探索路径分析

一、引言 1.1 研究背景与意义 在数字化时代,形式化数学编程和 AI 形式化医疗作为前沿领域,正逐渐改变着我们的生活和医疗模式。形式化数学编程是一种运用数学逻辑和严格的形式化语言来描述和验证程序的技术,它通过数学的精确性和逻辑性,确保程序的正确性和可靠性。在软件…...

QT 引入Quazip和Zlib源码工程到项目中,无需编译成库,跨平台,加密压缩,带有压缩进度

前言 最近在做项目时遇到一个需求&#xff0c;需要将升级的文件压缩成zip&#xff0c;再进行传输&#xff1b; 通过网络调研&#xff0c;有许多方式可以实现&#xff0c;例如QT私有模块的ZipReader、QZipWriter&#xff1b;或者第三方库zlib或者libzip或者quazip等&#xff1…...

Ubuntu 安装 Nginx并配置反向代理

Ubuntu版本&#xff1a;Ubuntu 24.04.2 LTS 一、安装Nginx ​更新系统软件包​ 安装前需确保系统处于最新状态&#xff0c;避免依赖冲突 sudo apt update && sudo apt upgrade -y ​安装Nginx主程序​ Ubuntu官方仓库已包含稳定版Nginx&#xff0c;直接安装即可 sudo…...

GitHub SSH连接问题解决指南

&#x1f50d; GitHub SSH连接问题解决指南 问题描述 遇到错误&#xff1a;ssh: connect to host github.com port 22: Connection refused 说明您的网络环境无法访问GitHub的SSH端口22&#xff0c;常见原因&#xff1a; 防火墙/网络运营商限制&#xff08;国内常见&#xf…...

C++ 跨平台的 GetCurrentThreadId() 获取当前线程ID实现

支持&#xff1a;C11 及早前标准库版本&#xff0c;而无需使用&#xff1a;std::this_thread::get_id()。 支持&#xff1a;NDK/ANDROID、Windows、Linux、MacOS X 等多个操作系统平台。 int64_t GetCurrentThreadId() noexcept { #if defined(_WIN32) || defined(_WIN64)retu…...

钉钉MAKE AI生态大会思考

1. 核心特性 1.1 底层模型开放 除原有模型通义千问外,新接入猎户星空、智普、MinMax、月之暗面、百川智能、零一万物。 1.2 AI搜索 AI搜索贯通企业和个人散落在各地的知识(聊天记录、文档、会议、日程、知识库、项目等),通过大模型对知识逻辑化,直接生成搜索的答案,并…...

SQL笔记#复杂查询

一、视图 1、视图和表 使用试图时会执行SELECT语句并创建一张临时表。视图中保存的是SELECT语句;表中保存的是实际数据。 2、创建视图的方法 CREATE VIEW 视图名称(<视图列名1>,<视图列名2>,……) AS <SELECT语句> CREATE VIEW ProductSum (prod…...

【Linux】基于UDP/TCP套接字编程与守护进程

目录 一、网路套接字编程 &#xff08;一&#xff09;基础概念 1、源IP地址与目的IP地址 2、端口号 3、TCP与UDP 4、网络字节序 &#xff08;二&#xff09;套接字编程接口 1、socket 常见API 2、sockaddr结构 &#xff08;三&#xff09;UDP套接字 1、UDP服务器创建…...

springboot 引入前端

前端 打包 npm run build vue.config.js 文件 publicPath 默认建议保持 / publicPath: ‘/’ 后端 目录 粘贴下面目录之一&#xff1a; src/main/resources/static/ src/main/resources/public/ 补充&#xff08;用的少&#xff09; server:servlet:context-path: /thirdAdm…...

RTSP/Onvif安防平台EasyNVR接入EasyNVS显示服务缺失的原因与解决方案

EasyNVS云管理平台具备强大的汇聚与管理功能&#xff0c;支持EasyGBS、EasyNVR等平台的接入&#xff0c;能够将接入的视频资源进行统一输出&#xff0c;提供远程可视化运维等管理功能&#xff0c;特别适合解决设备现场没有固定公网IP但仍需在公网直播的需求。 在某次用户现场部…...

算法系列之回溯算法

在计算机科学领域&#xff0c;算法是解决问题的核心。回溯算法作为一种经典的算法设计技巧&#xff0c;以其试错和回退的思想&#xff0c;在解决许多复杂问题时展现出强大的能力。本文将深入探讨回溯算法&#xff0c;包括其核心概念、实现步骤、代码示例以及适用场景&#xff0…...

Uniapp 小程序接口封装与使用

深入理解 Uniapp 小程序接口封装与使用 在 Uniapp 小程序开发中&#xff0c;接口请求是获取和交互数据的关键部分。合理地封装接口不仅能提高代码的可维护性&#xff0c;还能增强项目的健壮性。今天&#xff0c;我们就来详细探讨一下如何在 Uniapp 中进行接口封装、引入以及使…...

Harmony开发笔记(未完成)

一、感想 作为一名拥有11年经验的Android开发者&#xff0c;我亲历了Android从高速发展到如今面临“僧多粥少”的过程。技术的世界瞬息万变&#xff0c;没有一种技术能够让人依赖一辈子。去年初&#xff0c;我自学了鸿蒙系统&#xff0c;并顺利通过了鸿蒙官方的初级和高级认。…...

观成科技:海莲花“PerfSpyRAT”木马加密通信分析

1.概述 在2024年9月中旬至10月&#xff0c;东南亚APT组织“海莲花”通过GitHub发布开源安全工具项目&#xff0c;针对网络安全人员发起了定向攻击。通过对相关攻击活动进行分析&#xff0c;可以将其与一些海莲花的样本关联起来。这些样本的通信数据结构与海莲花此前使用的攻击…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...