用DeepSeek,就在阿里云!四种方式助您快速使用 DeepSeek-R1 满血版!更有内部实战指导!

简介: DeepSeek自发布以来,凭借卓越的技术性能和开源策略迅速吸引了全球关注。DeepSeek-R1作为系列中的佼佼者,在多个基准测试中超越现有顶尖模型,展现了强大的推理能力。然而,由于其爆火及受到黑客攻击,官网使用受限,影响用户体验。为解决这一问题,阿里云提供了多种解决方案。

引言

自发布以来,DeepSeek迅速吸引了全球的目光,不仅因为其卓越的技术性能,更因为它开源的策略和低廉的成本优势,使得它在全球范围内掀起了一股AI应用的热潮。

DeepSeek-R1作为这一系列中的佼佼者,凭借其强大的推理能力,在多个基准测试中超越了现有的顶尖模型。这种技术上的突破,不仅标志着AI领域内的一次重大飞跃,同时也为开发者提供了一个低成本高效益的选择。尤其值得一提的是,DeepSeek-R1通过大规模强化学习训练,无需依赖监督微调,展现了其在数学推理等复杂任务上的强大能力。

image.png

但是由于其爆火以及受到外界不知名身份黑客的攻击,目前官网上的DeepSeek纯血版使用受限,时常出现“服务器繁忙,请稍后再试”的提示,这不仅影响了用户体验,也对那些依赖DeepSeek进行日常工作的开发者和企业造成了不小的困扰。

image.png

同理,使用API也会出现时好时坏的情况,有的时候甚至连开放平台都打不开。

image.png

打开也无法进行充值,余额用完了就没办法了。

image.png

在这样的背景下,阿里云提供了一个可行的解决方案,通过将DeepSeek模型部署在其强大的阿里云计算平台上,为用户提供了一个高效、灵活且易于访问的服务。具体而言,用户可以通过以下种方式利用DeepSeek模型:

image.png

下面,就让周周带大家深入了解如何根据自身需求选择最适合的DeepSeek模型部署方式,并简要介绍每种方式的具体操作流程和适用场景。

方法一:基于百炼 API 调用满血版(即开即用,极其推荐)

百炼平台通过API调用DeepSeek系列模型的方法 。其中 deepseek-r1 与 deepseek-v3 分别有 100万的免费 Token,部分蒸馏模型限时免费体验。

这里只推荐使用deepseek-r1 与 deepseek-v3,其他效果略差。

image.png

快速入门

我们进入阿里云百炼平台,选择【模型广场】-【DeepSeek】即可看到最新的DeepSeek-R1和DeepSeek-V3模型。

image.png

点击查看详情,可以看到此处拥有100万的免费token额度,可以任意使用~

image.png

其中R1和V3模型免费额度不重复,各有100万token额度,所以相当于赠送的是200万token啦

image.png

而使用方式也很简单,因为百炼默认的是OpenAI兼容接口,所以只需要准备URL、API-key和model名称即可,具体如下:

URLhttps://dashscope.aliyuncs.com/compatible-mode/v1

image.png

API-key:查看账户内key即可。

image.png

model名称:deepseek-r1,同理,如果使用DeepSeek-V3则填写为deepseek-v3。

image.png

image.png

极速调用

下面分别以Chatbox 客户端调用AnythingLLM 客户端调用Cline 调用API直接调用为例,说明如何使用百炼平台提供的在线接口服务。

Chatbox 客户端调用

访问 Chatbox 下载地址下载并安装对应操作系统的客户端。

image.png

运行并配置百炼 API ,单击设置。

image.png

在弹出的看板中按照如下表格进行配置。

image.png

最终配置如下图所示,然后单击保存,这里需要注意的是,百炼的API域名和路径需要分开写!!!

image.png

给出对应提问,可验证接入成功!

image.png

AnythingLLM 客户端调用

访问 AnythingLLM 下载地址下载并安装对应操作系统的客户端。

image.png

点击小扳手按钮,进入设置界面。

image.png

点击LLM首选项,选择【Generic OpenAl】,依次填写对应的URL、API-key、model名称即可。

image.png

image.png

填写完成后点击保存,会提示保存配置成功。

image.png

我们回到主页新建一个工作区,命名为DeepSeek。

image.png

给出对应提问,可验证接入成功!

image.png

Cline 调用

在VScode插件中,搜索下载Cline,下载后点击拓展栏的小机器人。

image.png

依次选择OpenAl Compatible,填写URL、API-key和model名称。

image.png

填写完成后点击开始体验一键编程的快乐~

image.png

API直接调用示例

通过 OpenAI SDK 或 OpenAI 兼容的HTTP方式快速体验DeepSeek模型,调用示例代码如下所示:

import os
from openai import OpenAI

