html 💡 Argumentos especiais | Nullcore
Pule para o conteúdo principal
aviso

Este tutorial é uma contribuição da comunidade e não é suportado pela equipe Nullcore. Serve apenas como uma demonstração sobre como personalizar o Nullcore para o seu caso de uso específico. Quer contribuir? Confira o tutorial contribuinte.

💡 Argumentos especiais

Ao desenvolver o seu próprioTools, Assim,FunctionsFilters, Assim,PipesouActionsPipelinesetc, você pode usar argumentos especiais explorar todo o espectro do que o Open-Webui tem a oferecer.

Esta página tem como objetivo detalhar o tipo e a estrutura de cada argumento especial, além de fornecer um exemplo.

body

UMdictgeralmente destinado a ir quase diretamente para o modelo. Embora não seja estritamente um argumento especial, é incluído aqui para facilitar a referência e porque contém alguns argumentos especiais.

Exemplo

{
"fluxo" verdadeiro, Assim,
"modelo" "My-Cool-Model", Assim,
# string minúscula com - palavras separadasEste é o ID do modelo
"Mensagens" [[
{
"papel" "usuário", Assim,
"contente" [[
{
"tipo" "texto", Assim,
"texto" "O que há nesta foto?"
, Assim,
{
"tipo" "Image_url", Assim,
"Image_url" {
"Url" "Dados: Image/Png; Base64, IVBORW0KGGOAAAANSUHEUGAAADYAAAGCCAYAAABK2YF [REDACTED]"
# As imagens são passadas como dados codificados base64



, Assim,
{
"papel" "assistente", Assim,
"contente" "A imagem parece ser [redigido]"
, Assim,
, Assim,
"características" {
"Image_generation" falso, Assim,
"code_interpreter" falso, Assim,
"Web_search" falso
, Assim,
"Stream_Options" {
"Incluir_usage" verdadeiro
, Assim,
"metadados" "[Exatamente o mesmo ditado que __metadata__]", Assim,
"Arquivos" "[Exatamente a mesma lista que __files__]"



__user__

UMdictcom informações do usuário.

Observe que se oUserValvesClasse é definida, sua instância deve ser acessada via__user__["valves"]. Caso contrário, ovalvesKeyValue está ausente inteiramente de__user__

Exemplo
{
"eu ia" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx", Assim,
"e-mail" "Cheesy_dude@nullcore.com", Assim,
"nome" "Patrick", Assim,
"papel" "usuário", Assim,
# A função pode ser `user` ou` admin`
"Válvulas" "[A instância do USEVALVE]"

__metadata__

UMdictCom informações amplas sobre o bate -papo, modelo, arquivos, etc.

Exemplo
{
"ID do usuário" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx", Assim,
"Chat_id" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx", Assim,
"message_id" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx", Assim,
"session_id" "xxxxxxxxxxxxxxxxxxxxxx", Assim,
"Tool_ids" nulo, Assim,
# Tool_ids é uma lista de STR.
"Tool_servers" [[, Assim,
"Arquivos" "[O mesmo que no corpo ['arquivos']]", Assim,
# Se nenhum arquivo for fornecido, Assim,A chave de arquivos existe em __metadata__ e seu valor é[[
"características" {
"Image_generation" falso, Assim,
"code_interpreter" falso, Assim,
"Web_search" falso
, Assim,
"Variáveis" {
"{{NOME DE USUÁRIO}}" "Cheesy_username", Assim,
"{{User_location}}" "Desconhecido", Assim,
"{{Current_dateTime}}" "2025-02-02 xx: xx: xx", Assim,
"{{Current_date}}" "2025-02-02", Assim,
"{{Current_time}}" "XX: xx: xx", Assim,
"{{Current_weekday}}" "Segunda-feira", Assim,
"{{Current_timeZone}}" "Europa/Berlim", Assim,
"{{User_language}}" "En-us"
, Assim,
"modelo" "[Exatamente o mesmo ditado que __model__]", Assim,
"Diretor" falso, Assim,
"function_calling" "nativo", Assim,
"tipo" "User_Response", Assim,
"interface" "Open-webui"


__model__

UMdictcom informações sobre o modelo.

Exemplo
{
"eu ia" "My-Cool-Model", Assim,
"nome" "Meu modelo legal", Assim,
"objeto" "modelo", Assim,
"Criado" 1746000000, Assim,
"Propriedade_by" "Openai", Assim,
# Openai ou Ollama
"Info" {
"eu ia" "My-Cool-Model", Assim,
"ID do usuário" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx", Assim,
"Base_model_id" "GPT-4O", Assim,
# Este é o nome do modelo que o ponto de extremidade do modelo serve
"nome" "Meu modelo legal", Assim,
"Params" {
"sistema" "Você é meu melhor assistente. Você responde [redigido]", Assim,
"function_calling" "nativo"
# opções personalizadas aparecem aqui, Assim,por exemplo"Top K"
, Assim,
"Meta" {
"Profile_image_url" "/static/favicon.png", Assim,
"descrição" "Descrição do meu modelo de escape", Assim,
"Recursos" {
"visão" verdadeiro, Assim,
"uso" verdadeiro, Assim,
"Citações" verdadeiro
, Assim,
"posição" 17, Assim,
"Tags" [[
{
"nome" "For_friends"
, Assim,
{
"nome" "Vision_enabled"

, Assim,
"sugestion_prompts" nulo
, Assim,
"Access_control" {
"ler" {
"Group_ids" [[, Assim,
"User_ids" [[
, Assim,
"escrever" {
"Group_ids" [[, Assim,
"User_ids" [[

, Assim,
"Is_Active" verdadeiro, Assim,
"atualizado_at" 1740000000, Assim,
"Created_at" 1740000000
, Assim,
"Predefinição" verdadeiro, Assim,
"Ações" [[, Assim,
"Tags" [[
{
"nome" "For_friends"
, Assim,
{
"nome" "Vision_enabled"




__messages__

UMlistdas mensagens anteriores.

Veja obody["messages"]valor acima.

__chat_id__

Ostrdochat_id

Veja o__metadata__["chat_id"]valor acima.

__session_id__

Ostrdosession_id

Veja o__metadata__["session_id"]valor acima.

__message_id__

Ostrdomessage_id

Veja o__metadata__["message_id"]valor acima.

__event_emitter__

UMCallableusado para exibir informações de evento para o usuário.

__event_call__

UMCallableusado paraActions

__files__

UMlistde arquivos enviados pelo bate -papo. Observe que as imagens não são consideradas arquivos e são enviadas diretamente ao modelo como parte dobody["messages"]lista.

O binário real do arquivo não faz parte dos argumentos por motivo de desempenho, mas o arquivo permanece acessível por seu caminho, se necessário. Por exemplo, usandodockerA sintaxe do Python para o caminho pode ser:

dePathlibimportarCaminho

the_fileCaminhof "/app/backend/data/uploads/{__ arquivos __ [0] ["arquivos"] ["eu ia"]} _ {__ arquivos __ [0] ["arquivos"] ["nome do arquivo
afirmarthe_fileexiste

Observe que os mesmos arquivos também podem ser acessados ​​via__metadata__["files"](e seu valor é[]Se nenhum arquivo for enviado) ou viabody["files"](mas ofilesKey está ausente inteiramente debodySe nenhum arquivo for enviado).

Exemplo

[[
{
"tipo" "arquivo", Assim,
"arquivo" {
"eu ia" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx", Assim,
"Nome do arquivo" "Napoleão - Wikipedia.pdf", Assim,
"ID do usuário" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx", Assim,
"Hash" "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", Assim,
"dados" {
"contente" "Napoleão - Wikipedia \ n \ n \ nnapoleon i \ n \ nO Imperador Napoleão em seu estudo nas \ ntuilerias, 1812 \ n \ Nemperor do francês \ n \ n1st reign 18 de 1804 - 1814 de 1814 \ n \ n \ n \ n1st reign 1804 - 6 de 1814 \ n \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nS reinado em 20 de março de 1815 - 22 de junho de 1815 \ n \ nsuccessor Louis xviii [a] \ n \ nfirst cônsul da República Francesa \ n \ nin Office \ n13 CHEMOATOMIA 1799 - 18 de maio de 1804 \ n \ nborn NapoleOne BuonAtrte \ n15, 1799 - 18 de maio de 180. de \ nfrance \ n \ ndied em 5 de maio de 1821 (com 51 anos) \ nlongwood, Saint Helena \ n \ nburial 15 de dezembro de 1840 \ nles invalidados, paris \ n \ nnapoleon \ nnapoleon Bonaparte [] (bonone nasceloona \ nbuonaTe; mais tarde \ n conhecido [redigido] ", Assim,
# O valor do conteúdo é a saída do analisador de documentos, Assim,O exemplo acima é com Tika como um analisador de documentos
, Assim,
"Meta" {
"nome" "Napoleão - Wikipedia.pdf", Assim,
"Content_type" "Aplicativo/PDF", Assim,
"tamanho" 10486578, Assim,
# em bytes, Assim,Aqui cerca de 10 MB
"dados" {, Assim,
"Coleção_name" "FILE-96XXXXXX-XXXXX-XXXX-XXXXX-XXXXXXXXXXXX"
# Sempre começa por 'arquivo'
, Assim,
"Created_at" 1740000000, Assim,
"atualizado_at" 1740000000
, Assim,
"eu ia" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx", Assim,
"Url" "/api/v1/files/xxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxxx", Assim,
"nome" "Napoleão - Wikipedia.pdf", Assim,
"Coleção_name" "FILE-96XXXXXX-XXXXX-XXXX-XXXXX-XXXXXXXXXXXX"
"status" "Carregado", Assim,
"tamanho" 10486578, Assim,
"erro" , Assim,
"Itemid" "xxxxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxxx"
# itemid não é o mesmo que o arquivo[["eu ia"




__request__

Uma instância defastapi.Request. Você pode ler mais noPágina de migraçãoou emdocumentação de FASTAPI

__task__

UMstrPara o tipo de tarefa. Seu valor é apenas uma abreviação para__metadata__["task"]se presente, caso contrárioNone

Valores possíveis

[[
"Title_generation", Assim,
"Tags_generation", Assim,
"Emoji_generation", Assim,
"Query_generation", Assim,
"Image_prompt_generation", Assim,
"AutoComplete_generation", Assim,
"function_calling", Assim,
"MOA_RESPONSEIRO_GENERAÇÃO"

__task_body__

UMdictcontendo obodynecessário para realizar um dado__task__. Seu valor é apenas uma abreviação para__metadata__["task_body"]se presente, caso contrárioNone

Sua estrutura é a mesma quebodyAcima, com modificações como usar o modelo e a mensagem do modelo e o sistema apropriados etc.

__tools__

UMlistdeToolUserModelinstâncias.

Para detalhes os atributos deToolUserModelinstâncias, o código pode ser encontrado emferramentas.py