Spaces:
Runtime error
Runtime error
import gradio as gr | |
from groq import ChatGroq | |
from llama_index import load_index_from_storage, ServiceContext, set_global_service_context | |
from llama_index.vector_stores.faiss import FaissVectorStore | |
from llama_index.embeddings.huggingface import HuggingFaceEmbedding | |
from llama_index.storage.storage_context import StorageContext | |
from PIL import Image | |
# Initialize Groq Vision LLM | |
vision_llm = ChatGroq( | |
model_name="meta-llama/llama-4-scout-17b-16e-instruct", | |
api_key="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" | |
) | |
# Load FAISS index from persisted directory | |
faiss_index_path = "faiss_store" | |
vector_store = FaissVectorStore.from_persist_dir(faiss_index_path) | |
storage_context = StorageContext.from_defaults(vector_store=vector_store) | |
index = load_index_from_storage(storage_context) | |
# Setup embedding context | |
embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en") | |
service_context = ServiceContext.from_defaults(embed_model=embed_model) | |
set_global_service_context(service_context) | |
# Setup query engine | |
query_engine = index.as_query_engine() | |
def multimodal_skin_rag(image, question): | |
context = query_engine.query(question) | |
user_prompt = f"""Based on the following skincare context, answer the user's question with reference to the image (if relevant): | |
Context: | |
{context} | |
Question: | |
{question} | |
""" | |
messages = [ | |
{"role": "system", "content": "You are a skincare advisor who understands image-based inputs and medical-grade text."}, | |
{"role": "user", "content": user_prompt} | |
] | |
response = vision_llm.chat(messages=messages, images=[image]) | |
return response.choices[0].message.content | |
demo = gr.Interface( | |
fn=multimodal_skin_rag, | |
inputs=[ | |
gr.Image(type="pil", label="Upload Skin Image"), | |
gr.Textbox(label="Describe your skin concern or ask a question") | |
], | |
outputs="text", | |
title="SkinCare Assistant: FAISS + Groq LLM", | |
description="Upload a skin image and ask any skincare-related question. This system retrieves relevant content using FAISS and answers using Groq's Vision LLM." | |
) | |
if __name__ == "__main__": | |
demo.launch() | |