Spaces:
Sleeping
Sleeping
import os | |
import requests | |
from requests.auth import HTTPBasicAuth | |
from PIL import Image | |
from io import BytesIO | |
from urllib.parse import urlparse | |
import os | |
from pypdf import PdfReader | |
from ai71 import AI71 | |
import os | |
from inference_sdk import InferenceHTTPClient | |
import base64 | |
UPLOAD_FOLDER = '/code/uploads' | |
if not os.path.exists(UPLOAD_FOLDER): | |
os.makedirs(UPLOAD_FOLDER) | |
AI71_API_KEY = os.environ.get('AI71_API_KEY') | |
def generate_response(query): | |
response = '' | |
for chunk in AI71(AI71_API_KEY).chat.completions.create( | |
model="tiiuae/falcon-180b-chat", | |
messages=[ | |
{"role": "system", "content": "You are a best agricultural assistant.Remember to give response not more than 2 sentence"}, | |
{"role": "user", | |
"content": f'''Answer the query:{query}'''}, | |
], | |
stream=True, | |
): | |
if chunk.choices[0].delta.content: | |
response += chunk.choices[0].delta.content | |
return response.replace("###", '').replace('\nUser:','') | |
def predict_pest(filepath): | |
CLIENT = InferenceHTTPClient( | |
api_url="https://detect.roboflow.com", | |
api_key="oF1aC4b1FBCDtK8CoKx7" | |
) | |
result = CLIENT.infer(filepath, model_id="pest-detection-ueoco/1") | |
return result['predicted_classes'][0] | |
def predict_disease(filepath): | |
CLIENT = InferenceHTTPClient( | |
api_url="https://classify.roboflow.com", | |
api_key="oF1aC4b1FBCDtK8CoKx7" | |
) | |
result = CLIENT.infer(filepath, model_id="plant-disease-detection-iefbi/1") | |
return result['predicted_classes'][0] | |
def convert_img(url, account_sid, auth_token): | |
try: | |
# Make the request to the media URL with authentication | |
response = requests.get(url, auth=HTTPBasicAuth(account_sid, auth_token)) | |
response.raise_for_status() # Raise an error for bad responses | |
# Determine a filename from the URL | |
parsed_url = urlparse(url) | |
media_id = parsed_url.path.split('/')[-1] # Get the last part of the URL path | |
filename = f"downloaded_media_{media_id}" | |
# Save the media content to a file | |
media_filepath = os.path.join(UPLOAD_FOLDER, filename) | |
with open(media_filepath, 'wb') as file: | |
file.write(response.content) | |
print(f"Media downloaded successfully and saved as {media_filepath}") | |
# Convert the saved media file to an image | |
with open(media_filepath, 'rb') as img_file: | |
image = Image.open(img_file) | |
# Optionally, convert the image to JPG and save in UPLOAD_FOLDER | |
converted_filename = f"image.jpg" | |
converted_filepath = os.path.join(UPLOAD_FOLDER, converted_filename) | |
image.convert('RGB').save(converted_filepath, 'JPEG') | |
return converted_filepath | |
except requests.exceptions.HTTPError as err: | |
print(f"HTTP error occurred: {err}") | |
except Exception as err: | |
print(f"An error occurred: {err}") |