Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A beszélgetési környezet meghívások közötti megtartására használható AgentSession .
Ha egy munkamenet szolgáltatás által felügyelt tárolót használ, az átlátszatlan szolgáltatásoldali munkamenet-azonosítót tartalmazhat. Az OpenAI-válaszok és beszélgetések azonosítói alapértelmezés szerint a háttér API-kulcsra vagy projektre terjednek ki; ha egy üzemeltetett ügynök ugyanazt a kulcsot vagy projektet használja több végfelhasználó esetében, tárolja ezeket az azonosítókat kiszolgálóoldalon, és ellenőrizze a hitelesített felhasználót vagy bérlőt a folytatás előtt. További részletekért lásd: Munkamenet.
Alapvető használati minta
A legtöbb alkalmazás ugyanazt a folyamatot követi:
- Munkamenet létrehozása (
CreateSessionAsync()) - A munkamenet átadása mindegyiknek
RunAsync(...) - Rehidratálás szerializált állapotból (
DeserializeSessionAsync(...)) - Folytassa a szolgáltatásbeszélgetés azonosítójával (ügynök szerint változik, pl.
myChatClientAgent.CreateSessionAsync("existing-id"))
- Munkamenet létrehozása (
create_session()) - A munkamenet átadása mindegyiknek
run(...) - Rehidratálás szolgáltatásbeszélgetés-azonosító (
get_session(...)) vagy szerializált állapot alapján
- Munkamenet létrehozása (
CreateSession(...)) - Adja át azt a munkamenetet minden
RunText(...)részére a(z)agent.WithSession(session)használatával - Rehidratálás szerializált állapotból a(z)
json.Unmarshal(...)segítségével ide:agent.Session
A Go agent csomag biztosítja a beszélgetési állapot alapvető típusait: agent.Session a beszélgetéshez kapcsolódó kulcs-érték állapotot, valamint agent.ContextProvider a környezetinjektálást és a megőrzést.
// 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)
}
Munkamenet használata többkörös beszélgetésekhez
resp, _ := a.RunText(ctx, "My name is Alice.", agent.WithSession(session)).Collect()
resp, _ = a.RunText(ctx, "What is my name?", agent.WithSession(session)).Collect()
Munkamenetek megőrzése
A munkamenetek szerializálhatók JSON-ra a tároláshoz, és később folytathatók:
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()
Útmutató térképe
| Oldal | Fókusz |
|---|---|
| Session |
AgentSession struktúra és szerializálás |
| Kontextusszolgáltatók | Beépített és egyéni környezet/előzményszolgáltatói minták |
| Kontextus tömörítése | A beszélgetések növekedésének hatékony kezelése |
| Storage | Beépített tárolási módok és külső adatmegőrzési stratégiák |
| Csevegési előzmények memóriaszolgáltatója | Csevegési előzmények hozzáadása az ügynökkörnyezethez és az új üzenetek megőrzése |