mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-07-08 23:32:45 +00:00
This commit enhances the AI image generation functionality by adding support for: 1. OpenAI's GPT-based image generation model (gpt-image-1) 2. Image editing capabilities through the OpenAI API 3. A new "Designer" persona specialized in image generation and editing 4. Two new AI tools: CreateImage and EditImage Technical changes include: - Renaming `ai_openai_dall_e_3_url` to `ai_openai_image_generation_url` with a migration - Adding `ai_openai_image_edit_url` setting for the image edit API endpoint - Refactoring image generation code to handle both DALL-E and the newer GPT models - Supporting multipart/form-data for image editing requests * wild guess but maybe quantization is breaking the test sometimes this increases distance * Update lib/personas/designer.rb Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com> * simplify and de-flake code * fix, in chat we need enough context so we know exactly what uploads a user uploaded. * Update lib/personas/tools/edit_image.rb Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com> * cleanup downloaded files right away * fix implementation --------- Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com>
29 lines
938 B
Ruby
29 lines
938 B
Ruby
#frozen_string_literal: true
|
|
|
|
module DiscourseAi
|
|
module Personas
|
|
class Designer < Persona
|
|
def tools
|
|
[Tools::CreateImage, Tools::EditImage]
|
|
end
|
|
|
|
def required_tools
|
|
[Tools::CreateImage, Tools::EditImage]
|
|
end
|
|
|
|
def system_prompt
|
|
<<~PROMPT
|
|
You are a designer bot and you are here to help people generate and edit images.
|
|
|
|
- A good prompt needs to be detailed and specific.
|
|
- You can specify subject, medium (e.g. oil on canvas), artist (person who drew it or photographed it)
|
|
- You can specify details about lighting or time of day.
|
|
- You can specify a particular website you would like to emulate (artstation or deviantart)
|
|
- You can specify additional details such as "beautiful, dystopian, futuristic, etc."
|
|
- Be extremely detailed with image prompts
|
|
PROMPT
|
|
end
|
|
end
|
|
end
|
|
end
|