paperless-gpt/go.mod
Dominik Schröter 6410136f89 feat: add support for customizable server-side prompts
- **Custom Prompt Templates**: Introduced support for user-modifiable prompt templates using Go's `text/template`.
  - Added default prompt templates for title and tag generation.
  - Templates are stored in the `prompts` directory and are loaded at startup.
  - If the template files do not exist, they are created with default content.
  - Users can modify the templates by editing the files in the `prompts` directory.
- **API Endpoints for Prompts**:
  - Added `GET /api/prompts` endpoint to retrieve the current prompt templates.
  - Added `POST /api/prompts` endpoint to update the prompt templates.
  - These endpoints prepare for future UI support for modifying prompts.
- **Thread Safety**:
  - Implemented a `sync.RWMutex` to ensure thread-safe access to the templates.
- **Updated Backend Logic**:
  - Modified `getSuggestedTitle` and `getSuggestedTags` functions to use the loaded templates.
  - Templates utilize variables like `{{.Language}}`, `{{.Content}}`, `{{.AvailableTags}}`, and `{{.Title}}`.
- **Docker and Documentation**:
  - Updated the `loadTemplates` function to ensure the `prompts` directory exists and to save default templates if missing.
  - Updated the README with instructions on how to mount the `prompts` directory in Docker and Docker Compose.
  - Provided guidance on modifying the prompt templates via file edits.
2024-10-16 14:57:14 +02:00

51 lines
2 KiB
Modula-2

module paperless-gpt
go 1.22.0
toolchain go1.22.2
require (
github.com/Masterminds/sprig/v3 v3.2.3
github.com/gin-gonic/gin v1.10.0
github.com/tmc/langchaingo v0.1.12
)
require (
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver/v3 v3.2.0 // indirect
github.com/bytedance/sonic v1.11.6 // indirect
github.com/bytedance/sonic/loader v0.1.1 // indirect
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
github.com/dlclark/regexp2 v1.10.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.20.0 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/huandu/xstrings v1.3.3 // indirect
github.com/imdario/mergo v0.3.13 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mitchellh/copystructure v1.0.0 // indirect
github.com/mitchellh/reflectwalk v1.0.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
github.com/pkoukk/tiktoken-go v0.1.6 // indirect
github.com/shopspring/decimal v1.2.0 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect
golang.org/x/arch v0.8.0 // indirect
golang.org/x/crypto v0.23.0 // indirect
golang.org/x/net v0.25.0 // indirect
golang.org/x/sys v0.20.0 // indirect
golang.org/x/text v0.15.0 // indirect
google.golang.org/protobuf v1.34.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)