Tenho um e apenas um pedido e ele é sempre o mesmo: você tem um prompt para isso, então por favor não o esconda nos vazios do código. Tudo que preciso é adicionar uma frase: sempre use finlandês. É só isso. E de repente tudo está em uso globalmente.
Mas agora isso é apenas uma perda de tempo meu, do tempo dos meus usuários ativos e do tempo de todos os usuários anônimos que recebo, incluindo aqueles que precisariam de tal serviço.
Este é um trabalho maravilhoso. Mas por causa desse único recurso que falta… não. Eu gostaria de oferecê-lo aos meus usuários porque se eles puderem usá-lo, todos poderão. Mas não faz absolutamente nenhum sentido gerar isso, resumir e assim por diante usando inglês em um fórum finlandês.
Temos um plano para personalização de prompts no DiscourseAI, permitindo que nossos usuários alterem rapidamente todos os prompts usados nas várias partes do plugin. Acredito que é algo que poderemos abordar este ano.
Enquanto isso, podemos centralizar tais solicitações neste tópico.
Isto é um dilema! Tornar os prompts personalizáveis é um problema muito difícil.
Pensando em detalhes aqui, vamos pegar:
CompletionPrompt.seed do |cp|
cp.id = -306
cp.name = "explain"
cp.prompt_type = CompletionPrompt.prompt_types[:text]
cp.messages = { insts: <<~TEXT }
Você é um tutor explicando um termo a um aluno em um contexto específico.
Fornecerei tudo o que você precisa saber dentro de tags <input>, que consistem no termo que quero que você
explique dentro de tags <term>, o contexto em que foi usado dentro de tags <context>, o título do
tópico em que foi usado dentro de tags <topic>, e opcionalmente, a postagem anterior na conversa
em tags <replyTo>.
Usando todas essas informações, escreva um parágrafo com uma breve explicação
do que o termo significa. Formate a resposta usando Markdown. Responda apenas com a explicação e
nada mais.
TEXT
end
Como podemos resolver isso e torná-lo personalizável?
Usar o sistema de tradução, mover as instruções para server.en.yml
Substituir “Completion Prompt” em favor do modelo Ai Persona
Fornecer um editor para o modelo “Completion Prompt”
Nós (como administradores de usuários finais) não precisamos criar prompts inteiros nessas situações. Precisamos apenas adicionar uma solicitação para usar um idioma específico no prompt. Não sei nada sobre codificação, mas, de modo geral, adicionar uma string de texto a um texto é bem trivial, não é? E você está enviando apenas texto aqui?
é específico para a questão do idioma em vez de personalização geral do prompt… mas se tivéssemos um menu suspenso de idioma, poderíamos pedir à IA para traduzir o prompt (exceto pelas tags) e então salvar/enviar esse prompt?
Traduzindo prompt para finlandêsAI
traduza isto para finlandês, exceto pelas tags <>:
Você é um tutor explicando um termo a um aluno em um contexto específico. Fornecerei tudo o que você precisa saber dentro de tags <input>, que consiste no termo que quero que você explique dentro de tags <term>, o contexto em que foi usado dentro de tags <context>, o título do tópico em que foi usado dentro de tags <topic>, e opcionalmente, a postagem anterior na conversa em tags <replyTo>. Usando todas essas informações, escreva um parágrafo com uma breve explicação do que o termo significa. Formate a resposta usando Markdown. Responda apenas com a explicação e nada mais.
Sinä olet ohjaaja, joka selittää termin oppilaalle tietyssä kontekstissa. Minä tarjoan sinulle kaiken tarvittavan tiedon <input> tageissa, joka sisältää termin, jonka haluat minun selittävän <term> tageissa, kontekstin, jossa sitä käytettiin <context> tageissa, aiheen otsikon, jossa sitä käytettiin <topic> tageissa, ja valinnaisesti, edellisen viestin keskustelussa <replyTo> tageissa. Käyttäen kaikkea tätä tietoa, kirjoita kappale lyhyellä selityksellä siitä, mitä termi tarkoittaa. Muotoile vastaus käyttäen Markdownia. Vastaa vain selityksellä eikä millään muulla.
Os detalhes técnicos poderiam ser uma parte separada do prompt? então teríamos um prompt que é algo como:
Aplique este comportamento (administradores podem editar ou anexar):
Você é um tutor explicando um termo a um aluno em um contexto específico.
Escreva uma parágrafosentença com uma breve explicação do que o termo significa.
Responda apenas com a explicação e nada mais.
Use muitos emojis
Usando estes detalhes técnicos (não editáveis, onde atualizamos para evitar drift):
o termo que quero que você explique está dentro de tags <term>
o contexto em que foi usado dentro de tags <context>
o título do tópico em que foi usado dentro de tags <topic>
a postagem anterior na conversa está em tags <replyTo> (opcional)
Não, essa é uma péssima ideia. Ela fará duas traduções, alterando o prompt a cada vez. Tudo o que é necessário é a frase “Responda em [qualquer idioma]”[1]. Seu problema é decidir qual seria esse idioma e eu gostaria de sugerir o mesmo que o fórum está usando como local padrão.
ou “use”… isso é apenas uma questão de formulação, mas tem que ser em inglês. Bem, isso é verdade com a OpenAI, outras são áreas inexploradas para mim ↩︎
Tenho um prova de conceito e um exemplo funcional aqui:
O GPT-4 funciona muito bem na maioria dos idiomas, o GPT 3.5 é razoável, não tenho certeza do que o Gemini Pro está falando, está em uma terra aleatória.
Testei antes/depois, e pelo menos para GPT-4-Turbo e português, ao usar o revisor de texto, não há nenhuma alteração. Acho que o modelo foi inteligente o suficiente para manter meu texto no idioma original.
Legenda de Imagem com IA
Eu estendi isso para legendas de imagem, e está funcionando muito bem lá:
Obrigado, pessoal! Pelo menos as legendas agora são criadas usando o idioma desejado (e a qualidade é a esperada, mas isso vem da OpenAI, pelo menos para mim).
Resumos… ainda não sei porque não consigo criá-los há algum tempo. Mas isso é outra história completamente diferente.