{"id":26645232,"url":"https://github.com/kolman-freecss/kf-rag-wowinfo","last_synced_at":"2026-04-12T17:06:59.746Z","repository":{"id":282295631,"uuid":"948102520","full_name":"Kolman-Freecss/kf-rag-wowinfo","owner":"Kolman-Freecss","description":"AI RAG | FastAPI | Python | Vector DB | docker","archived":false,"fork":false,"pushed_at":"2025-03-13T22:46:24.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T21:40:31.365Z","etag":null,"topics":["ai","docker","fastapi","python","rag"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kolman-Freecss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-03-13T18:51:24.000Z","updated_at":"2025-03-13T22:47:37.000Z","dependencies_parsed_at":"2025-03-13T20:41:22.332Z","dependency_job_id":null,"html_url":"https://github.com/Kolman-Freecss/kf-rag-wowinfo","commit_stats":null,"previous_names":["kolman-freecss/kf-rag-wowinfo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Kolman-Freecss/kf-rag-wowinfo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kolman-Freecss%2Fkf-rag-wowinfo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kolman-Freecss%2Fkf-rag-wowinfo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kolman-Freecss%2Fkf-rag-wowinfo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kolman-Freecss%2Fkf-rag-wowinfo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kolman-Freecss","download_url":"https://codeload.github.com/Kolman-Freecss/kf-rag-wowinfo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kolman-Freecss%2Fkf-rag-wowinfo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265645383,"owners_count":23804183,"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","docker","fastapi","python","rag"],"created_at":"2025-03-24T21:38:38.987Z","updated_at":"2026-04-12T17:06:59.701Z","avatar_url":"https://github.com/Kolman-Freecss.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KF RAG WoW Information\n\nA Retrieval-Augmented Generation (RAG) application for World of Warcraft information. This project enhances large language model responses with accurate and up-to-date WoW game information.\n\n## Overview\n\nThis application uses RAG architecture to:\n- Index and store World of Warcraft information in a vector database (ChromaDB)\n- Retrieve relevant context based on user queries\n- Generate accurate responses by augmenting LLM (Gemini) with retrieved information\n- Provide specific, factual answers about WoW lore, mechanics, classes, raids, etc.\n\n## Technology Stack\n\n- Python\n- ChromaDB for vector storage\n- Google Gemini API\n- Docker \u0026 Docker Compose\n- LangChain for RAG implementation\n\n## Setup\n\n1.  Install Docker and Docker Compose.\n2.  Clone this repository.\n3.  Create a `.env` file in the root directory with the `GEMINI_API_KEY` environment variable. You can use the `.env.template` file as a template.\n4.  Run `docker-compose up --build` to start the ChromaDB and RAG application.\n\n## Usage\n\n1.  Run `docker-compose up --build` to start the ChromaDB and RAG application.\n2.  Access the API endpoints:\n    *   `/query`:  Send a GET request to `http://localhost:8000/query?query=\u003cyour_question\u003e\u0026num_results=\u003cnumber_of_results\u003e\u0026creativity=\u003ccreativity_value\u003e` to ask a question about World of Warcraft.\n        *   `num_results`: (optional) The number of search results to retrieve (default: 5).\n        *   `creativity`: (optional) The creativity of the response (0.0-1.0) (default: 0.5).\n    *   `/feedback`: Send a POST request to `http://localhost:8000/feedback` with `query_id` and `feedback` in the request body to provide feedback on the answers.\n    *   `/load_data`: Send a POST request to `http://localhost:8000/load_data` to reload the data from the CSV file into the ChromaDB collection.\n\n## API Endpoints\n\n* `/query`: Send a GET request to `http://localhost:8000/query?query=\u003cyour_question\u003e\u0026num_results=\u003cnumber_of_results\u003e\u0026creativity=\u003ccreativity_value\u003e\u0026max_length=\u003cmax_length\u003e\u0026response_format=\u003cresponse_format\u003e\u0026additional_context=\u003cadditional_context\u003e` to ask a question about World of Warcraft.\n    * `query`: (required) The question to ask.\n    * `num_results`: (optional) The number of search results to retrieve (default: 5).\n    * `creativity`: (optional) The creativity of the response (0.0-1.0) (default: 0.5).\n    * `max_length`: (optional) The maximum length of the response.\n    * `response_format`: (optional) The format of the response.\n    * `additional_context`: (optional) Additional context to provide to the model.\n* `/feedback`: Send a POST request to `http://localhost:8000/feedback` with `query_id` and `feedback` in the request body to provide feedback on the answers.\n* `/summarize`: Send a POST request to `http://localhost:8000/summarize` with `document_id`, `document_text`, `urls`, `summary_length`, and `summary_style` in the request body to summarize a document.\n    * `document_id`: (optional) The ID of the document to summarize.\n    * `document_text`: (optional) The text of the document to summarize.\n    * `urls`: (optional) A list of URLs to summarize.\n    * `summary_length`: (optional) The length of the summary (default: medium).\n    * `summary_style`: (optional) The style of the summary (default: general).\n* `/compare`: Send a POST request to `http://localhost:8000/compare` with `document1_id`, `document1_text`, `document2_id`, and `document2_text` in the request body to compare two documents.\n    * `document1_id`: (optional) The ID of the first document to compare.\n    * `document1_text`: (optional) The text of the first document to compare.\n    * `document2_id`: (optional) The ID of the second document to compare.\n    * `document2_text`: (optional) The text of the second document to compare.\n* `/translate`: Send a POST request to `http://localhost:8000/translate` with `text` and `target_language` in the request body to translate a text.\n    * `text`: (required) The text to translate.\n    * `target_language`: (required) The target language.\n* `/multi_turn`: Send a POST request to `http://localhost:8000/multi_turn` with `query` and `session_id` in the request body to handle multi-turn conversations.\n    * `query`: (required) The question to ask.\n    * `session_id`: (required) The session ID.\n* `/new_session`: Send a GET request to `http://localhost:8000/new_session` to create a new session ID for multi-turn conversations.\n* `/generate_questions`: Send a POST request to `http://localhost:8000/generate_questions` with `document_id`, `document_text`, and `num_questions` in the request body to generate questions based on a document.\n    * `document_id`: (optional) The ID of the document to generate questions from.\n    * `document_text`: (optional) The text of the document to generate questions from.\n    * `num_questions`: (optional) The number of questions to generate (default: 5).\n* `/paraphrase`: Send a POST request to `http://localhost:8000/paraphrase` with `text` in the request body to paraphrase a text.\n    * `text`: (required) The text to paraphrase.\n* `/extract_entities`: Send a POST request to `http://localhost:8000/extract_entities` with `text` in the request body to extract entities from a text.\n    * `text`: (required) The text to extract entities from.\n* `/admin/add_document`: Send a POST request to `http://localhost:8000/admin/add_document` with `document`, `metadata`, and `doc_id` in the request body to add a document to the knowledge base. Requires authentication.\n    * `document`: (required) The document to add.\n    * `metadata`: (required) The metadata of the document.\n    * `doc_id`: (required) The ID of the document.\n* `/admin/update_document`: Send a POST request to `http://localhost:8000/admin/update_document` with `doc_id`, `document`, and `metadata` in the request body to update a document in the knowledge base. Requires authentication.\n    * `doc_id`: (required) The ID of the document to update.\n    * `document`: (optional) The updated document.\n    * `metadata`: (optional) The updated metadata.\n* `/admin/delete_document`: Send a DELETE request to `http://localhost:8000/admin/delete_document?doc_id=\u003cdoc_id\u003e` to delete a document from the knowledge base. Requires authentication.\n    * `doc_id`: (required) The ID of the document to delete.\n* `/admin/reload_data`: Send a POST request to `http://localhost:8000/admin/reload_data` to reload the data from the CSV file into the ChromaDB collection. Requires authentication.\n\n## Docs\n\n- https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models?hl=es-419\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkolman-freecss%2Fkf-rag-wowinfo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkolman-freecss%2Fkf-rag-wowinfo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkolman-freecss%2Fkf-rag-wowinfo/lists"}