从零跑通:阿里云 ECS + 百炼 MaaS 大模型答题卡识别全流程

一、编写 server.py Flask 服务代码(云服端布置)

复制代码
from flask import Flask, request, jsonify
import base64
from openai import OpenAI

app = Flask(__name__)

# 替换为你的正确API Key
API_KEY = "sk-ws-H.EMXEPHH.Nzuj.MEYCIQCMTWx_h4kUIKbXNUTNKrCbpQOjx-"
BASE_URL = "https://llm-ab2cpkcjl1182sqz.cn-beijing.maas.aliyuncs.com/compatible-mode/v1"
MODEL_ID = "qwen3.7-plus"

client = OpenAI(api_key=API_KEY, base_url=BASE_URL)

def img_to_base64(raw_bytes):
    return base64.b64encode(raw_bytes).decode("utf-8")

@app.route("/scan_card", methods=["POST"])
def scan():
    try:
        img_file = request.files["img"]
        img_b64 = img_to_base64(img_file.read())
        prompt = """
这是30题标准单选题答题卡,选项只有A/B/C/D,仅判断被2B铅笔完整涂黑的唯一选项
严格按题号1~30顺序输出结果,格式仅允许:1:A,2:B,3:C
严禁编造答案、严禁额外文字、换行、注释、解释,只输出逗号分隔结果!
逐题精准定位方框位置,以实际填涂色块为准!
        """
        completion = client.chat.completions.create(
            model=MODEL_ID,
            messages=[
                {
                    "role": "user",
                    "content": [
                        {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img_b64}"}},
                        {"type": "text", "text": prompt}
                    ]
                }
            ],
            temperature=0.0,
            top_p=0.0,
            max_tokens=200
        )
        result_text = completion.choices[0].message.content.strip()
        return jsonify({"code": 0, "result": result_text})
    except Exception as err:
        return jsonify({"code": -1, "msg": str(err)})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8081, debug=False)
  • 保存:Ctrl+O → 回车确认保存
  • 退出 nano 编辑器:Ctrl+X

步骤 2:运行客户端脚本

import requests

import os

SERVER_IP = "9.1694.197.176"

SERVER_URL = f"http://{SERVER_IP}:8081/scan_card"

def scan_image(img_path):

try:

with open(img_path, "rb") as f:

upload_file = {"img": f}

res = requests.post(SERVER_URL, files=upload_file, timeout=60)

data = res.json()

if data"code" == 0:

return f"【{os.path.basename(img_path)}】识别结果:{data'result'}"

else:

return f"【{os.path.basename(img_path)}】识别失败:{data'msg'}"

except Exception as e:

return f"【{img_path}】网络请求错误:{str(e)}"

if name == "main":

img_folder = r"D:\text-07"

output_txt = r"D:\text-07\识别结果.txt"

all_result = \[\]

for name in os.listdir(img_folder):

if name.lower().endswith((".jpg", ".png", ".jpeg")):

full_path = os.path.join(img_folder, name)

print(f"正在识别:{name}")

res_text = scan_image(full_path)

all_result.append(res_text)

print(res_text)

with open(output_txt, "w", encoding="utf-8") as f:

f.write("\n".join(all_result))

print(f"\n全部识别完成,结果保存在:{output_txt}")

三、Ubuntu 服务器环境配置 一步一步详细教程

(适配:Ubuntu 22.04,阿里云 ECS,root 用户,全程复制命令执行)

前置

  • 已通过 final shell的SSH 登录服务器:
  • 步骤 1:更新系统软件包sudo apt update
  • 然后执行升级sudo apt upgrade -y

步骤 2:安装基础工具 & Python3 环境

2.1 安装常用工具 + Python3 + pip

  • python3:主程序
  • python3-pip:Python 包管理器
  • nano:文本编辑器
  • curl/net-tools:调试网络 / 端口

步骤 3:安装项目依赖包(Flask、openai SDK)

pip install flask openai

步骤 4:配置防火墙(放行端口:22 SSH、8081 Flask 接口)

步骤 5:编写 Flask 服务代码 server.py

相关推荐
tiancaijiben3 小时前
阿里云ECS云服务器部署Vue打包静态网站:Nginx路由重定向完整配置
云计算
我是伪码农6 小时前
页面ai调用(阿里云)
阿里云·云计算
爆落千玄1 天前
从0训练LLM原理解析
阿里云·云计算
淘源码A1 天前
多院区集团化云PACS系统源码,原生兼容国产软硬件环境
java·云计算·源码·saas·pacs·医学影像系统
leijiwen2 天前
Bsin-PaaS(毕昇)——LinkLifeVerse OS 的产业智能工程底座
云原生·云计算·paas
DolitD2 天前
无人机×云渲染:点量云流实时交互云推流方案
3d·云计算·数据可视化·虚拟现实
hz567892 天前
内网视频会议系统建设方案:适合政企单位的安全会议选择
安全·云计算·音视频·实时音视频·信息与通信
翼龙云_cloud2 天前
阿里云国际代理商:ECS闲置资源清理+快照优化
运维·阿里云·云计算·ecs
Qimooidea2 天前
祁木 CAD Translator:基于阿里云百炼与 DeepSeek 的图纸翻译实战
阿里云·云计算