Codync
무료 오픈소스 1:1 대안, Grok Bot과 Muse 대신
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗API + frontend para simular circuitos cuánticos con Qiskit, servida con FastAPI en
Vercel y con historial de ejecuciones en PostgreSQL (SQL plano con psycopg, sin ORM).
Producción: https://quantum-iota-ashen.vercel.app
main.py # entrypoint de Vercel (exporta `app`)
quantum_app/
api.py # rutas FastAPI (/api/...)
circuits.py # circuitos Qiskit + simulación (StatevectorSampler)
crud.py # CRUD en SQL plano sobre circuit_runs
db.py # conexión psycopg (una por request, apta para serverless)
config.py # settings desde env / .env
migrations/*.sql # migraciones SQL, aplicadas en orden
scripts/migrate.py # runner de migraciones (tabla schema_migrations)
public/index.html # frontend estático (CDN de Vercel)
tests/ # pytest
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/health | Estado de la API y de la BD |
| GET | /api/maze | Genera un laberinto (algorithm=binary_tree|backtracker, width, height, braid 0–1, seed) |
| POST | /api/bot/play | Entrena el bot de Q-learning (bot.py/agent.py) en {"grid": ...} (máx. 31×31) y devuelve 4 intentos de escape con la tabla Q al 10%, 30%, 60% y 100% del entrenamiento |
| GET | /api/circuits | Circuitos disponibles (bell, ghz, superposition) |
| POST | /api/circuits/run | Ejecuta un circuito y (opcional) lo guarda |
| GET | /api/runs | Lista ejecuciones (limit, offset) |
| GET | /api/runs/{id} | Detalle de una ejecución |
| PATCH | /api/runs/{id} | Cambia la etiqueta |
| DELETE | /api/runs/{id} | Borra la ejecución |
Docs interactivas en /api/docs.
curl -X POST localhost:8000/api/circuits/run \
-H 'content-type: application/json' \
-d '{"circuit": "ghz", "num_qubits": 3, "shots": 1024, "label": "prueba"}'
Requisitos: uv y PostgreSQL.
uv sync # crea .venv con Python 3.12
cp .env.example .env # ajusta DATABASE_URL
# Base de datos local (una sola vez)
sudo -u postgres psql -c "CREATE ROLE quantum LOGIN PASSWORD 'quantum';"
sudo -u postgres createdb -O quantum quantum
sudo -u postgres createdb -O quantum quantum_test
uv run python scripts/migrate.py # aplica migrations/*.sql
uv run uvicorn main:app --reload # http://localhost:8000
Sin DATABASE_URL la API sigue funcionando: simula circuitos pero no guarda historial
(/api/runs responde 503).
uv run pytest # los tests de BD se saltan si no hay TEST_DATABASE_URL
uv run ruff check . && uv run ruff format --check .
TEST_DATABASE_URL debe apuntar a una base desechable: los tests hacen TRUNCATE.
Añade un archivo nuevo migrations/NNN_descripcion.sql (numeración creciente) y ejecuta
uv run python scripts/migrate.py [DATABASE_URL]. Las ya aplicadas quedan registradas en
schema_migrations y no se repiten.
main. El workflow .github/workflows/ci.yml corre ruff y
pytest (con un Postgres de servicio) en cada push/PR.pyproject.toml/uv.lock y main.py; no hace falta vercel.json. Cada push a main
despliega a producción y cada PR genera un preview.DATABASE_URL (conexión pooled).vercel env pull .env.production.local # o copia DATABASE_URL desde el dashboard
uv run python scripts/migrate.py "<DATABASE_URL de producción>"
Notas:
.vercelignore excluye tests, scripts y migraciones.MAX_QUBITS (12) y MAX_SHOTS (10000) evitan
timeouts de la función.