gptstudio is an R package that integrates Large Language Models (LLMs) directly into the RStudio development environment. It functions as both a standalone Shiny application and a suite of RStudio add-ins. The core architecture relies on the {ellmer} package for LLM interactions, abstracting various providers (OpenAI, Anthropic, HuggingFace, etc.) through a unified S3 interface. Key features include a chat interface with conversation history, code commenting, and spelling/grammar checking add-ins. The package demonstrates strong engineering practices with comprehensive testing (shinytest2, testthat), modern UI theming (bslib), and support for streaming responses and audio input. It effectively bridges the gap between RStudio's IDE capabilities and external AI services.
QueryChat is a dual R/Python open-source library that turns tabular data into a natural-language chat interface: users ask questions in plain English, an LLM generates SQL via tool calls, and the SQL executes against an in-memory DuckDB engine, a SQLAlchemy-managed database, an Ibis backend, a Polars lazy frame, or a pins board. A defining safety property is that raw data is never sent to the LLM — only schema introspection (column names, types, ranges, categorical values) and query results flow through the model. The package ships with five LLM-visible tools (get_schema, query, update_dashboard, reset_dashboard, visualize) and a hardened DuckDB mode that blocks external filesystem access and extensions, making it a well-considered solution to the inherently risky problem of letting models write SQL against user data.
ITables is a Python library that transforms Pandas, Polars, and other DataFrame libraries into interactive, sortable, and filterable HTML tables using the DataTables.js library. It integrates seamlessly with Jupyter Notebook/Lab, VS Code, Colab, Quarto, and web frameworks like Dash, Streamlit, Shiny, and Panel. The architecture is a thin Python wrapper that generates HTML/JavaScript snippets, with a bundled JavaScript package (dt_for_itables) containing DataTables and its extensions. Key entry points include `itables.show()`, `itables.init_notebook_mode()`, and framework-specific components (e.g., `itables.dash.ITable`). Data flows from DataFrame to JSON serialization (with special handling for floats, categories, and large integers) to HTML template injection. External dependencies include DataTables.js (via CDN or offline bundle), optional Narwhals for multi-backend support, and framework-specific packages (Dash, Streamlit, etc.). The library also provides fallback static HTML and Markdown table rendering for environments without JavaScript.