aiEvaluateImageToStar

galleryApi
Kar at l5 2024-12-19 13:55:01 +05:30
parent ddc864a25d
commit e520169fb9
5 changed files with 2775 additions and 9096 deletions

4331
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
const AWS = require('aws-sdk');
const axios = require('axios');
const mongoose = require('mongoose');
const Game = require('./Game'); // Ensure this path matches your project structure
const Game = require('../../models/gameModel'); // Ensure this path matches your project structure
const aiEvaluateImageToScore = async (req, res) => {
try {

View File

@ -0,0 +1,88 @@
const AWS = require('aws-sdk');
const axios = require('axios');
const mongoose = require('mongoose');
const Game = require('../../models/gameModel'); // Ensure this path matches your project structure
const aiEvaluateImageToStar = async (req, res) => {
try {
const { userId, gameName, gameID, gameTime, gameStar, screenShot } = req.body;
if (!screenShot) {
return res.status(400).json({ error: 'Screenshot is required' });
}
const formData = new FormData();
formData.append('image', screenShot);
const screenshotUrl = await axios.post('https://teachertrainingchennai.in/api/uploadBase64/', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
// .then(response => {
// console.log('Response:', response.data);
// })
// .catch(error => {
// console.error('Error:', error);
// });
console.log(screenshotUrl.data.filePath)
const openAiPayload = {
model: 'gpt-4o-mini',
messages: [
{
role: 'user',
content: [
{
type: 'text',
text: 'The coloring was done by a 5-year-old kid. Give a score between 1 to 10 in JSON format.',
},
{
type: 'image_url',
image_url: {
url: screenshotUrl.data.filePath,
},
},
],
},
],
max_tokens: 300,
};
console.log('AAAAAA')
const openAiResponse = await axios.post(
'https://api.openai.com/v1/chat/completions',
openAiPayload,
{
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
},
}
);
// Extract the score from OpenAI's response
const scoreResponse = openAiResponse.data.choices[0].message.content;
const parsedScore = JSON.parse(scoreResponse);
console.log(openAiResponse)
const gameData = new Game({
gameName,
userId,
gameID,
gameTime,
score: parsedScore.score || 'N/A', // Adjust key to match OpenAI response
gameStar,
screenshotUrl,
});
await gameData.save();
return res.status(200).json({
message: 'Game data saved successfully',
data: gameData,
});
} catch (error) {
console.error('Error:', error.message);
return res.status(500).json({ error: 'Something went wrong' });
}
};
module.exports = aiEvaluateImageToStar;

View File

@ -30,6 +30,7 @@ const aiFollowupQuestion = require("../api/aiFollowupQuestion");
const aiMarkDrawing = require("../api/aiMarkDrawing");
const aiFeedbackOnReportWithFollowup = require("../api/aiFeedbackOnReportWithFollowup");
const aiTextToSpeech = require("../api/aiTextToSpeech");
const aiEvaluateImageToStar = require("../api/aiEvaluateImageToStar");
@ -184,6 +185,11 @@ router.get("/ping", (req, res) => {
router.post("/aiTextToSpeech", (req, res) => {
aiTextToSpeech(req, res);
});
// AI to provide star for drawing.
router.post("/aiEvaluateImageToStar", (req, res) => {
aiEvaluateImageToStar(req, res);
});

7444
yarn.lock

File diff suppressed because it is too large Load Diff