mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-03-06 09:20:14 +00:00
Previous to this change we relied on explicit loading for a files in Discourse AI. This had a few downsides: - Busywork whenever you add a file (an extra require relative) - We were not keeping to conventions internally ... some places were OpenAI others are OpenAi - Autoloader did not work which lead to lots of full application broken reloads when developing. This moves all of DiscourseAI into a Zeitwerk compatible structure. It also leaves some minimal amount of manual loading (automation - which is loading into an existing namespace that may or may not be there) To avoid needing /lib/discourse_ai/... we mount a namespace thus we are able to keep /lib pointed at ::DiscourseAi Various files were renamed to get around zeitwerk rules and minimize usage of custom inflections Though we can get custom inflections to work it is not worth it, will require a Discourse core patch which means we create a hard dependency.
211 lines
12 KiB
YAML
211 lines
12 KiB
YAML
en:
|
|
discourse_automation:
|
|
scriptables:
|
|
llm_triage:
|
|
title: Triage posts using AI
|
|
description: "Triage posts using a large language model"
|
|
system_prompt_missing_post_placeholder: "System prompt must contain a placeholder for the post: %%POST%%"
|
|
site_settings:
|
|
discourse_ai_enabled: "Enable the discourse AI plugin."
|
|
ai_toxicity_enabled: "Enable the toxicity module."
|
|
ai_toxicity_inference_service_api_endpoint: "URL where the API is running for the toxicity module"
|
|
ai_toxicity_inference_service_api_key: "API key for the toxicity API"
|
|
ai_toxicity_inference_service_api_model: "Model to use for inference. Multilingual model works with Italian, French, Russian, Portuguese, Spanish and Turkish."
|
|
ai_toxicity_flag_automatically: "Automatically flag posts / chat messages that are above the configured thresholds."
|
|
ai_toxicity_flag_threshold_toxicity: "Toxicity: a rude, disrespectful, or unreasonable comment that is somewhat likely to make you leave a discussion or give up on sharing your perspective"
|
|
ai_toxicity_flag_threshold_severe_toxicity: "Severe Toxicity: a very hateful, aggressive, or disrespectful comment that is very likely to make you leave a discussion or give up on sharing your perspective"
|
|
ai_toxicity_flag_threshold_obscene: "Obscene"
|
|
ai_toxicity_flag_threshold_identity_attack: "Identity Attack"
|
|
ai_toxicity_flag_threshold_insult: "Insult"
|
|
ai_toxicity_flag_threshold_threat: "Threat"
|
|
ai_toxicity_flag_threshold_sexual_explicit: "Sexual Explicit"
|
|
ai_toxicity_groups_bypass: "Users on those groups will not have their posts classified by the toxicity module."
|
|
|
|
ai_sentiment_enabled: "Enable the sentiment module."
|
|
ai_sentiment_inference_service_api_endpoint: "URL where the API is running for the sentiment module"
|
|
ai_sentiment_inference_service_api_key: "API key for the sentiment API"
|
|
ai_sentiment_models: "Models to use for inference. Sentiment classifies post on the positive/neutral/negative space. Emotion classifies on the anger/disgust/fear/joy/neutral/sadness/surprise space."
|
|
|
|
ai_nsfw_detection_enabled: "Enable the NSFW module."
|
|
ai_nsfw_inference_service_api_endpoint: "URL where the API is running for the NSFW module"
|
|
ai_nsfw_inference_service_api_key: "API key for the NSFW API"
|
|
ai_nsfw_flag_automatically: "Automatically flag NSFW posts that are above the configured thresholds."
|
|
ai_nsfw_flag_threshold_general: "General Threshold for an image to be considered NSFW."
|
|
ai_nsfw_flag_threshold_drawings: "Threshold for a drawing to be considered NSFW."
|
|
ai_nsfw_flag_threshold_hentai: "Threshold for an image classified as hentai to be considered NSFW."
|
|
ai_nsfw_flag_threshold_porn: "Threshold for an image classified as porn to be considered NSFW."
|
|
ai_nsfw_flag_threshold_sexy: "Threshold for an image classified as sexy to be considered NSFW."
|
|
ai_nsfw_models: "Models to use for NSFW inference."
|
|
|
|
ai_openai_gpt35_url: "Custom URL used for GPT 3.5 chat completions. (for Azuer support)"
|
|
ai_openai_gpt35_16k_url: "Custom URL used for GPT 3.5 16k chat completions. (for Azure support)"
|
|
ai_openai_gpt4_url: "Custom URL used for GPT 4 chat completions. (for Azure support)"
|
|
ai_openai_gpt4_32k_url: "Custom URL used for GPT 4 32k chat completions. (for Azure support)"
|
|
ai_openai_dall_e_3_url: "Custom URL used for DALL-E 3 image generation. (for Azure support)"
|
|
ai_openai_organization: "(Optional, leave empty to omit) Organization id used for the OpenAI API. Passed in using the OpenAI-Organization header."
|
|
ai_openai_embeddings_url: "Custom URL used for the OpenAI embeddings API. (in the case of Azure it can be: https://COMPANY.openai.azure.com/openai/deployments/DEPLOYMENT/embeddings?api-version=2023-05-15)"
|
|
ai_openai_api_key: "API key for OpenAI API"
|
|
ai_anthropic_api_key: "API key for Anthropic API"
|
|
ai_hugging_face_api_url: "Custom URL used for OpenSource LLM inference. Compatible with https://github.com/huggingface/text-generation-inference"
|
|
|
|
composer_ai_helper_enabled: "Enable the Composer's AI helper."
|
|
ai_helper_allowed_groups: "Users on these groups will see the AI helper button in the composer."
|
|
ai_helper_allowed_in_pm: "Enable the composer's AI helper in PMs."
|
|
ai_helper_model: "Model to use for the AI helper."
|
|
ai_helper_custom_prompts_allowed_groups: "Users on these groups will see the custom prompt option in the AI helper."
|
|
ai_helper_automatic_chat_thread_title_delay: "Delay in minutes before the AI helper automatically sets the chat thread title."
|
|
ai_helper_automatic_chat_thread_title: "Automatically set the chat thread titles based on thread contents."
|
|
|
|
ai_embeddings_enabled: "Enable the embeddings module."
|
|
ai_embeddings_discourse_service_api_endpoint: "URL where the API is running for the embeddings module"
|
|
ai_embeddings_discourse_service_api_key: "API key for the embeddings API"
|
|
ai_embeddings_model: "Use all-mpnet-base-v2 for local and fast inference in english, text-embedding-ada-002 to use OpenAI API (need API key) and multilingual-e5-large for local multilingual embeddings"
|
|
ai_embeddings_generate_for_pms: "Generate embeddings for personal messages."
|
|
ai_embeddings_semantic_related_topics_enabled: "Use Semantic Search for related topics."
|
|
ai_embeddings_semantic_related_topics: "Maximum number of topics to show in related topic section."
|
|
ai_embeddings_backfill_batch_size: "Number of embeddings to backfill every 15 minutes."
|
|
ai_embeddings_pg_connection_string: "PostgreSQL connection string for the embeddings module. Needs pgvector extension enabled and a series of tables created. See docs for more info."
|
|
ai_embeddings_semantic_search_enabled: "Enable full-page semantic search."
|
|
ai_embeddings_semantic_related_include_closed_topics: "Include closed topics in semantic search results"
|
|
ai_embeddings_semantic_search_hyde_model: "Model used to expand keywords to get better results during a semantic search"
|
|
|
|
ai_summarization_discourse_service_api_endpoint: "URL where the Discourse summarization API is running."
|
|
ai_summarization_discourse_service_api_key: "API key for the Discourse summarization API."
|
|
|
|
ai_bot_enabled: "Enable the AI Bot module."
|
|
ai_bot_enable_chat_warning: "Display a warning when PM chat is initiated. Can be overriden by editing the translation string: discourse_ai.ai_bot.pm_warning"
|
|
ai_bot_allowed_groups: "When the GPT Bot has access to the PM, it will reply to members of these groups."
|
|
ai_bot_enabled_chat_bots: "Available models to act as an AI Bot"
|
|
ai_bot_add_to_header: "Display a button in the header to start a PM with a AI Bot"
|
|
|
|
ai_stability_api_key: "API key for the stability.ai API"
|
|
ai_stability_engine: "Image generation engine to use for the stability.ai API"
|
|
ai_stability_api_url: "URL for the stability.ai API"
|
|
|
|
ai_google_custom_search_api_key: "API key for the Google Custom Search API see: https://developers.google.com/custom-search"
|
|
ai_google_custom_search_cx: "CX for Google Custom Search API"
|
|
|
|
ai_bedrock_access_key_id: "Access key ID for the Bedrock API"
|
|
ai_bedrock_secret_access_key: "Secret access key for the Bedrock API"
|
|
ai_bedrock_region: "AWS region for the Bedrock API"
|
|
ai_cloudflare_workers_account_id: "Cloudflare account ID for the Cloudflare Workers AI API"
|
|
ai_cloudflare_workers_api_token: "API token for the Cloudflare Workers AI API"
|
|
|
|
reviewables:
|
|
reasons:
|
|
flagged_by_toxicity: The AI plugin flagged this after classifying it as toxic.
|
|
flagged_by_nsfw: The AI plugin flagged this after classifying at least one of the attached images as NSFW.
|
|
|
|
errors:
|
|
prompt_message_length: The message %{idx} is over the 1000 character limit.
|
|
invalid_prompt_role: The message %{idx} has an invalid role.
|
|
|
|
reports:
|
|
overall_sentiment:
|
|
title: "Overall sentiment"
|
|
description: "This chart compares the number of posts classified either positive or negative."
|
|
xaxis: "Positive(%)"
|
|
yaxis: "Date"
|
|
post_emotion:
|
|
title: "Post emotion"
|
|
description: "Number of posts classified with one of the following emotions, grouped by poster's trust level."
|
|
xaxis:
|
|
yaxis:
|
|
|
|
discourse_ai:
|
|
ai_helper:
|
|
errors:
|
|
completion_request_failed: "Something went wrong while trying to provide suggestions. Please, try again."
|
|
prompts:
|
|
translate: Translate to English
|
|
generate_titles: Suggest topic titles
|
|
proofread: Proofread text
|
|
markdown_table: Generate Markdown table
|
|
custom_prompt: "Custom Prompt"
|
|
explain: "Explain"
|
|
|
|
ai_bot:
|
|
personas:
|
|
cannot_delete_system_persona: "System personas cannot be deleted, please disable it instead"
|
|
cannot_edit_system_persona: "System personas can only be renamed, you may not edit commands or system prompt, instead disable and make a copy"
|
|
general:
|
|
name: Forum Helper
|
|
description: "General purpose AI Bot capable of performing various tasks"
|
|
artist:
|
|
name: Artist
|
|
description: "AI Bot specialized in generating images"
|
|
sql_helper:
|
|
name: SQL Helper
|
|
description: "AI Bot specialized in helping craft SQL queries on this Discourse instance"
|
|
settings_explorer:
|
|
name: Settings Explorer
|
|
description: "AI Bot specialized in helping explore Discourse site settings"
|
|
researcher:
|
|
name: Researcher
|
|
description: "AI Bot with Google access that can research information for you"
|
|
creative:
|
|
name: Creative
|
|
description: "AI Bot with no external integrations specialized in creative tasks"
|
|
dall_e3:
|
|
name: "DALL-E 3"
|
|
description: "AI Bot specialized in generating images using DALL-E 3"
|
|
topic_not_found: "Summary unavailable, topic not found!"
|
|
searching: "Searching for: '%{query}'"
|
|
command_summary:
|
|
categories: "List categories"
|
|
search: "Search"
|
|
tags: "List tags"
|
|
time: "Time"
|
|
summarize: "Summarize"
|
|
image: "Generate image"
|
|
google: "Search Google"
|
|
read: "Read topic"
|
|
setting_context: "Look up site setting context"
|
|
schema: "Look up database schema"
|
|
search_settings: "Searching site settings"
|
|
dall_e: "Generate image"
|
|
command_description:
|
|
read: "Reading: <a href='%{url}'>%{title}</a>"
|
|
time: "Time in %{timezone} is %{time}"
|
|
summarize: "Summarized <a href='%{url}'>%{title}</a>"
|
|
dall_e: "%{prompt}"
|
|
image: "%{prompt}"
|
|
categories:
|
|
one: "Found %{count} category"
|
|
other: "Found %{count} categories"
|
|
tags:
|
|
one: "Found %{count} tag"
|
|
other: "Found %{count} tags"
|
|
search:
|
|
one: "Found %{count} <a href='%{url}'>result</a> for '%{query}'"
|
|
other: "Found %{count} <a href='%{url}'>results</a> for '%{query}'"
|
|
google:
|
|
one: "Found %{count} <a href='%{url}'>result</a> for '%{query}'"
|
|
other: "Found %{count} <a href='%{url}'>results</a> for '%{query}'"
|
|
setting_context: "Reading context for: %{setting_name}"
|
|
schema: "%{tables}"
|
|
search_settings:
|
|
one: "Found %{count} result for '%{query}'"
|
|
other: "Found %{count} results for '%{query}'"
|
|
|
|
summarization:
|
|
configuration_hint:
|
|
one: "Configure the `%{setting}` setting first."
|
|
other: "Configure these settings first: %{settings}"
|
|
|
|
sentiment:
|
|
reports:
|
|
overall_sentiment:
|
|
positive: "Positive"
|
|
negative: "Negative"
|
|
post_emotion:
|
|
tl_01: "Trust levels 0-1"
|
|
tl_234: "Trust levels 2+"
|
|
sadness: "Sadness"
|
|
surprise: "Surprise"
|
|
neutral: "Neutral"
|
|
fear: "Fear"
|
|
anger: "Anger"
|
|
joy: "Joy"
|
|
disgust: "Disgust"
|