Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from langchain_community.llms import LlamaCpp | |
| from langchain.prompts import PromptTemplate | |
| from langchain.chains import LLMChain | |
| from langchain_core.callbacks import StreamingStdOutCallbackHandler | |
| from langchain.chains import RetrievalQA | |
| from langchain.memory import ConversationBufferMemory | |
| from langchain import PromptTemplate | |
| from langchain.retrievers import TFIDFRetriever | |
| def get_model(m_name): | |
| callbacks = [StreamingStdOutCallbackHandler()] | |
| print("creating llm started") | |
| llm = LlamaCpp( | |
| model_path=m_name, | |
| temperature=0.75, | |
| max_tokens=30, | |
| top_p=4, | |
| callback_manager=callbacks, | |
| verbose=True, # Verbose is required to pass to the callback manager | |
| ) | |
| print("creating llm ended") | |
| # retriever = TFIDFRetriever.from_texts( | |
| # ["Finatial AI"]) | |
| # template = """You are the Finiantial expert: | |
| # {history} | |
| # {context} | |
| # ### Instruction: | |
| # {question} | |
| # ### Input: | |
| # ### Response: | |
| # """ | |
| # prompt1 = PromptTemplate( | |
| # input_variables=["history", "context", "question"], | |
| # template=template, | |
| # ) | |
| # qa = RetrievalQA.from_chain_type( | |
| # llm=llm, | |
| # chain_type='stuff', | |
| # retriever=retriever, | |
| # verbose=False, | |
| # chain_type_kwargs={ | |
| # "verbose": False, | |
| # "prompt": prompt1, | |
| # "memory": ConversationBufferMemory( | |
| # memory_key="history", | |
| # input_key="question"), | |
| # } | |
| # ) | |
| template = """You are the Finiantial expert: | |
| ### Instruction: | |
| {question} | |
| ### Input: | |
| ### Response: | |
| """ | |
| prompt = PromptTemplate(template=template, input_variables=["question"]) | |
| llm_chain_model = LLMChain(prompt=prompt, llm=llm) | |
| print("creating model created") | |
| return llm_chain_model | |
| def main(): | |
| """Build a streamlit layout""" | |
| # Wide mode | |
| st.set_page_config(layout="wide") | |
| llm_models = { | |
| "Base": "unsloth.Q5_K_M.gguf", | |
| "Cerebras": "cerebras_Llama3-DocChat-1.0-8B_Base_adapt_basic_model_16bit.gguf", | |
| "Bavest": "bavest_fin_llama_33b_adapt_basic_model_16bit.gguf", | |
| "Aliyasir": "aliyasir_Llama-3-8B-Instruct-Finance-RAG_adapt_basic_model_16bit.gguf", | |
| "Basic Adapt": "adapt-unsloth.Q5_K_M.gguf", | |
| "adapt llm": "AdaptLLM_finance-LLM-13B_adapt_basic_model_16bit.gguf", | |
| "Fibro" : "finbro-v0.1.0-llama-3-8B-instruct-1m.gguf", | |
| } | |
| # Designing the interface | |
| st.title("Financial LLM test") | |
| # For newline | |
| st.write("\n") | |
| # Instructions | |
| st.markdown("*Hint: you can select the LLM model and write your prompt") | |
| # Set the columns | |
| col1, col2 = st.columns(2) | |
| col1.subheader("Prompt Section") | |
| col2.subheader("Model Output") | |
| llm_qa = get_model(llm_models.get('Base')) | |
| # Model selection | |
| st.sidebar.title("Model selection") | |
| det_arch = st.sidebar.selectbox("LLM model", list(llm_models.keys())) | |
| # For newline | |
| st.sidebar.write("\n") | |
| if st.sidebar.button("Select LLM"): | |
| with st.spinner("Loading model..."): | |
| llm_qa = get_model(llm_models.get(det_arch)) | |
| # load the model TODO | |
| text_input = '' | |
| with col1: | |
| text_input_temp = st.text_input( | |
| "Please, type your question and submit.", | |
| "Write Your Prompt", | |
| key="placeholder", | |
| ) | |
| if st.button("Submit"): | |
| text_input = text_input_temp | |
| with col2: | |
| if text_input != '': | |
| with st.spinner("Analyzing..."): | |
| out_gen = llm_qa.run(question) | |
| st.write("LLM Response: ", out_gen) | |
| text_input = '' | |
| if __name__ == "__main__": | |
| main() | |
| # def greet(question): | |
| # print(f"question is {question}") | |
| # out_gen = qa.run(question) | |
| # print(f"out is {out_gen}") | |
| # return out_gen | |
| # demo = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| # demo.launch(debug=True, share=True) |