Where did you hear about us?
1 of 6
작업 기억

작업 기억 - 한 질문씩.

한 질문을 위해 여는 작업 공간입니다. 기억을 번호로 받고, 몇 걸음 더 찾고, 필요하면 사람에게 묻습니다.

작업 열기

open_work는 한 질문을 위한 작업을 엽니다. 처음 20개 기억이 [01]~[20] 번호로 오고, 그 뒤로는 번호로 가리키며, 같은 기억은 두 번 오지 않습니다. 모든 작업 호출은 작업의 상태(state: seeking, asked, kept, closed), 남은 단계, 그리고 이번 호출이 새로 더한 기억만 돌려줍니다. 더한 것이 없으면 none: true입니다. rooms를 주면 장기 기억 전체 대신 최근 사흘의 방에서 찾고, max_images(0~5)는 이 작업이 찾을 때마다 가져올 사진 수입니다.

w = mem.open_work("Where did we eat in Busan?", "jimin")
for m in w["memories"]:
    print(m["n"], m["content"])                                        # [01] .. [20]
mem.work_search(w["work_id"], "the seafood place by the beach", "jimin")  # a step
mem.work_around(w["work_id"], 3, "jimin", from_=-2, to=2)             # a step, around [03]
mem.work_deeper(w["work_id"], "jimin")                                  # the next 20
mem.close_work(w["work_id"], "jimin", answer_id=w["memories"][2]["id"])
const w = await mem.openWork("Where did we eat in Busan?", "jimin");
for (const m of w.memories ?? []) console.log(m.n, m.content);          // [01] .. [20]
await mem.workSearch(w.work_id, "the seafood place by the beach", "jimin");  // a step
await mem.workAround(w.work_id, 3, "jimin", { from: -2, to: 2 });        // a step, around [03]
await mem.workDeeper(w.work_id, "jimin");                                 // the next 20
await mem.closeWork(w.work_id, "jimin", { answerId: w.memories?.[2]?.id });
let w = mem.open_work("Where did we eat in Busan?", "jimin", &LookOpts::default()).await?;
let id = w["work_id"].as_str().unwrap_or_default().to_string();
mem.work_search(&id, "the seafood place by the beach", "jimin", &LookOpts::default()).await?;  // a step
mem.work_around(&id, 3, "jimin", &WorkAroundOpts {
    from: Some(-2), to: Some(2), ..Default::default()
}).await?;                                                              // a step, around [03]
mem.work_deeper(&id, "jimin").await?;                                   // the next 20
mem.close_work(&id, "jimin", w["memories"][2]["id"].as_str()).await?;

단계

작업마다 단계는 다섯 번입니다.

  • work_search 단계 하나. 다른 질문으로 다시 찾습니다. 새 기억은 작업이 가진 번호 다음 번호를 받습니다.
  • work_around 단계 하나. 기억 [n]의 앞뒤에서 한 말을, 작업이 이미 가진 조각은 빼고 줍니다.
  • work_deeper 같은 질문의 다음 20개. 단계로 세지 않고 세 번까지입니다.

사람에게 묻기

단계를 다 썼거나 확신이 없으면 work_ask로 작업을 사람의 답을 기다리는 상태로 둡니다. 질문은 앱이 자기 말로 하고, 대답은 work_confirm에 넘깁니다. 예라면 작업이 다섯 턴 더 열리고 단계도 다섯 번 다시 생깁니다(state는 kept). 아니오라면 다시 찾는 상태로 돌아가 단계 다섯 번을 받고, 이미 준 기억은 다시 주지 않습니다.

닫기

close_work로 닫고, 답이 된 기억은 answer_id로 줍니다. 여러 단계를 거쳐 찾은 답이면 그 기억에 어떻게 닿았는지가 사흘 동안 남고, why로 볼 수 있습니다. 답을 add나 add_turn에 work_id로 저장해도 작업이 닫힙니다. work_state는 열린 작업과 최근 작업의 기록을 보여 줍니다.