|
import gradio as gr |
|
import os |
|
from loguru import logger |
|
from langchain_community.llms import LlamaCpp |
|
from langchain_core.callbacks import CallbackManager, StreamingStdOutCallbackHandler |
|
from langchain_core.prompts import PromptTemplate |
|
import spaces |
|
import json |
|
|
|
if not os.path.exists('logs'): |
|
os.makedirs('logs') |
|
|
|
|
|
log_file = 'logs/file_{time}.log' |
|
|
|
|
|
logger.add(log_file, rotation="500 MB") |
|
|
|
template = """Question: {question} |
|
|
|
Answer: Let's work this out in a step by step way to be sure we have the right answer.""" |
|
|
|
prompt = PromptTemplate.from_template(template) |
|
|
|
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()]) |
|
|
|
|
|
|
|
|
|
|
|
llm = LlamaCpp( |
|
model_path="/home/user/app/models/Phi-3-mini-4k-instruct-q4.gguf", |
|
callback_manager=callback_manager, |
|
verbose=True, |
|
) |
|
llm_chain = prompt | llm |
|
|
|
@spaces.GPU(duration=120) |
|
def greet(name): |
|
logger.info("This is an info message") |
|
question = name |
|
|
|
return llm_chain.invoke({"question": question}) |
|
|
|
demo = gr.Interface(fn=greet, inputs="text", outputs="text") |
|
demo.launch() |
|
|