ข้ามไปเนื้อหา
Playbooks

สูตรสำเร็จจากชุมชน

แต่ละ playbook คือปัญหาจริง → ขั้นตอน → โค้ด → ผลลัพธ์ คัดลอกไปใช้ได้เลย

📘 สร้าง RAG Chatbot

ปัญหา: ต้องการให้ AI ตอบคำถามจากเอกสารองค์กร โดยอ้างอิงแหล่งที่มาได้

from nara import chat
from nara.rag import DocumentStore

# 1. โหลดเอกสารเข้า store
store = DocumentStore()
store.add_pdf("./docs/policy.pdf")
store.add_pdf("./docs/handbook.pdf")
store.add_text("คู่มือ HR", open("hr.txt").read())

# 2. สร้าง chatbot ที่อ้างอิงเอกสาร
model = chat.load("nara-ai-7b")
bot = model.rag(store=store, top_k=3)

# 3. ถาม-ตอบ พร้อม citation
result = bot.ask("ลาพักร้อนกี่วันต่อปี?")
print(result.answer)
# "พนักงานลาพักร้อนได้ 10 วันต่อปี..."
print(result.sources)
# ["policy.pdf หน้า 12", "handbook.pdf หน้า 8"]

📄 ระบบถามตอบเอกสาร (Document QA)

ปัญหา: มีเอกสาร PDF ยาวๆ อยากให้สรุปและตอบคำถามได้

from nara import chat

model = chat.load("nara-ai-7b")

# สรุปเอกสาร
summary = model.summarize(
    open("contract.pdf").read(),
    max_length=200,
    style="bullet"  # bullet / paragraph / executive
)

# ถามคำถามเจาะจง
answer = model.ask(
    "สัญญานี้มี clause ที่เสี่ยงต่อผู้เช่าไหม?",
    context=open("contract.pdf").read()
)

💬 แชทบอทภาษาไทยบน LINE

ปัญหา: ต้องการแชทบอทตอบลูกค้าภาษาไทยบน LINE OA

// TypeScript + LINE Messaging API + Nara AI
import { Chat } from "@naralab/ai";
import { LineBot } from "@line/bot-sdk";

const model = new Chat({ model: "nara-ai-7b" });
const line = new LineBot({ channelAccessToken: process.env.LINE_TOKEN });

const conv = model.conversation({
  systemPrompt: "คุณเป็นพนักงานบริการลูกค้า ตอบสุภาพและกระชับ"
});

line.on("message", async (event) => {
  if (event.message.type !== "text") return;
  const userText = event.message.text;

  conv.user(userText);
  const reply = await conv.reply();

  await line.replyMessage(event.replyToken, {
    type: "text",
    text: reply
  });
});

line.listen("/webhook", 3000);

🎤 ถอดเสียงเป็นข้อความ

ปัญหา: มีไฟล์เสียงสัมภาษณ์ ต้องการถอดเป็นข้อความและสรุป

from nara import audio

# ถอดเสียงภาษาไทย
transcript = audio.transcribe(
    "interview.mp3",
    language="th",
    speaker_diarization=True  # แยกเสียงคนพูด
)
print(transcript.text)

# สรุปด้วย LLM
from nara import chat
model = chat.load("nara-ai-7b")
summary = model.summarize(transcript.text, style="bullet")

🤖 สร้าง Coding Agent

ปัญหา: ต้องการ AI agent ที่อ่าน codebase และช่วย review/แก้บั๊ก

from nara import agents

# สร้าง agent ที่เข้าถึงไฟล์ได้
agent = agents.build(
    model="nara-ai-7b",
    tools=["file_read", "file_write", "bash", "git"],
    workspace="./my-project",
    system_prompt="""คุณเป็น senior developer
    อ่านโค้ดก่อนแก้ อธิบายเหตุผล และไม่แก้ไฟล์ที่ไม่เกี่ยวข้อง"""
)

# ให้ agent ทำงาน
result = agent.run(
    "ตรวจหา bug ในไฟล์ auth.py แล้วแก้ให้",
    approval="always"  # ถามก่อนแก้ทุกครั้ง
)

for step in result.steps:
    print(f"{step.action}: {step.summary}")
    if step.diff:
        print(step.diff)
💡 แบ่งปัน Playbook ของคุณ

สร้างอะไรดีๆ กับ Nara AI? แบ่งปันได้ที่ GitHub Playbooks เราจะเลือกมาลงหน้านี้