Spaces:
Sleeping
Sleeping
| import json | |
| import requests | |
| import streamlit as st | |
| import subprocess | |
| try: | |
| result = subprocess.run(["ollama", "--version"], capture_output=True, text=True, check=True) | |
| print("✅ Ollama è installato:", result.stdout.strip()) | |
| except FileNotFoundError: | |
| print("❌ Ollama non è installato.") | |
| except subprocess.CalledProcessError as e: | |
| print("⚠️ Errore durante il controllo di Ollama:", e) | |
| # Titolo dell'app | |
| st.title("💬 Chat con Ollama") | |
| # Campo di input per l'utente | |
| prompt = st.text_input("Inserisci il tuo prompt:", "") | |
| # Bottone per inviare la richiesta | |
| if st.button("Invia"): | |
| if prompt.strip() == "": | |
| st.warning("Inserisci un prompt valido!") | |
| else: | |
| # Mostra un indicatore di caricamento | |
| with st.spinner("Generando risposta..."): | |
| response = requests.post( | |
| "http://localhost:11434/api/generate", | |
| json={"model": "hf.co/hugging-quants/Llama-3.2-1B-Instruct-Q8_0-GGUF", "prompt": prompt}, | |
| stream=True | |
| ) | |
| if response.status_code == 200: | |
| full_response = "" | |
| # Legge la risposta progressivamente | |
| for line in response.iter_lines(): | |
| if line: | |
| try: | |
| json_data = line.decode("utf-8") | |
| data = json.loads(json_data) | |
| full_response += data.get("response", "") | |
| if data.get("done", False): | |
| st.write(full_response) | |
| break | |
| except json.JSONDecodeError: | |
| st.error(f"Errore nel parsing JSON: {line}") | |
| else: | |
| st.error(f"Errore nella richiesta: {response.status_code}") | |