import { useEffect, useState } from "react" import { useTranslation } from "react-i18next" import { Label } from "@/components/ui/label" import { Separator } from "@/components/ui/separator" import { useApiKeys } from "../../hooks/use-api-keys" import { ApiKeyInput } from "../widgets/api-key-input" /** * Вкладка настроек AI сервисов * Управление API ключами для OpenAI и Claude */ export function AiServicesTab() { const { t } = useTranslation() const { saveSimpleApiKey, getApiKeyInfo } = useApiKeys() const [openAiKey, setOpenAiKey] = useState("") const [claudeKey, setClaudeKey] = useState("") // Загружаем существующие ключи при монтировании useEffect(() => { const openAiInfo = getApiKeyInfo("openai") const claudeInfo = getApiKeyInfo("claude") // Если ключи существуют, показываем placeholder вместо значения для безопасности if (openAiInfo?.has_value) { setOpenAiKey("••••••••••••••••••••••••••••••••••••••••••••••••••••") } if (claudeInfo?.has_value) { setClaudeKey("••••••••••••••••••••••••••••••••••••••••••••••••••••") } }, [getApiKeyInfo]) const handleOpenAiChange = (value: string) => { setOpenAiKey(value) // Автосохранение при изменении if (value && !value.includes("••••")) { void saveSimpleApiKey("openai", value) } } const handleClaudeChange = (value: string) => { setClaudeKey(value) // Автосохранение при изменении if (value && !value.includes("••••")) { void saveSimpleApiKey("claude", value) } } return (
{/* Заголовок и описание */}

{t("dialogs.userSettings.tabs.aiServices", "AI Сервисы")}

{t( "dialogs.userSettings.aiServicesDescription", "Настройте API ключи для интеграции с AI ассистентами. Ключи безопасно хранятся локально.", )}

{/* OpenAI настройки */}

{t( "dialogs.userSettings.openAiDescription", "Используется для ChatGPT интеграции и генерации контента. Получите ключ на platform.openai.com", )}

{/* Claude настройки */}

{t( "dialogs.userSettings.claudeDescription", "Используется для Claude AI ассистента и продвинутого анализа контента. Получите ключ в консоли Anthropic", )}

{/* Дополнительная информация */}

{t("dialogs.userSettings.securityNote", "Примечание о безопасности")}

{t( "dialogs.userSettings.securityNoteText", "Все API ключи шифруются и хранятся локально на вашем устройстве. Они никогда не передаются третьим лицам.", )}

) }