tool_str="" import json # Specify the file path to your JSON file file_path = 'data.json' # Reading JSON data with open(file_path, 'r') as file: data = json.load(file) for t in data: tool_str+=t['new_name']+" : " tool_str+=t['text']+"\n" system_prompt=f"""You help out with tools! From the users request, pick the most usable tool from the list. {tool_str}""" from openai import OpenAI import os client = OpenAI(api_key=os.environ.get("OPEN_AI_KEY")) system_prompt=f"""You help out with tools! From the users request, pick the most usable tool from the list. {tool_str}""" def run_conversation(text): # Step 1: send the conversation and available functions to the model messages = [ { "role": "system", "content": system_prompt }, { "role": "user", "content": text } ] tools = [ { "type": "function", "function": { "name": "output_file_path", "description": "outputs the best suited file path", "parameters": { "type": "object", "properties": { "file_path": { "type": "string", "description": "File path starting with captured_images/...", }, }, "required": ["file_path"], }, }, } ] response = client.chat.completions.create( model="gpt-3.5-turbo-0125", messages=messages, tools=tools, tool_choice="required", ) response_message = response.choices[0].message image_path=json.loads(response.choices[0].message.tool_calls[0].function.arguments)['file_path'] messages.append({ "role": "system", "content": f"Chosen file_path: {image_path}\n Now respond with a friendly answer with your reasoning in the same language as the incoming message" }) response2 = client.chat.completions.create( model="gpt-3.5-turbo-0125", messages=messages ) return image_path, response2.choices[0].message.content import gradio as gr from PIL import Image import re def show_image(text): try: image_path, response=run_conversation(text) img = Image.open(image_path) return img, response except Exception as e: return f"Error: {str(e)}" # Return error message if path is invalid or file is not found def main(): # Define the interface interface = gr.Interface( fn=show_image, inputs="text", outputs=["image", "text"], title="Johans verktyg!", description="Be om ett verktyg så plockar Johan fram det!" ) # Launch the interface interface.launch(share=True) if __name__ == "__main__": main()