add playai
Browse files- app.py +3 -0
- app_huggingface.py +15 -13
- app_playai.py +7 -0
- requirements.txt +1 -0
    	
        app.py
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 | 
             
            import gradio as gr
         | 
| 2 |  | 
|  | |
| 3 | 
             
            from app_allenai import demo as demo_allenai
         | 
| 4 | 
             
            from app_claude import demo as demo_claude
         | 
| 5 | 
             
            from app_experimental import demo as demo_experimental
         | 
| @@ -20,6 +21,8 @@ from app_together import demo as demo_together | |
| 20 | 
             
            from app_xai import demo as demo_grok
         | 
| 21 |  | 
| 22 | 
             
            with gr.Blocks(fill_height=True) as demo:
         | 
|  | |
|  | |
| 23 | 
             
                with gr.Tab("Grok"):
         | 
| 24 | 
             
                    demo_grok.render()
         | 
| 25 | 
             
                with gr.Tab("Hyperbolic"):
         | 
|  | |
| 1 | 
             
            import gradio as gr
         | 
| 2 |  | 
| 3 | 
            +
            from app_playai import demo as demo_playai
         | 
| 4 | 
             
            from app_allenai import demo as demo_allenai
         | 
| 5 | 
             
            from app_claude import demo as demo_claude
         | 
| 6 | 
             
            from app_experimental import demo as demo_experimental
         | 
|  | |
| 21 | 
             
            from app_xai import demo as demo_grok
         | 
| 22 |  | 
| 23 | 
             
            with gr.Blocks(fill_height=True) as demo:
         | 
| 24 | 
            +
                with gr.Tab("PlayAI"):
         | 
| 25 | 
            +
                    demo_playai.render()
         | 
| 26 | 
             
                with gr.Tab("Grok"):
         | 
| 27 | 
             
                    demo_grok.render()
         | 
| 28 | 
             
                with gr.Tab("Hyperbolic"):
         | 
    	
        app_huggingface.py
    CHANGED
    
    | @@ -1,14 +1,16 @@ | |
| 1 | 
             
            from gradio_client import Client
         | 
| 2 | 
             
            import gradio as gr
         | 
|  | |
|  | |
| 3 |  | 
| 4 | 
             
            MODELS = {
         | 
| 5 | 
             
                "SmolVLM-Instruct": "akhaliq/SmolVLM-Instruct"
         | 
| 6 | 
             
            }
         | 
| 7 |  | 
| 8 | 
             
            def create_chat_fn(client):
         | 
| 9 | 
            -
                def chat(message, history):
         | 
