Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

模型评估服务

1. 项目介绍和功能概述

这是一个基于 Flask 的会话数据评估服务,前端收集模型调用信息,后端拼接 Prompt 并调用 OpenAI 兼容接口(OpenAI / 豆包 / 智谱 / 千问 / MiniMax),将模型返回结果展示在页面上。

主要功能:

  • 模型调用:使用用户提供的 Base URL / API Key / Model 调用 OpenAI 兼容接口
  • Prompt 组装:基于评估指令与会话内容拼接 Prompt
  • 统一展示:展示模型输出与原始响应

2. 安装步骤

2.1 Python 环境要求

  • Python 3.7 或更高版本

2.2 创建虚拟环境(推荐)

# Windows
python -m venv venv
venv\Scripts\activate

# Linux/Mac
python3 -m venv venv
source venv/bin/activate

2.3 安装依赖

pip install -r requirements.txt

依赖包包含 Flask 和 requests,用于提供 Web 服务与后端模型调用。

3. 运行说明

3.1 启动 Flask 服务

在项目根目录下执行:

python app.py

说明:项目入口文件为 app.py

服务启动后,将在 http://127.0.0.1:5000 运行。

3.2 访问方式

  • Web 界面:打开浏览器访问 http://127.0.0.1:5000,使用图形界面进行评估
  • API 接口:通过 POST 请求访问 http://127.0.0.1:5000/api/evaluate 进行模型评估

4. 使用示例

4.1 Web 界面使用

  1. 启动服务后,在浏览器中打开 http://127.0.0.1:5000
  2. 填写 Base URL / API Key / Model
  3. 在文本框中输入 JSON 格式的会话数据
  4. 点击"评估"按钮查看结果
  5. 点击"清空"按钮重置输入

4.2 API 接口使用示例

测试用例 1:积极会话

{
  "messages": [
    "这个模型太棒了,回答得非常准确!",
    "我要分享给我的朋友们!",
    "感谢开发者的辛苦工作,太赞了"
  ]
}

预期结果

  • 总分较高
  • 分类为"积极"
  • 检测到分享行为
  • 检测到多个积极情感词汇

测试用例 2:中性会话

{
  "messages": [
    "你好",
    "我想了解一下这个功能",
    "好的,明白了",
    "谢谢"
  ]
}

预期结果

  • 总分接近 0
  • 分类为"中性"
  • 无特殊行为检测

测试用例 3:消极会话

{
  "messages": [
    "这个回答太差了",
    "完全不对",
    "糟糕透了,浪费时间",
    "一点都不满意"
  ]
}

预期结果

  • 总分较低(负数)
  • 分类为"消极"
  • 检测到多个消极情感词汇

4.3 使用 curl 测试接口(模型调用)

# 调用接口,由后端拼接 Prompt 并请求模型
curl -X POST http://127.0.0.1:5000/api/evaluate \
  -H "Content-Type: application/json" \
  -d '{
        "base_url": "https://api.openai.com",
        "api_key": "sk-xxxxx",
        "model": "gpt-4o-mini",
        "request_mode": "chat",
        "prompt_template": "请根据以下对话内容进行评估,输出 JSON,字段包含 total_score, category, reasons。",
        "session_data": {"messages": ["这个太棒了,我要分享给大家!"]}
      }'

# 注意:base_url 需要是 http:// 或 https://

5. 项目结构说明

evaluate_model/
├── app.py                    # 入口文件(创建并启动 Flask 应用)
├── requirements.txt          # Python 依赖包列表
├── src/
│   ├── __init__.py          # 模块初始化文件
│   ├── app_factory.py       # 应用工厂(create_app)
│   ├── routes.py            # 路由与错误处理
│   ├── services.py          # 模型调用与 Prompt 组装
│   ├── validators.py        # 请求校验
│   └── evaluator.py         # 历史评估逻辑(当前模式未使用)
├── templates/
│   └── index.html           # Web 界面 HTML 模板
└── static/
    ├── style.css            # 样式文件
    └── script.js            # 前端交互脚本

核心文件说明:

  • app.py:应用入口,创建并启动 Flask
  • src/app_factory.py:应用工厂,负责初始化 app
  • src/routes.py:路由与错误处理
  • src/services.py:模型调用与 Prompt 组装
  • src/validators.py:请求参数校验
  • src/evaluator.py:历史评估逻辑(当前模式未使用)
  • templates/index.html:Web 界面
  • static/:前端样式与脚本

6. 接口输入与输出

6.1 输入格式

向本服务 /api/evaluate 发送 JSON:

{
  "base_url": "https://api.openai.com",
  "api_key": "sk-xxxxx",
  "model": "gpt-4o-mini",
  "request_mode": "chat",
  "prompt_template": "请根据以下对话内容进行评估,输出 JSON,字段包含 total_score, category, reasons。",
  "session_data": {
    "messages": ["文本1", "文本2"]
  }
}

6.2 字段说明

  • base_url:OpenAI 兼容接口的根地址
  • api_key:调用密钥
  • model:模型名称
  • request_modechatprompt
  • prompt_template:评估指令
  • session_data:会话内容(对象 / 数组 / 字符串)

6.3 输出结果

返回 JSON,包含:

  • model_output:从模型响应中提取出的文本内容
  • parsed_output:若模型输出为 JSON 字符串,会解析为结构化对象
  • provider_response:模型原始响应

现在您可以按照以上说明开始使用这个评估服务了!

About

这是一个通过用户与AIchat软件交互的session内容进行判断的模型,可以输出积极/中性/消极的态度,从而帮助评估用户对chat的满意程度

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages