{"id":31698774,"url":"https://github.com/menonsoftware/konexion","last_synced_at":"2026-04-27T16:32:22.430Z","repository":{"id":313643303,"uuid":"1052111649","full_name":"menonsoftware/Konexion","owner":"menonsoftware","description":"A modern web application for AI model inference and chat interactions","archived":false,"fork":false,"pushed_at":"2025-09-07T13:43:55.000Z","size":139,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-07T15:24:49.398Z","etag":null,"topics":["ai","fastapi","groq-api","javascript","ollama-api","python3","svelte","sveltekit"],"latest_commit_sha":null,"homepage":"","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/menonsoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-07T12:33:27.000Z","updated_at":"2025-09-07T13:43:59.000Z","dependencies_parsed_at":"2025-09-07T15:34:56.763Z","dependency_job_id":null,"html_url":"https://github.com/menonsoftware/Konexion","commit_stats":null,"previous_names":["menonsoftware/konexion"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/menonsoftware/Konexion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menonsoftware%2FKonexion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menonsoftware%2FKonexion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menonsoftware%2FKonexion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menonsoftware%2FKonexion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/menonsoftware","download_url":"https://codeload.github.com/menonsoftware/Konexion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/menonsoftware%2FKonexion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000701,"owners_count":26082805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","fastapi","groq-api","javascript","ollama-api","python3","svelte","sveltekit"],"created_at":"2025-10-08T19:10:45.901Z","updated_at":"2025-10-08T19:10:52.680Z","avatar_url":"https://github.com/menonsoftware.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Konexion\n\nA modern web application for AI model inference and chat interactions, providing a unified interface for both cloud-based and local AI models.\n\n## Overview\n\nKonexion is a full-stack web application that enables seamless interaction with multiple AI providers through an intuitive chat interface. The project consists of two main components:\n\n- **Backend (FastAPI)**: Provides API endpoints and WebSocket connections for AI model inference\n- **Frontend (SvelteKit)**: Modern, responsive web interface for chat interactions\n\n## Features\n\n### 🤖 Multi-Provider AI Support\n- **Groq**: Cloud-based AI inference with high-performance models\n- **Ollama**: Local AI model hosting and inference\n- Support for multiple models simultaneously\n\n### 💬 Real-time Chat Interface\n- WebSocket-based streaming responses\n- Modern, responsive UI built with SvelteKit and Tailwind CSS\n- Dark/light mode support\n- Keyboard shortcuts for improved productivity\n\n### 🔧 Developer-Friendly\n- Type-safe configuration management\n- Environment-based setup\n- Comprehensive error handling\n- Hot-reload development mode\n\n### 🚀 Production-Ready\n- CORS configuration for secure deployments\n- Configurable logging\n- Docker support (optional)\n- Scalable architecture\n\n## Architecture\n\n```\n┌─────────────────┐    WebSocket/HTTP   ┌─────────────────┐\n│                 │ ◄─────────────────► │                 │\n│  SvelteKit      │                     │  FastAPI        │\n│  Frontend       │                     │  Backend        │\n│                 │                     │                 │\n└─────────────────┘                     └─────────────────┘\n                                                │\n                                                │ HTTP/API\n                                                ▼\n                                        ┌─────────────────┐\n                                        │   AI Providers  │\n                                        │                 │\n                                        │ ┌─────┐ ┌──────┐│\n                                        │ │Groq │ │Ollama││\n                                        │ └─────┘ └──────┘│\n                                        └─────────────────┘\n```\n\n## Quick Start\n\n### Prerequisites\n- **Node.js**: 18+ (for frontend)\n- **Python**: 3.12+ (for backend)\n- **UV**: Python package manager\n- **pnpm/npm**: Node.js package manager\n\n### 1. Clone the Repository\n```bash\ngit clone \u003crepository-url\u003e\ncd source\n```\n\n### 2. Backend Setup\n```bash\ncd konexion_backend\n\n# Install UV if not already installed\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Create virtual environment and install dependencies\nuv venv --python 3.12\nsource .venv/bin/activate\nuv sync\n\n# Configure environment\ncp example.env .env\n# Edit .env with your configuration\n\n# Start the backend\nuv run main.py\n```\n\n### 3. Frontend Setup\n```bash\ncd ../konexion_frontend\n\n# Install dependencies\nnpm install\n# or\npnpm install\n\n# Start development server\nnpm run dev\n# or\npnpm dev\n```\n\n### 4. Access the Application\n- Frontend: http://localhost:5173\n- Backend API: http://localhost:8000\n- API Documentation: http://localhost:8000/docs\n\n## Project Structure\n\n```\nsource/\n├── konexion_backend/         # FastAPI backend application\n│   ├── main.py               # Application entry point\n|   ├── vision.py             # Complete vision processing module\n│   ├── config.py             # Configuration management\n│   ├── pyproject.toml        # Python dependencies\n│   ├── ai_models/            # AI provider implementations\n│   │   ├── groq.py           # Groq integration\n│   │   └── ollama.py         # Ollama integration\n│   └── models/               # Data models and schemas\n│\n├── konexion_frontend/        # SvelteKit frontend application\n│   ├── src/\n│   │   ├── routes/           # SvelteKit routes\n│   │   ├── lib/              # Shared components and utilities\n│   │   │   ├── components/   # Svelte components\n│   │   │   ├── api.js        # API client\n│   │   │   ├── websocket.js  # WebSocket management\n│   │   │   └── stores.js     # Svelte stores\n│   │   └── app.html          # HTML template\n│   ├── package.json          # Node.js dependencies\n│   └── vite.config.js        # Vite configuration\n│\n└── README.md                 # This file\n```\n\n## Configuration\n\n### Backend Configuration\nThe backend uses environment variables for configuration. See `konexion_backend/example.env` for all available options:\n\n- **AI Provider Keys**: Configure API keys for Groq and URLs for Ollama\n- **Server Settings**: Host, port, CORS origins\n- **Development**: Debug mode, auto-reload, logging levels\n\n### Frontend Configuration\nThe frontend automatically connects to the backend API. Configuration can be adjusted in:\n- `vite.config.js`: Vite and build settings\n- `svelte.config.js`: SvelteKit configuration\n- `tailwind.config.js`: Tailwind CSS customization\n\n## Development\n\n### Backend Development\n```bash\ncd konexion_backend\n\n# Activate virtual environment\nsource .venv/bin/activate\n\n# Run with auto-reload\nuv run main.py\n\n# Run tests (if available)\n# uv run pytest\n```\n\n### Frontend Development\n```bash\ncd konexion_frontend\n\n# Start development server with hot-reload\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Preview production build\nnpm run preview\n\n# Lint and format\nnpm run lint\nnpm run format\n```\n\n### Adding New AI Providers\n1. Create a new module in `konexion_backend/ai_models/`\n2. Implement the required interface methods\n3. Add configuration variables in `config.py`\n4. Register the provider in `main.py`\n5. Update frontend to handle the new provider\n\n## Deployment\n\n### Production Build\n```bash\n# Backend\ncd konexion_backend\nuv sync --no-dev\n\n# Frontend\ncd konexion_frontend\nnpm run build\n```\n\n### Pre-commit hooks\n\n# Daily development (lenient)\nmake pre-commit\n\n# Production/CI (strict)\nmake pre-commit-strict\n\n# Format code\nmake format\n\n# Manual linting\nmake lint\n\n### Environment Variables\nEnsure all required environment variables are set in production:\n- AI provider API keys\n- Server configuration\n- CORS origins for your domain\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Test thoroughly\n5. Commit your changes (`git commit -m 'Add amazing feature'`)\n6. Push to the branch (`git push origin feature/amazing-feature`)\n7. Open a Pull Request\n\n### Development Guidelines\n- Follow Python PEP 8 for backend code\n- Use Prettier for frontend code formatting\n- Write meaningful commit messages\n- Add tests for new features\n- Update documentation as needed\n\n## Troubleshooting\n\n### Common Issues\n1. **Backend not starting**: Check Python version and environment variables\n2. **Frontend connection errors**: Ensure backend is running on correct port\n3. **AI model errors**: Verify API keys and service URLs\n4. **CORS errors**: Add frontend URL to backend CORS origins\n\n### Getting Help\n- Check the individual README files in each component folder\n- Review the API documentation at `/docs` endpoint\n- Check application logs for error details\n\n## Roadmap\n\n- [ ] Image and attachment support - WIP\n- [ ] User authentication and sessions\n- [ ] Chat history persistence\n- [ ] Multi-user support\n- [ ] Docker containerization\n- [ ] Additional AI provider integrations\n\n## License\n\nMIT License\n\nCopyright (c) 2025 Konexion Project\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenonsoftware%2Fkonexion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmenonsoftware%2Fkonexion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenonsoftware%2Fkonexion/lists"}