client = OpenAI(
    # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"), # 如何获取API Key:https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

completion = client.chat.completions.create(
    model="deepseek-r1",  # 此处以 deepseek-r1 为例,可按需更换模型名称。
    messages=[
        {
   'role': 'user', 'content': '9.9和9.11谁大'}
        ]
)

# 通过reasoning_content字段打印思考过程
print("思考过程:")
print(completion.choices[0].message.reasoning_content)
# 通过content字段打印最终答案
print("最终答案:")
print(completion.choices[0].message.content)

我们按照上文填入自己的key即可,需要注意的是,若没有配置环境变量,可用百炼API Key将下行替换为:api_key="sk-xxx",即如下所示:

image.png

经过实测,即使采用API直接调用,deepseek-r1的响应速度仍然较慢,需要等待约5分钟左右,且容易出现如下报错内容:

image.png

大概也类似于被限制了访问次数,过一会儿再重新尝试即可,最终返回结果如下:

image.png

后续会结合这部分来进行开发实战,所以这里重点提了一下。

小结

看到这里大家其实也能感受到,这种方式真的是最方便的了,它不仅提供了便捷的接入方式,还赠送了大量的免费token额度,这对于开发者来说是一个极大的吸引力。通过简单的配置,如设置URL、API-key和model名称等,用户就可以快速体验DeepSeek。

而对于那些希望在本地环境中集成DeepSeek的用户,在这一小结中也介绍了如何通过客户端软件(例如Chatbox和AnythingLLM)或VScode插件Cline来实现这一点。只要是提供了兼容OpenAI接口模式的工具,在进行适当配置后,通常都能成功接入阿里云百炼提供的模型服务。这也促使了阿里云百炼平台正在成为AI开发者和企业用户的重要选择之一。

方法二:基于人工智能平台 PAI 部署(无代码部署,一般推荐)

此解决方案中以 DeepSeek-R1-Distill-Qwen-7B 为例进行演示,通过人工智能平台 PAI 的 Model Gallery,无须写代码即可完成模型部署,我们也可以选择 DeepSeek-R1 等其他模型进行一键部署,系统将自动适配所需的实例规格。

快速部署

登录PAI 控制台,首次登录需要开通服务,选择暂不绑定 OSS Bucket 至 PAI 默认工作空间,然后点击一键开通按钮。

image.png

在工作空间页面的左侧导航栏选择【Model Gallery】,搜索框中输入【DeepSeek-R1】,点击部署,这里我还是以DeepSeek-R1为例,因为7B的小模型真的不好用。

image.png

在弹出的部署面板中,部署方式选择加速部署,加速方式选择vLLM。

image.png

点击部署资源查看其推荐的服务器实例,但是发现已经全部售罄了。

image.png

所以终于明白为啥要部署7B的模型了,因为配置要求没那么高。。。我们再次点击DeepSeek-R1-Distill-Qwen-7B下的部署。

image.png

找一个最便宜的模型,选择【ml.gu7i.c8m30.1-gu30(8 vCPU,30 GiB,1 * GU30)】,现价7.63一小时。

image.png
image.png

点击开始部署,等待其部署完毕~

image.png

等到部署完毕,单击查看调用信息,在弹出的看板中选择公网地址调用,复制保存访问地址和 Token 。

image.png

至此,部署步骤完成!除此,我们还可以通过控制台来进行实时查看调用情况。

image.png

极速调用

Chatbox 客户端调用

与上文类似,我们运行并配置 vLLM API ,单击设置。

image.png

在弹出的看板中按照如下表格进行配置。


image.png

最终配置如下图所示,然后单击保存。

image.png

给出对应提问,可验证接入成功!

image.png

回到控制台,可以看到存在调用使用。

image.png

Cline 调用和AnythingLLM 调用

在这两个工具调用时,我们依然可以按照上述的流程,但是需要注意的是,此时填入的URL必须是你的EAS_ENDPOINT/v1

image.png

填入后,验证调用成功!

image.png
image.png

API直接调用示例

vLLM 加速部署成功后生成一个 PAI-EAS 服务,支持 OpenAI API 进行推理。 在调用 API 时,API 地址为 EAS 服务的访问地址,API Key 为 EAS 的 Token。 具体 API 调用方式请参考下面 API 调用部分:

completions 接口

curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: <EAS_TOKEN>" \
    -d '{"model": "<模型名,通过'/v1/models' API获取>", "prompt":"hello world"}' \
    <EAS_ENDPOINT>/v1/completions

chat 接口

curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: <EAS_TOKEN>" \
    -d '{
   
        "model": "<模型名,通过'/v1/models' API获取>",
        "messages": [
        {
   
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
   
            "role": "user",
            "content": "Hello!"
        }
        ]
    }' \
    <EAS_ENDPOINT>/v1/chat/completions

