Anforderungen#
Python 3.11 oder neuer. Keine zusätzlichen Pakete. Setzen Sie WEIGHTSAPI_API_KEY auf Ihren eigenen Schlüssel. Der KI-Zugriff erfordert eine Anmeldung, eine bestätigte Aufladung von mindestens 100 USD, einen autorisierten API-Schlüssel und ausreichend verfügbares Guthaben für die Anfrage. Jede spätere Aufladung hat ebenfalls ein Minimum von 100 USD; kleinere Restguthaben bleiben nutzbar, wenn sie die Anfrage abdecken. Guthaben erfordert Transaktionsverifizierung. Überprüfen Sie den Dienststatus auf Modellverfügbarkeit, bevor Sie Datenverkehr senden.
Rezept ausführen#
import os, json, urllib.request
BASE = os.environ.get("WEIGHTSAPI_BASE_URL", "https://weightsapi.com/v1")
KEY = os.environ["WEIGHTSAPI_API_KEY"]
def chat(messages, model="Qwen/Qwen3-32B", **options):
payload = dict(model=model, messages=messages, max_tokens=512, **options)
req = urllib.request.Request(BASE+"/chat/completions", json.dumps(payload).encode(),
{"Authorization": "Bearer "+KEY, "Content-Type": "application/json"})
with urllib.request.urlopen(req, timeout=120) as response:
return json.load(response)
documents = [
{"id":"S1","text":"A KV cache reuses attention keys and values from previous tokens."},
{"id":"S2","text":"Prefill processes the prompt; decode generates new output tokens."},
{"id":"S3","text":"Longer contexts increase KV cache memory usage."}]
question = "How does caching affect generation?"
terms = set(question.lower().split())
ranked = sorted(documents, key=lambda d: len(terms & set(d["text"].lower().split())), reverse=True)[:2]
context = "\n".join("["+d["id"]+"] "+d["text"] for d in ranked)
r = chat([{"role":"system","content":"Answer only from the sources. Cite [S1], [S2], etc. Say when evidence is missing."},
{"role":"user","content":context+"\nQuestion: "+question}])
print(r["choices"][0]["message"]["content"])
print("Retrieved sources:", [d["id"] for d in ranked])
Vor dem Produktiveinsatz#
Dieses kleine Beispiel verwendet lexikalisches Ranking und eingebettete Beispielquellen, sodass es unabhängig läuft. Ersetzen Sie Korpus und Ranking durch Ihren Retriever und überprüfen Sie, ob die Zitate tatsächlich jede Behauptung stützen.