{"id":1130,"date":"2025-10-25T18:20:53","date_gmt":"2025-10-25T17:20:53","guid":{"rendered":"https:\/\/www.kolkataonweb.com\/code-bank\/?p=1130"},"modified":"2025-10-23T12:24:36","modified_gmt":"2025-10-23T11:24:36","slug":"a-simple-example-of-rag","status":"publish","type":"post","link":"https:\/\/www.kolkataonweb.com\/code-bank\/ai\/a-simple-example-of-rag\/","title":{"rendered":"A simple example of RAG"},"content":{"rendered":"<pre class='wp-code-highlight prettyprint'>import ollama\r\nimport chromadb\r\n\r\n# Sample documents\r\ndocuments = [\r\n    \"Llamas are members of the camelid family meaning they're pretty closely related to vicu\u00f1as and camels\",\r\n    \"Llamas were first domesticated and used as pack animals 4,000 to 5,000 years ago in the Peruvian highlands\",\r\n    \"Llamas can grow as much as 6 feet tall though the average llama between 5 feet 6 inches and 5 feet 9 inches tall\",\r\n]\r\n\r\n# Set up ChromaDB\r\nclient = chromadb.Client()\r\n# \u2705 Fix: Use get_or_create_collection to avoid errors on re-runs\r\ncollection = client.get_or_create_collection(name=\"llama_docs\")\r\n\r\n# \u2705 Fix: Embed documents one at a time\r\ntry:\r\n    embeddings = []\r\n    for doc in documents:\r\n        response = ollama.embeddings(model=\"all-minilm\", prompt=doc)\r\n        embeddings.append(response['embedding'])  # Note: 'embedding' (singular)\r\n    \r\n    print(f\"Generated {len(embeddings)} embeddings\")\r\n    \r\n    collection.add(\r\n        ids=[str(i) for i in range(len(documents))],\r\n        embeddings=embeddings,\r\n        documents=documents\r\n    )\r\n    print(\"Documents added to collection\")\r\nexcept Exception as e:\r\n    print(f\"Error embedding documents: {e}\")\r\n    exit()\r\n\r\n# Query\r\n#query = \"What animals are llamas related to?\"\r\nquery = \"size of llamas?\"\r\ntry:\r\n    query_response = ollama.embeddings(model=\"all-minilm\", prompt=query)\r\n    print(f\"Query embedding generated\")\r\n    \r\n    results = collection.query(\r\n        query_embeddings=[query_response['embedding']],\r\n        n_results=2\r\n    )\r\n    relevant_doc = results['documents'][0][0]\r\n    print(f\"Relevant document: {results}\")\r\nexcept Exception as e:\r\n    print(f\"Error querying: {e}\")\r\n    exit()\r\n\r\n# Generate response with gemma\r\nprompt = f\"Using this data: {relevant_doc}. Respond to: {query}\"\r\ntry:\r\n    # \u2705 Fix: Check your available models (might be gemma2:12b or gemma:7b)\r\n    output = ollama.generate(model=\"gemma3:12b\", prompt=prompt)\r\n    print(f\"\\nGenerated response:\\n{output['response']}\")\r\nexcept Exception as e:\r\n    print(f\"Error generating response: {e}\")\r\n    # Try alternative model name\r\n    print(\"Trying alternative model name...\")\r\n    try:\r\n        output = ollama.generate(model=\"llama2-uncensored:7b\", prompt=prompt)\r\n        print(f\"\\nGenerated response:\\n{output['response']}\")\r\n    except Exception as e2:\r\n        print(f\"Error with alternative model: {e2}\")\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>import ollama import chromadb # Sample documents documents = [ &#8220;Llamas are members of the camelid family meaning they&#8217;re pretty closely related to vicu\u00f1as and camels&#8221;, &#8220;Llamas were first domesticated and used as pack animals 4,000 to 5,000 years ago in the Peruvian highlands&#8221;, &#8220;Llamas can grow as much as 6 feet tall though the&hellip; <a class=\"more-link\" href=\"https:\/\/www.kolkataonweb.com\/code-bank\/ai\/a-simple-example-of-rag\/\">Continue reading <span class=\"screen-reader-text\">A simple example of RAG<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[424],"tags":[],"class_list":["post-1130","post","type-post","status-publish","format-standard","hentry","category-ai","entry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/1130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/comments?post=1130"}],"version-history":[{"count":3,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/1130\/revisions"}],"predecessor-version":[{"id":1135,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/posts\/1130\/revisions\/1135"}],"wp:attachment":[{"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/media?parent=1130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/categories?post=1130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolkataonweb.com\/code-bank\/wp-json\/wp\/v2\/tags?post=1130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}