Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

Implementação da FastAPI Interface de diálogo visual Ollama

I. Estrutura do catálogo

do notebook do repositório:

fastapi_chat_app/
│
├── app.py
├── websocket_handler.py
static/ │ ├─ static/ │ └─ index.html
│ └── index.html
└─── requisitos.txt
  • app.py A configuração e o roteamento principais dos aplicativos FastAPI.
  • websocket_handler.py Manipula conexões WebSocket e fluxos de mensagens.
  • static/index.html Página HTML.
  • requisitos.txt Dependências necessárias, instaladas via pip install -r requirements.txt.

 

II - Clonagem desse depósito

git clone https://github.com/AXYZdong/handy-ollama

 

III. instalação de dependências

pip install -r requirements.txt

 

IV. código principal

app.py O código principal do arquivo é o seguinte:

importação ollama
from fastapi import WebSocket
async def websocket_endpoint(websocket: WebSocket): await websocket.accept(): # Aceitar conexão WebSocket.
await websocket.accept() # Aceitando a conexão WebSocket
user_input = await websocket.receive_text() # Receber uma mensagem de texto da entrada do usuário
stream = ollama.chat( # Usar a biblioteca ollama para ter uma conversa com o modelo especificado
model='ollama3.1', # Especificar que o modelo usado é o ollama3.1
messages=[{'role': 'user', 'content': user_input}], # Transmitir mensagens de entrada do usuário
stream=True # Ativar o streaming
)
try.
for chunk in stream: # Iterar pelos resultados da transferência de streaming
model_output = chunk['message']['content'] # Obter o conteúdo da saída do modelo
await websocket.send_text(model_output) # Envie o conteúdo da saída do modelo via WebSocket
except Exception as e: # Catch exception
await websocket.send_text(f "Error: {e}") # Envie a mensagem de erro pelo WebSocket
finalmente.
await websocket.close() # Feche a conexão WebSocket.

Aceita uma conexão WebSocket:

  • aguardar websocket.accept()Primeiro, a função aceita uma solicitação de conexão WebSocket do cliente e estabelece um canal de comunicação com o cliente.

Receber entrada do usuário:

  • user_input = await websocket.receive_text()Mensagem de texto: Recebe uma mensagem de texto do cliente via WebSocket para obter a entrada do usuário.

Inicializar o fluxo de diálogo:

  • stream = ollama.chat(...)Chamada do método chat da biblioteca ollama, especificando que o modelo usado é o llama3.1. Passe a entrada do usuário como uma mensagem para o modelo e ative o streaming (stream=True) para obter a resposta gerada pelo modelo de forma incremental.

Processamento da saída do modelo:

  • para trecho no fluxoIteração sobre os blocos de dados transmitidos pelo modelo.
  • model_output = chunk['message']['content']Extraia o conteúdo textual gerado pelo modelo de cada bloco de dados.
  • await websocket.send_text(model_output)Resposta do modelo extraído: envia as respostas do modelo extraído de volta ao cliente via WebSocket para diálogo em tempo real.

Tratamento de exceções:

  • exceto Exception as eSe ocorrer alguma exceção durante o processamento (por exemplo, problema de rede, erro de modelo etc.), capture a exceção e envie uma mensagem de erro via WebSocket para informar ao cliente que ocorreu um erro.

Feche a conexão WebSocket:

  • finalmenteIndependentemente de ocorrer ou não uma exceção, é garantido que a conexão WebSocket seja fechada para liberar recursos e encerrar a sessão.

 

V. Executando o aplicativo

  1. No diretório (fastapi_chat_app/);
  2. Execute o arquivo app.py.
uvicorn app:app --reload

Abrir página.

Implementação da FastAPI Ollama Visual Dialogue Interface-1


Saída normal exibida em segundo plano.

Implementação FastAPI da Ollama Visual Dialogue Interface-2

CDN1
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Implementação da FastAPI Interface de diálogo visual Ollama

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil