Go to file
Krzysztof Kotlarek 3da4f5eac3
DEV: fix Zeitwerk issue with SpamScanner class (#1183)
When spam scanner is enabled and code is reloaded, developer experience this error:

```
NameError at /posts
===================

uninitialized constant DiscourseAi::AiModeration::EntryPoint::SpamScanner

> To access an interactive console with this error, point your browser to: /__better_errors

plugins/discourse-ai/lib/ai_moderation/entry_point.rb, line 7
```

It is because when we call `SpamScanner` it is searched within parent `DiscourseAi::AiModeration::EntryPoint` namespace.

We can help a bit Zeitwerk by calling SpamScanner more explicitly.
2025-03-11 13:24:27 +11:00
.github/workflows Initial commit 2023-02-17 11:33:47 -03:00
admin/assets/javascripts/discourse FEATURE: PDF support for rag pipeline (#1118) 2025-02-14 12:15:07 +11:00
app PERF: Move sentiment analysis to "low" sidekiq queue (#1173) 2025-03-07 14:12:15 +00:00
assets FEATURE: Add ability to disable search discoveries (#1177) 2025-03-10 14:17:58 -07:00
config FEATURE: Add ability to disable search discoveries (#1177) 2025-03-10 14:17:58 -07:00
db FEATURE: Add ability to disable search discoveries (#1177) 2025-03-10 14:17:58 -07:00
discourse_automation FEATURE: Add persona-based replies and whisper support to LLM triage (#1170) 2025-03-06 17:18:15 +11:00
evals Dev: eval improvements (#1162) 2025-03-04 16:12:25 +11:00
lib DEV: fix Zeitwerk issue with SpamScanner class (#1183) 2025-03-11 13:24:27 +11:00
public/ai-share UX: improve artifact styling add direct share link (#930) 2024-11-20 13:13:03 +11:00
spec FEATURE: Add ability to disable search discoveries (#1177) 2025-03-10 14:17:58 -07:00
svg-icons UX: minor adjustments to search bot (#1146) 2025-02-21 19:40:53 -05:00
test/javascripts FEATURE: PDF support for rag pipeline (#1118) 2025-02-14 12:15:07 +11:00
tokenizers FEATURE: Gemini Tokenizer (#1088) 2025-01-23 18:20:35 -03:00
.discourse-compatibility DEV: Pin version for Discourse <3.5.0.beta1-dev (#1114) 2025-02-05 19:57:52 +01:00
.gitignore DEV: Extract configs to a yml file and allow local config (#1142) 2025-02-24 16:22:19 +11:00
.npmrc DEV: Switch to use pnpm (#833) 2024-10-14 13:37:20 +02:00
.prettierignore FEATURE: UI to update ai personas on admin page (#290) 2023-11-21 16:56:43 +11:00
.prettierrc.cjs DEV: Update linting configs (#280) 2023-11-03 11:30:09 +00:00
.rubocop.yml DEV: Expose AI spam scanning metrics (#1077) 2025-01-27 11:57:01 +08:00
.streerc DEV: Update linting configs (#280) 2023-11-03 11:30:09 +00:00
.template-lintrc.cjs DEV: Update linting (#326) 2023-11-29 23:01:48 +01:00
Gemfile DEV: Update linting configs (#280) 2023-11-03 11:30:09 +00:00
Gemfile.lock Build(deps-dev): Bump rack from 3.1.6 to 3.1.10 (#1124) 2025-02-13 12:09:04 +11:00
LICENSE DEV: Update license (#1147) 2025-02-24 11:20:06 +08:00
README.md DEV: Extract configs to a yml file and allow local config (#1142) 2025-02-24 16:22:19 +11:00
about.json DEV: Expose AI spam scanning metrics (#1077) 2025-01-27 11:57:01 +08:00
eslint.config.mjs DEV: Update eslint config (#917) 2024-11-19 11:57:40 +01:00
package.json DEV: Bump dependencies and fix linting (#1115) 2025-02-06 17:42:32 +01:00
plugin.rb FEATURE: Add ability to disable search discoveries (#1177) 2025-03-10 14:17:58 -07:00
pnpm-lock.yaml DEV: Bump dependencies and fix linting (#1115) 2025-02-06 17:42:32 +01:00
translator.yml UX: Display the indexing progress for RAG uploads (#557) 2024-04-09 11:03:07 -03:00

README.md

Discourse AI Plugin

Plugin Summary

For more information, please see: https://meta.discourse.org/t/discourse-ai/259214?u=falco

Evals

The directory evals contains AI evals for the Discourse AI plugin. You may create a local config by copying config/eval-llms.yml to config/eval-llms.local.yml and modifying the values.

To run them use:

cd evals ./run --help

Usage: evals/run [options]
    -e, --eval NAME                  Name of the evaluation to run
        --list-models                List models
    -m, --model NAME                 Model to evaluate (will eval all models if not specified)
    -l, --list                       List evals

To run evals you will need to configure API keys in your environment:

OPENAI_API_KEY=your_openai_api_key ANTHROPIC_API_KEY=your_anthropic_api_key GEMINI_API_KEY=your_gemini_api_key