File size: 2,131 Bytes
c169262
 
4e3ede3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c169262
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4e3ede3
c169262
4e3ede3
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
import gradio as gr
import requests
from fastapi import FastAPI
from routes import query_handler, purchase, order_management, account_management, customer_support, search_products

app = FastAPI()

app.include_router(purchase.router, prefix="/purchase", tags=["purchase"])
app.include_router(order_management.router,
                   prefix="/order-management", tags=["order-management"])
app.include_router(account_management.router,
                   prefix="/account-management", tags=["account-management"])
app.include_router(customer_support.router,
                   prefix="/customer-support", tags=["customer-support"])
app.include_router(search_products.router,
                   prefix="/search-products", tags=["search-products"])
app.include_router(query_handler.router,
                   prefix="/query-handler", tags=["query-handler"])


def fastlane_agent(message, history):

    history_openai_format = [
        {"role": "system", "content": "You are an assistant for an eCommerce store."}]
    for human, assistant in history:
        history_openai_format.append({"role": "user", "content": human})
        history_openai_format.append(
            {"role": "assistant", "content": assistant})
    history_openai_format.append({"role": "user", "content": message})

    response = requests.post(
        "http://localhost:8000/query-handler/", json={"text": message, "history": history_openai_format})
    if response.status_code == 200:
        return  response.json().get("generative response")
    else:
        return "Error: Could not fetch response."


iface = gr.ChatInterface(
    fn=fastlane_agent,
    chatbot=gr.Chatbot(height=400),
    textbox=gr.Textbox(
        placeholder="How can I help you?", container=False, scale=7
    ),
    title="Fastlane Chat GPT",
    description="AI sales assistance for e-commmerce",
    theme="soft",
    examples=["Hello", "What is the status of my order?",
              "Recommend me products"],
    cache_examples=True,
    retry_btn=None,
    undo_btn="Delete Previous",
    clear_btn="Clear"
).launch()

app = gr.mount_gradio_app(app, iface, path="./")