Guias
...
Extensão
Extensão Baseada em Código
Moderação
5min
aqui está a tradução da documentação para o português moderação de conteúdo personalizada além dos tipos de moderação de conteúdo integrados ao sistema, o paragraph também suporta regras de moderação de conteúdo definidas pelo usuário esse método é adequado para desenvolvedores que personalizam suas próprias implantações privadas por exemplo, em um serviço interno de atendimento ao cliente de uma empresa, pode ser necessário que os usuários, ao realizar consultas, ou os agentes de atendimento ao cliente, ao responder, não apenas evitem palavras relacionadas à violência, sexo e atividades ilegais, mas também evitem termos específicos proibidos pela empresa ou que violem a lógica de moderação estabelecida internamente os desenvolvedores podem estender as regras de moderação de conteúdo personalizadas em nível de código em uma implantação privada do paragraph início rápido aqui está um exemplo de como estender um tipo de moderação de conteúdo para serviço em nuvem, com os seguintes passos 1 inicializar o diretório para adicionar um tipo personalizado "serviço em nuvem", crie os diretórios e arquivos relevantes em api/core/moderation └── api └── core └── moderation └── cloud service ├── init py ├── cloud service py └── schema json 2 adicionar especificações de componentes de frontend o arquivo schema json define as especificações dos componentes de frontend para detalhes, consulte extensão baseada em código { "label" { "en us" "cloud service" }, "form schema" \[ { "type" "select", "label" { "en us" "cloud provider" }, "variable" "cloud provider", "required" true, "options" \[ { "label" { "en us" "aws" }, "value" "aws" }, { "label" { "en us" "google cloud" }, "value" "googlecloud" }, { "label" { "en us" "azure cloud" }, "value" "azure" } ], "default" "googlecloud", "placeholder" "" }, { "type" "text input", "label" { "en us" "api endpoint", }, "variable" "api endpoint", "required" true, "max length" 100, "default" "", "placeholder" "https //api example com" }, { "type" "paragraph", "label" { "en us" "api key", }, "variable" "api keys", "required" true, "default" "", "placeholder" "cole sua chave de api aqui" } ] } 3 adicionar classe de implementação template de código cloud service py , onde você pode implementar a lógica de negócios específica nota o nome da variável da classe deve ser o mesmo que o nome do tipo personalizado, correspondendo ao nome do diretório e do arquivo, e deve ser único from core moderation base import moderation, moderationaction, moderationinputsresult, moderationoutputsresult class cloudservicemoderation(moderation) """ o nome do tipo personalizado deve ser único, mantendo o mesmo nome do diretório e do arquivo """ name str = "cloud service" @classmethod def validate config(cls, tenant id str, config dict) > none """ validação do schema json será chamado quando o usuário salvar a configuração exemplo config = { "cloud provider" "googlecloud", "api endpoint" "https //api example com", "api keys" "123456", "inputs config" { "enabled" true, "preset response" "seu conteúdo viola nossa política de uso por favor, revise e tente novamente " }, "outputs config" { "enabled" true, "preset response" "seu conteúdo viola nossa política de uso por favor, revise e tente novamente " } } \ param tenant id id do workspace \ param config variáveis do formulário de configuração \ return """ cls validate inputs and outputs config(config, true) if not config get("cloud provider") raise valueerror("cloud provider é obrigatório") if not config get("api endpoint") raise valueerror("api endpoint é obrigatório") if not config get("api keys") raise valueerror("api keys é obrigatório") def moderation for inputs(self, inputs dict, query str = "") > moderationinputsresult """ moderação para entradas \ param inputs entradas do usuário \ param query a consulta do aplicativo de chat, caso seja um app de completude, ficará vazio \ return o resultado da moderação """ flagged = false preset response = "" if self config\['inputs config']\['enabled'] preset response = self config\['inputs config']\['preset response'] if query inputs\['query '] = query flagged = self is violated(inputs) return moderationinputsresult(flagged=flagged, action=moderationaction direct output, preset response=preset response) def moderation for outputs(self, text str) > moderationoutputsresult """ moderação para saídas \ param text o texto da resposta do llm \ return o resultado da moderação """ flagged = false preset response = "" if self config\['outputs config']\['enabled'] preset response = self config\['outputs config']\['preset response'] flagged = self is violated({'text' text}) return moderationoutputsresult(flagged=flagged, action=moderationaction direct output, preset response=preset response) def is violated(self, inputs dict) """ a principal lógica da moderação \ param inputs \ return o resultado da moderação """ return false 4 depurar a extensão neste ponto, você pode selecionar o tipo de extensão de moderação de conteúdo "serviço em nuvem" personalizado para depuração na interface de orquestração do aplicativo do paragraph template de classe de implementação from core moderation base import moderation, moderationaction, moderationinputsresult, moderationoutputsresult class cloudservicemoderation(moderation) """ o nome do tipo personalizado deve ser único, mantendo o mesmo nome do diretório e do arquivo """ name str = "cloud service" @classmethod def validate config(cls, tenant id str, config dict) > none """ validação do schema json será chamado quando o usuário salvar a configuração \ param tenant id id do workspace \ param config variáveis do formulário de configuração \ return """ cls validate inputs and outputs config(config, true) \# implemente sua própria lógica aqui def moderation for inputs(self, inputs dict, query str = "") > moderationinputsresult """ moderação para entradas \ param inputs entradas do usuário \ param query a consulta do aplicativo de chat, caso seja um app de completude, ficará vazio \ return o resultado da moderação """ flagged = false preset response = "" \# implemente sua própria lógica aqui return moderationinputsresult(flagged=flagged, action=moderationaction direct output, preset response=preset response) def moderation for outputs(self, text str) > moderationoutputsresult """ moderação para saídas \ param text o texto da resposta do llm \ return o resultado da moderação """ flagged = false preset response = "" \# implemente sua própria lógica aqui return moderationoutputsresult(flagged=flagged, action=moderationaction direct output, preset response=preset response) introdução detalhada ao desenvolvimento de classe de implementação validate config o método de validação do formulário schema json é chamado quando o usuário clica em "publicar" para salvar a configuração parâmetros de formulário config {{variable}} variável personalizada do formulário moderation for inputs função de validação de entradas inputs valores passados pelo usuário final query o conteúdo de entrada atual do usuário final em uma conversa, um parâmetro fixo para aplicativos de conversação moderationinputsresult resultados da moderação de entradas moderation for outputs função de validação de saídas text conteúdo da resposta do modelo moderationoutputsresult resultados da moderação de saídas