Como editar um arquivo dentro de um contêiner Docker
Se você está recebendo a mensagem de erro abaixo ao chamar a API /api/chat/completions do OpenWebUI em sua versão v0.9.5 saiba que é possível resolver alterando uma linha de código enquanto que a solução não é distribuída.
["error": {
"message": "Bad request - please check your parameters",
"timestamp": 1778603658835,
"name": "NodeApiError",
"description": "'NoneType' object has no attribute 'startswith'",
"context": {}
}
]
Caso esteja utilizando Docker, primeiro identifique o ID do contêiner que está executando o OpenWebUi com o comando:
[sudo docker ps -a]
Em seguida copie o arquivo main.py para sua máquina (substitua ID pelo id do conteiner):
[sudo docker cp ID:/app/backend/open_webui/socket/main.py ./main.py]
Edite o arquivo e procure pela linha:
[if request_info.get('chat_id', '').startswith('channel:'):]
Altere essa linha para:
[if (request_info.get('chat_id') or '').startswith('channel:'):]
Pronto, agora copie o arquivo de volta para o container (substitua ID pelo id do conteiner):
[sudo docker cp ./main.py ID:/app/backend/open_webui/socket/main.py]
E então reinicie o conteiner (substitua ID pelo id do conteiner):
[sudo docker restart ID]
Após realizar este procedimento, faça uma nova chamada de API e verá seu funcionamento normal.
Fonte: https://github.com/open-webui/open-webui/issues/24553#issuecomment-4416523151
