Skip to main content

PrivacyForms AI - LLM integration module

Project description

PrivacyForms AI

A Python CLI tool for interacting with Large Language Models (LLMs) via Simon Willison's llm library. Supports multiple providers including OpenAI, Anthropic, Moonshot, and Ollama.

Features

  • 🔧 Simple CLI - Easy-to-use command-line interface
  • 💬 Interactive Chat - Multi-turn conversations with context/memory
  • 🚀 Multiple Providers - Works with OpenAI, Anthropic, Moonshot, Ollama, and more
  • 🧪 Well Tested - Comprehensive test coverage
  • Fast - Built with modern Python tooling

Installation

Using uv (recommended)

# Clone the repository
git clone https://github.com/zopyx/privacyforms.ai.git
cd privacyforms.ai

# Install with uv
uv sync

# Or install in development mode
uv sync --all-extras --dev

Using pip

pip install privacyforms-ai

Configuration

Set your API keys as environment variables:

# OpenAI
export OPENAI_API_KEY="your-key"

# Anthropic
export ANTHROPIC_API_KEY="your-key"

# Moonshot
export MOONSHOT_API_KEY="your-key"

For Ollama, make sure the Ollama server is running locally.

Usage

List Available Models

privacyforms-ai models

# JSON output
privacyforms-ai models --json

Send a Single Prompt

# Basic prompt
privacyforms-ai prompt gpt-4o-mini "What is the capital of France?"

# With system prompt
privacyforms-ai prompt gpt-4o-mini "Explain recursion" --system "You are a computer science tutor"

Interactive Chat

Start an interactive chat session with conversation history:

# Basic chat
privacyforms-ai chat moonshot/kimi-k2.5

# With system prompt
privacyforms-ai chat gpt-4o-mini -s "You are a helpful coding assistant"

Chat Commands:

  • /quit, /exit, /q - End the chat session
  • /clear - Clear conversation history
  • /model - Show current model

Example session:

Starting chat with model: moonshot/kimi-k2.5
Type /quit, /exit, or /q to end the session. Type /clear to reset history.
--------------------------------------------------

You: Hello!

AI: Hello! How can I help you today?

You: What can you do?

AI: I can help with a variety of tasks including...

You: /quit

Goodbye!

Development

Setup

# Clone and setup
git clone https://github.com/zopyx/privacyforms.ai.git
cd privacyforms.ai
uv sync --all-extras --dev
source .venv/bin/activate

Running Tests

# Run all tests
uv run pytest

# With coverage
uv run pytest --cov=privacyforms_ai --cov-report=term

# Verbose output
uv run pytest -v

Code Quality

# Format code
uv run ruff format .

# Check formatting
uv run ruff format --check .

# Lint
uv run ruff check .

# Auto-fix linting issues
uv run ruff check --fix .

# Type check
uv run ty check --python-version 3.12 src/

Build Package

uv run python -m build

API Design

See API_DESIGN.md for the REST API and WebSocket design specification for multi-chat server functionality.

Project Structure

privacyforms.ai/
├── src/privacyforms_ai/
│   ├── __init__.py
│   ├── ai.py              # AI class for LLM interactions
│   └── cli.py             # Click CLI commands
├── tests/
│   ├── conftest.py        # Pytest fixtures
│   ├── test_ai.py         # AI class tests
│   └── test_cli.py        # CLI tests
├── pyproject.toml         # Project configuration
├── uv.lock               # Locked dependencies
└── README.md

CI/CD

GitHub Actions workflow runs on:

  • Python 3.12, 3.13, 3.14, 3.14t (free-threaded)
  • Ubuntu Linux

Jobs:

  • test - Run pytest with coverage
  • lint - ruff (formatting, linting) and ty (type checking)

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with tests
  4. Ensure all checks pass (uv run ruff format --check . && uv run ruff check . && uv run ty check src/ && uv run pytest)
  5. Submit a pull request

Acknowledgments

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

privacyforms_ai-0.1.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

privacyforms_ai-0.1.1-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file privacyforms_ai-0.1.1.tar.gz.

File metadata

  • Download URL: privacyforms_ai-0.1.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for privacyforms_ai-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8fbd91ea21ccc31dc3ed13090b5f0ff210d51bb8ad9c85f99826b8bd198eb878
MD5 fa1366b56f5d4b97df66d63e61c057d7
BLAKE2b-256 5154952af66d3e0415a9e17a18bfa79806bc77553a1fec2d80d26e33579d7b93

See more details on using hashes here.

File details

Details for the file privacyforms_ai-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for privacyforms_ai-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e6f4576abafffc2dc0ec29c174193ffbd7e72468d8e0b45cbf42fcdb6b8aab21
MD5 7a10bb672623aaf01ac828335161f2e9
BLAKE2b-256 9a0bee4deaba11dc05db234198e2abc7160177a3b793f42ff220e92fe0a45d6e

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