Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Slouží AgentSession k zachování kontextu konverzace mezi vyvoláním.
Pokud relace používá úložiště spravované službou, může obsahovat neprůhlené ID relace na straně služby. Id odpovědí OpenAI a konverzací jsou ve výchozím nastavení omezené na backingový klíč rozhraní API nebo projekt; Pokud hostovaný agent používá stejný klíč nebo projekt pro více koncových uživatelů, uložte tato ID na straně serveru a před obnovením ověřte ověřeného uživatele nebo tenanta. Podrobnosti najdete v části Session.
Model základního využití
Většina aplikací se řídí stejným tokem:
- Vytvořte relaci (
CreateSessionAsync()) - Předání této relace každému
RunAsync(...) - Rehydratace ze serializovaného stavu (
DeserializeSessionAsync(...)) - Pokračujte s ID konverzace služby (liší se podle agenta, např.
myChatClientAgent.CreateSessionAsync("existing-id"))
- Vytvořte relaci (
create_session()) - Předání této relace každému
run(...) - Obnovení pomocí ID konverzace služby (
get_session(...)) nebo ze serializovaného stavu
- Vytvořte relaci (
CreateSession(...)) - Předání této relace každému
RunText(...)pomocíagent.WithSession(session) - Obnovit ze serializovaného stavu pomocí
json.Unmarshal(...)doagent.Session
Balíček Go agent poskytuje základní typy pro stav konverzace: agent.Session pro stav klíč-hodnota svázaný s konverzací a agent.ContextProvider pro injektáž kontextu a trvalost.
// Create and reuse a session
AgentSession session = await agent.CreateSessionAsync();
var first = await agent.RunAsync("My name is Alice.", session);
var second = await agent.RunAsync("What is my name?", session);
// Persist and restore later
var serialized = agent.SerializeSession(session);
AgentSession resumed = await agent.DeserializeSessionAsync(serialized);
# Create and reuse a session
session = agent.create_session()
first = await agent.run("My name is Alice.", session=session)
second = await agent.run("What is my name?", session=session)
# Rehydrate by service conversation ID when needed
service_session = agent.get_session(service_session_id="<service-conversation-id>")
# Persist and restore later
serialized = session.to_dict()
resumed = AgentSession.from_dict(serialized)
session, err := a.CreateSession(ctx)
if err != nil {
panic(err)
}
Použijte relaci pro vícekrokové konverzace
resp, _ := a.RunText(ctx, "My name is Alice.", agent.WithSession(session)).Collect()
resp, _ = a.RunText(ctx, "What is my name?", agent.WithSession(session)).Collect()
Zachovat relace
Relace je možné serializovat do formátu JSON pro úložiště a později pokračovat:
data, err := json.Marshal(session)
if err != nil {
panic(err)
}
// store data...
// later:
var resumed agent.Session
if err := json.Unmarshal(data, &resumed); err != nil {
panic(err)
}
resp, err := a.RunText(ctx, "Continue from where we left off.", agent.WithSession(&resumed)).Collect()
Mapa průvodce
| Stránka | Zaměření |
|---|---|
| Session |
AgentSession struktura a serializace |
| Zprostředkovatelé kontextu | Předdefinované a vlastní vzory zprostředkovatele kontextu a historie |
| Komprimace kontextu | Efektivní správa růstu konverzací |
| Storage | Integrované režimy úložiště a externí strategie trvalosti |
| Poskytovatel paměti historie chatu | Přidání historie chatu do kontextu agenta a zachování nových zpráv |