feat: 初始化AI面试助手项目基础结构
添加项目基础文件包括: - 主程序入口main.py - 依赖管理文件requirements.txt和pyproject.toml - 项目说明文档README.md - Git忽略规则文件.gitignore - 面试历史记录JSON示例文件 - 测试相关资源文件
This commit is contained in:
commit
1707584a52
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.env
|
||||||
|
.venv/
|
||||||
|
__pycache__/
|
||||||
|
.DS_Store
|
||||||
33
README.md
Normal file
33
README.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
姓名 学号 主要贡献 (具体分工)
|
||||||
|
张宇杰 2411020202 (组长) 文档撰写、测试与 Bug,PPT 制作
|
||||||
|
汪兴莉 2411020212 前端界面设计、展演
|
||||||
|
段秀易 2411020123 修复核心逻辑开发、Prompt 编写
|
||||||
|
|
||||||
|
|
||||||
|
项目简介 & 运行指南
|
||||||
|
## 简介
|
||||||
|
AI面试官软件是依托大模型、多模态识别技术的招聘工具,核心是自动化完成面试全流程,帮求职者提前预估可能性问题和模拟面试环境 核心功能:按岗位自动出题+智能交互追问+多维度能力评估+生成面试报告。优势:成本低、标准化强,适配校招、社招初筛场景。
|
||||||
|
|
||||||
|
## 如何运行
|
||||||
|
1. 安装依赖:`uv sync`
|
||||||
|
2. 配置 Key:复制 `.env.example` 为 `.env` 并填入 Key
|
||||||
|
3. 启动:`uv run streamlit run app.py`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
开发心得 (不少于 500 字)
|
||||||
|
|
||||||
|
|
||||||
|
在开发 AI 面试官受聘者端时,我们的核心思路始终围绕 **“极致简化流程、优化文字交互体验、贴合求职人群实际使用场景”** 展开。这段开发经历让我们深刻意识到,当剥离了复杂的音视频核验、防作弊监测等功能后,产品的竞争力反而更依赖于对用户需求的精准捕捉。
|
||||||
|
项目启动之初,我们就明确了核心定位:这是一款面向校招初筛、中小企业批量面试的轻量化工具,目标用户是学生和基层岗位求职者,他们更需要的是 **“操作无门槛、作答无压力、流程不繁琐”** 的体验,而非严苛的风控机制。因此,我们果断砍掉了所有非必要功能,将产品核心流程压缩为 “链接接收 — 身份填写 — 试题作答 — 提交确认” 四步,从根源上降低用户的使用成本。
|
||||||
|
在文字交互逻辑的打磨上,我们经历了从 “机械问答” 到 “智能贴合” 的迭代。早期版本中,系统完全按照预设题库顺序出题,不管候选人的回答内容如何,都只会按部就班抛出下一个问题,导致交互感极其生硬。比如候选人在回答 “个人优势” 时提到自己 “擅长数据分析,曾用 Excel 完成销售报表优化”,系统却依然会接着问 “你的职业规划是什么”,完全忽略了回答中的亮点信息。后来,我们接入了轻量级语义分析模型,让系统能够抓取回答中的核心关键词,并针对性调整追问方向。同样是上述场景,系统会自动追问 “你在优化销售报表的过程中,具体解决了什么问题?取得了哪些效果?”,让问答更具连贯性,也能帮助候选人更好地展现自身优势。同时,我们还设置了 **“自定义作答时长”** 功能,不同题型匹配不同的时间上限,主观题预留充足思考时间,客观题则适当缩短时长,避免用户因时间过紧或过松影响发挥。
|
||||||
|
用户体验细节的优化,是这款产品的核心竞争力所在。我们调研发现,很多候选人在文字作答时,会有反复修改、临时补充的需求,因此专门开发了 **“实时自动草稿”功能,每输入一个字都会自动保存,即使意外关闭页面、网络中断,重新进入后也能完整恢复之前的作答内容,解决了用户 “辛苦写的内容丢失” 的痛点。针对不同岗位的差异化需求,我们设计了“题型定制模块”**,技术岗会增加代码填空、专业术语解释等题型,并配备代码格式输入框;职能岗则侧重情景分析、沟通协调类题目,让试题更贴合岗位需求。此外,我们还在页面设计上追求简洁明了,摒弃了花哨的界面元素,用清晰的字体、合理的留白降低视觉疲劳,同时在每一步操作前都配备简短的引导文案,比如 “点击下方输入框开始作答”“作答完成后点击提交按钮即可结束面试”,让新手也能快速上手。
|
||||||
|
在兼容性适配方面,我们充分考虑到用户设备的多样性。纯文字交互的优势在于对设备性能要求低,因此我们不仅适配了电脑端的主流浏览器,还针对移动端做了专门优化,支持手机竖屏模式下的流畅操作,候选人无论是在宿舍、地铁还是家里,都能随时随地完成面试,无需受限于设备和场地。同时,我们还优化了页面加载速度,即使在网络信号较弱的环境下,也能快速加载试题,避免因加载卡顿影响面试进度。
|
||||||
|
这款产品的开发过程,让我们深刻体会到 **“少即是多”** 的产品理念。当剥离了复杂的功能后,我们反而能更专注于用户的核心需求,通过优化交互逻辑、打磨细节体验,让产品真正服务于候选人,帮助他们在面试中充分展现自身能力,同时也为企业提供高效、轻量化的初筛工具。未来,我们还会根据用户反馈,进一步优化语义分析模型的精准度,拓展更多题型模板,让这款纯文字 AI 面试官软件的实用性更强。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
178
interview_history/20260107_134418_财务.json
Normal file
178
interview_history/20260107_134418_财务.json
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
{
|
||||||
|
"timestamp": "2026-01-07 13:44:18",
|
||||||
|
"job_position": "财务",
|
||||||
|
"questions": [
|
||||||
|
{
|
||||||
|
"main_question": "请解释什么是财务报表?它包括哪些主要组成部分?",
|
||||||
|
"follow_ups": [
|
||||||
|
"如何分析财务报表来评估企业的财务状况?",
|
||||||
|
"财务报表中的哪些指标对投资者最为重要?",
|
||||||
|
"如何识别财务报表中的异常情况?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "什么是预算管理?如何制定和执行有效的预算?",
|
||||||
|
"follow_ups": [
|
||||||
|
"预算编制的流程是怎样的?",
|
||||||
|
"如何监控预算执行情况并进行调整?",
|
||||||
|
"在预算管理中,你遇到过哪些挑战?如何克服的?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "请解释什么是成本核算?它在企业管理中的作用是什么?",
|
||||||
|
"follow_ups": [
|
||||||
|
"你熟悉哪些成本核算方法?它们各自适用于什么场景?",
|
||||||
|
"如何通过成本核算来优化企业的成本结构?",
|
||||||
|
"如何处理间接成本的分配问题?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "什么是内部控制?如何建立有效的内部控制体系?",
|
||||||
|
"follow_ups": [
|
||||||
|
"内部控制的目标是什么?",
|
||||||
|
"如何评估内部控制的有效性?",
|
||||||
|
"在内部控制方面,你有什么经验或案例?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "请解释什么是税务筹划?它与逃税有什么区别?",
|
||||||
|
"follow_ups": [
|
||||||
|
"税务筹划的基本原则是什么?",
|
||||||
|
"如何在合法合规的前提下进行税务筹划?",
|
||||||
|
"你熟悉哪些常见的税务筹划方法?"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"answers": [
|
||||||
|
"“财务报表其实就是企业把一段时间的财务情况、经营成果这些信息,用规范的表格和文字整理出来的书面文件,不管是投资者看企业值不值得投,还是管理者做决策,都得靠它来了解情况。<br/> <br/>主要分这么几块:第一是资产负债表,看的是某一个时间点,企业有多少资产、欠了多少债、股东有多少权益,核心就是资产等于负债加所有者权益;第二是利润表,能看出企业一段时间内赚了多少钱,收入减去费用就是利润,直接反映盈利能力;第三是现金流量表,记录企业现金的进和出,分经营、投资、筹资三种活动的现金流,能看出来企业的钱够不够用、周转怎么样;第四是所有者权益变动表,就是股东的权益在这段时间里怎么变的,比如股本有没有增加、利润有没有分配;最后还有报表附注,把报表里没说清楚的地方补充说明,比如用了什么会计政策、有没有重大事项,让报表内容更明白。”\n未选择文件",
|
||||||
|
"g",
|
||||||
|
"s",
|
||||||
|
"s",
|
||||||
|
"2",
|
||||||
|
"s",
|
||||||
|
"ss",
|
||||||
|
"s",
|
||||||
|
"ss"
|
||||||
|
],
|
||||||
|
"scores": [
|
||||||
|
"优秀",
|
||||||
|
"一般",
|
||||||
|
"需要改进",
|
||||||
|
"优秀",
|
||||||
|
"良好",
|
||||||
|
"需要改进",
|
||||||
|
"需要改进",
|
||||||
|
"需要改进",
|
||||||
|
"良好"
|
||||||
|
],
|
||||||
|
"interviewers": [
|
||||||
|
"亲和型"
|
||||||
|
],
|
||||||
|
"question_interviewers": [
|
||||||
|
"亲和型",
|
||||||
|
"亲和型",
|
||||||
|
"亲和型",
|
||||||
|
"亲和型",
|
||||||
|
"亲和型",
|
||||||
|
"亲和型",
|
||||||
|
"亲和型",
|
||||||
|
"亲和型",
|
||||||
|
"亲和型"
|
||||||
|
],
|
||||||
|
"answer_timestamps": [
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"start_time": "13:43:28",
|
||||||
|
"end_time": "13:43:51"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"start_time": "13:43:28",
|
||||||
|
"end_time": "13:44:01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"start_time": "13:44:01",
|
||||||
|
"end_time": "13:44:05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"start_time": "13:44:01",
|
||||||
|
"end_time": "13:44:08"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 2,
|
||||||
|
"start_time": "13:44:08",
|
||||||
|
"end_time": "13:44:11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"start_time": "13:44:11",
|
||||||
|
"end_time": "13:44:12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"start_time": "13:44:11",
|
||||||
|
"end_time": "13:44:14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 4,
|
||||||
|
"start_time": "13:44:14",
|
||||||
|
"end_time": "13:44:16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 4,
|
||||||
|
"start_time": "13:44:14",
|
||||||
|
"end_time": "13:44:18"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"answer_durations": [
|
||||||
|
22.783279,
|
||||||
|
32.717393,
|
||||||
|
3.377678,
|
||||||
|
6.967708,
|
||||||
|
2.291164,
|
||||||
|
1.733,
|
||||||
|
3.619194,
|
||||||
|
1.685353,
|
||||||
|
3.33111
|
||||||
|
],
|
||||||
|
"answer_changes": [
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"changes": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 2,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"changes": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 4,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 4,
|
||||||
|
"changes": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
152
interview_history/20260107_140424_Python开发.json
Normal file
152
interview_history/20260107_140424_Python开发.json
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
{
|
||||||
|
"timestamp": "2026-01-07 14:04:24",
|
||||||
|
"job_position": "Python开发",
|
||||||
|
"questions": [
|
||||||
|
{
|
||||||
|
"main_question": "请详细解释Python中的GIL(全局解释器锁)的实现机制,以及它对多线程编程的深层影响。",
|
||||||
|
"follow_ups": [
|
||||||
|
"GIL的存在对CPU密集型和I/O密集型任务的影响有何不同?请具体分析其原因。",
|
||||||
|
"在Python 3.2+中,GIL的实现有哪些改进?这些改进如何影响线程切换性能?",
|
||||||
|
"除了使用多进程,还有哪些技术可以绕过GIL的限制?请比较它们的优缺点。"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "请深入分析Python中的内存管理机制,包括引用计数、垃圾回收和内存池。",
|
||||||
|
"follow_ups": [
|
||||||
|
"Python的循环引用问题是如何产生的?垃圾回收器如何检测和处理循环引用?",
|
||||||
|
"Python的分代垃圾回收机制是如何工作的?各代的回收策略有什么不同?",
|
||||||
|
"如何在Python中优化内存使用?请结合具体场景说明。"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "请详细解释Python中的装饰器(Decorator)的实现原理,以及如何实现带参数的装饰器和类装饰器。",
|
||||||
|
"follow_ups": [
|
||||||
|
"装饰器的执行时机是什么时候?它如何影响被装饰函数的元数据?",
|
||||||
|
"如何实现一个装饰器,使其能够保留被装饰函数的文档字符串和函数名?",
|
||||||
|
"装饰器链的执行顺序是怎样的?请举例说明。"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "请深入分析Python中的生成器(Generator)和协程(Coroutine)的工作原理,以及它们在异步编程中的应用。",
|
||||||
|
"follow_ups": [
|
||||||
|
"生成器表达式和列表推导式在内存使用上有什么本质区别?请结合big O表示法分析。",
|
||||||
|
"Python 3.5+引入的async/await语法是如何基于生成器实现的?",
|
||||||
|
"如何使用asyncio库实现高效的异步I/O操作?请给出具体示例。"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "请详细解释Python中的面向对象编程高级特性,包括元类(Metaclass)、描述符(Descriptor)和混入(Mixin)。",
|
||||||
|
"follow_ups": [
|
||||||
|
"元类的作用是什么?如何使用元类控制类的创建过程?",
|
||||||
|
"描述符协议的三个方法(__get__, __set__, __delete__)是如何工作的?请实现一个自定义描述符。",
|
||||||
|
"Mixin模式在Python中的应用场景是什么?如何避免Mixin带来的方法名冲突问题?"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"answers": [
|
||||||
|
"j",
|
||||||
|
"j",
|
||||||
|
"1",
|
||||||
|
"1",
|
||||||
|
"1",
|
||||||
|
"1",
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"scores": [
|
||||||
|
"一般",
|
||||||
|
"需要改进",
|
||||||
|
"一般",
|
||||||
|
"良好",
|
||||||
|
"需要改进",
|
||||||
|
"需要改进",
|
||||||
|
"需要改进"
|
||||||
|
],
|
||||||
|
"interviewers": [
|
||||||
|
"严谨型"
|
||||||
|
],
|
||||||
|
"question_interviewers": [
|
||||||
|
"严谨型",
|
||||||
|
"严谨型",
|
||||||
|
"严谨型",
|
||||||
|
"严谨型",
|
||||||
|
"严谨型",
|
||||||
|
"严谨型",
|
||||||
|
"严谨型"
|
||||||
|
],
|
||||||
|
"answer_timestamps": [
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"start_time": "14:04:04",
|
||||||
|
"end_time": "14:04:09"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"start_time": "14:04:04",
|
||||||
|
"end_time": "14:04:12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"start_time": "14:04:12",
|
||||||
|
"end_time": "14:04:16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 2,
|
||||||
|
"start_time": "14:04:16",
|
||||||
|
"end_time": "14:04:19"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"start_time": "14:04:19",
|
||||||
|
"end_time": "14:04:21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"start_time": "14:04:19",
|
||||||
|
"end_time": "14:04:22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 4,
|
||||||
|
"start_time": "14:04:22",
|
||||||
|
"end_time": "14:04:24"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"answer_durations": [
|
||||||
|
5.135361,
|
||||||
|
7.764845,
|
||||||
|
4.06968,
|
||||||
|
3.048585,
|
||||||
|
1.221883,
|
||||||
|
2.614996,
|
||||||
|
1.84018
|
||||||
|
],
|
||||||
|
"answer_changes": [
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 2,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 4,
|
||||||
|
"changes": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
165
interview_history/20260107_140624_财务.json
Normal file
165
interview_history/20260107_140624_财务.json
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
{
|
||||||
|
"timestamp": "2026-01-07 14:06:24",
|
||||||
|
"job_position": "财务",
|
||||||
|
"questions": [
|
||||||
|
{
|
||||||
|
"main_question": "请解释什么是财务报表?它包括哪些主要组成部分?",
|
||||||
|
"follow_ups": [
|
||||||
|
"如何分析财务报表来评估企业的财务状况?",
|
||||||
|
"财务报表中的哪些指标对投资者最为重要?",
|
||||||
|
"如何识别财务报表中的异常情况?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "什么是预算管理?如何制定和执行有效的预算?",
|
||||||
|
"follow_ups": [
|
||||||
|
"预算编制的流程是怎样的?",
|
||||||
|
"如何监控预算执行情况并进行调整?",
|
||||||
|
"在预算管理中,你遇到过哪些挑战?如何克服的?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "请解释什么是成本核算?它在企业管理中的作用是什么?",
|
||||||
|
"follow_ups": [
|
||||||
|
"你熟悉哪些成本核算方法?它们各自适用于什么场景?",
|
||||||
|
"如何通过成本核算来优化企业的成本结构?",
|
||||||
|
"如何处理间接成本的分配问题?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "什么是内部控制?如何建立有效的内部控制体系?",
|
||||||
|
"follow_ups": [
|
||||||
|
"内部控制的目标是什么?",
|
||||||
|
"如何评估内部控制的有效性?",
|
||||||
|
"在内部控制方面,你有什么经验或案例?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main_question": "请解释什么是税务筹划?它与逃税有什么区别?",
|
||||||
|
"follow_ups": [
|
||||||
|
"税务筹划的基本原则是什么?",
|
||||||
|
"如何在合法合规的前提下进行税务筹划?",
|
||||||
|
"你熟悉哪些常见的税务筹划方法?"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"answers": [
|
||||||
|
"b\n",
|
||||||
|
"j",
|
||||||
|
"j",
|
||||||
|
"e",
|
||||||
|
"e",
|
||||||
|
"j",
|
||||||
|
"j",
|
||||||
|
"fg"
|
||||||
|
],
|
||||||
|
"scores": [
|
||||||
|
"良好",
|
||||||
|
"需要改进",
|
||||||
|
"需要改进",
|
||||||
|
"需要改进",
|
||||||
|
"需要改进",
|
||||||
|
"一般",
|
||||||
|
"需要改进",
|
||||||
|
"一般"
|
||||||
|
],
|
||||||
|
"interviewers": [
|
||||||
|
"压力型"
|
||||||
|
],
|
||||||
|
"question_interviewers": [
|
||||||
|
"压力型",
|
||||||
|
"压力型",
|
||||||
|
"压力型",
|
||||||
|
"压力型",
|
||||||
|
"压力型",
|
||||||
|
"压力型",
|
||||||
|
"压力型",
|
||||||
|
"压力型"
|
||||||
|
],
|
||||||
|
"answer_timestamps": [
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"start_time": "14:05:52",
|
||||||
|
"end_time": "14:06:01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"start_time": "14:06:01",
|
||||||
|
"end_time": "14:06:07"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"start_time": "14:06:01",
|
||||||
|
"end_time": "14:06:13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 2,
|
||||||
|
"start_time": "14:06:13",
|
||||||
|
"end_time": "14:06:16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 2,
|
||||||
|
"start_time": "14:06:13",
|
||||||
|
"end_time": "14:06:18"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"start_time": "14:06:18",
|
||||||
|
"end_time": "14:06:21"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"start_time": "14:06:18",
|
||||||
|
"end_time": "14:06:22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 4,
|
||||||
|
"start_time": "14:06:22",
|
||||||
|
"end_time": "14:06:24"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"answer_durations": [
|
||||||
|
9.308703,
|
||||||
|
5.804389,
|
||||||
|
12.445434,
|
||||||
|
2.173485,
|
||||||
|
4.579575,
|
||||||
|
2.529053,
|
||||||
|
4.259709,
|
||||||
|
1.818269
|
||||||
|
],
|
||||||
|
"answer_changes": [
|
||||||
|
{
|
||||||
|
"question_index": 0,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 1,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 2,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 2,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 3,
|
||||||
|
"changes": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_index": 4,
|
||||||
|
"changes": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
9
pyproject.toml
Normal file
9
pyproject.toml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[project]
|
||||||
|
name = "ai-interview-assistant"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "AI面试助手 - 模拟真实面试场景的智能面试工具"
|
||||||
|
readme = "README.md"
|
||||||
|
requires-python = ">=3.10"
|
||||||
|
dependencies = [
|
||||||
|
"streamlit>=1.30.0"
|
||||||
|
]
|
||||||
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
streamlit>=1.30.0
|
||||||
BIN
selectimagetestpanel
Normal file
BIN
selectimagetestpanel
Normal file
Binary file not shown.
60
selectimagetestpanel.manifest
Normal file
60
selectimagetestpanel.manifest
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
5ManifestFileVersion: 0
|
||||||
|
CRC: 4228611898
|
||||||
|
Hashes:
|
||||||
|
AssetFileHash:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 0ddb102c671160339018710d962a6f2c
|
||||||
|
TypeTreeHash:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 530c8b09e9603add61ff67b9c2ec48b4
|
||||||
|
HashAppended: 0
|
||||||
|
ClassTypes:
|
||||||
|
- Class: 1
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 21
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 28
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 48
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 83
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: 11500000, guid: 479ca151e3dd64142b7805bfdd2ae249, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: -2095666955, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: 11500000, guid: b327fb5a45599394785a02280293fd2f, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: 11500000, guid: edebb32c302401743a76bd15723eea42, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: 11500000, guid: 1c87ac6cba904654d9177bfba7d10319, type: 3}
|
||||||
|
- Class: 114
|
||||||
|
Script: {fileID: 11500000, guid: 6e6d577c3c5996f4bb5536a797af6510, type: 3}
|
||||||
|
- Class: 115
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 128
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 213
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 222
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
- Class: 224
|
||||||
|
Script: {instanceID: 0}
|
||||||
|
Assets:
|
||||||
|
- Assets/Art/Prefab/Test/SelectImageTestPanel.prefab
|
||||||
|
Dependencies:
|
||||||
|
- /Users/bkdevops/yxs/YXS_Client_2019/pc_qqgame_release/Assets/StreamingAssets/AssetBundles/Windows/aap_gen_share
|
||||||
|
- /Users/bkdevops/yxs/YXS_Client_2019/pc_qqgame_release/Assets/StreamingAssets/AssetBundles/Windows/font/normal
|
||||||
|
- /Users/bkdevops/yxs/YXS_Client_2019/pc_qqgame_release/Assets/StreamingAssets/AssetBundles/Windows/upgrade_common/sounds
|
||||||
|
- /Users/bkdevops/yxs/YXS_Client_2019/pc_qqgame_release/Assets/StreamingAssets/AssetBundles/Windows/upgrade_common/textures
|
||||||
Loading…
Reference in New Issue
Block a user