| 10 | 
             
                    response = client.predict(
         | 
| 11 | 
            -
                        message={"text": message, "files":  | 
| 12 | 
             
                        system_prompt="You are a helpful AI assistant.",
         | 
| 13 | 
             
                        temperature=0.7,
         | 
| 14 | 
             
                        max_new_tokens=1024,
         | 
| @@ -22,8 +24,8 @@ def create_chat_fn(client): | |
| 22 |  | 
| 23 | 
             
            def set_client_for_session(model_name, request: gr.Request):
         | 
| 24 | 
             
                headers = {}
         | 
| 25 | 
            -
                if request and hasattr(request, ' | 
| 26 | 
            -
                    x_ip_token = request. | 
| 27 | 
             
                    if x_ip_token:
         | 
| 28 | 
             
                        headers["X-IP-Token"] = x_ip_token
         | 
| 29 |  | 
| @@ -32,7 +34,11 @@ def set_client_for_session(model_name, request: gr.Request): | |
| 32 | 
             
            def safe_chat_fn(message, history, client):
         | 
| 33 | 
             
                if client is None:
         | 
| 34 | 
             
                    return "Error: Client not initialized. Please refresh the page."
         | 
| 35 | 
            -
                 | 
|  | |
|  | |
|  | |
|  | |
| 36 |  | 
| 37 | 
             
            with gr.Blocks() as demo:
         | 
| 38 |  | 
| @@ -52,22 +58,18 @@ with gr.Blocks() as demo: | |
| 52 | 
             
                )
         | 
| 53 |  | 
| 54 | 
             
                # Update client when model changes
         | 
| 55 | 
            -
                def update_model(model_name, request):
         | 
| 56 | 
            -
                    return set_client_for_session(model_name, request)
         | 
| 57 | 
            -
                
         | 
| 58 | 
             
                model_dropdown.change(
         | 
| 59 | 
            -
                    fn= | 
| 60 | 
             
                    inputs=[model_dropdown],
         | 
| 61 | 
            -
                    outputs=[client] | 
| 62 | 
             
                )
         | 
| 63 |  | 
| 64 | 
             
                # Initialize client on page load
         | 
| 65 | 
             
                demo.load(
         | 
| 66 | 
             
                    fn=set_client_for_session,
         | 
| 67 | 
            -
                    inputs=gr.State("SmolVLM-Instruct"),
         | 
| 68 | 
            -
                    outputs=client | 
| 69 | 
             
                )
         | 
| 70 |  | 
| 71 | 
             
            demo = demo
         | 
| 72 |  | 
| 73 | 
            -
            demo.launch()
         | 
|  | |
| 1 | 
             
            from gradio_client import Client
         | 
| 2 | 
             
            import gradio as gr
         | 
| 3 | 
            +
            import os
         | 
| 4 | 
            +
             | 
| 5 |  | 
| 6 | 
             
            MODELS = {
         | 
| 7 | 
             
                "SmolVLM-Instruct": "akhaliq/SmolVLM-Instruct"
         | 
| 8 | 
             
            }
         | 
| 9 |  | 
| 10 | 
             
            def create_chat_fn(client):
         | 
| 11 | 
            +
                def chat(message, history, files=[]):
         | 
| 12 | 
             
                    response = client.predict(
         | 
| 13 | 
            +
                        message={"text": message, "files": files},
         | 
| 14 | 
             
                        system_prompt="You are a helpful AI assistant.",
         | 
| 15 | 
             
                        temperature=0.7,
         | 
| 16 | 
             
                        max_new_tokens=1024,
         | 
|  | |
| 24 |  | 
| 25 | 
             
            def set_client_for_session(model_name, request: gr.Request):
         | 
| 26 | 
             
                headers = {}
         | 
| 27 | 
            +
                if request and hasattr(request, 'headers'):
         | 
| 28 | 
            +
                    x_ip_token = request.headers.get('x-ip-token')
         | 
| 29 | 
             
                    if x_ip_token:
         | 
| 30 | 
             
                        headers["X-IP-Token"] = x_ip_token
         | 
| 31 |  | 
|  | |
| 34 | 
             
            def safe_chat_fn(message, history, client):
         | 
| 35 | 
             
                if client is None:
         | 
| 36 | 
             
                    return "Error: Client not initialized. Please refresh the page."
         | 
| 37 | 
            +
                try:
         | 
| 38 | 
            +
                    return create_chat_fn(client)(message, history)
         | 
| 39 | 
            +
                except Exception as e:
         | 
| 40 | 
            +
                    print(f"Error during chat: {str(e)}")
         | 
| 41 | 
            +
                    return f"Error during chat: {str(e)}"
         | 
| 42 |  | 
| 43 | 
             
            with gr.Blocks() as demo:
         | 
| 44 |  | 
|  | |
| 58 | 
             
                )
         | 
| 59 |  | 
| 60 | 
             
                # Update client when model changes
         | 
|  | |
|  | |
|  | |
| 61 | 
             
                model_dropdown.change(
         | 
| 62 | 
            +
                    fn=set_client_for_session,
         | 
| 63 | 
             
                    inputs=[model_dropdown],
         | 
| 64 | 
            +
                    outputs=[client]
         | 
| 65 | 
             
                )
         | 
| 66 |  | 
| 67 | 
             
                # Initialize client on page load
         | 
| 68 | 
             
                demo.load(
         | 
| 69 | 
             
                    fn=set_client_for_session,
         | 
| 70 | 
            +
                    inputs=[gr.State("SmolVLM-Instruct")],
         | 
| 71 | 
            +
                    outputs=[client]
         | 
| 72 | 
             
                )
         | 
| 73 |  | 
| 74 | 
             
            demo = demo
         | 
| 75 |  | 
|  | 
    	
        app_playai.py
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            import gradio as gr
         | 
| 2 | 
            +
            import playai_gradio
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            demo =gr.load(
         | 
| 5 | 
            +
                name='PlayDialog',
         | 
| 6 | 
            +
                src=playai_gradio.registry,
         | 
| 7 | 
            +
            )
         | 
    	
        requirements.txt
    CHANGED
    
    | @@ -396,3 +396,4 @@ websockets==12.0 | |
| 396 | 
             
                # via gradio-client
         | 
| 397 | 
             
            xai-gradio==0.0.2
         | 
| 398 | 
             
                # via anychat (pyproject.toml)
         | 
|  | 
|  | |
| 396 | 
             
                # via gradio-client
         | 
| 397 | 
             
            xai-gradio==0.0.2
         | 
| 398 | 
             
                # via anychat (pyproject.toml)
         | 
| 399 | 
            +
            playai-gradio @ git+https://github.com/AK391/playai-gradio.git
         | 
 
			
