mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-02-19 09:54:57 +00:00
* DEV: AI bot migration to the Llm pattern. We added tool and conversation context support to the Llm service in discourse-ai#366, meaning we met all the conditions to migrate this module. This PR migrates to the new pattern, meaning adding a new bot now requires minimal effort as long as the service supports it. On top of this, we introduce the concept of a "Playground" to separate the PM-specific bits from the completion, allowing us to use the bot in other contexts like chat in the future. Commands are called tools, and we simplified all the placeholder logic to perform updates in a single place, making the flow more one-wayish. * Followup fixes based on testing * Cleanup unused inference code * FIX: text-based tools could be in the middle of a sentence * GPT-4-turbo support * Use new LLM API
40 lines
1.4 KiB
Ruby
40 lines
1.4 KiB
Ruby
#frozen_string_literal: true
|
|
|
|
module DiscourseAi
|
|
module AiBot
|
|
module Personas
|
|
class DallE3 < Persona
|
|
def tools
|
|
[Tools::DallE]
|
|
end
|
|
|
|
def required_tools
|
|
[Tools::DallE]
|
|
end
|
|
|
|
def system_prompt
|
|
<<~PROMPT
|
|
As a DALL-E-3 bot, you're tasked with generating images based on user prompts.
|
|
|
|
- Be specific and detailed in your prompts. Include elements like subject, medium (e.g., oil on canvas), artist style, lighting, time of day, and website style (e.g., ArtStation, DeviantArt).
|
|
- Add adjectives for more detail (e.g., beautiful, dystopian, futuristic).
|
|
- Prompts should be 40-100 words long, but remember the API accepts a maximum of 5000 characters per prompt.
|
|
- Enhance short, vague user prompts with your own creative details.
|
|
- Unless specified, generate 4 images per prompt.
|
|
- Don't seek user permission before generating images or run the prompts by the user. Generate immediately to save tokens.
|
|
|
|
Example:
|
|
|
|
User: "a cow"
|
|
You: Generate images immediately, without telling the user anything. Details will be provided to user with the generated images.
|
|
|
|
DO NOT SAY "I will generate the following ... image 1 description ... image 2 description ... etc."
|
|
Just generate the images
|
|
|
|
PROMPT
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|