إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
استخدم AgentSession للاحتفاظ بسياق المحادثة بين استدعاءات.
عندما تستخدم جلسة عمل التخزين المدار بواسطة الخدمة، يمكن أن تحتوي على معرف جلسة عمل معتم من جانب الخدمة. يتم تحديد نطاق استجابات OpenAI ومعرفات المحادثات إلى مفتاح أو مشروع واجهة برمجة التطبيقات المدعومة بشكل افتراضي؛ إذا كان العامل المستضاف يستخدم نفس المفتاح أو المشروع لعدة مستخدمين، فقم بتخزين هذه المعرفات من جانب الخادم وتحقق من المستخدم أو المستأجر المصادق عليه قبل استئناف العمل. للحصول على التفاصيل، راجع جلسة العمل.
نمط الاستخدام الأساسي
تتبع معظم التطبيقات نفس التدفق:
- إنشاء جلسة عمل (
CreateSessionAsync()) - تمرير جلسة العمل هذه إلى كل منها
RunAsync(...) - إعادة الترطيب من الحالة المتسلسلة (
DeserializeSessionAsync(...)) - متابعة معرف محادثة الخدمة (يختلف حسب العامل، على سبيل المثال
myChatClientAgent.CreateSessionAsync("existing-id"))
- إنشاء جلسة عمل (
create_session()) - تمرير جلسة العمل هذه إلى كل منها
run(...) - إعادة الترطيب بواسطة معرف محادثة الخدمة (
get_session(...)) أو من الحالة المتسلسلة
- إنشاء جلسة عمل (
CreateSession(...)) - قم بتمرير جلسة العمل هذه إلى كل
RunText(...)منها باستخدامagent.WithSession(session) - إعادة الترطيب من الحالة المتسلسلة مع
json.Unmarshal(...)إلىagent.Session
توفر حزمة Go agent الأنواع الأساسية لحالة المحادثة: agent.Session لحالة قيمة المفتاح المرتبطة بمحادثة وحقن agent.ContextProvider السياق والمثابرة.
// 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)
}
استخدام جلسة عمل للمحادثات متعددة الأدوار
resp, _ := a.RunText(ctx, "My name is Alice.", agent.WithSession(session)).Collect()
resp, _ = a.RunText(ctx, "What is my name?", agent.WithSession(session)).Collect()
استمرار جلسات العمل
يمكن تسلسل الجلسات إلى JSON للتخزين واستئنافها لاحقا:
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()
خريطة الدليل
| صفحه | التركيز |
|---|---|
| جلسة |
AgentSession البنية والتسلسل |
| موفرو السياق | أنماط موفر السياق/المحفوظات المضمنة والمخصصة |
| ضغط السياق | إدارة نمو المحادثة بكفاءة |
| التخزين | أوضاع التخزين المضمنة واستراتيجيات الاستمرارية الخارجية |
| موفر ذاكرة محفوظات الدردشة | إضافة محفوظات الدردشة إلى سياق العامل واستمرار الرسائل الجديدة |