Skip to content

Repository files navigation

Aulendur LLC
DeepScribe Mascot

Aulendur DeepScribe

Looking for technical documentation? See the project wiki in-code at /documentation – it contains backend/frontend architecture diagrams, DevOps guides, API reference, and ADRs.

DeepScribe is a configurable AI document writing system developed by Aulendur LLC. It enables users to create templates for documents that will be written by Large Language Models (LLMs), with fine-grained control over formatting, content requirements, and generation parameters.

This system is built on the principle of Retrieval-Augmented Generation (RAG). It allows users to ground the AI's output in their own data by managing a knowledge hub of uploaded files and crawled web content, ensuring the generated documents are accurate, context-aware, and tailored to specific needs.

Core Features

  • Template-Driven Architecture: Visually construct document templates with a drag-and-drop interface. Define sections, configure formatting, and provide specific instructions for the AI on a per-section basis.
  • Knowledge Source Management:
    • File Processing: Upload and extract text from PDF, DOCX, and plain text files.
    • Vectorstores: Create curated knowledge bases from your files and web crawls for the AI to use as context.
    • Web Crawler: Ingest content directly from websites to build comprehensive knowledge sources.
  • Hybrid Database System: Utilizes PostgreSQL with pgvector for structured data and semantic search, MongoDB for unstructured content like crawled pages and chat logs, and Redis for job queuing and caching.
  • Multi-Provider LLM Integration: Supports both commercial (OpenAI, Anthropic) and local (Ollama, LM Studio, vLLM) language models, with separate configurations for content generation and embedding.
  • AI-Powered Research: Augments document generation with live web search capabilities to incorporate the most current information.
  • Interactive AI Assistant: Features "The Scribe", a built-in chat assistant that can answer questions about DeepScribe's functionality or query your own vectorstores.

Getting Started: Local Development with Docker

The easiest way to get the DeepScribe development environment running is with Docker and Docker Compose. This setup includes all necessary databases, services, and provides hot-reloading for both the frontend and backend.

Prerequisites

  • Docker and Docker Compose
  • Git
  • An editor for .env files

1. Clone the Repository

git clone https://github.com/AulendurForge/DeepScribe.git
cd deepscribe

2. Configure Environment Variables

DeepScribe requires two environment files for local development.

First, create the root .env file for Docker Compose: This file passes API keys into the build environment of the backend service.

cp example.env .env

Second, create the backend .env file: This file is used by the backend service at runtime.

cp backend/example.env backend/.env

Now, open both .env files and fill in the required values. At a minimum, you should provide a JWT_SECRET and an ENCRYPTION_KEY. For full functionality, add your API keys.

Variable Description File(s)
POSTGRES_PASSWORD Password for the PostgreSQL database. The default postgres_password in the docker-compose.yml is recommended for local dev. backend/.env
JWT_SECRET A long, random string used to sign JSON Web Tokens for authentication. Required for login. backend/.env
ENCRYPTION_KEY A 32-character key for encrypting user-provided API keys in the database. Required for saving LLM settings. backend/.env
OPENAI_API_KEY Your API key for OpenAI models. .env, backend/.env
ANTHROPIC_API_KEY Your API key for Anthropic models. .env, backend/.env
SERPER_API_KEY Your API key from serper.dev for the web research feature. A free tier is available. .env, backend/.env

Note: You only need to provide keys for the services you intend to use.

3. Build and Start the Containers

docker-compose up -d --build

This command builds the images for all services and starts them in detached mode. The initial build may take several minutes.

4. Accessing Services

Once the containers are running, you can access the various parts of the application:

Service URL Credentials (if applicable)
DeepScribe App http://localhost:3000 (Create an account)
Backend API http://localhost:5000/api/health -
pgAdmin (Postgres GUI) http://localhost:5050 admin@admin.com / admin
Mongo Express (Mongo GUI) http://localhost:8081 admin / admin
RedisInsight (Redis GUI) http://localhost:5540 -
MinIO (S3 Storage) http://localhost:9001 minioadmin / minioadmin
Prometheus (Metrics) http://localhost:9090 -
Grafana (Dashboards) http://localhost:3001 admin / admin

5. Stopping the Application

To stop all running services, use:

docker-compose down

To stop and remove the data volumes (deleting all data), use:

docker-compose down -v

Troubleshooting

Local LLM Provider Connection Issues

When running local providers like Ollama or LM Studio, you might encounter a "Connection refused" error. This is typically because the local server is only listening for requests from localhost (127.0.0.1) and cannot accept connections from inside a Docker container.

Solution: Restart your local LLM server and configure it to listen on all network interfaces (0.0.0.0).

  • For Ollama (Command Line):
    • First, stop any running Ollama process.
    • Then, restart the server from your terminal using:
      OLLAMA_HOST=0.0.0.0 ollama serve
  • For LM Studio:
    • Go to the Server tab (<-->).
    • In the "Server Settings," change the "Host" to 0.0.0.0.
    • Restart the LM Studio server.

Project Documentation

For more detailed technical documentation, including architecture diagrams, API references, and design decisions, please see the in-code project wiki at /documentation/README.md.

License

This software is proprietary and confidential. Unauthorized copying, distribution, or use is strictly prohibited.

© 2025 Aulendur LLC. All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages