Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Çağrılar arasında konuşma bağlamı korumak için kullanın AgentSession .
Bir oturum hizmet yönetimli depolama kullandığında, hizmet tarafında opak bir oturum kimliği içerebilir. OpenAI Yanıtları ve Konuşma kimliklerinin kapsamı varsayılan olarak yedekleme API anahtarı veya projesi olarak belirlenmiştir; Barındırılan bir aracı birden çok son kullanıcı için aynı anahtarı veya projeyi kullanıyorsa, devam etmeden önce bu kimlikleri sunucu tarafında depolayın ve kimliği doğrulanmış kullanıcıyı veya kiracıyı doğrulayın. Ayrıntılar için bkz. Oturum.
Çekirdek kullanım düzeni
Uygulamaların çoğu aynı akışı izler:
- Oturum oluşturma (
CreateSessionAsync()) - Bu oturumu her birine ilet
RunAsync(...) - Serileştirilmiş durumdan yeniden doldurma (
DeserializeSessionAsync(...)) - Servis konuşma kimliğiyle devam edin (aracıya göre değişiklik gösterir, örneğin
myChatClientAgent.CreateSessionAsync("existing-id"))
- Oturum oluşturma (
create_session()) - Bu oturumu her birine ilet
run(...) - Hizmet konuşma kimliğine (
get_session(...)) göre veya serileştirilmiş durumdan yeniden doldurma
- Oturum oluşturma (
CreateSession(...)) - Bu oturumu
agent.WithSession(session)ile herRunText(...)öğesine iletin -
json.Unmarshal(...)ile serileştirilmiş durumdanagent.Sessioniçine yeniden oluşturma
Go agent paketi konuşma durumu için temel türleri sağlar: agent.Session konuşmaya bağlı anahtar-değer durumu ve agent.ContextProvider bağlam ekleme ve kalıcılık için.
// 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)
}
Çok turlu konuşmalar için bir oturum kullanın
resp, _ := a.RunText(ctx, "My name is Alice.", agent.WithSession(session)).Collect()
resp, _ = a.RunText(ctx, "What is my name?", agent.WithSession(session)).Collect()
Oturumları kalıcı hale getir
Oturumlar depolama için JSON'a seri hale getirilebilir ve daha sonra sürdürülebilir:
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()
Kılavuz haritası
| Sayfa | Odaklanma |
|---|---|
| Oturum |
AgentSession yapı ve serileştirme |
| Bağlam Sağlayıcıları | Yerleşik ve özel bağlam/geçmiş sağlayıcı desenleri |
| Bağlam Sıkıştırma | Konuşma büyümesini verimli bir şekilde yönetme |
| Depolama | Yerleşik depolama modları ve dış kalıcılık stratejileri |