SciPy 2026

Carson Sievert

Carson is currently a Principal Software Engineer at Posit Software, PBC. He's an original author and maintainer of projects such as shiny, shinywidgets, shinylive, and chatlas. Prior to joining Posit, Carson was an engineer at Plotly for numerous years, won the ASA's Chambers Award, and received his PhD in 2017.


Sessions

07-13
13:30
240min
Intro to Safe, Reliable, and Maintainable AI Apps in Python (Room HSEC 3-150)
Carson Sievert

Large Language Models (LLMs) are transforming how we build applications, but the path from "cool demo" to "production-ready tool" is littered with challenges: hallucinations, verifiability, and more. This tutorial covers the basics of how to build AI apps that avoid these challenges, yet are still effective and simple to build.

We'll start with querychat, an open-source package that lets users explore data through natural language. querychat demonstrates a powerful pattern: rather than letting an LLM access raw data directly (where it can hallucinate calculations), it constrains the LLM to generate SQL queries that are displayed and executed by a proper database engine. This "tool-based" architecture ensures reliability through transparency and precision -- users see exactly what query was executed along with it's exact results.

From there, we'll peel back the layers to reveal chatlas, the foundation powering querychat. chatlas provides a unified, provider-agnostic interface to 19+ LLM providers (OpenAI, Anthropic, Google, local models via Ollama, and more). You'll learn how chatlas makes it trivial to:

  • Build multi-turn conversations with history management
  • Stream responses in real-time for responsive UIs
  • Switch between providers with minimal code changes
  • Define custom tools that let LLMs interact with external systems (safely)
  • Extract structured data using Pydantic models

By the end of this tutorial, we'll have built two complete apps: a data exploration chatbot (using querychat with your own data) and a custom AI assistant with tools you define. You'll leave with practical patterns for constraining LLM behavior, validating outputs, and building apps that are genuinely useful, maintainable and production ready.

Installation Instructions: Go to dev.workshop.posit.team and sign in prior to the workshop. This will ensure you can access the provided computing environment for the tutorial. Once logged in, click "New Session", then "Launch". You may see a blank page for a minute before being directed to a hosted Positron session (https://positron.posit.co/). If you run into issues, or have any questions, please email carson@posit.co.

Tutorials
AI/ML
07-17
14:35
30min
Retrieval Augmented Generation with Raghilda
Carson Sievert, Daniel Falbel, Tomasz Kalinowski

LLMs are powerful, but their knowledge is frozen — they can't access your private documents or recent information. Retrieval-Augmented Generation (RAG) solves this by searching relevant documents and including them in the prompt, grounding responses in real information. But building a good retrieval system involves many steps: reading diverse file formats, chunking text at sensible boundaries, computing embeddings, and combining search strategies. This talk introduces raghilda, a Python framework that handles the full retrieval pipeline. We'll cover how RAG works, how to build a retrieval system with raghilda, and how to connect it to an LLM with a practical example.

Data-Driven Discovery, Machine Learning and Artificial Intelligence
Memorial Hall