{"id":24472431,"url":"https://github.com/sofyan48/ochabot","last_synced_at":"2025-10-08T16:49:49.300Z","repository":{"id":271989614,"uuid":"915197734","full_name":"sofyan48/ochabot","owner":"sofyan48","description":"Rag Tools for Retrieval QA","archived":false,"fork":false,"pushed_at":"2025-02-15T14:41:15.000Z","size":278,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T19:09:58.122Z","etag":null,"topics":["ai","bot","fastapi","groq","langchain","langchain-python","mistral","model","ocha","openai","rag","retrieval"],"latest_commit_sha":null,"homepage":"https://ocha.iank.me/docs","language":"Python","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/sofyan48.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/code_of_conduct.md","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}},"created_at":"2025-01-11T08:10:16.000Z","updated_at":"2025-02-15T14:41:19.000Z","dependencies_parsed_at":"2025-02-04T10:25:49.362Z","dependency_job_id":"2c88690e-45a5-47fe-9fa0-6527c44ff1fe","html_url":"https://github.com/sofyan48/ochabot","commit_stats":null,"previous_names":["sofyan48/ochabot"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fochabot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fochabot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fochabot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fochabot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sofyan48","download_url":"https://codeload.github.com/sofyan48/ochabot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248637221,"owners_count":21137531,"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","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","bot","fastapi","groq","langchain","langchain-python","mistral","model","ocha","openai","rag","retrieval"],"created_at":"2025-01-21T08:12:18.378Z","updated_at":"2025-10-08T16:49:44.252Z","avatar_url":"https://github.com/sofyan48.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OCHABOT GPT OR RAG (RTFM)\n[![OCHABOT Push to Registry](https://github.com/sofyan48/ochabot/actions/workflows/production.yml/badge.svg)](https://github.com/sofyan48/ochabot/actions/workflows/production.yml)\n\n## Description\nthis project used on my profile page: [iank.me](https://iank.me).\nBased on mistral AI, OpenAI, Groq, langchain and chroma vector database, I'm still learning, and this is my first project in AI\n\n## Platform Support\n### AI Platform\n- OpenAI\n- MistralAI\n- Groq\n- Deepseek\n- Ollama\n\n### Embedding\n- Huggingface\n- Mistral\n- Nvidia\n\n## Requirements\n### Databse\n- Redis (LLM Cache and setup)\n- Postgree (History)\n- ChromaDB (Vector Database)\n- Elasticsearch (Vector Database)\n  \n### Storage\n- Minio\n\n## How To Run\nRunning via poetry and activate virtualenvironment\n```\npoetry env activate\n```\nRun the serve\n```\npoetry run http serve\n```\nor\n```\npython main.py serve\n```\n\n## Dependency\n```\ndocker compose up\n```\n\n## Install Requirement\n```\npoetry install\n```\n\n## Environment Setup\n```\ncp env.example .env\n```\nplease setup APP_ENVIRONTMENT to local if you setup on development mode\n\n## Migration\nIm using alembic migration via poetry custom command\n```\npoetry run db:migrate create \"your table name\"\n```\nup migration\n```\npoetry run db:migrate up\n```\ndowngrade migration\n```\npoetry run db:migrate down \"your revision\"\n```\n\n## Swagger\n```\nhttp://localhost:8081/docs\n```\n\n## Default User\n```\nusername: admin\npassword: admin\n```\n\n## Socket\nurl:\n```\nlocalhost:8081/ex/v1/chat/ws/{client_id}\n```\npayload:\n```\n{\n    \"chat\": \"hello\",\n    \"collection\": \"ocha_v2\",\n    \"llm\": \"openai\", // optional\n    \"model\": \"gpt-4o-mini\" // optional\n}\n```\n\n## Structured Diagram\n```mermaid\ngraph TB\n    User((External User))\n    \n    subgraph \"Ochabot System\"\n        subgraph \"API Layer\"\n            FastAPI[\"API Server\u003cbr\u003e(FastAPI)\"]\n            Router[\"Router\u003cbr\u003e(FastAPI Router)\"]\n            WebSocket[\"WebSocket Handler\u003cbr\u003e(FastAPI WebSocket)\"]\n            \n            subgraph \"API Components\"\n                ChatHandler[\"Chat Handler\u003cbr\u003e(Python)\"]\n                UserHandler[\"User Handler\u003cbr\u003e(Python)\"]\n                IngestHandler[\"Ingest Handler\u003cbr\u003e(Python)\"]\n                PromptHandler[\"Prompt Handler\u003cbr\u003e(Python)\"]\n                SetupHandler[\"Setup Handler\u003cbr\u003e(Python)\"]\n                ClientHandler[\"Client Handler\u003cbr\u003e(Python)\"]\n                LoginHandler[\"Login Handler\u003cbr\u003e(Python)\"]\n            end\n        end\n\n        subgraph \"LLM Services\"\n            LLMWrapper[\"LLM Wrapper\u003cbr\u003e(Python)\"]\n            \n            subgraph \"LLM Providers\"\n                OpenAI[\"OpenAI Service\u003cbr\u003e(OpenAI API)\"]\n                Mistral[\"Mistral Service\u003cbr\u003e(Mistral API)\"]\n                Groq[\"Groq Service\u003cbr\u003e(Groq API)\"]\n                DeepSeek[\"DeepSeek Service\u003cbr\u003e(DeepSeek API)\"]\n                Ollama[\"Ollama Service\u003cbr\u003e(Ollama API)\"]\n            end\n        end\n\n        subgraph \"Data Storage\"\n            PostgreSQL[(\"PostgreSQL\u003cbr\u003e(Primary Database)\")]\n            Redis[(\"Redis\u003cbr\u003e(Cache)\")]\n            MinIO[(\"MinIO\u003cbr\u003e(Object Storage)\")]\n            ChromaDB[(\"ChromaDB\u003cbr\u003e(Vector Store)\")]\n        end\n\n        subgraph \"Core Services\"\n            DatabaseService[\"Database Service\u003cbr\u003e(SQLAlchemy)\"]\n            VectorService[\"Vector Store Service\u003cbr\u003e(LangChain)\"]\n            CacheService[\"Cache Service\u003cbr\u003e(Redis Stack)\"]\n            StorageService[\"Storage Service\u003cbr\u003e(MinIO)\"]\n        end\n    end\n\n    %% Connections\n    User --\u003e|\"HTTP/WebSocket\"| FastAPI\n    FastAPI --\u003e|\"Routes\"| Router\n    Router --\u003e|\"Handles WebSocket\"| WebSocket\n    \n    %% API Components connections\n    Router --\u003e ChatHandler\n    Router --\u003e UserHandler\n    Router --\u003e IngestHandler\n    Router --\u003e PromptHandler\n    Router --\u003e SetupHandler\n    Router --\u003e ClientHandler\n    Router --\u003e LoginHandler\n\n    %% LLM Service connections\n    ChatHandler --\u003e LLMWrapper\n    LLMWrapper --\u003e OpenAI\n    LLMWrapper --\u003e Mistral\n    LLMWrapper --\u003e Groq\n    LLMWrapper --\u003e DeepSeek\n    LLMWrapper --\u003e Ollama\n\n    %% Data Storage connections\n    DatabaseService --\u003e PostgreSQL\n    CacheService --\u003e Redis\n    StorageService --\u003e MinIO\n    VectorService --\u003e ChromaDB\n\n    %% Service Usage connections\n    ChatHandler --\u003e DatabaseService\n    UserHandler --\u003e DatabaseService\n    IngestHandler --\u003e DatabaseService\n    PromptHandler --\u003e DatabaseService\n    SetupHandler --\u003e DatabaseService\n    ClientHandler --\u003e DatabaseService\n    LoginHandler --\u003e DatabaseService\n\n    ChatHandler --\u003e VectorService\n    IngestHandler --\u003e VectorService\n    \n    ChatHandler --\u003e CacheService\n    UserHandler --\u003e CacheService\n    \n    IngestHandler --\u003e StorageService\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsofyan48%2Fochabot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsofyan48%2Fochabot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsofyan48%2Fochabot/lists"}