О проекте
Команда: Cyber VR
Кейс HackAlem.ai: Спецтрек — Казахтелеком
Стадия: Прототип
Задача кейса: Агент, сравнивающий документы оргструктуры до и после реорганизации
Суть
Прототип анализа реорганизации: загружает документы оргструктуры «до» и «после», через OpenAI получает структурированные находки с опорой на цитаты, экспорт PDF/JSON и чат аналитика.
Как устроено
Flask-бэкенд парсит TXT/MD/DOCX/PDF/XLSX в память, режет на сегменты (до 110 сегментов / 40k символов на сторону) и отправляет в OpenAI Responses API (store=False) после согласия пользователя. Находки модели без валидных ID доказательств отбрасываются, цитаты и локаторы берутся из сегментов парсера. Тёмный русскоязычный интерфейс на vanilla JS, опциональный токен доступа.
Ключевые решения
- document parsing and segmentation
- evidence-grounded findings
- evidence ID validation
- OpenAI Responses API
Особенности
Отбрасывание находок модели, не привязанных к ID реальных сегментов документа, как защита от галлюцинаций; единственный коммит загружен в 18:11, после окончания спринта.
Стек
Python · Flask · JavaScript · HTML/CSS · pytest
Модели
OpenAI Responses API
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-09b8f1e9-cyber-vr.
README
README.mdOrgLens · OpenAI Edition
A standalone, server-backed reorganization analysis prototype. Python Flask backend; OpenAI Responses API; Russian dark interface. Import before/after TXT, MD, DOCX, PDF (with extractable text), XLSX or paste text. Get structured evidence-grounded findings, PDF via browser print, JSON export and analyst chat.
MacBook / Windows startup
- Install Python 3.11+.
- Open Terminal in this folder. On Mac, use
python3 -m venv .venv && source .venv/bin/activate; on Windows usepy -m venv .venv && .venv\\Scripts\\activate. python -m pip install -r requirements.txt- Copy
.env.exampleto.env; replace the placeholder with a NEW OpenAI key. Never reuse a key shared in chat. On Mac:cp .env.example .env. python app.pythen openhttp://127.0.0.1:5000.- Run
python -m pytest -qfor offline checks.
Hosting
A static-only chatgpt.site deployment cannot run Python or protect a key itself. Deploy Flask to a backend that supports Python and environment secrets. Configure OPENAI_API_KEY and ORGLENS_ACCESS_TOKEN on the host and proxy both frontend and /api/* to Flask, or connect the static frontend to an HTTPS Flask endpoint (requires updating fetch paths and CORS). Never publish .env. Do not expose upload endpoints publicly without authentication, throttling, privacy review and cost caps; optional token gate in this prototype is a basic demo gate, not production authentication. Flask's built-in server is for local testing, not production.
Privacy and limitations
Original documents are parsed in memory; extracted text is sent to OpenAI with store=False after consent. No persistent file storage is added. The original local-only privacy claim is no longer true. No scanned PDF OCR. Long files are capped at 110 segments / 40k chars per side, with a visible warning; PDFs limited to 75 pages; XLSX to 12 sheets x 1500 rows. Automated analysis is a review aid, not definitive legal or organizational advice. Quotes and locators are from parser-extracted source segments and model-made findings without valid evidence IDs are dropped. Authentication, rate limiting, production file scanning and further access controls are required for external deployment.
Double-click launcher: start_mac.command (Mac), start_windows.bat (Windows). macOS may require granting permission to a downloaded script in Privacy & Security. The initial Mac launch creates .env for editing; launch again after adding your new key.
Авторы коммитов
История коммитов
- 2026-09-23 18:11Add files via uploadmelsbke
Структура репозитория (9 файлов)
README.md app.js app.py index.html requirements.txt start_mac.command start_windows.bat style.css test_app.py
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.