Spaces:
Sleeping
Sleeping
| """CLI mínimo de chat com streaming. | |
| Uso: uv run python -m espelho.chat_cli | |
| """ | |
| from espelho import config | |
| from espelho.model import load_model, stream_generate | |
| def main() -> None: | |
| print(f"Carregando {config.ACTIVE_MODEL} ...") | |
| tokenizer, model = load_model() | |
| print("Pronto. Digite sua mensagem (Ctrl-D ou 'sair' para encerrar).\n") | |
| messages: list[dict] = [] | |
| while True: | |
| try: | |
| user = input("você> ").strip() | |
| except (EOFError, KeyboardInterrupt): | |
| print() | |
| break | |
| if not user or user.lower() == "sair": | |
| break | |
| messages.append({"role": "user", "content": user}) | |
| print("modelo> ", end="", flush=True) | |
| reply = "" | |
| for chunk in stream_generate( | |
| tokenizer, model, messages, | |
| max_new_tokens=config.MAX_NEW_TOKENS, | |
| temperature=config.TEMPERATURE, | |
| ): | |
| reply += chunk | |
| print(chunk, end="", flush=True) | |
| print("\n") | |
| messages.append({"role": "assistant", "content": reply}) | |
| if __name__ == "__main__": | |
| main() | |