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,Functions
Filters
, Assim,Pipes
ouActions
Pipelines
etc, 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
UMdict
geralmente 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__
UMdict
com informações do usuário.
Observe que se oUserValves
Classe é definida, sua instância deve ser acessada via__user__["valves"]
. Caso contrário, ovalves
KeyValue 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__
UMdict
Com 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__
UMdict
com 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__
UMlist
das mensagens anteriores.
Veja obody["messages"]
valor acima.
__chat_id__
Ostr
dochat_id
Veja o__metadata__["chat_id"]
valor acima.
__session_id__
Ostr
dosession_id
Veja o__metadata__["session_id"]
valor acima.
__message_id__
Ostr
domessage_id
Veja o__metadata__["message_id"]
valor acima.
__event_emitter__
UMCallable
usado para exibir informações de evento para o usuário.
__event_call__
UMCallable
usado paraActions
__files__
UMlist
de 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, usandodocker
A 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 ofiles
Key está ausente inteiramente debody
Se 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__
UMstr
Para 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__
UMdict
contendo obody
necessá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 quebody
Acima, com modificações como usar o modelo e a mensagem do modelo e o sistema apropriados etc.
__tools__
UMlist
deToolUserModel
instâncias.
Para detalhes os atributos deToolUserModel
instâncias, o código pode ser encontrado emferramentas.py