Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from huggingface_hub import InferenceClient | |
| """ | |
| For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference | |
| """ | |
| client = InferenceClient("HuggingFaceH4/zephyr-7b-beta") | |
| # Define system message | |
| default_system_message = """ | |
| You are Veshon, the official AI assistant for Veshup. Veshup is a fashion-tech platform aimed at solving challenges in the fashion industry and e-commerce using futuristic technologies. | |
| Your role is to provide expert advice about Veshup's services, mission, and goals. Always focus on: | |
| - Enhancing the social experience for fashion enthusiasts. | |
| - Promoting good fashion awareness and sustainable practices. | |
| - Assisting with outfit recreation and try-ons. | |
| - Helping brands showcase their products effectively. | |
| - Aligning your responses with Veshup's vision to become a unicorn company within a year. | |
| """ | |
| # Knowledge base | |
| knowledge_base = { | |
| "founders": "Kishan Karyappa K and Jayaprakash P", | |
| "mission": "To integrate futuristic technologies to solve challenges in the fashion industry and fashion e-commerce.", | |
| "vision": "To become a unicorn company within a year by revolutionizing the fashion tech space.", | |
| "objectives": [ | |
| "Promote sustainable and ethical fashion practices.", | |
| "Provide AI-powered tools for virtual try-ons and outfit recreation.", | |
| "Enhance the online fashion community experience.", | |
| "Help brands showcase products innovatively.", | |
| "Simplify daily fashion decisions for users." | |
| ], | |
| "current_focus": [ | |
| "Building the Veshup website.", | |
| "Securing domains (.in and .com).", | |
| "Implementing frugal solutions to overcome technical challenges.", | |
| "Enhancing user engagement with innovative tools." | |
| ], | |
| "fashion_tips": [ | |
| "Pair bold prints with neutral colors to balance your outfit.", | |
| "Monochromatic outfits can make you look taller and slimmer.", | |
| "Layering adds depth and interest to simple outfits.", | |
| "Invest in timeless pieces like a well-fitted blazer or classic jeans.", | |
| "Accessorize with a statement piece to elevate your look.", | |
| "Dress according to the occasion and weather for maximum comfort." | |
| ], | |
| "trends_2024": [ | |
| "Sustainable and recycled materials are becoming mainstream.", | |
| "Techwear and futuristic designs are on the rise.", | |
| "Bold color blocking is a key trend this season.", | |
| "Vintage and retro-inspired looks are making a strong comeback.", | |
| "Customization and personalization in fashion are gaining popularity." | |
| ], | |
| "fashion_facts": [ | |
| "The global fashion industry is worth over $2.5 trillion.", | |
| "Fast fashion contributes significantly to environmental pollution.", | |
| "The average person wears only 20% of their wardrobe regularly.", | |
| "Colors like red and black have psychological impacts on perception.", | |
| "Synthetic fabrics like polyester take hundreds of years to decompose." | |
| ], | |
| "combination_tips": [ | |
| "Pair white sneakers with jeans and a casual shirt for a relaxed look.", | |
| "A leather jacket works great with a floral dress for edgy chic.", | |
| "Denim on denim is trending—contrast light and dark washes.", | |
| "Use a scarf to add a pop of color to neutral outfits.", | |
| "Balance oversized pieces with fitted items for a flattering silhouette." | |
| ] | |
| } | |
| # Respond function | |
| def respond( | |
| message, | |
| history: list[tuple[str, str]], | |
| system_message, | |
| max_tokens, | |
| temperature, | |
| top_p, | |
| ): | |
| # Build the conversation context | |
| messages = [{"role": "system", "content": system_message}] | |
| for user_message, bot_response in history: | |
| if user_message: | |
| messages.append({"role": "user", "content": user_message}) | |
| if bot_response: | |
| messages.append({"role": "assistant", "content": bot_response}) | |
| messages.append({"role": "user", "content": message}) | |
| # Check if the user's message matches the knowledge base topics | |
| enriched_message = message.lower() | |
| for key, value in knowledge_base.items(): | |
| if key in enriched_message: | |
| if isinstance(value, list): | |
| return f"{key.capitalize()}: {', '.join(value)}" | |
| return f"{key.capitalize()}: {value}" | |
| # Generate response using the client | |
| response = "" | |
| for message in client.chat_completion( | |
| messages, | |
| max_tokens=max_tokens, | |
| stream=True, | |
| temperature=temperature, | |
| top_p=top_p, | |
| ): | |
| token = message.choices[0].delta.content | |
| response += token | |
| yield response | |
| # Chat interface | |
| demo = gr.ChatInterface( | |
| respond, | |
| additional_inputs=[ | |
| gr.Textbox(value=default_system_message, label="System message"), | |
| gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"), | |
| gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"), | |
| gr.Slider( | |
| minimum=0.1, | |
| maximum=1.0, | |
| value=0.95, | |
| step=0.05, | |
| label="Top-p (nucleus sampling)", | |
| ), | |
| ], | |
| title="Veshon - Your Fashion-Tech Assistant", | |
| description="Meet Veshon, the AI chatbot dedicated to solving challenges in the fashion industry and e-commerce. Ask anything about Veshup and its mission!", | |
| theme="default", | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |