{"id":25739522,"url":"https://github.com/rcdmk/go-rag-search","last_synced_at":"2026-05-08T19:33:10.908Z","repository":{"id":279513699,"uuid":"938878890","full_name":"rcdmk/go-rag-search","owner":"rcdmk","description":"A PoC of RAG (Retrieval Augmented Generation) using pgvector with llama","archived":false,"fork":false,"pushed_at":"2025-03-06T01:56:06.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-10T19:55:40.244Z","etag":null,"topics":["llama3","pgvector","rag"],"latest_commit_sha":null,"homepage":"","language":"Go","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/rcdmk.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-25T16:38:11.000Z","updated_at":"2025-03-06T01:56:09.000Z","dependencies_parsed_at":"2025-02-26T00:28:56.989Z","dependency_job_id":"455b961c-a972-4e0e-9900-ba4930c6f755","html_url":"https://github.com/rcdmk/go-rag-search","commit_stats":null,"previous_names":["rcdmk/go-rag-search"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rcdmk/go-rag-search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcdmk%2Fgo-rag-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcdmk%2Fgo-rag-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcdmk%2Fgo-rag-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcdmk%2Fgo-rag-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcdmk","download_url":"https://codeload.github.com/rcdmk/go-rag-search/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcdmk%2Fgo-rag-search/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32794701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["llama3","pgvector","rag"],"created_at":"2025-02-26T08:19:50.235Z","updated_at":"2026-05-08T19:33:10.893Z","avatar_url":"https://github.com/rcdmk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-rag-search\n\nA RAG (Retrieval Augmented Generation) exploratory project on how to load data from an external source to augment an LLM result.\nThis is a PoC to load data from an online source like Confluence in order to help answer questions about internal documentation.\n\n## Prerequisites\n\n1. [Go 1.20+](https://go.dev/dl/)\n2. [Docker](https://www.docker.com/)\n\n### Local prerequisites\n\nIf you wish to make full use of the machine resources, the best option is to run the app locally, using a locally running Ollama server.\nIn that case, the prerequisites would be:\n\n1. [Go 1.20+](https://go.dev/dl/)\n2. [Ollama 0.5+](https://ollama.com/download) with llama 3.2\n3. [Postgres 15+](https://www.postgresql.org/download/)\n\n## How to run it\n\n### Docker Compose\n\nMake sure you update the `CONFLUENCE_API_KEY` and `CONFLUENCE_USERNAME` environament variables in the `.env` file before running `docker-compose`.\n\nTo run the complete suite, navigate to the repository root and run:\n\n```sh\ndocker-compose up\n```\n\nThat will spin up a Postgres container tweaked for pgvector store, an Ollama container with llama3.2, and will also run the application once the database is ready.\n\n### Running locally\n\nTo run it locally, outside of the container, it is possible to use an already existing Postgres instance or run the database container and connect to it:\n\n```sh\ndocker-compose up pgvector -d # use this if you don't have a pgvector instance\n\nexport LLAMA_HOST=localhost\nexport PG_HOST=localhost\nexport PG_USER=postgres\nexport PG_PASSWORD=postgres\nexport PG_DB=postgres\n\nexport CONFLUENCE_API_KEY=your-super-secret-key\nexport CONFLUENCE_USERNAME=john.doe@acme.com\n\ngo run . -load\n```\n\n## Loading data\n\nThe docker image for the app always loads the data from the remote source, but if you are running it locally, you just need to run with the `-local` flag for the first time. Next runs can run a lot faster without that, as the data would be already loaded into the database.\n\n## Environment Variables\n\nMake sure to set the following environment variables before running the application:\n\n- `LLAMA_HOST`: The host address for the Ollama server.\n- `PG_HOST`: The host address for the Postgres database.\n- `PG_USER`: The username for the Postgres database.\n- `PG_PASSWORD`: The password for the Postgres database.\n- `PG_DB`: The database name for the Postgres database.\n- `CONFLUENCE_API_KEY`: Your Confluence/Atlassian API key/token.\n- `CONFLUENCE_USERNAME`: Your Confluence/Atlassian username/email address\n\n## Troubleshooting\n\nIf you encounter any issues, ensure that all prerequisites are installed and properly configured. Check the logs for any error messages and verify that all services are running correctly.\n\nMost common issues are related to not enough memory allocated by the docker daemon (eg. by default Docker desktop allocates half of the available memory). Make sure you have at least 3.5 GB available for the Ollama container.\n\nInserting documents into the containeraised pgvector can be painfully slow, so you may have to adjust the timeout setting in the `main.go` file depending on the amount of data you load.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcdmk%2Fgo-rag-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcdmk%2Fgo-rag-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcdmk%2Fgo-rag-search/lists"}