Flask + Dify/DeepSeek 模拟接口 + Word 文件生成

明白!我帮你写一个更完整的 Flask 服务端示例,集成调用大模型接口(用模拟的 Dify/DeepSeek API),并生成格式化的 Word 文档,支持本地保存和下载。


完整示例:Flask + Dify/DeepSeek 模拟接口 + Word 文件生成

from flask import Flask, request, send_from_directory, jsonify
from docx import Document
import os
import time
import uuid
import requests

app = Flask(__name__)

# 文件保存目录
SAVE_FOLDER = './generated_docs'
os.makedirs(SAVE_FOLDER, exist_ok=True)

# 模拟调用大模型接口函数(请替换为你实际的 Dify/DeepSeek API)
def query_dify_deepseek(question: str) -> str:
    # 这里演示使用伪API,实际要替换成你的接口
    # 示例模拟返回
    # 你也可以用 requests.post 调用真实接口
    dummy_answer = f"这是针对问题【{question}】的大模型模拟回答内容。"
    return dummy_answer

@app.route('/ask', methods=['POST'])
def ask():
    data = request.json
    question = data.get('question')
    if not question:
        return jsonify({"error": "问题不能为空"}), 400

    # 调用大模型接口
    answer = query_dify_deepseek(question)

    # 生成 Word 文档
    doc = Document()
    doc.add_heading("问题", level=1)
    doc.add_paragraph(question)
    doc.add_heading("回答", level=1)
    doc.add_paragraph(answer)

    # 生成唯一文件名
    filename = f"answer_{int(time.time())}_{uuid.uuid4().hex[:8]}.docx"
    filepath = os.path.join(SAVE_FOLDER, filename)
    doc.save(filepath)

    return jsonify({"filename": filename, "message": "回答生成成功"})

@app.route('/download/<filename>', methods=['GET'])
def download(filename):
    try:
        return send_from_directory(SAVE_FOLDER, filename, as_attachment=True)
    except Exception as e:
        return jsonify({"error": "文件不存在或无法访问", "details": str(e)}), 404

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

使用方法

  1. 启动服务:

python your_flask_file.py
  1. 发送请求(示例用 curl):

curl -X POST http://127.0.0.1:5000/ask -H "Content-Type: application/json" -d '{"question":"什么是人工智能?"}'
  1. 返回示例:

{
  "filename": "answer_1681234567_a1b2c3d4.docx",
  "message": "回答生成成功"
}
  1. 下载文件:

浏览器访问

http://127.0.0.1:5000/download/answer_1681234567_a1b2c3d4.docx

即可下载 Word 文件。


下一步

  • 你可以把 query_dify_deepseek 替换为真实接口调用逻辑,传入 API Key,调用大模型生成回答。

  • 需要生成更复杂 Word 文档格式,如表格、图片等也可以告诉我帮你写。

  • 需要前端页面调用和展示,也可以帮你写一个简易的 Web UI。


需要我帮你写具体的 Dify/DeepSeek API 调用示例吗?或者帮你做一个简单的网页前端吗?

KingbaseES中的MySQL案例实战! – 菜鸟-创作你的创作

### 部署 Xinference 和 Deepseek 为了成功部署 Xinference 并运行 Deepseek 模型,需遵循特定的安装流程。首先,确保环境已准备好基础依赖项,这包括但不限于 Python 的适当版本和支持库。 #### 安装 Xinference 对于希望基于源码进行本地安装的情况,可以按照官方指南执行相应命令来获取最新版代码并完成构建过程[^1]: ```bash git clone https://github.com/your-repo/xinference.git cd xinference pip install -e . ``` 此方法允许更灵活地调整配置选项或贡献改进给项目本身。 #### 下载 Deepseek 模型 接着,利用 ModelScope 工具下载完整的预训练模型仓库,以便后续加载到应用程序中使用[^2]: ```bash modelscope download --model deepseek-ai/DeepSeek-R1-Distil ``` 上述操作会将指定名称下的模型文件保存至本地目录结构里,供下一步骤调用。 #### 构建应用服务端 考虑到跨平台兼容性需求,在 Linux、Windows 或 MacOS 中均可借助 `pip` 实现快速安装所需组件,特别是当目标是集成 Transformers 引擎时[^3]: ```bash pip install transformers torch datasets ``` 这些包提供了必要的 API 接口和服务框架支持,使得开发者能够专注于业务逻辑实现而非底层细节处理。 #### 启动与测试 最后一步涉及启动 Web 应用程序实例,并验证其能否正常响应来自客户端的消息请求。具体做法取决于所选用的技术栈和个人偏好;然而,通常情况下可以通过 Flask/Django 等轻量级 web framework 来简化这一环节的工作负担。 ```python from flask import Flask, request, jsonify import torch from transformers import AutoModelForCausalLM, AutoTokenizer app = Flask(__name__) tokenizer = AutoTokenizer.from_pretrained('path/to/deepseek-model') model = AutoModelForCausalLM.from_pretrained('path/to/deepseek-model') @app.route('/chat', methods=['POST']) def chat(): user_input = request.json.get('message', '') inputs = tokenizer(user_input, return_tensors='pt') outputs = model.generate(**inputs) response_text = tokenizer.decode(outputs[0], skip_special_tokens=True) return jsonify({'response': response_text}) if __name__ == '__main__': app.run(debug=True) ``` 以上脚本展示了如何创建一个简单的 HTTP 服务器接口,它接收 JSON 格式的 POST 请求作为输入消息体,经过编码转换后传递给预先加载好的 Transformer 模型实例进行预测运算,最终返回生成的回答字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值