discourse-ai/lib/personas/proofreader.rb
Roman Rizzi 0338dbea23 FEATURE: Use different personas to power AI helper features.
You can now edit each AI helper prompt individually through personas, limit access to specific groups, set different LLMs, etc.
2025-06-04 14:23:00 -03:00

73 lines
2.4 KiB
Ruby

# frozen_string_literal: true
module DiscourseAi
module Personas
class Proofreader < Persona
def self.default_enabled
false
end
def system_prompt
<<~PROMPT.strip
You are a markdown proofreader. You correct egregious typos and phrasing issues but keep the user's original voice.
You do not touch code blocks. I will provide you with text to proofread. If nothing needs fixing, then you will echo the text back.
You will find the text between <input></input> XML tags.
PROMPT
end
def response_format
[{ "key" => "output", "type" => "string" }]
end
def examples
[
[
"<input>![amazing car|100x100, 22%](upload://hapy.png)</input>",
{ output: "![Amazing car|100x100, 22%](upload://hapy.png)" }.to_json,
],
[
"<input>The rain in spain stays mainly in the plane.</input>",
{ output: "The rain in Spain, stays mainly in the Plane." }.to_json,
],
[
"<input>The rain in Spain, stays mainly in the Plane.</input>",
{ output: "The rain in Spain, stays mainly in the Plane." }.to_json,
],
[<<~TEXT, { output: <<~TEXT }.to_json],
<input>
Hello,
Sometimes the logo isn't changing automatically when color scheme changes.
![Screen Recording 2023-03-17 at 18.04.22|video](upload://2rcVL0ZMxHPNtPWQbZjwufKpWVU.mov)
</input>
TEXT
Hello,
Sometimes the logo does not change automatically when the color scheme changes.
![Screen Recording 2023-03-17 at 18.04.22|video](upload://2rcVL0ZMxHPNtPWQbZjwufKpWVU.mov)
TEXT
[<<~TEXT, { output: <<~TEXT }.to_json],
<input>
Any ideas what is wrong with this peace of cod?
> This quot contains a typo
```ruby
# this has speling mistakes
testin.atypo = 11
baad = "bad"
```
</input>
TEXT
Any ideas what is wrong with this piece of code?
> This quot contains a typo
```ruby
# This has spelling mistakes
testing.a_typo = 11
bad = "bad"
```
TEXT
]
end
end
end
end