以下为 Python 示例代码: 其中"openai_api_key"需要填写 EAS 的调用 Token;"openai_api_base"需要填写 EAS 调用地址,后面需要加上"/v1"

from openai import OpenAI

##### API 配置 #####
openai_api_key = "<EAS API KEY>"
openai_api_base = "<EAS API Endpoint>/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

models = client.models.list()
model = models.data[0].id
print(model)


def main():

    stream = True

    chat_completion = client.chat.completions.create(
        messages=[
            {
   
                "role": "user",
                "content": [
                    {
   
                        "type": "text",
                        "text": "你好,介绍一下你自己,越详细越好。",
                    }
                ],
            }
        ],
        model=model,
        max_completion_tokens=2048,
        stream=stream,
    )

    if stream:
        for chunk in chat_completion:
            print(chunk.choices[0].delta.content, end="")
    else:
        result = chat_completion.choices[0].message.content
        print(result)


if __name__ == "__main__":
    main()

小结

在这一小结中,我们详细探讨了如何利用阿里云的人工智能平台PAI及vLLM加速来部署DeepSeek-R1-Distill-Qwen-7B模型,并且介绍了无代码一键部署的方法。这种方法极大地简化了模型部署的过程,使得用户无需编写代码即可快速将模型上线为服务,但是缺点在于接口的调用方式与常见兼容OpenAI接口模式的工具还是有些差异的,需要自己对接口文档进行一系列学习研究。

同理,如果采用BladeLLM来加速部署的话,也需要学习BladeLLM的接口调用方式来进行调用,需要花费一定的时间成本。

image.png
image.png

方法三:基于函数计算FC一键部署(真·一键部署,比较推荐)

此部分方案是通过云原生应用开发平台 CAP 部署 Ollama 和 Open WebUI 两个 FC 函数。Ollama 负责托管 lmstudio-community/DeepSeek-R1-Distill-Qwen-7B-GGUF 模型,它是基于 DeepSeek-R1 的推理能力,通过蒸馏技术将推理模式迁移到较小的 Qwen 模型上,从而在保持高效性能的同时降低了计算成本。Open WebUI 则为用户提供友好的交互界面。

快速部署

点击前往部署打开提供的云原生应用开发平台 CAP 项目模板,这里参数选择默认配置,直接单击部署项目,最后在弹出面板中单击确认部署。

image.png
image.png

等待 10~12 分钟,状态显示为已部署即可。

image.png

如下图所示:

image.png

应用部署完成之后按照下图找到访问地址,注意,此处需要先点击open-webui,再查看其访问地址

image.png

但是尝试后仍然会出现请求次数过多的提示,这里应该是访问量过大了

image.png

需要多次尝试才能提问成功~

image.png

如果你觉得模型的回复速度慢,那么也可以尝试修改部署的实例配置,进行GPU资源扩容等。

image.png
image.png

除此之外,基于云原生应用开发平台 CAP 项目模板部署的ollama也可以单独作为API服务提供给外部使用。

image.png

极速调用

Chatbox 客户端调用

我们点击设置,选择【Ollama APl】。

image.png

填写 API 域名,下拉选择模型cap-deepseek-r1:latest,最后单击保存。

image.png

验证调用成功!

image.png

Cline 调用和AnythingLLM 调用

Cline 和AnythingLLM也都支持了直接选择ollama调用方式,需要注意的是,填入的模型名称需要删除这个ollama后缀,即只需填入【cap-deepseek-r1:latest】。

image.png

image.png

调用成功后如下图所示,但是出字速度极慢,所以建议扩充默认资源的性能。

image.png

同理AnythingLLM中也是如此,在此就不过多赘述了。

小结

本小结介绍了基于阿里云的函数计算(Function Compute, FC)和云原生应用开发平台 CAP 来实现 Ollama 和 Open WebUI 的一键部署方案。这种方法不仅简化了模型部署流程,还提供了用户友好的交互界面,使得即使是非技术人员也能轻松地部署和使用复杂的深度学习模型。

但是问题在于由于访问量频繁会导致请求次数过多的提示,同时默认的模型资源过小导致回复速度慢的问题。这些问题可以通过调整实例配置、增加 GPU 资源等方式得到缓解,但是总之,该解决方案默认提供的DeepSeek-R1并不能很好的直接使用,很卡很卡,且效果不好,推荐可以使用该部署方式,但不推荐直接使用此解决方案!

方法四:基于GPU 云服务器部署(自行部署,一般推荐)

这里说白了就是直接购置阿里云的GPU服务器然后自行进行部署,对于不熟悉操作的人不建议采用此方式,但是优点就是可以长期使用且不会出现访问量过多的提示限制,使用体验会极好

