คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)
บันทึกข้อเท็จจริงที่ผู้ใช้กล่าวถึง เช่น ชื่อและความชอบ ไว้ในคลังคีย์-ค่า แล้วแทรกข้อมูลเหล่านั้นลงในพรอมต์ระบบทุกครั้งที่สนทนา
คลังหน่วยความจำอย่างง่าย (คีย์-ค่า) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
หน่วยความจำระยะยาวที่ราคาถูกที่สุด
ก่อนจะมีฐานข้อมูลเวกเตอร์และเวกเตอร์แทนความหมาย ยังมีคลังแบบคีย์-ค่าที่เรียบง่าย สำหรับเก็บข้อเท็จจริงเฉพาะผู้ใช้ (ชื่อ ค่ากำหนด และการตั้งค่า) เท่านี้ก็เพียงพอแล้ว
สิ่งที่ควรจัดเก็บ
ตัวเลือกที่เหมาะสมสำหรับหน่วยความจำ KV:
- ชื่อและภาษาของผู้ใช้
- ค่ากำหนด (หน่วยวัด เขตเวลา น้ำเสียง)
- บริบทคงที่ (โครงการปัจจุบัน หัวข้อปัจจุบัน)
- ข้อมูลรับรองเครื่องมือหรือโทเค็นสำหรับอินเทอร์เฟซโปรแกรมประยุกต์ล่าสุด
คลังข้อมูลในหน่วยความจำขนาดเล็ก
สำหรับต้นแบบที่ทำงานในกระบวนการเดียว:
memory = {
'user_name': 'Alice',
'units': 'celsius',
'language': 'tr'
}
def remember(key, value):
memory[key] = value
def recall(key, default=None):
return memory.get(key, default)
remember('city', 'Istanbul')
print("Recalled user_name:", recall('user_name'))
print("Recalled city:", recall('city'))
print("Recalled missing key:", recall('country', 'unknown'))
แทรกลงในพรอมป์ต์ระบบ
ในแต่ละรอบสนทนา ให้แสดงข้อมูลจากคลัง KV ลงในพรอมป์ต์ระบบ:
def build_system_prompt(user_id):
facts = load_facts(user_id)
rendered = '\n'.join(f'- {k}: {v}' for k, v in facts.items())
return f'''
You are AssistantBot.
Known facts about this user:
{rendered}
Use these to personalise replies.
'''ใช้ Redis สำหรับผู้ใช้หลายคน
สำหรับตัวแทนในระบบใช้งานจริง ให้ใช้ Redis:
import redis
r = redis.Redis()
def remember(user_id, key, value):
r.hset(f'mem:{user_id}', key, json.dumps(value))
def recall_all(user_id):
raw = r.hgetall(f'mem:{user_id}')
return {k.decode(): json.loads(v) for k, v in raw.items()}หรือใช้ Postgres ก็ได้
Postgres ก็ใช้งานได้เช่นกัน โดยมีคอลัมน์ JSON สำหรับผู้ใช้แต่ละราย:
CREATE TABLE user_memory (
user_id TEXT PRIMARY KEY,
facts JSONB NOT NULL DEFAULT '{}'
);
-- Update one field:
UPDATE user_memory SET facts = facts || '{"units": "celsius"}' WHERE user_id = $1;หน่วยความจำในฐานะเครื่องมือ
เปิดเผยการดำเนินการเกี่ยวกับหน่วยความจำเป็นเครื่องมือ เพื่อให้ตัวแทนสามารถบันทึกข้อมูลลงในหน่วยความจำได้เอง:
tools = [
{'name': 'remember', 'description': 'Save a fact about the user', 'parameters': {...}},
{'name': 'forget', 'description': 'Remove a stored fact', 'parameters': {...}}
]
# The agent can call remember('user_name', 'Alice') itself.
for t in tools:
print(f"{t['name']}: {t['description']}")
ป้องกันหน่วยความจำพองตัว
จำกัดจำนวนคีย์ที่จัดเก็บสำหรับผู้ใช้แต่ละราย (50 หรือ 100 คีย์) มิฉะนั้นพรอมป์ต์ระบบจะขยายตัวโดยไม่มีขอบเขต
การหมดอายุและการเสื่อมสลาย
หน่วยความจำบางรายการมีอายุสั้น ให้ใช้การตั้งเวลาหมดอายุของ Redis:
r.hset(f'mem:{user_id}', 'last_topic', 'pricing')
r.expire(f'mem:{user_id}', 3600) # 1 hourหน่วยความจำที่ผู้ใช้แก้ไขได้
ให้ผู้ใช้ดูและแก้ไขสิ่งที่ตัวแทนจดจำเกี่ยวกับตนเองได้ หน่วยความจำของ ChatGPT ทำงานในลักษณะนี้ ช่วยสร้างความไว้วางใจและหลีกเลี่ยงข้อผิดพลาดที่ทำให้รู้สึกไม่สบายใจ
ความเป็นส่วนตัว: ดูแล PII
ข้อเท็จจริงที่จัดเก็บมักมี PII อยู่ด้วย ให้เข้ารหัสช่องข้อมูลที่ละเอียดอ่อนขณะจัดเก็บ ใช้คีย์เข้ารหัสแยกสำหรับผู้ใช้แต่ละราย และลบข้อมูลเมื่อปิดบัญชี
จาก KV สู่เวกเตอร์
KV เหมาะอย่างยิ่งสำหรับข้อเท็จจริงแบบมีโครงสร้าง ส่วนข้อเท็จจริงแบบไม่มีโครงสร้าง ("ผู้ใช้ชอบน้ำเสียงสบาย ๆ ชอบการอ้างอิงอนิเมะ และไม่ชอบอีโมจิ") คลังเวกเตอร์เหมาะกว่า เราจะกล่าวถึงเรื่องนี้ในหลักสูตรถัดไป
เมื่อใดควรใช้หน่วยความจำ KV
หน่วยความจำประเภทใดเหมาะกับคลังแบบคีย์-ค่าธรรมดาที่สุด
ทบทวน
สำหรับกรณีใช้งานผู้ช่วยส่วนบุคคล 90% คลัง KV บน Redis หรือ Postgres พร้อมการแสดงผลลงในพรอมป์ต์ระบบก็มีหน่วยความจำเพียงพอแล้ว
คำถามที่พบบ่อย
บทเรียน “คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)”
บันทึกข้อเท็จจริงที่ผู้ใช้กล่าวถึง เช่น ชื่อและความชอบ ไว้ในคลังคีย์-ค่า แล้วแทรกข้อมูลเหล่านั้นลงในพรอมต์ระบบทุกครั้งที่สนทนา คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- หน่วยความจำระยะสั้นในหน้าต่างบริบท
- เหตุใดบริบทยาวจึงขยายขนาดไม่ได้
- การสรุปเนื้อหาในฐานะการบีบอัด
- คลังหน่วยความจำอย่างง่าย (คีย์-ค่า)