✅ IMPLEMENTADO - Soporte para Anthropic Claude y Corrección de Configuración
🔧 Backend v1.2.0 | Frontend v1.2.5 He implementado completamente el soporte para Anthropic Claude y corregido el problema de visualización en el módulo de configuración: 🎯 Cambios Implementados: 1. Backend - Soporte para Anthropic Claude Nuevos modelos agregados: Claude Sonnet 4.5 (Recomendado) - Equilibrio perfecto Claude Opus 4.5 - Máxima capacidad Claude Haiku 4.5 - Ultra rápido y económico Integración completa: Chat Assistant con Anthropic Generación de resúmenes PDF con Anthropic Manejo correcto de formato de mensajes (system separado) Configuración por defecto: claude-sonnet-4.5
This commit is contained in:
@@ -654,6 +654,15 @@ function SettingsTab({ user }) {
|
||||
<div className="font-semibold">OpenAI</div>
|
||||
<div className="text-xs text-gray-600 mt-1">GPT-4, GPT-4 Vision</div>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setFormData({ ...formData, provider: 'anthropic', model_name: 'claude-sonnet-4-5' })}
|
||||
className={`p-4 border-2 rounded-lg transition ${formData.provider === 'anthropic' ? 'border-purple-500 bg-purple-50' : 'border-gray-300 hover:border-gray-400'}`}
|
||||
>
|
||||
<div className="text-4xl mb-2">🧠</div>
|
||||
<div className="font-semibold">Anthropic Claude</div>
|
||||
<div className="text-xs text-gray-600 mt-1">Sonnet, Opus, Haiku</div>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setFormData({ ...formData, provider: 'gemini', model_name: 'gemini-2.5-pro' })}
|
||||
@@ -669,19 +678,21 @@ function SettingsTab({ user }) {
|
||||
<h3 className="text-lg font-semibold text-gray-900 mb-4">API Key</h3>
|
||||
<div>
|
||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
||||
{formData.provider === 'openai' ? 'OpenAI API Key' : 'Google AI API Key'}
|
||||
{formData.provider === 'openai' ? 'OpenAI API Key' : formData.provider === 'anthropic' ? 'Anthropic API Key' : 'Google AI API Key'}
|
||||
</label>
|
||||
<input
|
||||
type="password"
|
||||
value={formData.api_key}
|
||||
onChange={(e) => setFormData({ ...formData, api_key: e.target.value })}
|
||||
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
|
||||
placeholder={formData.provider === 'openai' ? 'sk-...' : 'AIza...'}
|
||||
placeholder={formData.provider === 'openai' ? 'sk-...' : formData.provider === 'anthropic' ? 'sk-ant-...' : 'AIza...'}
|
||||
required
|
||||
/>
|
||||
<p className="text-xs text-gray-500 mt-2">
|
||||
{formData.provider === 'openai' ? (
|
||||
<>Obtén tu API key en <a href="https://platform.openai.com/api-keys" target="_blank" className="text-blue-600 hover:underline">OpenAI Platform</a></>
|
||||
) : formData.provider === 'anthropic' ? (
|
||||
<>Obtén tu API key en <a href="https://console.anthropic.com/" target="_blank" className="text-purple-600 hover:underline">Anthropic Console</a></>
|
||||
) : (
|
||||
<>Obtén tu API key en <a href="https://makersuite.google.com/app/apikey" target="_blank" className="text-blue-600 hover:underline">Google AI Studio</a></>
|
||||
)}
|
||||
|
||||
@@ -153,7 +153,7 @@ export default function Sidebar({ user, activeTab, setActiveTab, sidebarOpen, se
|
||||
className="w-10 h-10 object-contain bg-white rounded p-1"
|
||||
/>
|
||||
<p className="text-xs text-indigo-300 font-medium hover:text-indigo-200">
|
||||
Ayutec v1.2.4
|
||||
Ayutec v1.2.5
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user