devdata commited on
Commit
6edb6ba
·
1 Parent(s): 97f9bd6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -38
app.py CHANGED
@@ -3,49 +3,57 @@ from fastai.vision.all import *
3
  import openai
4
  import os
5
 
6
-
7
  openai.api_key = os.getenv("OPENAI_API_KEY")
8
 
9
- # Load your trained model (you should replace 'model.pkl' with the path to your model file)
10
  learn = load_learner('model.pkl')
11
 
12
- # Define the labels for the output
13
  labels = learn.dls.vocab
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  # Define the prediction function
16
  def predict(img):
17
- img = PILImage.create(img)
18
- pred, pred_idx, probs = learn.predict(img)
19
- prediction = {labels[i]: float(probs[i]) for i in range(len(labels))}
20
-
21
- # Now generate a chat/text response based on the model's prediction.
22
- chat_prompt = f"The image likely depicts the following: {pred}. What can I help you with next?"
23
-
24
- # Ensure that you have set the OPENAI_API_KEY environment variable,
25
- # as we will use it to interact with OpenAI's GPT-3 model.
26
- response = openai.Completion.create(
27
- engine="text-davinci-003", # Adjust the engine as needed for your use-case
28
- prompt=chat_prompt,
29
- max_tokens=1024,
30
- n=1,
31
- stop=None,
32
- temperature=0.7,
33
- )
34
- text_response = response.choices[0].text.strip()
35
-
36
- return prediction, text_response
37
-
38
- # Create examples list by specifying the paths to the example images
39
- examples = ["path/to/example1.jpg", "path/to/example2.jpg"] # replace with actual image paths
40
-
41
- # Define the Gradio interface
42
- iface = gr.Interface(
43
- fn=predict,
44
- inputs=gr.Image(shape=(512, 512)),
45
- outputs=[gr.Label(num_top_classes=3), gr.Textbox(label="GPT-3 Response")],
46
- examples=examples,
47
- enable_queue=True # This is optional and only necessary if you're hosting under heavy traffic
48
- )
49
-
50
- # Launch the Gradio app
51
- iface.launch()
 
3
  import openai
4
  import os
5
 
 
6
  openai.api_key = os.getenv("OPENAI_API_KEY")
7
 
8
+ # Load the model
9
  learn = load_learner('model.pkl')
10
 
11
+ # Define the labels
12
  labels = learn.dls.vocab
13
 
14
+ # Define a function for generating text
15
+ def generate_text(prompt):
16
+ response = openai.Completion.create(
17
+ engine="davinci",
18
+ prompt=prompt,
19
+ max_tokens=1024,
20
+ n=1,
21
+ stop=None,
22
+ temperature=0.7,
23
+ )
24
+ return response.choices[0].text.strip()
25
+
26
+ # Define a function to handle user queries
27
+ def handle_query(query, chat_history):
28
+ response = openai.ChatCompletion.create(
29
+ model="gpt-3.5-turbo",
30
+ messages=[{"role": "system", "content": "You are a helpful assistant you kow about plant Disease."},
31
+ {"role": "user", "content": query}] + chat_history
32
+ )
33
+ return response.choices[0].message['content']
34
+
35
  # Define the prediction function
36
  def predict(img):
37
+ img = PILImage.create(img)
38
+ pred,pred_idx,probs = learn.predict(img)
39
+ prediction = {labels[i]: float(probs[i]) for i in range(len(labels))}
40
+ chat_prompt = f"The model predicted {prediction}."
41
+ chat_response = generate_text(chat_prompt)
42
+ return {**prediction, 'chat_response': chat_response}
43
+
44
+ # Define the chat function
45
+ def chat(query, chat_history):
46
+ chat_response = handle_query(query, chat_history)
47
+ return chat_response
48
+
49
+ # Define the examples
50
+ examples = ['image.jpg']
51
+
52
+ # Define the interpretation
53
+ interpretation='default'
54
+
55
+ # Define the enable_queue
56
+ enable_queue=True
57
+
58
+ # Launch the interface
59
+ gr.Interface(fn=predict,inputs=gr.inputs.Image(shape=(512, 512)),outputs=gr.outputs.Label(num_top_classes=3),examples=examples,interpretation=interpretation,enable_queue=enable_queue).launch()