该解决方案是在 GPU 云服务器上安装与配置 Ollama 和 Open WebUI。Ollama 负责托管 DeepSeek-R1 模型,Open WebUI 则为用户提供友好的交互界面。GPU 云服务器凭借其高性能并行计算架构,可以显著加速大模型的推理过程,特别是在处理大规模数据和高并发场景,可以有效提升推理速度和推理吞吐。专有网络 VPC 和交换机用于资源隔离和安全管理,确保数据传输的安全性和网络的高可靠性。

部署步骤

在开始部署模型之前,需要进行一系列的环境准备工作。这些步骤包括创建专有网络 VPC 和交换机、配置安全组、创建 GPU 云服务器实例。

创建专有网络 VPC 和交换机

登录专有网络管理控制台 , 在顶部菜单栏,选择华东 1(杭州)地域,在左侧导航栏,单击专有网络,在专有网络页面,单击创建专有网络。

image.png

按照下图所示,依次填入对应内容。

image.png
image.png

创建成功后如下图所示:

image.png

创建安全组

登录ECS 管理控制台,在左侧导航栏,选择网络与安全>安全组,单击创建安全组。

image.png

按照下图所示,依次填入对应内容,本方案需要确保 22、8080 、11434端口号开启。

image.png

创建 GPU 云服务器

登录ECS 管理控制台,在左侧导航栏,选择实例与镜像 > 实例,在顶部菜单栏,选择华东 1(杭州)地域。

image.png

按照下图所示,依次填入对应内容,示例名称为:【ecs.gn6i-c8g1.2xlarge】。

image.png
image.png
image.png
image.png
image.png
image.png

至此,基础环境资源准备完毕!

部署 Ollama

进到服务器中,先等待其 GPU 驱动完成安装。

image.png

远程连接进入GPU服务器中,执行以下命令部署 Ollama 模型服务。

curl -fsSL https://help-static-aliyun-doc.aliyuncs.com/install-script/deepseek-r1-for-platforms/ollama_install.sh|sh

看到如下图所示代表安装完成:

image.png

执行以下命令下载模型。

ollama pull deepseek-r1:7b        //此处以7b为例
ollama pull deepseek-r1:8b 
ollama pull deepseek-r1:14b

image.png

执行以下命令,运行模型,即可在终端界面进行对话!

ollama run deepseek-r1:8b

image.png

部署 Open WebUl

执行以下命令部署 Open WebUI 应用。

curl -fsSL https://help-static-aliyun-doc.aliyuncs.com/install-script/deepseek-r1-for-platforms/install.sh|sh

下载完成后可以看到安装完成字样~

在浏览器中访问 http://:8080,访问 Open WebUI。

image.png

同理,此服务器上部署的ollama也可以作为API服务提供给外部使用,具体使用方式同方法三中,在此就不过多赘述了。

小结

基于GPU云服务器部署Ollama和Open WebUI的方法为用户提供了一个高度定制化且性能优越的解决方案。这种方法适合那些对计算资源有较高要求,同时希望拥有更稳定、高效服务体验的用户,可自定义性高,可以自行部署较大参数模型(671B)。

不足之处就在于操作流程稍显复杂,对于新手来说较为困难,耗时长!

总结及建议

对比以上四种方式的利弊,下面形成一图流方便大家查看:

image.png

根据我的个人使用习惯来看,一直在用的就是基于百炼 API 调用满血版,大家也可以看到token已经用了差不多20万了,目前觉得这是最为方便的方式,弊端几乎没有!

image.png

基于人工智能平台 PAI 部署确实也是很方便,但是不同的加速部署方式导致接口的调用方式也不一样,需要对接口文档进行一定程度的学习,不如方法一那么即开即用,但也算是比较好用了,起码还有很多参数的模型可以供我们自行选择,不过671B满血售罄了,也相当于只能用小参数模型。。。

image.png

基于函数计算FC一键部署比较值得吐槽,这个部署方式我很喜欢用,也比较方便快捷,但缺点是解决方案提供的模版只能部署7B的模型,如果想要部署671B的满血模型需要自行编写模版才可以。除此,解决方案中模版的实例资源太小了,导致我在Cline调用时回复速度特别慢,对话时也容易出现Too Many Requests部署方式很好,解决方案需要优化

image.png

基于GPU云服务器的部署是一种经典的方案,对于长期使用来说,它提供了卓越的稳定性和性能,是理想的选择。然而,这种方案是否最适合,主要取决于具体的应用需求和场景。就我个人当前的需求而言,我并不会特别推荐这种方案,因为可能有更符合成本效益或其他特定需求的替代方案。但是,如果未来遇到需要稳定高性能计算资源的情况,基于GPU云服务器的部署无疑会成为我的首选。不仅因为它能提供强大的计算能力,还因为它能够确保服务的稳定性和可扩展性,满足复杂项目的要求。

