mirror of
https://github.com/mito-systems/ranger-app.git
synced 2026-05-09 05:44:07 +00:00
try
Some checks failed
Publish Ranger template to Laconic Registry / laconic_publish (push) Failing after 1m2s
Some checks failed
Publish Ranger template to Laconic Registry / laconic_publish (push) Failing after 1m2s
This commit is contained in:
parent
b1de5e2f3f
commit
2649cee033
@ -7,15 +7,23 @@ import { processAnimalImage } from '../../../services/animalProcessingService'
|
||||
export async function POST(req: NextRequest): Promise<NextResponse> {
|
||||
try {
|
||||
const formData = await req.formData()
|
||||
const imageFile = formData.get('image') as File
|
||||
const imageFile = formData.get('image')
|
||||
|
||||
if (!imageFile) {
|
||||
// Robust type checking
|
||||
if (!imageFile || !(imageFile instanceof File)) {
|
||||
return NextResponse.json(
|
||||
{ error: 'No image provided' },
|
||||
{ error: 'No valid image provided' },
|
||||
{ status: 400 }
|
||||
)
|
||||
}
|
||||
|
||||
// Log file details for debugging
|
||||
console.log('Received file:', {
|
||||
name: imageFile.name,
|
||||
type: imageFile.type,
|
||||
size: imageFile.size
|
||||
})
|
||||
|
||||
// Convert image to buffer
|
||||
const arrayBuffer = await imageFile.arrayBuffer()
|
||||
const buffer = Buffer.from(arrayBuffer)
|
||||
@ -42,7 +50,7 @@ export async function POST(req: NextRequest): Promise<NextResponse> {
|
||||
buffer,
|
||||
visionResult.description,
|
||||
visionResult.rawResponse,
|
||||
imageFile.name
|
||||
imageFile.name
|
||||
).catch(console.error)
|
||||
}
|
||||
|
||||
|
||||
@ -27,19 +27,44 @@ export async function analyzeImage(imageBuffer: Buffer, filename: string): Promi
|
||||
|
||||
// Create file from buffer using Blob
|
||||
const blob = new Blob([imageBuffer], { type: 'image/jpeg' })
|
||||
|
||||
// Detailed logging for debugging
|
||||
console.log('Analyzing image:', {
|
||||
filename,
|
||||
bufferLength: imageBuffer.length,
|
||||
blobSize: blob.size,
|
||||
blobType: blob.type
|
||||
})
|
||||
|
||||
formData.append('image', blob, filename)
|
||||
|
||||
// Log FormData contents (if possible)
|
||||
for (const [key, value] of formData.entries()) {
|
||||
console.log('FormData entry:', key, value)
|
||||
}
|
||||
|
||||
const response = await fetch('/api/analyze', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
})
|
||||
|
||||
// Log full response for debugging
|
||||
const responseText = await response.text()
|
||||
console.log('Raw response:', responseText)
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.json()
|
||||
throw new Error(error.error || 'Failed to analyze image')
|
||||
try {
|
||||
const errorData = JSON.parse(responseText)
|
||||
throw new Error(errorData.error || 'Failed to analyze image')
|
||||
} catch {
|
||||
throw new Error(`HTTP error ${response.status}: ${responseText}`)
|
||||
}
|
||||
}
|
||||
|
||||
return await response.json()
|
||||
// Parse response
|
||||
const result = JSON.parse(responseText)
|
||||
return result
|
||||
|
||||
} catch (error) {
|
||||
console.error('Vision analysis error:', error)
|
||||
return {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user