### llmware Getting Started Examples Source: https://github.com/llmware-ai/llmware A collection of examples focused on helping users get started with llmware. This section provides foundational code and guidance for initial setup. ```python # Link to example: https://github.com/llmware-ai/llmware/tree/main/examples/Getting_Started ``` -------------------------------- ### Full ChromaDB Example: Setup, Upsert, Query (TypeScript) Source: https://docs.trychroma.com/getting-started A comprehensive TypeScript example showing how to initialize a ChromaDB client, get or create a collection, upsert documents, and then query the collection with a specific text. ```typescript import { ChromaClient } from "chromadb"; const client = new ChromaClient(); // switch `createCollection` to `getOrCreateCollection` to avoid creating a new collection every time const collection = await client.getOrCreateCollection({ name: "my_collection", }); // switch `addRecords` to `upsertRecords` to avoid adding the same documents every time await collection.upsert({ documents: [ "This is a document about pineapple", "This is a document about oranges", ], ids: ["id1", "id2"], }); const results = await collection.query({ queryTexts: "This is a query document about florida", // Chroma will embed this for you nResults: 2, // how many results to return }); console.log(results); ``` -------------------------------- ### Full ChromaDB Example: Setup, Upsert, Query (Python) Source: https://docs.trychroma.com/getting-started A comprehensive Python example showing how to initialize a ChromaDB client, get or create a collection, upsert documents, and then query the collection with a specific text. ```python import chromadb chroma_client = chromadb.Client() # switch `create_collection` to `get_or_create_collection` to avoid creating a new collection every time collection = chroma_client.get_or_create_collection(name="my_collection") # switch `add` to `upsert` to avoid adding the same documents every time collection.upsert( documents=[ "This is a document about pineapple", "This is a document about oranges" ], ids=["id1", "id2"] ) results = collection.query( query_texts=["This is a query document about florida"], # Chroma will embed this for you n_results=2 # how many results to return ) print(results) ``` -------------------------------- ### Chroma Getting Started and Integrations Source: https://www.trychroma.com/ Guides users through the initial setup and common workflows for Chroma. It includes quick start instructions for Python and JavaScript, information on deploying Chroma, and a directory of available integrations. ```APIDOC Getting Started: - Quick start (Python & JavaScript) - Full-text search and metadata filtering - Retrieve images with multimodal - Deploy Chroma to the cloud - Browse integrations Purpose: To facilitate rapid adoption and integration of Chroma into various AI and data projects. ``` -------------------------------- ### Weaviate Quickstart and Contribution Links Source: https://github.com/weaviate/weaviate Links to essential resources for new users and contributors to the Weaviate project. Includes a quickstart tutorial for getting started with Weaviate and a contributor guide for those interested in participating in development. ```text Quickstart tutorial To see Weaviate in action Contributor guide To contribute to this project ``` -------------------------------- ### Install ChromaDB with uv Source: https://docs.trychroma.com/getting-started Installs the ChromaDB Python client using uv, a fast Python package installer and resolver. ```terminal uv pip install chromadb ``` -------------------------------- ### Install ChromaDB Source: https://docs.trychroma.com/getting-started Install the ChromaDB client library using different package managers for Python and Node.js environments. ```python pip install chromadb ``` ```terminal poetry add chromadb ``` ```terminal uv pip install chromadb ``` ```typescript npm install chromadb @chroma-core/default-embed ``` ```typescript pnpm add chromadb @chroma-core/default-embed ``` ```typescript yarn add chromadb @chroma-core/default-embed ``` ```typescript bun add chromadb @chroma-core/default-embed ``` -------------------------------- ### Install ChromaDB with bun Source: https://docs.trychroma.com/getting-started Installs the ChromaDB client and default embedder for Node.js projects using bun. ```terminal bun add chromadb @chroma-core/default-embed ``` -------------------------------- ### Install ChromaDB with pip Source: https://docs.trychroma.com/getting-started Installs the ChromaDB Python client using pip, the standard package installer for Python. ```terminal pip install chromadb ``` -------------------------------- ### Install ChromaDB with Bun Source: https://docs.trychroma.com/getting-started Installs ChromaDB and its default embedding models using Bun, a new, fast JavaScript runtime, bundler, transpiler, and package manager. ```shell bun add chromadb @chroma-core/default-embed ``` -------------------------------- ### Install ChromaDB with Pnpm Source: https://docs.trychroma.com/getting-started Installs ChromaDB and its default embedding models using pnpm, a fast, efficient, and disk-space-saving package manager for Node.js. ```shell pnpm add chromadb @chroma-core/default-embed ``` -------------------------------- ### Install ChromaDB with pnpm Source: https://docs.trychroma.com/getting-started Installs the ChromaDB client and default embedder for Node.js projects using pnpm. ```terminal pnpm add chromadb @chroma-core/default-embed ``` -------------------------------- ### Install ChromaDB with yarn Source: https://docs.trychroma.com/getting-started Installs the ChromaDB client and default embedder for Node.js projects using yarn. ```terminal yarn add chromadb @chroma-core/default-embed ``` -------------------------------- ### Install Chroma using UV Source: https://docs.trychroma.com/getting-started Installs the Chroma vector database using UV, a fast Python installer and resolver. UV is known for its speed and efficiency in handling Python packages. ```bash uv add chromadb ``` -------------------------------- ### Install Chroma using Poetry Source: https://docs.trychroma.com/getting-started Installs the Chroma vector database using Poetry, a dependency management and packaging tool for Python. This is useful for managing project dependencies in a reproducible way. ```bash poetry add chromadb ``` -------------------------------- ### Install ChromaDB with npm Source: https://docs.trychroma.com/getting-started Installs the ChromaDB client and default embedder for Node.js projects using npm. ```terminal npm install chromadb @chroma-core/default-embed ``` -------------------------------- ### Create Chroma Client Source: https://docs.trychroma.com/getting-started Initialize a ChromaDB client to interact with the database. Examples are provided for Python and TypeScript. ```python import chromadb chroma_client = chromadb.Client() ``` ```typescript import { ChromaClient } from "chromadb"; const client = new ChromaClient(); ``` ```typescript const { ChromaClient } = require("chromadb"); const client = new ChromaClient(); ``` -------------------------------- ### SWIRL Setup and Avoided Complexity Source: https://github.com/swirlai/swirl-search Illustrates the simplified setup process with SWIRL by contrasting commands that are no longer necessary with the single command required to get started. SWIRL aims to eliminate the need for manual vector database setup, data migration, and index configuration. ```shell # Commands no longer needed with SWIRL: $ setup-vector-db $ migrate-data $ configure-indexes ``` ```shell # SWIRL setup command: $ curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml -o docker-compose.yaml ``` -------------------------------- ### Install ChromaDB with Poetry Source: https://docs.trychroma.com/getting-started Adds ChromaDB as a dependency to a project managed by Poetry, a Python dependency management tool. ```terminal poetry add chromadb ``` -------------------------------- ### Install Chroma using Pip Source: https://docs.trychroma.com/getting-started Installs the Chroma vector database using pip, the standard package installer for Python. This is the most common method for local development and testing. ```bash pip install chromadb ``` -------------------------------- ### Python Function Call Example Source: https://www.pinecone.io/ Demonstrates a typical function call pattern in Python, likely related to internal project logic or framework usage. It involves pushing data to a next function. ```python self.__next_f.push([1,"d:Tb7b,"]) ``` -------------------------------- ### SVG Path Data Example Source: https://www.pinecone.io/ This snippet contains SVG path data, commonly used for drawing vector graphics. It defines a series of commands and coordinates to render shapes. ```svg M5.9375 2.25L5.75 2.625L5.34375 2.5C4.5625 2.25 3.65625 2.4375 3.03125 3.0625C2.40625 3.6875 2.21875 4.59375 2.46875 5.375L2.59375 5.78125L2.21875 5.96875C1.46875 6.34375 1 7.125 1 8C1 8.90625 1.46875 9.65625 2.21875 10.0625L2.59375 10.25L2.46875 10.6562C2.21875 11.4375 2.40625 12.3438 3.03125 12.9688C3.65625 13.5938 4.5625 13.7812 5.34375 13.5312L5.75 13.4062L5.9375 13.7812C6.34375 14.5312 7.09375 15 8 15C8.875 15 9.65625 14.5312 10.0312 13.7812L10.2188 13.4062L10.625 13.5312C11.4062 13.7812 12.3125 13.5938 12.9375 12.9688C13.5625 12.3438 13.75 11.4375 13.5 10.6562L13.375 10.25L13.75 10.0625C14.5 9.65625 15 8.90625 15 8C15 7.125 14.5 6.34375 13.75 5.96875L13.375 5.78125L13.5 5.375C13.75 4.59375 13.5625 3.6875 12.9375 3.0625C12.3125 2.4375 11.4062 2.25 10.625 2.5L10.2188 2.625L10.0312 2.25C9.65625 1.5 8.875 1 8 1C7.09375 1 6.34375 1.5 5.9375 2.25ZM8 0C9.125 0 10.125 0.59375 10.7188 1.4375C11.75 1.25 12.8438 1.5625 13.6562 2.34375C14.4375 3.15625 14.75 4.25 14.5625 5.28125C15.4062 5.875 16 6.875 16 8C16 9.15625 15.4062 10.125 14.5625 10.75C14.75 11.7812 14.4375 12.875 13.6562 13.6562C12.8438 14.4688 11.75 1 ``` -------------------------------- ### Graphical Path Data Example Source: https://www.pinecone.io/ This snippet contains a string representing graphical path data, commonly used in vector graphics formats like SVG. It defines a series of commands and coordinates to draw shapes or lines. ```svg 3.98-2.67,6.9-6.27,6.9-1.82,0-3.26-.69-4.48-2.16v.97c0,.72-.09.82-.82.82h-.6c-.72,0-.82-.09-.82-.82V1.04c0-.72.09-.81.82-.81h.6c.72,0,.82.09.82.81v10.88c1.29-1.47,2.67-2.13,4.55-2.13,3.58,0,6.21,2.85,6.21,6.77ZM74.98,16.5c0-2.63-1.85-4.67-4.3-4.67s-4.33,1.94-4.33,4.74,1.79,4.86,4.36,4.86,4.26-2.07,4.26-4.92ZM91.83,10.07h-.6c-.72,0-.81.09-.81.82v11.38c0,.72.09.82.81.82h.6c.72,0,.82-.09.82-.82v-11.38c0-.72-.09-.82-.82-.82ZM91.55,3.55c-.88,0-1.6.72-1.6,1.57,0,.91.72,1.63,1.6,1.63s1.6-.72,1.6-1.6-.72-1.6-1.6-1.6ZM101.16,15.62l4.49-4.48c.25-.25.38-.44.38-.56,0-.34-.22-.5-.78-.5h-.97q-.53,0-.91.38l-4.33,4.42V1.04c0-.72-.09-.81-.81-.81h-.6c-.72,0-.82.09-.82.81v21.23c0,.72.09.82.82.82h.6c.72,0,.81-.09.81-.82v-4.55l.56-.56,4.89,5.52q.34.41.91.41h.97c.56,0,.82-.16.82-.47,0-.13-.13-.31-.35-.6l-5.68-6.4ZM108,10.73c0,.36-.28.64-.65.64s-.65-.28-.65-.64.29-.63.65-.63.65.28.65.63ZM107.84,10.73c0-.28-.21-.51-.49-.51s-.49.23-.49.51.21.51.49.51.48-.22.48-.5ZM107.61,10.9c.02.1.03.14.05.16h-.16s-.03-.08-.05-.15c-.01-.07-.05-.1-.13-.1h-.07v.25h-.15v-.63c.06-.01.14-.02.24-.02.12,0,.17.02.22.05.03.03.06.08.06.14,0,.07-.05.12-.13.15h0c.06.03.1.08.12.16ZM107.47,10.61c0-.06-.04-.1-.14-.1-.04,0-.07,0-.08,0v.18h.07c.08,0,.15-.03.15-.09Z ``` -------------------------------- ### Linear Gradient Definition Source: https://www.pinecone.io/ Defines a linear gradient with multiple color stops. This structure specifies the start and end points of the gradient and the color values at different offsets. ```json { "id": "linear-gradient", "x1": "4.79", "y1": "4.78", "x2": "26.25", "y2": "26.24", "gradientUnits": "userSpaceOnUse", "children": [ ["$", "stop", null, {"offset": "0", "stopColor": "#00b287"}], ["$", "stop", null, {"offset": ".04", "stopColor": "#01b28c"}], ["$", "stop", null, {"offset": ".34", "stopColor": "#0bb6b9"}], ["$", "stop", null, {"offset": ".62", "stopColor": "#12b9d9"}], ["$", "stop", null, {"offset": ".84", "stopColor": "#17bbec"}], ["$", "stop", null, {"offset": "1", "stopColor": "#19bcf4"}] ] } ``` -------------------------------- ### Run Chroma Backend Source: https://docs.trychroma.com/getting-started Instructions for running the ChromaDB backend service, either via the command line or using Docker. ```terminal chroma run --path ./getting-started ``` ```docker docker pull chromadb/chroma docker run -p 8000:8000 chromadb/chroma ``` -------------------------------- ### OpenVino Model Usage Example Source: https://github.com/llmware-ai/llmware This snippet points to an example Python script demonstrating how to get started with using OpenVino models within the llmware framework. It serves as a guide for users looking to leverage OpenVino for model inference. ```python from llmware.models import ModelCatalog # Example usage (conceptual, actual code would be in the linked file) # model = ModelCatalog.get_model('openvino_model_name') # result = model.predict(input_data) ``` -------------------------------- ### CrewAI Core Features and Guides Source: https://docs.crewai.com/ This snippet outlines the core features of CrewAI, such as production readiness, security, and cost-efficiency, and provides links to essential guides for getting started, including building your first crew, flow, installation, and community engagement. ```jsx function MDXContent(props = {}) { const {wrapper: MDXLayout} = { ..._provideComponents(), ...props.components }; return MDXLayout ? _jsx(MDXLayout, { ...props, children: _jsx(_createMdxContent, { ...props }) }) : _createMdxContent(props); } function _createMdxContent(props) { const _components = { a: "a", li: "li", ol: "ol", p: "p", strong: "strong", table: "table", tbody: "tbody", td: "td", th: "th", thead: "thead", tr: "tr", ul: "ul", ..._provideComponents(), ...props.components }, {Card, CardGroup, Frame, Heading, Note, ZoomImage} = _components; if (!Card) _missingMdxReference("Card", true); if (!CardGroup) _missingMdxReference("CardGroup", true); if (!Frame) _missingMdxReference("Frame", true); if (!Heading) _missingMdxReference("Heading", true); if (!Note) _missingMdxReference("Note", true); if (!ZoomImage) _missingMdxReference("ZoomImage", true); return _jsxs(_Fragment, { children: [_jsx(Heading, { level: "1", id: "what-is-crewai%3F", isAtRootLevel: "true", children: "What is CrewAI?" }), "\n", _jsx(_components.p, { children: _jsx(_components.strong, { children: "CrewAI is a lean, lightning-fast Python framework built entirely from scratch—completely independent of LangChain or other agent frameworks." }) }), "\n", _jsx(_components.p, { children: "CrewAI empowers developers with both high-level simplicity and precise low-level control, ideal for creating autonomous AI agents tailored to any scenario:" }), "\n", _jsxs(_components.ul, { children: ["\n", _jsxs(_components.li, { children: [_jsx(_components.strong, { children: _jsx(_components.a, { href: "/en/guides/crews/first-crew", children: "CrewAI Crews" }) }), ": Optimize for autonomy and collaborative intelligence, enabling you to create AI teams where each agent has specific roles, tools, and goals."] }), "\n", _jsxs(_components.li, { children: [_jsx(_components.strong, { children: "Production Ready" }), ": Built for reliability and scalability in real-world applications"] }), "\n", _jsxs(_components.li, { children: [_jsx(_components.strong, { children: "Security-Focused" }), ": Designed with enterprise security requirements in mind"] }), "\n", _jsxs(_components.li, { children: [_jsx(_components.strong, { children: "Cost-Efficient" }), ": Optimized to minimize token usage and API calls"] }), "\n"] }), "\n", _jsx(Heading, { level: "2", id: "ready-to-start-building%3F", isAtRootLevel: "true", children: "Ready to Start Building?" }), "\n", _jsxs(CardGroup, { cols: 2, children: [_jsx(Card, { title: "Build Your First Crew", icon: "users-gear", href: "/en/guides/crews/first-crew", children: _jsx(_components.p, { children: "Step-by-step tutorial to create a collaborative AI team that works together to solve complex problems." }) }), _jsx(Card, { title: "Build Your First Flow", icon: "diagram-project", href: "/en/guides/flows/first-flow", children: _jsx(_components.p, { children: "Learn how to create structured, event-driven workflows with precise control over execution." }) })] }), "\n", _jsxs(CardGroup, { cols: 3, children: [_jsx(Card, { title: "Install CrewAI", icon: "wrench", href: "/en/installation", children: _jsx(_components.p, { children: "Get started with CrewAI in your development environment." }) }), _jsx(Card, { title: "Quick Start", icon: "bolt", href: "en/quickstart", children: _jsx(_components.p, { children: "Follow our quickstart guide to create your first CrewAI agent and get hands-on experience." }) }), _jsx(Card, { title: "Join the Community", icon: "comments", href: "https://community.crewai.com", children: _jsx(_components.p, { children: "Connect with other developers, get help, and share your CrewAI experiences." }) })] })] }); } return { default: MDXContent }; function _missingMdxReference(id, component) { throw new Error("Expected " + (component ? "component" : "object") + " `" + id + "` to be defined: you likely forgot to import, pass, or provide it."); } ``` -------------------------------- ### Start Linux Installer with Environment Variables Source: https://github.com/oobabooga/text-generation-webui Example of launching the Linux start script with specific environment variables to control GPU choice, launch behavior, and extension installation. ```shell GPU_CHOICE=A LAUNCH_AFTER_INSTALL=FALSE INSTALL_EXTENSIONS=TRUE ./start_linux.sh ``` -------------------------------- ### llmware Fast Start Tutorial Series Source: https://github.com/llmware-ai/llmware A link to a series of tutorials designed for users new to LLMWare, providing a quick and easy way to get started with the library's features. ```python # Link to example: https://github.com/llmware-ai/llmware/tree/main/fast_start ``` -------------------------------- ### Install BabyAGI Source: https://github.com/yoheinakajima/babyagi Installs the BabyAGI package using pip. This is the first step to get started with the framework. ```bash pip install babyagi ``` -------------------------------- ### Run Chroma Backend Source: https://docs.trychroma.com/getting-started Instructions to start the ChromaDB backend service. You can choose between using the command-line interface (CLI) or Docker for execution. The CLI command requires a path for data storage. ```bash chroma run --path ./getting-started ``` ```dockerfile docker pull chromadb/chroma docker run -p 8000:8000 chromadb/chroma ``` -------------------------------- ### Install ChromaDB Client and Run Server Source: https://github.com/chroma-core/chroma Instructions for installing the ChromaDB Python client, the JavaScript client, and running Chroma in client-server mode. This covers the initial setup for using Chroma. ```shell pip install chromadb # python client # for javascript, npm install chromadb! # for client-server mode, chroma run --path /chroma_db_path ``` -------------------------------- ### Install Promptwright via Pip Source: https://github.com/StacklokLabs/promptwright Installs the Promptwright library using pip, the standard Python package installer. This is the simplest way to get started with Promptwright. ```shell pip install promptwright ``` -------------------------------- ### Initialize Chroma Client (Python) Source: https://docs.trychroma.com/getting-started Demonstrates how to import the chromadb library and initialize a client instance for interacting with ChromaDB. ```python import chromadb chroma_client = chromadb.Client() ``` -------------------------------- ### text-generation-webui Installation Scripts Source: https://github.com/oobabooga/text-generation-webui Scripts for installing, starting, and updating the text-generation-webui. These scripts handle environment setup and launching the web interface. ```Shell # Linux/macOS startup script ./start_linux.sh # Linux/macOS update script ./update_wizard_linux.sh ``` ```Batch // Windows startup script start_windows.bat // Windows update script update_wizard_windows.bat ``` -------------------------------- ### Run Chroma Backend Server Source: https://docs.trychroma.com/getting-started Starts a Chroma server instance in the specified directory. This is necessary for client-server communication. ```terminal chroma run --path ./getting-started ``` -------------------------------- ### Install TruLens Source: https://trulens.org/ Instructions for installing the TruLens library using pip. This is the primary method to get started with the TruLens framework for LLM evaluation. ```bash pip install trulens ``` -------------------------------- ### Install Guardrails AI Source: https://github.com/guardrails-ai/guardrails Installs the Guardrails AI Python package using pip. This is the primary method to get started with the Guardrails framework. ```Shell pip install guardrails-ai ``` -------------------------------- ### LLMware Hello World Example Source: https://github.com/llmware-ai/llmware A 'Hello World' example demonstrating how to use local BLING models with provided context, showcasing a basic question-answering scenario with sample data. ```python import time from llmware.prompts import Prompt def hello_world_questions(): test_list = [ {"query": "What is the total amount of the invoice?", "answer": "$22,500.00", "context": "Services Vendor Inc. 100 Elm Street Pleasantville, NY TO Alpha Inc. 5900 1st Street Los Angeles, CA Description Front End Engineering Service $5000.00 Back End Engineering Service $7500.00 Quality Assurance Manager $10,000.00 Total Amount $22,500.00 Make all checks payable to Services Vendor Inc. Payment is due within 30 days. If you have any questions concerning this invoice, contact Bia Hermes. THANK YOU FOR YOUR BUSINESS! INVOICE INVOICE # 0001 DATE 01/01/2022 FOR Alpha Project P.O. # 1000"}, {"query": "What was the amount of the trade surplus?", "answer": "62.4 billion yen ($416.6 million)", "context": "Japan’s September trade balance swings into surplus, surprising expectations Japan recorded a trade surplus of 62.4 billion yen ($416.6 million) for September, beating expectations from economists polled by Reuters for a trade deficit of 42.5 billion yen. Data from Japan’s customs agency revealed that exports in September increased 4.3% year on year, while imports slid 16.3% compared to the same period last year. According to FactSet, exports to Asia fell for the ninth straight month, which reflected ongoing China weakness. Exports were supported by shipments to Western markets, FactSet added. — Lim Hui Jie"}, {"query": "When did the LISP machine market collapse?", "answer": "1987.", "context": "The attendees became the leaders of AI research in the 1960s. They and their students produced programs that the press described as 'astonishing': computers were learning checkers strategies, s"} ] # Example of how to use the prompt object # prompt = Prompt() # result = prompt.prompt_with_source(test_list[0]['query'], context=test_list[0]['context']) # print(result) # For demonstration purposes, we'll just return the test list return test_list # To run this example: # hello_world_questions() ``` -------------------------------- ### RAG-Optimized Models: Hello World Example Source: https://github.com/llmware-ai/llmware A 'Hello World' example demonstrating the use of local RAG-optimized models (like BLING) with provided context. It shows how to structure questions and answers using sample invoice and trade balance data. ```python import time from llmware.prompts import Prompt def hello_world_questions(): test_list = [ { "query": "What is the total amount of the invoice?", "answer": "$22,500.00", "context": "Services Vendor Inc. \n100 Elm Street Pleasantville, NY \nTO Alpha Inc. 5900 1st Street Los Angeles, CA \nDescription Front End Engineering Service $5000.00 \n Back End Engineering Service $7500.00 \n Quality Assurance Manager $10,000.00 \n Total Amount $22,500.00 \nMake all checks payable to Services Vendor Inc. Payment is due within 30 days.If you have any questions concerning this invoice, contact Bia Hermes. THANK YOU FOR YOUR BUSINESS! INVOICE INVOICE # 0001 DATE 01/01/2022 FOR Alpha Project P.O. # 1000" }, { "query": "What was the amount of the trade surplus?", "answer": "62.4 billion yen ($416.6 million)", "context": "Japan’s September trade balance swings into surplus, surprising expectationsJapan recorded a trade surplus of 62.4 billion yen ($416.6 million) for September, beating expectations from economists polled by Reuters for a trade deficit of 42.5 billion yen. Data from Japan’s customs agency revealed that exports in September increased 4.3% year on year, while imports slid 16.3% compared to the same period" } ] # Example of how to use the prompt class with this data (actual model loading and inference would follow) # prompter = Prompt().load_model("local/bling-model") # Example model loading # for item in test_list: # # Simulate adding context and running a query # # response = prompter.prompt_with_source(item["query"], context=item["context"]) # # print(f"Query: {item['query']}, Expected: {item['answer']}, Got: {response}") # pass # hello_world_questions() # Call the function to demonstrate structure ``` -------------------------------- ### Install ChromaDB with Pip Source: https://docs.trychroma.com/getting-started Installs the ChromaDB Python client using pip, the standard package installer for Python. This is the most common method for Python projects. ```shell pip install chromadb ```