image.png

到这里基本就结束了,下面附上我最近结合阿里云百炼平台调用DeepSeek接口的一些实战案例。

基于阿里云百炼平台调用DeepSeek结合通义快速开发中医辅助问诊系统

在此,对于基于阿里云百炼平台调用DeepSeek的过程就不过多赘述了,详细可参见我上面的文章,下面主要进行中医辅助问诊系统的开发实践环节。

系统设计

目前计划的是做出第一版的demo,提供给朋友辅助开药使用,所以暂时不需要数据库等等,主打的就是一个简化流程,确保医生能够通过最最简单的步骤快速输入患者症状,并即时获得诊断建议与治疗方案。

image.png

系统实现

前端界面实现

前端主要使用Deepseek来进行开发,我的想法是给一个输入框用于填写综合病症,给一些选择题用来帮助协助判断,当用户或者医生填写完提交之后,可以调用阿里云百炼平台提供的DeepseekAPI来进行反馈一系列治疗建议。

首先给出Prompt如下:

请生成一套中医问诊系统,要求包含自述部分,其余部分可以用选择题的形式展示出来,然后再把这套系统生成html代码,当用户填写完整之后,可以调用Deepseek的api来对用户的回答进行综合分析,最终给出一段中医诊断及对应治疗方案。

Deepseek的最大优点就是其内置了思维链,我们可以清晰的看到它的推断过程:

image.png

在生成代码完毕后,我们可以看到右下角的【运行按钮】,点击即可在线进行查看。

image.png

基础框架还不错,但下面的辅助选项还是太少了,所以我们继续优化界面。

image.png

给出Prompt如下:

请你思考,平常中医的正常诊断除了查看脉诊信息、舌苔特征还需要诊断哪些内容?请你都作为选择题选项继续给出,并在原有的代码上进行优化完善。

优化后界面如下:

image.png

开头的输入框作为主诉,主要是让医生或者病人填入自己的主要症状。

image.png

分为望闻问切四个角度,每个角度下将常见的特征一一列出。

现在看上去差不多了,已经够用了,下面我们使用Python Flask框架来运行这个Web应用,为了足够新手,这里还是从基础环境开始讲起。

安装 Python 和 pip

首先,确保你的电脑上已安装 Python 3.6 或更高版本。可以通过以下命令检查 Python 版本:

python3 --version

如果未安装 Python,请从 Python 官方网站 下载并安装。

创建虚拟环境

为了避免依赖冲突,建议在虚拟环境中进行开发。使用以下命令创建并激活虚拟环境:

python3 -m venv smart_tcm_diagnosis
source smart_tcm_diagnosis/bin/activate  # Linux/macOS
smart_tcm_diagnosis\Scripts\activate     # Windows

安装依赖库

在虚拟环境中,使用 pip 安装所需的 Python 库:

pip install flask requests
  • flask: Web 框架
  • requests: 用于发送 HTTP 请求,调用 阿里云百炼平台提供的DeepseekAPI

创建项目结构

这里就使用到了通义的代码模式,让其给出的当前结构目录如下:

smart_tcm_diagnosis/
├── app.py
├── templates/
│   └── index.html
└── .env

image.png

app.py代码

from flask import Flask, request, render_template
import requests
import os
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

app = Flask(__name__)

# DeepSeek API 配置
DEEPSEEK_API_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"  # 根据实际情况调整API地址
API_KEY = os.getenv("DEEPSEEK_API_KEY")  # 从 .env 文件中读取 API 密钥

@app.route("/", methods=["GET", "POST"])
def index():
    formData = {
        'selfReport': '',
        'medicalHistory': '',
        'faceColor': '',
        'tongueColor': '',
        'tongueCoating': '',
        'eyeLook': '',
        'voiceQuality': '',
        'breathSound': '',
        'dietHabit': '',
        'sleepQuality': '',
        'moodStatus': '',
        'bowelMovement': '',
        'pulse': ''
    }
    chat_response = ""

    if request.method == "POST":
        # 获取用户输入并更新 formData
        formData.update(request.form)

        print("FormData:", formData)

        # 构建请求消息
        messageContent = f"""
            你是一个资深中医专家,请根据以下问诊信息进行综合分析:
            【主诉】{formData['selfReport']}
            【既往史】{formData['medicalHistory']}
            【面诊】面色{formData['faceColor']},眼神{formData['eyeLook']}
            【闻诊】声音{formData['voiceQuality']},呼吸声{formData['breathSound']}
            【问诊】饮食习惯{formData['dietHabit']},睡眠质量{formData['sleepQuality']},情绪状态{formData['moodStatus']},排泄情况{formData['bowelMovement']}
            【舌诊】舌质{formData['tongueColor']},苔{formData['tongueCoating']}
            【脉诊】脉{formData['pulse']}
            请给出:1.中医辨证 2.治疗原则 3.方药建议 4.生活调养建议
        """

        # 调用 DeepSeek API
        headers = {
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json"
        }
        data = {
            "model": "deepseek-chat",
            "messages": [
                {"role": "system", "content": "你是一个资深中医专家。"},
                {"role": "user", "content": messageContent}
            ],
            "stream": False
        }

        print("Request Body:", data)

        response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data)

        # 解析 API 响应
        if response.status_code == 200:
            api_response = response.json()
            chat_response = api_response["choices"][0]["message"]["content"]
        else:
            chat_response = f"Error: Unable to get response from DeepSeek API. Status Code: {response.status_code}, Message: {response.text}"

    return render_template("index.html", formData=formData, chat_response=chat_response)

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

