import gradio as gr from huggingface_hub import InferenceClient import google.generativeai as genai """ 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") def respond( message, history: list[tuple[str, str]], image, ): messages = [] for val in history: if val[0]: messages.append({"role": "user", "content": val[0]}) if val[1]: messages.append({"role": "assistant", "content": val[1]}) messages.append({"role": "user", "content": message}) print (message,image) ## for image if isinstance(image, np.ndarray): img = PIL.Image.fromarray(image) else: try: img = PIL.Image.open(image) except (AttributeError, IOError) as e: return f"Invalid image provided. Please provide a valid image file. Error: {e}" # Load model model = genai.GenerativeModel("gemini-pro-vision") ## for image response = model.generate_content([messages, img]) print (response) return response 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 """ For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface """ demo = gr.ChatInterface( respond, additional_inputs=[ gr.Image(show_label=False) ], additional_inputs_accordion=gr.Accordion(open=True), ) if __name__ == "__main__": demo.launch()