Suporte para personalização de prompts no DiscourseAI

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.

6 curtidas

Esperançosamente não antes que o grande problema de idioma seja resolvido :thinking:

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.

8 curtidas

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?

  1. Usar o sistema de tradução, mover as instruções para server.en.yml
  2. Substituir “Completion Prompt” em favor do modelo Ai Persona
  3. Fornecer um editor para o modelo “Completion Prompt”
  4. Fazer engen
6 curtidas

Talvez não. Mas o OpenAI funciona.

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?

E o prompt em si deve ser em inglês, é claro.

2 curtidas

é 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

:person_curly_hair: 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.

:robot: 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)
  • formate a resposta usando Markdown
1 curtida

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.


  1. 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 ↩︎

1 curtida

Tenho uma solução temporária.

Faça um fork do discourse-ai do GitHub e modifique o conteúdo para falar francês.

como isto:

Em seguida, modifique o arquivo app.yml e altere o endereço do plugin discourse-ai para o seu próprio repositório.

Por fim, sincronize manualmente seu repositório com o repositório oficial.

Desculpe, mas por favor não, este PR envia requisições para um proxy Netlify, tentarei algumas correções fáceis hoje.

2 curtidas

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.

O Claude 2 também produz resultados razoáveis.

3 curtidas

Revisão de Texto

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á:

5 curtidas

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.

2 curtidas