Files
trading_bot_v3/debug-ai-analysis.js
mindesbunister cf58d41444 🔐 Implement robust session persistence to avoid 'are you human' captcha checks
- Add comprehensive session persistence with cookies, localStorage, and sessionStorage
- Implement stealth browser features to reduce bot detection
- Add smartLogin() method that prioritizes saved sessions over fresh logins
- Create session management utilities (refresh, clear, test validity)
- Update enhanced screenshot service to use session persistence
- Add comprehensive documentation and test script
- Support manual login fallback when captcha is encountered
- Sessions stored in .tradingview-session/ directory for Docker compatibility

This solves the captcha problem by avoiding repeated logins through persistent sessions.
2025-07-12 21:39:53 +02:00

114 lines
3.5 KiB
JavaScript

const fs = require('fs')
const path = require('path')
const OpenAI = require('openai').default
// Initialize OpenAI
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
})
async function testAIAnalysis() {
try {
console.log('🔍 Testing AI analysis with a real screenshot...')
// Use the specific screenshot you mentioned
const screenshotsDir = path.join(process.cwd(), 'screenshots')
const testImage = 'debug_before_timeframe_change_1752324987294.png'
const imagePath = path.join(screenshotsDir, testImage)
console.log(`📸 Using screenshot: ${imagePath}`)
// Check if file exists
if (!fs.existsSync(imagePath)) {
console.error('❌ Screenshot file not found!')
return
}
console.log('✅ Screenshot file found')
// Read and encode image
const imageBuffer = fs.readFileSync(imagePath)
const base64Image = imageBuffer.toString('base64')
console.log(`📊 Image size: ${imageBuffer.length} bytes`)
console.log(`🔒 Base64 length: ${base64Image.length} characters`)
console.log(`🎯 Base64 preview: ${base64Image.substring(0, 100)}...`)
// Improved prompt for testing
const prompt = `You are a technical chart analysis expert. Please analyze this TradingView chart image and provide objective technical analysis data.
**Important**: This is for educational and research purposes only. Please analyze the technical indicators, price levels, and chart patterns visible in the image.
Examine the chart and identify:
- Current price action and trend direction
- Key support and resistance levels visible on the chart
- Technical indicator readings (RSI, moving averages, volume if visible)
- Chart patterns or formations
- Market structure elements
Provide your analysis in this exact JSON format (replace values with your analysis):
{
"summary": "Objective description of what you observe in the chart",
"marketSentiment": "BULLISH",
"recommendation": "BUY",
"confidence": 75
}
Return only the JSON object with your technical analysis.`
console.log('🤖 Sending request to OpenAI...')
const response = await openai.chat.completions.create({
model: "gpt-4o", // Latest vision model
messages: [
{
role: "user",
content: [
{ type: "text", text: prompt },
{
type: "image_url",
image_url: {
url: `data:image/png;base64,${base64Image}`,
detail: "low" // Add detail parameter to reduce token usage
}
}
]
}
],
max_tokens: 500,
temperature: 0.1
})
console.log('✅ Response received from OpenAI')
const content = response.choices[0]?.message?.content
console.log('📝 Full response content:')
console.log(content)
// Try to extract JSON
const jsonMatch = content?.match(/\{[\s\S]*\}/)
if (jsonMatch) {
console.log('✅ JSON found in response:')
console.log(jsonMatch[0])
try {
const parsed = JSON.parse(jsonMatch[0])
console.log('✅ JSON successfully parsed:')
console.log(JSON.stringify(parsed, null, 2))
} catch (e) {
console.error('❌ Failed to parse JSON:', e.message)
}
} else {
console.error('❌ No JSON found in response')
}
} catch (error) {
console.error('❌ Error testing AI analysis:', error.message)
console.error('Full error:', error)
}
}
// Run the test
testAIAnalysis()