File size: 1,888 Bytes
e1cda2e
ef67833
e1cda2e
 
 
 
77451de
f2cbb22
e1cda2e
 
 
 
 
 
 
 
 
 
 
 
 
429af6c
e1cda2e
e19d910
d01d5bf
 
4651a01
23d9a47
 
e19d910
23d9a47
e1cda2e
 
 
e19d910
 
 
f2cbb22
 
429af6c
f2cbb22
e19d910
 
 
63b3015
 
77451de
912f3bc
3ce8148
 
 
 
e19d910
77451de
 
bea3e61
3a0580c
e19d910
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import logging
import gradio as gr
import configs.config as config
import services.scraper
import stores.chroma
from llm_setup.llm_setup import LLMService
from caching.lfu import LFUCache
import time 

logger = logging.getLogger()  # Create a logger object
logger.setLevel(logging.INFO)  # Set the logging level to INFO

config.set_envs()  # Set environment variables using the config module

store = stores.chroma.ChromaDB(config.EMBEDDINGS)
service = services.scraper.Service(store)

# Scrape data and get the store vector retriever
service.scrape_and_get_store_vector_retriever(config.URLS)

# Initialize the LLMService with logger, prompt, and store vector retriever
llm_svc = LLMService(logger = logger, system_prompt= config.SYSTEM_PROMPT, web_retriever = store.get_chroma_instance().as_retriever(),llm_model_name = config.LLM_MODEL_NAME)

def respond(user_input,session_hash):
    if user_input == "clear_chat_history_aisdb_override":
        llm_svc.store={}
        return "Memory Cache cleared"
    response = llm_svc.conversational_rag_chain().invoke(
        {"input": user_input},
        config={"configurable": {"session_id": session_hash}},
    )["answer"]

    return response

def echo(text, chat_history, request: gr.Request):
    if request:
        session_hash = request.session_hash
        resp = respond(text, session_hash)
        for i in range(len(resp)):
            time.sleep(0.02)
            yield resp[: i + 1]
    else:
        return "No request object received."


def on_reset_button_click():
    llm_svc.store=LFUCache(capacity=50)

if __name__ == '__main__':
    logging.info("Starting AIVIz Bot")

    with gr.Blocks() as demo:
        gr.ChatInterface(fn=echo, type="messages")
        reset_button = gr.Button("Reset Chat Memory Cache")             
        reset_button.click(on_reset_button_click)

    # Launch the interface
    demo.launch()