Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import time | |
| from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings | |
| from llama_index.core.embeddings import resolve_embed_model | |
| from llama_index.llms.huggingface import HuggingFaceLLM | |
| from llama_index.core import PromptTemplate | |
| # bge embedding model | |
| Settings.embed_model = resolve_embed_model("local:BAAI/bge-small-en-v1.5") | |
| query_wrapper_prompt = PromptTemplate( | |
| "Below is an instruction that describes a task. " | |
| "Write a response that appropriately completes the request.\n\n" | |
| "### Instruction:\n{query_str}\n\n### Response:" | |
| ) | |
| import torch | |
| llm = HuggingFaceLLM( | |
| context_window=2048, | |
| max_new_tokens=256, | |
| generate_kwargs={"temperature": 0.25, "do_sample": False}, | |
| query_wrapper_prompt=query_wrapper_prompt, | |
| tokenizer_name="Writer/camel-5b-hf", | |
| model_name="Writer/camel-5b-hf", | |
| device_map="auto", | |
| tokenizer_kwargs={"max_length": 2048}, | |
| # uncomment this if using CUDA to reduce memory usage | |
| # model_kwargs={"torch_dtype": torch.float16} | |
| ) | |
| Settings.chunk_size = 512 | |
| Settings.llm = llm | |
| info = {} | |
| def echo(message, history, system_prompt, tokens): | |
| index = info['index'] | |
| query_engine = index.as_query_engine() | |
| response = query_engine.query(message) | |
| return response.response | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| folder = gr.File(file_count='directory') | |
| docs = gr.Textbox(label="Documents") | |
| system_prompt = gr.Textbox("You are helpful AI.", label="System Prompt") | |
| slider = gr.Slider(10, 100, render=False) | |
| gr.ChatInterface( | |
| echo, additional_inputs=[system_prompt, slider] | |
| ) | |
| def update_docs(filepath): | |
| print(filepath) | |
| documents = SimpleDirectoryReader(input_files=filepath).load_data() | |
| index = VectorStoreIndex.from_documents( | |
| documents, | |
| ) | |
| info['index'] = index | |
| return documents | |
| folder.upload(update_docs, folder, docs) | |
| demo.launch() |