| import keras_hub | |
| import gradio as gr | |
| base = keras_hub.models.GemmaCausalLM.from_preset("kaggle://favouryahdii/gemma-nutritionx/keras/gemma-nutritionx-2b") | |
| template = "Instruction:\n{instruction}\n\nResponse:\n{response}" | |
| def process_user_input(user_input, api_data="", max_length=512): | |
| # Preprocess the input | |
| processed_input = template.format(instruction=user_input, response="") | |
| # Assuming the model (base) is already defined and loaded | |
| prediction = base.generate(processed_input, max_length) # Adjust based on your model's predict method | |
| return prediction.split("Response:\n")[1].strip() | |
| # Step 5: Handle user input, model response, and function calling | |
| def handle_function_call(user_input, history): | |
| history_list = [] | |
| for msg in history: | |
| history_list.append(msg) | |
| history_list.append(user_input) | |
| # Always generate a model response first | |
| model_response = process_user_input(user_input) | |
| return model_response | |
| # Create a Gradio interface | |
| chat = gr.ChatInterface(handle_function_call, type="messages") | |
| chat.launch(debug=True) | |