Opsummering
- Brug miljøvariabler til din `api_key` for at forhindre utilsigtede commits af legitimationsoplysninger til dit repository.
- API'en understøtter et kontekstvindue på 100.000 tokens, men output er begrænset til 16.000 tokens pr. request.
- Ratebegrænsninger er sat til 300 requests i minuttet, hvilket kræver robust retry-logik i dine Python-klienter.
- Streaming-respons via SSE giver realtids-token-generering, afgørende for chat-lignende brugeroplevelser.
Udtrækning af din nøgle fra Python-scripts
Søgeresultater for "moonshot" "api_key" filetype:py often reveal hardcoded credentials left in test files. To secure your integration, extract the key from your script's configuration layer. Never store your API key directly in the source code of your production application. Hardcoding keys makes them visible to anyone with repository access and complicates rotation strategies.
I stedet skal du indlæse nøglen fra en miljøvariabel eller en dedikeret konfigurationsfil. Denne tilgang holder sensitive data adskilt fra din logik. Når du søger efter eksisterende implementeringer, vil du se mange eksempler på simple tildelinger som api_key = "sk-...". Opgrader denne pattern ved at bruge os.environ.get() eller et bibliotek som python-dotenv. Dette sikrer, at din nøgle forbliver usynlig i versionstyringshistorikken. Det giver dig også mulighed for at ændre nøgler uden at modificere koden.
Hvorfor dette betyder noget
Sikkerhed handler ikke kun om kryptering; det handler om synlighed. Ved at udtrække din nøgle reducerer du din applications angrebsflade. Udviklere overser ofte dette enkle trin, hvilket fører til eksponerede legitimationsoplysninger i offentlige GitHub-repositorier. Brug en dedikeret servicekonto-nøgle til produktion for at begrænse blast radius, hvis den kompromitteres.
Miljøvariabler vs. Hardcoded Keys
Hårdkodede nøgler er skrøbelige og usikre. Miljøvariabler giver en fleksibel, sikker måde at administrere legitimationsoplysninger på tværs af forskellige deploymentsmiljøer. Når du distribuerer dit Python-script til en server eller en cloud-platform, injiceres miljøvariablerne ved kørsel. Det betyder, at du ikke behøver at genopbygge dit image eller genstarte din tjeneste for at ændre en nøgle.
Overvej forskellen mellem en hardkodet nøgle og en miljøvariabel. En hardkodet nøgle ser sådan ud i din kode: key = "sk-12345". En miljøvariabel ser sådan ud: key = os.getenv("API_KEY"). Sidstnævnte er mere overskueligt og professionelt. Det giver dig også mulighed for at bruge forskellige nøgler til udvikling, staging og produktion uden at ændre din kodebase.
Bedste praksis
- Brug
.envfiler til lokal udvikling. - Indsæt variabler via dit CI/CD-pipeline til produktion.
- Aldrig commit din
.envfil til versionskontrol. - Brug stærke, tilfældigt genererede nøgler.
Denne adskillelse af bekymringer gør din applikation mere vedligeholdelig og sikker. Det er en lille ændring, der giver betydelige fordele i pålidelighed og sikkerhed.
Håndtering af rate limits (300 RPM) i Python
Vores API har en grænse på 300 requests i minuttet per nøgle. Hvis du overskrider denne grænse, modtager du en 429 Too Many Requests-fejl. For at håndtere dette pænt skal du implementere eksponentiel backoff i din Python-klient. Det betyder at vente længere mellem gentagelser efter hvert mislykket forsøg. Dette forhindrer din applikation i at oversvømme API'et med requests, når det allerede har svært ved at håndtere belastningen.
Rate limiting er afgørende for at opretholde tjenestestabilitet. Uden korrekt håndtering kan din applikation krashe eller forbruge overdrevne ressourcer ved at gentage mislykkede anmodninger. Brug en bibliotek som tenacity eller implementere en brugerdefineret retry-loop. Disse værktøjer giver dig mulighed for at angive antallet af forsøg, den indledende forsinkelse og den maksimale forsinkelse.
Implementeringseksempel
Når du støder på en 429-fejl, skal du pause i et par sekunder, før du prøver igen. Dette giver API’et tid til at komme sig. Du kan også overvåge dit forbrug for at holde dig inden for grænserne. Nogle klienter giver headers, der indikerer dit nuværende forbrug. Brug disse oplysninger til dynamisk at justere din forespørgselshastighed. Dette sikrer en jævn brugeroplevelse selv i spidsbelastninger.
Streaming Implementering med SSE
Streaming-respons via Server-Sent Events (SSE) gør det muligt at vise tekst, mens den genereres. Dette forbedrer brugeroplevelsen ved at give øjeblikkelig feedback. I stedet for at vente på, at hele svaret er færdigt, kan du vise tokens, mens de ankommer. Dette er særligt nyttigt til lange svar eller chat-applikationer.
For at implementere streaming i Python skal du bruge stream=True parameter i din API-anmodning. Iterér over svarchunks og behandle hver token. Dette giver dig mulighed for at opbygge et realtids-chatinterface. Streaming reducerer også den opfattede latens og gør din applikation hurtigere.
Tekniske detaljer
Hver chunk indeholder delvis tekst og metadata. Du kan udtrække tokenforbruget fra den sidste chunk. Dette giver dig mulighed for at spore omkostninger præcist. Streaming er effektivt, fordi det reducerer hukommelsesforbruget. Du behøver ikke at gemme hele responsen i hukommelsen før bearbejdning. Dette er især vigtigt for lange kontekster.
Håndtering af kontekstvinduer (100k tokens)
API'en understøtter et kontekstvindue på 100.000 tokens. Dette giver dig mulighed for at sende store mængder data, f.eks. hele dokumenter eller lange samtalehistorikker. Det maksimale output er dog begrænset til 16.000 tokens pr. anmodning. Hvis du har brug for et længere svar, skal du måske opdele din input eller udføre flere anmodninger.
Effektiv håndtering af kontekst er nøglen til ydeevne. Forkort ældre beskeder eller opsummer lange dokumenter, før du sender dem. Dette holder dit kontekstvindue inden for grænserne og reducerer omkostningerne. Tokens tælles for både input og output. Forståelse af denne balance hjælper dig med at optimere din applikation.
Strategier
- Opsummer lange dokumenter, før du sender dem.
- Kort ældre samtalehistorik.
- Brug chunking til store datasæt.
- Overvåg tokenforbrug for at forblive inden for grænserne.
Denne tilgang sikrer, at din applikation forbliver responsiv og omkostningseffektiv. Det giver dig også mulighed for at håndtere komplekse opgaver, der kræver store mængder kontekst.
Fejlhåndtering for ucensurerede svar
Ucensurerede modeller kan producere uforudsete output. Implementér robust fejlhåndtering til at håndtere disse tilfælde. Tjek HTTP-statuskoder, og parser fejlmeddelelser fra API'et. Dette giver dig mulighed for at håndtere specifikke fejl, såsom rate limits eller ugyldige input, på en elegant måde.
Fejlhåndtering er afgørende for pålidelighed. Uden det kan din applikation krashe eller vise forvirrende fejl til brugere. Brug try-except blokke til at fange undtagelser og håndtere dem passende. Log fejl til fejlfinding og overvågning. Dette hjælper dig med at identificere og rette problemer hurtigt.
Almindelige fejl
Almindelige fejl inkluderer 400 Bad Request, 401 Unauthorized, 429 Too Many Requests og 500 Internal Server Error. Hver kræver en anden håndteringsstrategi. For eksempel kan en 401-fejl indikere en udløbet nøgle. En 429-feil kræver et forsøg med backoff. En 500-feil kan indikere et midlertidigt serverproblem.
Omkostningsovervågning og token-regnskab
Spor tokenforbrug for at overvåge omkostninger. API'et opkræver $0.15 per 1M input-tokens og $0.50 per 1M output-tokens. Brug tokenforbrugsoplysningerne fra API-responsen til at beregne omkostninger. Dette giver dig mulighed for at budgettere og forudsige udgifter nøjagtigt.
Overvågning af omkostninger er essentiel til økonomisk planlægning. Uden det kan du nemt bruge for meget uden at realize det. Implementer logging til at spore tokenforbrug over tid. Brug disse data til at identificere mønstre og optimere din applikation. For eksempel kan du finde ud af, at visse prompts forbruger flere tokens end andre.
Optimeringstips
- Brug kortere prompts, når muligt.
- Opsummer lange input.
- Overvåg outputtokenforbrug.
- Indstil alarmer for højt forbrug.
Denne tilgang sikrer, at du forbliver inden for budgettet, mens du opretholder ydeevnen. Det hjælper også dig med at identificere områder for forbedring.
Test med $0,50 prøve-nøglen
Hver ny konto får $0,50 i prøvekræditter gyldige i 7 dage. Brug dette til at teste din integration, før du binder dig til et større top-up. Dette giver dig mulighed for at verificere, at din kode fungerer korrekt, og estimere omkostningerne for dit use case.
Test er afgørende for kvalitetskontrol. Brug prøve-nøglen til at køre din applikation igennem dens faser. Test forskellige prompts, modeller og parametre. Dette hjælper dig med at identificere eventuelle problemer, før du går live. Prøvekreditten er en god måde at komme i gang på uden økonomisk risiko.
Kom i gang
Opret en konto for at modtage din prøve-nøgle. Brug denne nøgle til at lave dine første API-anmodninger. Overvåg din token-brug for at sikre, at du ikke løber tør for kreditter. Dette giver dig en realistisk oplevelse af API'ets ydeevne og priser.