Ga naar hoofdinhoud

API-sleutel onleesbaar na een verhuizing

Deze pagina is voor een site die werkte en waarvan de AI-verbinding stuk ging nadat de site naar een andere server was verhuisd, in een nieuwe omgeving was uitgerold, of onder een ander account of een andere app pool ging draaien.

De AI-verbinding is stuk na een verhuizing​

De status van het chatprofiel is Probleem, en een beheerder ziet De API-sleutel voor OpenAI werkt niet (meer). Controleer en vervang de sleutel in de instellingen van OpenAI. Alle anderen zien AI is tijdelijk niet beschikbaar. Je beheerder is op de hoogte. Zie Problemen met de AI-verbinding.

Oorzaak​

De sleutel kan op twee manieren kwijtraken. Welke van toepassing is, hangt af van waar de sleutel is opgeslagen.

De sleutel staat in een Umbraco.AI-verbinding. Umbraco.AI versleutelt zo'n sleutel met .NET Data Protection. Zonder vastgezette key ring bewaart .NET de sleutels in het profiel van het account waaronder de site draait, en koppelt het ze aan het content-rootpad. Verhuis je de site, wijzig je het account van de app pool, of start hij op een plek waar het profiel niet is geladen, dan kan de sleutel niet meer worden ontsleuteld. De backoffice toont dan de ruwe, versleutelde waarde, en als je die waarde opslaat, wordt hij een tweede keer versleuteld. Daarna is de verbinding blijvend stuk tot je de sleutel opnieuw invoert. Dezelfde key ring beschermt ook inlogsessies.

De sleutel is opgeslagen door het installatiescherm. Het installatiescherm zet de sleutel niet in de verbinding. Het schrijft hem naar appsettings.{Environment}.json in de content root, onder Umbraco:AI:Secrets:OpenAiKey, en de verbinding Aivie OpenAI verwijst naar die instelling. Deze sleutel hangt niet af van Data Protection, maar raakt kwijt als dat bestand niet meekomt: een uitrol die het bestand overschrijft, of een nieuwe server die onder een andere omgevingsnaam draait en dus een ander bestand leest.

Oplossing​

Welke stappen je nodig hebt, hangt af van waar de sleutel stond. Heeft het installatiescherm hem ingesteld, doe dan stap 1 tot en met 3 en 5. Heb je hem zelf in je eigen Umbraco.AI-verbinding getypt, doe dan stap 1, 4 en 5.

  1. Zet Data Protection vast, als je dat nog niet hebt gedaan. Volg Data Protection vastzetten en zet de sleutelmap in je back-ups. Gebruik bij meer dan één server een gedeelde locatie. Zonder deze stap komt het probleem bij de volgende verhuizing terug.
  2. Voer de OpenAI-sleutel opnieuw in. Open Configuratie → Installatie, typ de sleutel in het veld OpenAI secret key en druk op Aivie inrichten. Zoals het installatiescherm uitlegt, behoudt een leeg veld de bestaande sleutel en vervangt een gevuld veld hem. Zie Verplichte velden.
  3. Druk in het resultaatvak op Site herstarten en bevestig. Umbraco.AI leest de nieuwe sleutel pas na een herstart.
  4. Heb je de sleutel zelf rechtstreeks in een verbinding opgeslagen, open die verbinding dan onder AI → Connections en typ de sleutel opnieuw in. Sla de waarde die de backoffice je toont niet op.
  5. Open Account → Abonnement en druk op Test verbinding. De status zou OK moeten worden.
waarschuwing

Druk niet op Opslaan bij een verbinding die een onleesbare waarde toont. Opslaan versleutelt de onleesbare waarde nog een keer, en dat kun je niet ongedaan maken. Typ eerst de sleutel opnieuw in.

Komt het bestand appsettings.{Environment}.json niet mee met je uitrol, bewaar de sleutel dan ergens waar je uitrol wel in voorziet, bijvoorbeeld als omgevingsvariabele Umbraco__AI__Secrets__OpenAiKey, of voer het installatiescherm na elke uitrol uit. Het installatiescherm schrijft de sleutel als platte tekst naar dat bestand, dus houd het bestand buiten versiebeheer. Zie Wat het installatiescherm in appsettings schrijft.