File tree Expand file tree Collapse file tree 4 files changed +56
-0
lines changed Expand file tree Collapse file tree 4 files changed +56
-0
lines changed Original file line number Diff line number Diff line change @@ -33,3 +33,34 @@ def analyze_image(
3333 )
3434 logger .info ("Analyzed image" )
3535 return result .as_dict ()
36+
37+ def vectorize_image (
38+ self ,
39+ image : bytes ,
40+ ) -> dict :
41+ # FIXME: replace with Azure SDK when available
42+ from urllib .parse import urljoin
43+
44+ import requests
45+
46+ url = urljoin (
47+ self .settings .azure_ai_vision_endpoint ,
48+ "/computervision/retrieval:vectorizeImage" ,
49+ )
50+ params = {
51+ "overload" : "stream" ,
52+ "api-version" : "2023-02-01-preview" ,
53+ "modelVersion" : "latest" ,
54+ }
55+ headers = {
56+ "Content-Type" : "application/octet-stream" ,
57+ "Ocp-Apim-Subscription-Key" : self .settings .azure_ai_vision_api_key ,
58+ }
59+ response = requests .post (
60+ url = url ,
61+ params = params ,
62+ headers = headers ,
63+ data = image ,
64+ )
65+ response .raise_for_status ()
66+ return response .json ()
Original file line number Diff line number Diff line change @@ -35,3 +35,21 @@ async def analyze_image(file: UploadFile):
3535 return azure_ai_vision_schemas .ImageAnalysisResponse (
3636 result = result ,
3737 )
38+
39+
40+ @router .post (
41+ "/image/vectorize/" ,
42+ status_code = 200 ,
43+ )
44+ async def vectorize_image (file : UploadFile ):
45+ try :
46+ content = await file .read ()
47+ result = client .vectorize_image (
48+ image = content ,
49+ )
50+ except Exception as e :
51+ logger .error (f"Failed to vectorize image: { e } " )
52+ raise
53+ return azure_ai_vision_schemas .VectorizeImageResponse (
54+ result = result ,
55+ )
Original file line number Diff line number Diff line change 77
88class ImageAnalysisResponse (BaseModel ):
99 result : dict
10+
11+
12+ class VectorizeImageResponse (BaseModel ):
13+ result : dict
Original file line number Diff line number Diff line change 4545### Azure AI Vision
4646
4747- [ Quickstart: Image Analysis 4.0] ( https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/quickstarts-sdk/image-analysis-client-library-40?tabs=visual-studio%2Cwindows&pivots=programming-language-python )
48+ - [ Do image retrieval using multimodal embeddings (version 4.0)] ( https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/how-to/image-retrieval?tabs=python )
49+ - [ Multimodal embeddings (version 4.0)] ( https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/concept-image-retrieval )
50+ - [ Image Retrieval - Vectorize Image From Image Stream] ( https://learn.microsoft.com/en-us/rest/api/computervision/image-retrieval/vectorize-image-from-image-stream?view=rest-computervision-2023-02-01-preview&tabs=HTTP )
4851
4952### Azure AI Document Intelligence
5053
You can’t perform that action at this time.
0 commit comments