金融科技创业者,外滩大赛报名通道已开——你的项目该怎么准备

2026-05-26 32 预计阅读时间:1 分钟
来源:my.oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:7 分钟

第一届金融科技国际创新创业大赛(Fintech@外滩)报名正式启动。这不是一场纯学术路演,而是面向正在做产品、跑数据、找场景的金融科技团队——从支付清算到风控建模,从合规科技到财富管理,只要技术能解决真实金融痛点,都有舞台。

大赛在找什么样的项目

金融科技赛道宽,但评审锚点很明确:技术有没有落地场景,方案有没有合规边界。几类方向历来最受关注:

  • 支付与清算基础设施:跨境支付、实时清算、新型结算网络。
  • 风控与反欺诈:基于图网络、时序模型的交易异常检测。
  • 合规科技(RegTech):自动化监管报送、KYC/AML 智能审查。
  • 财富管理与投顾:个性化资产配置引擎、投研知识图谱。
  • 保险科技:核保自动化、理赔反欺诈、定价模型优化。

如果你的项目已经跑通了核心逻辑,哪怕还只是 MVP,也比纯概念方案更有竞争力。

从零搭一个可演示的金融科技最小原型

评审看的是"你能跑起来吗"。下面用一个极简的交易风控 API做示范——FastAPI + SQLite,5 分钟可启动,足够在路演时展示"请求进来 → 规则引擎判断 → 返回风控决策"的完整链路。

这是示范性原型,并非大赛官方要求的技术栈,你可以按自己项目方向替换核心逻辑。

项目结构

fintech-demo/
├── main.py
├── requirements.txt
└── README.md

requirements.txt

fastapi==0.115.0
uvicorn==0.30.6
pydantic==2.9.0

main.py

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from datetime import datetime
import sqlite3
import os

DB_PATH = "transactions.db"

app = FastAPI(title="Fintech 风控 Demo", version="0.1.0")


# ---------- 数据模型 ----------
class Transaction(BaseModel):
    user_id: str
    amount: float
    currency: str = "CNY"
    merchant: str
    timestamp: datetime | None = None


class RiskDecision(BaseModel):
    transaction_id: str
    risk_level: str          # low / medium / high
    action: str              # approve / review / block
    reason: str


# ---------- 规则引擎(可替换为模型推理) ----------
def evaluate_risk(tx: Transaction) -> RiskDecision:
    """极简规则:大额 + 新商户 = 高风险"""
    tx_id = f"TX-{datetime.now().strftime('%Y%m%d%H%M%S')}-{tx.user_id}"

    if tx.amount >= 50000 and tx.merchant.startswith("NEW_"):
        return RiskDecision(
            transaction_id=tx_id,
            risk_level="high",
            action="block",
            reason="大额交易 + 新商户,触发风控规则"
        )
    elif tx.amount >= 10000:
        return RiskDecision(
            transaction_id=tx_id,
            risk_level="medium",
            action="review",
            reason="中等金额,需人工复核"
        )
    else:
        return RiskDecision(
            transaction_id=tx_id,
            risk_level="low",
            action="approve",
            reason="低风险交易,自动放行"
        )


# ---------- SQLite 记录 ----------
def init_db():
    conn = sqlite3.connect(DB_PATH)
    conn.execute("""
        CREATE TABLE IF NOT EXISTS decisions (
            transaction_id TEXT PRIMARY KEY,
            user_id TEXT,
            amount REAL,
            risk_level TEXT,
            action TEXT,
            reason TEXT,
            created_at TEXT
        )
    """)
    conn.commit()
    conn.close()


def save_decision(tx: Transaction, decision: RiskDecision):
    conn = sqlite3.connect(DB_PATH)
    conn.execute(
        "INSERT INTO decisions VALUES (?, ?, ?, ?, ?, ?, ?)",
        (decision.transaction_id, tx.user_id, tx.amount,
         decision.risk_level, decision.action, decision.reason,
         datetime.now().isoformat())
    )
    conn.commit()
    conn.close()


# ---------- API ----------
@app.on_event("startup")
def startup():
    init_db()


@app.post("/transactions/evaluate", response_model=RiskDecision)
def evaluate_transaction(tx: Transaction):
    if tx.timestamp is None:
        tx.timestamp = datetime.now()

    decision = evaluate_risk(tx)
    save_decision(tx, decision)
    return decision


@app.get("/decisions/recent", response_model=list[RiskDecision])
def recent_decisions(limit: int = 10):
    conn = sqlite3.connect(DB_PATH)
    rows = conn.execute(
        "SELECT transaction_id, risk_level, action, reason "
        "FROM decisions ORDER BY created_at DESC LIMIT ?",
        (limit,)
    ).fetchall()
    conn.close()
    return [
        RiskDecision(transaction_id=r[0], risk_level=r[1],
                     action=r[2], reason=r[3])
        for r in rows
    ]

启动与测试

# 安装依赖
pip install -r requirements.txt

# 启动服务
uvicorn main:app --reload --port 8000

# 测试:低风险交易(自动放行)
curl -X POST http://localhost:8000/transactions/evaluate \
  -H "Content-Type: application/json" \
  -d '{"user_id":"U001","amount":500,"merchant":"M_ALIPAY"}'

# 测试:中等风险(需复核)
curl -X POST http://localhost:8000/transactions/evaluate \
  -H "Content-Type: application/json" \
  -d '{"user_id":"U002","amount":15000,"merchant":"M_KNOWN"}'

# 测试:高风险(大额 + 新商户,直接拦截)
curl -X POST http://localhost:8000/transactions/evaluate \
  -H "Content-Type: application/json" \
  -d '{"user_id":"U003","amount":60000,"merchant":"NEW_M123"}'

# 查看最近决策记录
curl http://localhost:8000/decisions/recent?limit=5

这个原型虽小,但已经覆盖了金融科技路演最核心的三件事:输入建模、规则/模型推理、决策留痕。你可以把 evaluate_risk 替换成真正的 ML 模型调用,把 SQLite 替换成 PostgreSQL 或 Redis,演示效果立刻升级。

报名与路演准备清单

大赛报名已开放,提交之前建议逐项确认:

检查项 说明
核心场景是否一句话能说清 "我们用 X 技术解决 Y 人群的 Z 痛点"——如果说不清,评审也听不懂
是否有可运行的 Demo 能现场跑的 API / Dashboard 比PPT截图强十倍
合规边界是否标注 金融项目必须说明数据来源、监管适用范围、隐私合规方案
技术栈是否可解释 不需要追新,但选型理由要能回答"为什么不用 X"
团队分工是否明确 技术负责人、业务负责人至少各一人,路演时两人配合效果最好

写在最后

Fintech@外滩大赛给的是曝光和资源对接,不是一笔融资。真正拿到后续机会的团队,往往是那些带着可运行产品、清楚合规边界、能讲清商业闭环的人。报名只是第一步——先把你的最小原型跑起来,再去填表。

大赛报名入口及详细赛制规则,请关注官方发布渠道获取最新信息。


相关推荐