- Parse C into AST (pycparser)
- Store AST in Neo4j
- Vectorize AST nodes (Ollama embeddings)
- Provide AST context to LLaMA3.2 (Ollama) to convert code to OOP Python
- Streamlit UI for upload/paste, visualize AST, download generated code
- Python 3.10+
- Neo4j running locally or remotely (bolt)
- Ollama installed locally (https://ollama.com)
- Models pulled to Ollama:
ollama pull nomic-embed-textollama pull llama3.2
- Groq API (If Ollama is not installed)
git clone https://github.com/your-username/your-repo.git
cd your-repodocker-compose up --buildThis will:
- Start Neo4j at http://localhost:7474
- Start Streamlit app at http://localhost:8501
docker-compose downTo also remove volumes (
docker-compose down -v- neo4j_data → Stores Neo4j database files (persistent)
- ./outputs → Stores outputs generated by Streamlit app
- Check running containers:
docker ps- Inspect logs for Streamlit app:
docker logs <app-container-id>- Open interactive shell inside app container:
docker exec -it <app-container-id> bash-
Neo4j Browser: http://localhost:7474 (Login with
neo4j / strongpass123) -
Streamlit App: http://localhost:8501
- Replace
GROQ_API_KEYwith your valid key (in Dockerfile, docker-compose.yml, etc).