templates/index.html 文件

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>智能中医问诊系统</title>
    <style>
        body {
     max-width: 800px; margin: 20px auto; padding: 20px; font-family: '微软雅黑'; }
        .section {
     margin-bottom: 30px; border-bottom: 1px solid #ddd; padding-bottom: 20px; }
        label {
     display: block; margin: 10px 0; }
        textarea {
     width: 100%; height: 100px; }
        button {
     padding: 10px 20px; background: #2b7a78; color: white; border: none; border-radius: 5px; }
        #result {
     display: none; margin-top: 30px; padding: 20px; background: #f0f4f5; border: 1px solid #ccc; }
        #result h3 {
     margin-top: 0; }
    </style>
</head>
<body>
    <h1>智能中医问诊系统</h1>
    <form method="POST">
        <div class="section">
            <h3>自述症状</h3>
            <textarea id="selfReport" name="selfReport" placeholder="请详细描述您的主要症状、持续时间及变化情况...">{
  { formData.selfReport }}</textarea>
        </div>

        <div class="section">
            <h3>病史信息</h3>
            <label>既往病史:
                <input type="radio" name="medicalHistory" value="无" {% if formData.medicalHistory == '无' %}checked{% endif %}> 无重大疾病史
                <input type="radio" name="medicalHistory" value="高血压" {% if formData.medicalHistory == '高血压' %}checked{% endif %}> 高血压
                <input type="radio" name="medicalHistory" value="糖尿病" {% if formData.medicalHistory == '糖尿病' %}checked{% endif %}> 糖尿病
                <input type="radio" name="medicalHistory" value="心脏病" {% if formData.medicalHistory == '心脏病' %}checked{% endif %}> 心脏病
            </label>
        </div>

        <div class="section">
            <h3>望诊</h3>
            <label>面色特征:
                <input type="radio" name="faceColor" value="红润" {% if formData.faceColor == '红润' %}checked{% endif %}> 红润
                <input type="radio" name="faceColor" value="苍白" {% if formData.faceColor == '苍白' %}checked{% endif %}> 苍白
                <input type="radio" name="faceColor" value="青黑" {% if formData.faceColor == '青黑' %}checked{% endif %}> 青黑
                <input type="radio" name="faceColor" value="黄疸" {% if formData.faceColor == '黄疸' %}checked{% endif %}> 黄疸
            </label>

            <label>舌质颜色:
                <input type="radio" name="tongueColor" value="淡红" {% if formData.tongueColor == '淡红' %}checked{% endif %}> 淡红
                <input type="radio" name="tongueColor" value="红" {% if formData.tongueColor == '红' %}checked{% endif %}> 红
                <input type="radio" name="tongueColor" value="紫暗" {% if formData.tongueColor == '紫暗' %}checked{% endif %}> 紫暗
            </label>

            <label>舌苔特征:
                <input type="radio" name="tongueCoating" value="薄白" {% if formData.tongueCoating == '薄白' %}checked{% endif %}> 薄白
                <input type="radio" name="tongueCoating" value="黄腻" {% if formData.tongueCoating == '黄腻' %}checked{% endif %}> 黄腻
                <input type="radio" name="tongueCoating" value="白厚" {% if formData.tongueCoating == '白厚' %}checked{% endif %}> 白厚
                <input type="radio" name="tongueCoating" value="少苔" {% if formData.tongueCoating == '少苔' %}checked{% endif %}> 少苔
            </label>

            <label>眼神特征:
                <input type="radio" name="eyeLook" value="明亮" {% if formData.eyeLook == '明亮' %}checked{% endif %}> 明亮
                <input type="radio" name="eyeLook" value="晦暗" {% if formData.eyeLook == '晦暗' %}checked{% endif %}> 晦暗
                <input type="radio" name="eyeLook" value="干涩" {% if formData.eyeLook == '干涩' %}checked{% endif %}> 干涩
            </label>
        </div>

        <div class="section">
            <h3>闻诊</h3>
            <label>声音特征:
                <input type="radio" name="voiceQuality" value="清晰" {% if formData.voiceQuality == '清晰' %}checked{% endif %}> 清晰
                <input type="radio" name="voiceQuality" value="嘶哑" {% if formData.voiceQuality == '嘶哑' %}checked{% endif %}> 嘲哑
                <input type="radio" name="voiceQuality" value="低沉" {% if formData.voiceQuality == '低沉' %}checked{% endif %}> 低沉
                <input type="radio" name="voiceQuality" value="急促" {% if formData.voiceQuality == '急促' %}checked{% endif %}> 急促
            </label>

            <label>呼吸声特征:
                <input type="radio" name="breathSound" value="均匀" {% if formData.breathSound == '均匀' %}checked{% endif %}> 均匀
                <input type="radio" name="breathSound" value="粗重" {% if formData.breathSound == '粗重' %}checked{% endif %}> 粗重
                <input type="radio" name="breathSound" value="短促" {% if formData.breathSound == '短促' %}checked{% endif %}> 短促
            </label>
        </div>

        <div class="section">
            <h3>问诊</h3>
            <label>饮食习惯:
                <input type="radio" name="dietHabit" value="正常" {% if formData.dietHabit == '正常' %}checked{% endif %}> 正常
                <input type="radio" name="dietHabit" value="偏食" {% if formData.dietHabit == '偏食' %}checked{% endif %}> 偏食
                <input type="radio" name="dietHabit" value="过量" {% if formData.dietHabit == '过量' %}checked{% endif %}> 过量
                <input type="radio" name="dietHabit" value="不足" {% if formData.dietHabit == '不足' %}checked{% endif %}> 不足
            </label>

            <label>睡眠质量:
                <input type="radio" name="sleepQuality" value="良好" {% if formData.sleepQuality == '良好' %}checked{% endif %}> 良好
                <input type="radio" name="sleepQuality" value="失眠" {% if formData.sleepQuality == '失眠' %}checked{% endif %}> 失眠
                <input type="radio" name="sleepQuality" value="多梦" {% if formData.sleepQuality == '多梦' %}checked{% endif %}> 多梦
            </label>

            <label>情绪状态:
                <input type="radio" name="moodStatus" value="稳定" {% if formData.moodStatus == '稳定' %}checked{% endif %}> 稳定
                <input type="radio" name="moodStatus" value="焦虑" {% if formData.moodStatus == '焦虑' %}checked{% endif %}> 焦虑
                <input type="radio" name="moodStatus" value="抑郁" {% if formData.moodStatus == '抑郁' %}checked{% endif %}> 抑郁
            </label>

            <label>排泄情况:
                <input type="radio" name="bowelMovement" value="正常" {% if formData.bowelMovement == '正常' %}checked{% endif %}> 正常
                <input type="radio" name="bowelMovement" value="便秘" {% if formData.bowelMovement == '便秘' %}checked{% endif %}> 便秘
                <input type="radio" name="bowelMovement" value="腹泻" {% if formData.bowelMovement == '腹泻' %}checked{% endif %}> 腹泻
            </label>
        </div>

        <div class="section">
            <h3>切诊</h3>
            <label>脉象特征:
                <input type="radio" name="pulse" value="弦" {% if formData.pulse == '弦' %}checked{% endif %}> 弦
                <input type="radio" name="pulse" value="滑" {% if formData.pulse == '滑' %}checked{% endif %}> 滑
                <input type="radio" name="pulse" value="细" {% if formData.pulse == '细' %}checked{% endif %}> 细
                <input type="radio" name="pulse" value="数" {% if formData.pulse == '数' %}checked{% endif %}> 数
            </label>
        </div>

        <button type="submit">提交诊断</button>
    </form>

    {% if chat_response %}
    <h2>DeepSeek 回复:</h2>
    <p>{
  { chat_response|safe }}</p>
    {% endif %}
</body>
</html>

.env 文件(存放key)

DEEPSEEK_API_KEY=填入你的密钥

当以上准备工作完成后,直接执行如下命令启动:

python app.py

在本地打开浏览器并访问 http://127.0.0.1:5000/ ,能够看到智能中医问诊系统的界面,提交表单后会显示用户的输入和 DeepSeek API 的回复。

image.png

假如说碰到问题,可以将报错丢给通义代码模式来进行排查,通义也会给出优化的代码~这里的报错就是借助通义完成的

image.png

基于阿里云百炼平台调用DeepSeek结合NovelCline生成小说

这也算是最近在尝试的一个实践吧,因为DeepSeek-R1出来后其思维链确实很香,能够补足小说上下文剧情无逻辑的劣势,是真正能够思考后写出一定剧情的,不像之前那种纯是套固定剧情模板的。

这里用到的插件是NovelCline,同样是需要在VScode里面下载,这下好了,现在都可以用VScode写小说了。

image.png

这个其实是一位大佬基于Cline魔改的,本质都是多agent架构,修改每个agent的对应提示词就好了,但是整个工作量仍然比较大,所以,感谢大佬!!!

我们填写下面内容调用百炼平台API,还可以添加小说的限制词如:背景为古代,不出现某某词语等。

image.png

创建一个md文件,并在VScode中打开

image.png

我们给出prompt如下:

请你以诡秘之主小说为原本,续写一部同人作品,给出提纲及故事发生背景等必要信息。

然后看着AI自己动手写就可以了

856323aa-73cd-4c4e-a795-3c54eb94819b.gif

不过,小说确实也是很耗费token,写个一章再慢慢扩充二三十万token就没了(下面仅仅是大纲部分)

image.png

不过,白嫖的100万token写个短篇小说还是绰绰有余的啦

阿里云通义灵码调用DeepSeek-R1及V3

本来已经快结尾了,突然看到灵码支持了自定义选择底层模型,赶紧续上这一段~

image.png

测试了一下,有思考模式,确实是真的DeepSeek!

image.png

相关文章
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
7天前
|
人工智能 搜索推荐 Docker
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
DeepSeek R1 + LobeChat + Ollama:快速本地部署模型,创建个性化 AI 助手
2696 112
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
|
2天前
|
云安全 边缘计算 人工智能
对话|ESA如何助力企业高效安全开展在线业务?
ESA如何助力企业安全开展在线业务
1017 7
|
5天前
|
人工智能 自然语言处理 JavaScript
宜搭上新,DeepSeek 插件来了!
钉钉宜搭近日上线了DeepSeek插件,无需编写复杂代码,普通用户也能轻松调用强大的AI大模型能力。安装后,平台新增「AI生成」组件,支持创意内容生成、JS代码编译、工作汇报等场景,大幅提升工作效率。快来体验这一高效智能的办公方式吧!
1347 5
|
14天前
|
Linux iOS开发 MacOS
deepseek部署的详细步骤和方法,基于Ollama获取顶级推理能力!
DeepSeek基于Ollama部署教程,助你免费获取顶级推理能力。首先访问ollama.com下载并安装适用于macOS、Linux或Windows的Ollama版本。运行Ollama后,在官网搜索“deepseek”,选择适合你电脑配置的模型大小(如1.5b、7b等)。通过终端命令(如ollama run deepseek-r1:1.5b)启动模型,等待下载完成即可开始使用。退出模型时输入/bye。详细步骤如下图所示,轻松打造你的最强大脑。
9449 86
|
2天前
|
人工智能 自然语言处理 API
DeepSeek全尺寸模型上线阿里云百炼!
阿里云百炼平台近日上线了DeepSeek-V3、DeepSeek-R1及其蒸馏版本等六款全尺寸AI模型,参数量达671B,提供高达100万免费tokens。这些模型在数学、代码、自然语言推理等任务上表现出色,支持灵活调用和经济高效的解决方案,助力开发者和企业加速创新与数字化转型。示例代码展示了如何通过API使用DeepSeek-R1模型进行推理,用户可轻松获取思考过程和最终答案。
|
6天前
|
API 开发工具 Python
阿里云PAI部署DeepSeek及调用
本文介绍如何在阿里云PAI EAS上部署DeepSeek模型,涵盖7B模型的部署、SDK和API调用。7B模型只需一张A10显卡,部署时间约10分钟。文章详细展示了模型信息查看、在线调试及通过OpenAI SDK和Python Requests进行调用的步骤,并附有测试结果和参考文档链接。
1396 9
阿里云PAI部署DeepSeek及调用
|
1月前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
阿里云与企业共筑容器供应链安全
171378 18
|
1月前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
随着云计算和DevOps的兴起,容器技术和自动化在软件开发中扮演着愈发重要的角色,但也带来了新的安全挑战。阿里云针对这些挑战,组织了一场关于云上安全的深度访谈,邀请了内部专家穆寰、匡大虎和黄竹刚,深入探讨了容器安全与软件供应链安全的关系,分析了当前的安全隐患及应对策略,并介绍了阿里云提供的安全解决方案,包括容器镜像服务ACR、容器服务ACK、网格服务ASM等,旨在帮助企业构建涵盖整个软件开发生命周期的安全防护体系。通过加强基础设施安全性、技术创新以及倡导协同安全理念,阿里云致力于与客户共同建设更加安全可靠的软件供应链环境。
150313 32
|
6天前
|
缓存 自然语言处理 安全
快速调用 Deepseek API!【超详细教程】
Deepseek 强大的功能,在本教程中,将指导您如何获取 DeepSeek API 密钥,并演示如何使用该密钥调用 DeepSeek API 以进行调试。