Abstract
Building modern applications requires systems that can retrieve, process, and act on information intelligently. This workshop introduces Retrieval-Augmented Generation (RAG) to improve responses in Go applications by fetching relevant data dynamically.
It then expands into Tool Calling (Function Calling), allowing AI-powered applications to execute predefined actions, interact with external systems, and automate workflows.
By the end of this hands-on, full-day workshop, you’ll have a working knowledge of how to ingest and retrieve documents, integrate with APIs, and use function calling to control external
systems—all within Go and the AI system of your choosing.
**What a student is expected to learn**
By the end of this workshop, you’ll leave with working code samples, a clear understanding of RAG and Tool Calling, and a roadmap for integrating these capabilities into your Go
applications. 🚀
**Part 1: Retrieval-Augmented Generation (RAG) in Go**
• Understanding RAG Concepts – Improve responses by dynamically retrieving relevant context rather than relying solely on static training data.
• Ingesting and Processing Documents – Build pipelines to index and retrieve documents from client systems.
• Interacting with AI-Compatible APIs – Learn how Go applications can connect to vLLM, Ollama, OpenAI, or other AI services.
• Optimizing Performance & Latency – Implement caching, batching, and parallel processing to enhance efficiency.
• Using Vector Databases – Store and search embeddings with tools such as Chroma, Pinecone, Weaviate, Milvus or pgvector in PostgreSQL.
**Part 2: Tool Calling & Function Execution in Go**
• How AI Uses Tool Calling – Enable external system control by allowing AI to invoke predefined functions in Go.
• Building Function Calls with OpenAI compatible systems – Define structured function inputs and outputs for AI-driven interactions.
• Connecting to External APIs & Databases – Trigger real-world actions, query databases, and automate workflows.
• Handling Responses & Errors – Ensure safe and reliable execution of AI-invoked functions.
Prerequisites
• It is expected that you will have been coding in Go for several months.
• A working Go environment running on the device you will be bringing to class.
Recommended Preparation
• Before the workshop, you’ll be asked to clone a repository that will be shared with you head of
time.
• Please read the README.md for installing all the tooling before class.
• The repository will contain some of the code that we’ll work on during the class.
• It’s recommended that you run Docker or any other container runtime as some of the
dependencies will be downloaded in that format.
• To save on the bandwidth and not rely on Internet access during the workshop, the repository
will direct you on how to download and cache the models required to run the class..
• Please email the instructor, Florin Pățan - florin.patan@ardanlabs.com, for assistance.