En enkel chattapplikation som använder Anthropic's Claude API för att skapa en interaktiv chatbot. Denna version är anpassad för att köras utan egen backend/server.
Denna version av applikationen kräver att du anger din egen Anthropic API-nyckel i webbläsaren. Nyckeln lagras säkert i webbläsarens lokala lagring och skickas aldrig till någon annan server än Anthropic's API-tjänst.
Observera: Det rekommenderas inte att använda denna typ av implementering för applikationer där många olika användare kommer att använda applikationen, eftersom API-nyckeln kan exponeras.
I originalversionen av denna applikation användes en egen Node.js-server (backend) som fungerade som en "proxy" mellan din webbläsare och Anthropic's API. Denna direktversion eliminerar behovet av en Node.js-server och använder istället en enkel PHP-proxy för att hantera API-anropen.
CORS (Cross-Origin Resource Sharing) är en säkerhetsmekanism i webbläsare som förhindrar JavaScript från att göra förfrågningar till domäner som skiljer sig från den som serverar webbplatsen.
När du försöker anropa Anthropic's API direkt från en webbläsare möter du CORS-begränsningar eftersom:
kentlundgren.seapi.anthropic.comI denna lösning använder vi en enkel PHP-fil (api-proxy.php) som:
Eftersom PHP-proxyn körs på samma webbserver som resten av webbplatsen, finns inga CORS-begränsningar. Dessutom kan servern göra HTTP-anrop till externa API:er utan de begränsningar som webbläsare har.
Fördelar:
Nackdelar:
I denna implementering lagras din API-nyckel i webbläsarens localStorage, vilket är säkrare än att hårdkoda den i JavaScript-filen. Men det innebär fortfarande att nyckeln är tillgänglig för:
Rekommendation: Denna lösning är acceptabel för personlig användning eller i miljöer med begränsad åtkomst, men för publika applikationer rekommenderas fortfarande en mer omfattande backend-lösning som skyddar API-nyckeln bättre.
Den ursprungliga direktversionen använde externa CORS-proxytjänster (som corsproxy.io) för att kringgå CORS-begränsningar. Denna metod misslyckades eftersom:
Vår nuvarande lösning använder en enkel PHP-fil (api-proxy.php) som körs på samma server som webbsidan. Detta fungerar av flera anledningar:
CORS (Cross-Origin Resource Sharing) är en säkerhetsmekanism implementerad i webbläsare för att förhindra att skadlig kod på en webbplats får åtkomst till resurser på en annan webbplats. Denna säkerhetsmekanism fungerar så här:
Anthropic har inte konfigurerat sina API-endpoints att tillåta anrop från godtyckliga domäner (vilket är rimligt från säkerhetssynpunkt). Det finns tre vanliga metoder att kringgå detta:
PHP-proxyn fungerar enligt denna process:
api-proxy.php på samma domänDet centrala här är att webbläsaren aldrig kommunicerar direkt med Anthropic API - all kommunikation går via servern, vilket kringgår CORS-begränsningarna.
Denna PHP-proxylösning är ideal för:
För större projekt med många användare rekommenderas fortfarande att bygga en mer robust backend-lösning med autentisering, caching och säkrare hantering av API-nycklar.
För att använda denna applikation behöver du en API-nyckel från Anthropic. Denna nyckel lagras säkert i din webbläsare och skickas bara till Anthropic's servers.
Notera: Nyckeln lagras endast i din webbläsare och skickas endast till Anthropic's API-tjänst.