File size: 2,411 Bytes
f97dea6 3a7790d f97dea6 54d32e1 f97dea6 fedcdaf f97dea6 fedcdaf f97dea6 fedcdaf f97dea6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import base64
import requests
import streamlit as st
from io import BytesIO
from PIL import Image
# Function to encode image into base64
def encode_image(img):
buffered = BytesIO()
img.save(buffered, format="PNG")
encoded_string = base64.b64encode(buffered.getvalue()).decode("utf-8")
return encoded_string
# Function to interact with the Hyperbolic API
def get_api_response(base64_img):
api_url = "https://api.hyperbolic.xyz/v1/chat/completions"
api_key = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZGlsYXppejIwMTNAZ21haWwuY29tIiwiaWF0IjoxNzMyODU1NDI1fQ.lRjbz9LMW9jj7Lf7I8m_dTRh4KQ1wDCdWiTRGErMuEk" # Replace with your actual API key
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}",
}
payload = {
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "What is this image?"},
{
"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{base64_img}"},
},
],
}
],
"model": "Qwen/Qwen2-VL-72B-Instruct",
"max_tokens": 2048,
"temperature": 0.7,
"top_p": 0.9,
}
response = requests.post(api_url, headers=headers, json=payload)
if response.status_code == 200:
return response.json()['choices'][0]['message']['content']
else:
return f"Error: Unable to get response from API {response.status_code}."
# Streamlit interface
def main():
st.title("Image Dex: AI Image Explainer")
st.write("Upload an image and get a response based on the image content.")
# File uploader for image
uploaded_file = st.file_uploader("Choose an image...", type=["png", "jpg", "jpeg"])
if uploaded_file is not None:
# Open the uploaded image
img = Image.open(uploaded_file)
# Display the uploaded image
st.image(img, caption="Uploaded Image",width=400)
# Encode the image to base64
base64_img = encode_image(img)
# Get response from the API
st.write("Processing the image...")
response = get_api_response(base64_img)
# Display the result
st.write("Result:-> ", response)
# Run the Streamlit app
if __name__ == "__main__":
main()
|