File size: 1,937 Bytes
aeeed0b
c435330
 
 
aeeed0b
c435330
 
 
 
47b24d6
c435330
47b24d6
c435330
aeeed0b
c435330
 
 
47b24d6
c435330
aeeed0b
c435330
 
 
 
 
 
47b24d6
c435330
 
 
 
 
aeeed0b
 
 
 
 
 
c435330
 
aeeed0b
47b24d6
 
 
 
aeeed0b
c435330
aeeed0b
 
 
47b24d6
aeeed0b
c435330
aeeed0b
 
 
 
 
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
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import requests

# Load DeepSeek R1 model
model_name = "deepseek-ai/deepseek-moe-8b-chat"  # DeepSeek R1 model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto")

# 🎯 Function to extract interests from user input
def extract_interests(text):
    prompt = f"Extract the main interests from this request: '{text}'. Provide only 3-5 relevant words."

    inputs = tokenizer(prompt, return_tensors="pt").to("cuda")  # Run on GPU if available
    outputs = model.generate(**inputs, max_length=100)
    interests = tokenizer.decode(outputs[0], skip_special_tokens=True)

    return interests.split(", ")  # Return as a list of keywords

# 🎁 Web search for gift suggestions
def search_gifts(interests):
    query = "+".join(interests)
    amazon_url = f"https://www.amazon.in/s?k={query}"
    igp_url = f"https://www.igp.com/search?q={query}"
    indiamart_url = f"https://dir.indiamart.com/search.mp?ss={query}"

    return {
        "Amazon": amazon_url,
        "IGP": igp_url,
        "IndiaMart": indiamart_url
    }

# 🎯 Main function for gift recommendation
def recommend_gifts(text):
    if not text:
        return "Please enter a description."

    interests = extract_interests(text)  # Use DeepSeek R1
    links = search_gifts(interests)  # Get shopping links

    return {
        "Predicted Interests": interests,
        "Gift Suggestions": links
    }

# 🎨 Gradio UI for easy interaction
demo = gr.Interface(
    fn=recommend_gifts, 
    inputs="text", 
    outputs="json",
    title="🎁 AI Gift Recommender",
    description="Enter details about the person you are buying a gift for, and get personalized suggestions with shopping links!",
)

# πŸš€ Launch Gradio App
if __name__ == "__main__":
    demo.launch()