Skip to main content

Structured AI system with emebeddable chatbot

Project description

Darkglass

Lint Test Release PyPI

Darkglass is a lightweight, embeddable chatbot designed for small colleges, providing prospective students with automated responses while logging interactions for administrative review.

Demo

Demo Video

Design

The system is built on a minimalist architecture, utilizing FastAPI and SQLite to provide zero-configuration deployment on lightweight Linux VMs without the overhead of external databases.

Configuration

Add a [gemini] section with your API key and optional model (defaults to gemini-3.1-flash-lite-preview):

[gemini]
api_key = "mysecretkey"
model = "gemini-3.1-flash-lite-preview"

You can also include a [context] section to provide a default prompt for the agent:

[context]
prompt = "You are a helpful agent for Acme College."

To enable a secure administrative dashboard, add a [google] section with a client_id to use for authentication.

[google]
client_id = "your-google-client-id.apps.googleusercontent.com"

To restrict dashboard access to specific addresses, add a [roles] section with an admins list. When admins is non-empty, only addresses listed will be allowed access.

[roles]
admins = ["alice@example.com", "bob@example.com"]

Usage

  1. Set API keys, system prompt, and authorized users in darkglass.toml
  2. Run uvx darkglass or pipx darkglass to launch production server
  3. Use the demo page to test the config: http://localhost:8000/static/demo.html
  4. Update reverse proxy configs as required to route requests to darkglass.
  5. Add the following snippet to your site, replacing the URL based on your chosen production endpoint:
<script src="https://darkglass.example.com/static/webchat.js"></script>

Add to arbitrary site via dev tools

let darkglass = document.createElement('script')
darkglass.src = 'http://localhost:8000/static/webchat.js'
darkglass.defer = true
document.body.appendChild(darkglass)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

darkglass-1.3.0.tar.gz (744.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

darkglass-1.3.0-py2.py3-none-any.whl (11.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file darkglass-1.3.0.tar.gz.

File metadata

  • Download URL: darkglass-1.3.0.tar.gz
  • Upload date:
  • Size: 744.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for darkglass-1.3.0.tar.gz
Algorithm Hash digest
SHA256 620342a0e25927f0df3b005a6e915659632d842661beb775a8a9413b2ca3f199
MD5 d15998658c6b91f6115c5b0fa07f3e83
BLAKE2b-256 3127b3e486195edc25eb6f6d3236ef64737d4459978faee0c7d7f4df99bac9a7

See more details on using hashes here.

File details

Details for the file darkglass-1.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: darkglass-1.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for darkglass-1.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2459c9f6ee39b67b7d855145f2114f92f1324507e620d4bec63d5a1d2eaad567
MD5 0df3b1abc7509e49ee3eb4a499128e9f
BLAKE2b-256 2b5888b7fef8b37a77c2ca6db701d6faf2d450450454325fb15e0b5cd28d0d63

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page