from fastapi import FastAPI from fastapi.responses import StreamingResponse from starlette.responses import HTMLResponse from llama_cpp import Llama import time import os app = FastAPI() llm = Llama(model_path="llama-2-7b-chat.Q3_K_S.gguf", n_ctx=2048, n_batch=512, use_mlock=True, n_threads=8) time.sleep(8) os.system("cls") print("Chatbot by Aritra Roy & DVLH") import warnings warnings.filterwarnings("ignore") def generate_responses(ask): prompt = f"Llama-2-Chat [INST] <>You're an assistant named Tusti. You are developed by Aritra Roy. Don't share any false information.<> {ask} [/INST]" output_stream = llm(prompt, max_tokens=1024, echo=False, temperature=0.2, top_p=0.1, stream=True) try: while True: try: chunk = next(output_stream) if chunk.get('choices') and chunk['choices'][0].get('text'): response_text_chunk = chunk['choices'][0]['text'] yield response_text_chunk except StopIteration: break except StopIteration: pass @app.get("/", response_class=HTMLResponse) def home(): return """ Chatbot Streaming

Chatbot Streaming

""" @app.post("/ask/") def ask_endpoint(ask: str): return StreamingResponse(generate_responses(ask)) if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=7856)