Spaces:
Sleeping
Sleeping
File size: 2,805 Bytes
7b9f70d e266142 7b9f70d 1fcfc73 7b9f70d fdb160a 7b9f70d e6c745f 7b9f70d e6c745f 7b9f70d e543b4d 7b9f70d e6c745f 7b9f70d fdb160a cd6cfd5 fdb160a e543b4d e266142 7b9f70d e266142 7b9f70d bbdfa1c 7b9f70d ea581e8 fdb160a 7788a1e fdb160a 7b9f70d 01c58ea 0534651 7b9f70d 0534651 |
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 59 60 61 62 63 64 65 66 67 68 |
import gradio as gr
from sql_generator import SQLGenerator
from intent_classifier import IntentClassifier
from rag_system import RAGSystem
class UnifiedSystem:
def __init__(self):
self.sql_generator = SQLGenerator()
self.intent_classifier = IntentClassifier()
self.rag_system = RAGSystem()
self.base_url = "https://agkd0n-fa.myshopify.com/products/"
def process_query(self, query):
intent, confidence = self.intent_classifier.classify(query)
if intent == "database_query":
sql_query = self.sql_generator.generate_query(query)
products = self.sql_generator.fetch_shopify_data("products")
if products and 'products' in products:
results = "\n".join([
f"Title: {p['title']}\nVendor: {p['vendor']}\nDescription: {p.get('body_html', 'No description available.')}\nURL: {self.base_url}{p['handle']}\n"
for p in products['products']
])
return f"Intent: Database Query (Confidence: {confidence:.2f})\n\n" \
f"SQL Query: {sql_query}\n\nResults:\n{results}"
else:
return "No results found or error fetching data from Shopify."
elif intent == "product_description":
rag_response = self.rag_system.process_query(query)
product_handles = rag_response.get('product_handles', [])
urls = [f"{self.base_url}{handle}" for handle in product_handles]
response = rag_response.get('response', "No description available.")
return f"Intent: Product Description (Confidence: {confidence:.2f})\n\n" \
f"Response: {response}\n\nProduct Details:\n" + "\n".join(
[f"Product URL: {url}" for url in urls]
)
return "Intent not recognized."
def create_interface():
system = UnifiedSystem()
iface = gr.Interface(
fn=system.process_query,
inputs=gr.Textbox(
label="Enter your query",
placeholder="e.g., 'Show me all T-shirts' or 'Describe the product features'"
),
outputs=gr.Textbox(label="Response"),
title="Unified Query Processing System",
description="Enter a natural language query to search products or get descriptions.",
examples=[
["Show me shirts less than 50 rupee"],
["Show me shirts with red color"],
["Show me T-shirts with M size"]
]
)
# This will enable an API endpoint for your Space
iface.launch(share=True) # Ensure share=True for public access if needed
if __name__ == "__main__":
iface = create_interface()
iface.launch()
|