#!/bin/bash

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$SCRIPT_DIR"

source "$PROJECT_ROOT/base_platform/venv/bin/activate"

export ENVIRONMENT=development

echo "Testing vectorization with model_id=69..."

python -c "
import sys
from pathlib import Path
sys.path.insert(0, str(Path('.').resolve().parents[1] / 'base_platform'))

from app.models import role, role_permission, user, tenant, knowledge_base

from app.db.session import SessionLocal
from sqlalchemy import text
from app.services.knowledge.vectorization_service import DocumentVectorizationService

db = SessionLocal()
db.execute(text('SET search_path TO tenant_1, public'))

doc = db.execute(text('''
    SELECT id, title
    FROM knowledge_documents
    WHERE vectorization_status = 'pending'
    LIMIT 1
''')).fetchone()

if not doc:
    print('没有待向量化的文档')
    db.close()
    sys.exit(0)

doc_id, title = doc
print(f'测试文档: {title} (ID: {doc_id})')

vectorization_service = DocumentVectorizationService(db)

try:
    result = vectorization_service.vectorize_document(
        document_id=doc_id,
        tenant_id=1,
        user_id=1,
        model_id=69
    )

    print(f'✓ 向量化成功!')
    print(f'  文档 ID: {result.get(\"document_id\")}')
    print(f'  向量数量: {result.get(\"vector_count\")}')
    print(f'  模型: {result.get(\"model_name\")}')

except Exception as e:
    print(f'✗ 向量化失败: {e}')
    import traceback
    traceback.print_exc()

db.close()
"

echo "✓ Test completed"
