6 คะแนน โดย denimcoder 2025-09-17 | 6 ความคิดเห็น | แชร์ทาง WhatsApp

สวัสดีครับ
หลายท่านคงเคยลองนำ LLM มาใช้ในการรีวิวโค้ดกันมาบ้างแล้ว แต่คิดว่าในการนำไปใช้จริงน่าจะมีจุดที่ยุ่งยากอยู่บ้าง
เพราะจำเป็นต้องมีขั้นตอนในการส่งโค้ดที่ต้องการรีวิวพร้อมบริบทที่เกี่ยวข้อง รวมถึงระบุรูปแบบผลลัพธ์ที่ต้องการอย่างละเอียดให้ LLM

selvage คือเครื่องมือ CLI ที่ช่วยทำกระบวนการเตรียมเหล่านี้ให้เป็นอัตโนมัติ เพื่อเพิ่มประสิทธิภาพของการรีวิวโค้ด

[ฟีเจอร์หลัก]

  • เป็นเครื่องมือ CLI ที่ใช้งานได้อย่างอิสระ ไม่ผูกกับ IDE หรือส่วนขยายใดโดยเฉพาะ
  • รองรับโมเดล SOTA หลัก ๆ (GPT-5, Claude-Sonnet-4, Gemini, Qwen3-code)
  • ใช้งานผ่าน OpenRouter API Key ได้แบบคิดค่าบริการตามการใช้งาน โดยไม่ต้องสมัครสมาชิก
  • ทำงานร่วมกับ Git workflow
    • รองรับการวิเคราะห์ staged changes, unstaged changes และความเปลี่ยนแปลงระหว่าง commit/branch ที่กำหนด
  • ฟีเจอร์ Smart Context extraction บนพื้นฐาน AST (Abstract Syntax Tree)
    • ดึงเฉพาะบล็อกโค้ดขั้นต่ำที่เกี่ยวข้องกับการเปลี่ยนแปลงและ dependency เท่านั้น
    • ส่งต่อเฉพาะบริบทที่จำเป็นจริง ช่วยลดการใช้โทเค็น และเพิ่มคุณภาพของการรีวิวไปพร้อมกัน
  • ฟีเจอร์ Large Context Review
    • สามารถรีวิวการเปลี่ยนแปลงขนาดใหญ่ที่เกิน Context Limit ของโมเดลได้อย่างเสถียร (โดยมากคือ PR เพื่อ deploy ฟีเจอร์ใดฟีเจอร์หนึ่ง)

6 ความคิดเห็น

 
denimcoder 2025-09-29

สวัสดีครับ
ครั้งนี้มีการอัปเดตสำคัญ จึงขอมาแชร์ข่าวให้ทราบครับ
ฝากติดตามกันเยอะ ๆ ด้วยนะครับ!

ลิงก์ GitHub: https://github.com/selvage-lab/selvage


🚀 รายการอัปเดตฟีเจอร์หลัก

🤖 เพิ่มโหมดเซิร์ฟเวอร์ MCP (Model Context Protocol)NEW

ขอรีวิวโค้ดจากหน้าต่างแชตใน Cursor, Claude Code และอื่น ๆ ได้เลย!

ตอนนี้สามารถลงทะเบียน Selvage เป็น MCP ใน Cursor, Claude Code และอื่น ๆ เพื่อขอรีวิวโค้ดด้วยภาษาธรรมชาติได้แล้ว
AI assistant จะส่งผลลัพธ์การรีวิวให้โดยตรง และหลังจากตรวจสอบฟีดแบ็กแล้ว ยังสามารถขอให้ปรับปรุงโค้ดต่อได้ในครั้งเดียว

วิธีตั้งค่า:

# เชื่อมต่อ Claude Code  
# วิธีที่ 1: ใช้ตัวแปรสภาพแวดล้อม (กรณีตั้งค่าไว้แล้ว)  
claude mcp add selvage -- uvx selvage mcp  
  
# วิธีที่ 2: ระบุโดยตรง  
claude mcp add selvage -e OPENROUTER_API_KEY=your_openrouter_api_key_here -- uvx selvage mcp  
# เชื่อมต่อ Cursor (~/.cursor/mcp.json)  
{  
  "mcpServers": {  
    "selvage": {  
      "command": "uvx",  
      "args": ["selvage", "mcp"],  
      "env": {"OPENROUTER_API_KEY": "your_key"} // Optional : ไม่จำเป็นหากได้ลงทะเบียนตัวแปรสภาพแวดล้อมของระบบไว้แล้ว  
    }  
  }  
}  

💡 สถานการณ์การใช้งาน

ตัวอย่างการใช้งานแบบง่าย

"ช่วยรีวิวการเปลี่ยนแปลงปัจจุบันด้วย selvage mcp"  
"ช่วยรีวิวเปรียบเทียบระหว่างเมนบรันช์กับบรันช์ปัจจุบันด้วย selvage mcp โดยใช้ claude-sonnet-4-thinking"  
"ช่วยรีวิวงานที่ staged ไว้ด้วย selvage mcp โดยใช้ gpt-5-high และจัดลำดับตามความสำคัญให้ด้วย"  
"ช่วยรีวิวเนื้อหางานที่ staged ไว้ด้วย selvage mcp โดยใช้ gpt-5-high และ claude-sonnet-4-thinking แยกกัน แล้วเปรียบเทียบผลลัพธ์ให้ด้วย"  

เวิร์กโฟลว์การปรับปรุงโค้ดทีละขั้น

1. ช่วยรีวิวการเปลี่ยนแปลงปัจจุบันด้วย selvage mcp โดยใช้ claude-sonnet-4-thinking  
2. ช่วยตรวจสอบอย่างมีวิจารณญาณว่าฟีดแบ็กจากการรีวิวมีผลใช้ได้กับโค้ดเบสปัจจุบันหรือไม่ แล้วบอกลำดับความสำคัญให้ด้วย  
3. ช่วยนำรายการที่ตรวจสอบแล้วไปปรับใช้ตามลำดับความสำคัญทีละรายการ  
 
jkapa0417 2025-09-22

สวัสดีครับ อยากลองใช้งานดู แต่จำเป็นต้องใช้ Openrounter เท่านั้นหรือเปล่าครับ? ตอนนี้ผมมี API key ที่ใช้อยู่แล้ว เลยอยากทราบว่าสามารถนำ API key นั้นมาใช้ได้หรือไม่ครับ

 
denimcoder 2025-09-22

สวัสดีครับ
ไม่ทราบว่ากำลังใช้ API key ตัวไหนอยู่หรือครับ?
แทนที่จะใช้ OpenRouter KEY คุณสามารถตั้งค่า Provider API Key ของแต่ละโมเดลผ่านตัวแปรสภาพแวดล้อมเพื่อใช้งานได้

export OPENAI_API_KEY="your_openai_api_key_here"  
export ANTHROPIC_API_KEY="your_anthropic_api_key_here"  
export GEMINI_API_KEY="your_gemini_api_key_here"  

OPENAI_API_KEY รองรับโมเดลตระกูล GPT
ANTHROPIC_API_KEY รองรับโมเดลตระกูล Claude
GEMINI_API_KEY รองรับโมเดลตระกูล Gemini
รองรับครับ!

 
kjows5 2025-09-18

สามารถมาสก์ข้อมูลที่ละเอียดอ่อนในระดับซอร์สโค้ดก่อนจะถูกส่งเข้าไปเป็นอินพุตของ LLM ได้ไหม?

 
denimcoder 2025-09-19

สวัสดีครับ/ค่ะ ขอตอบดังนี้

  1. ปัจจุบันเมื่อขอรีวิวโค้ด ไฟล์ประเภท .env จะถูกยกเว้นออกทั้งหมดอยู่แล้ว แต่ยังไม่มีขั้นตอนสำหรับแทนที่หรือปกปิด “ค่า” อย่าง API key / token / password ที่อยู่ภายในซอร์สโค้ด

  2. หากต้องการยกเว้นข้อมูลสำคัญออกจากการรีวิว
    ให้เปลี่ยนโค้ดที่ต้องการรีวิวให้อยู่ในสถานะ git staged ก่อน
    แล้วรีวิวด้วยคำสั่ง selvage review --staged ก็จะสามารถยกเว้นข้อมูลสำคัญออกจากอินพุตของ LLM ได้

  3. มีแผนอัปเดตฟังก์ชันที่คล้ายกับสิ่งที่คุณถามมาอยู่เช่นกัน โดยจะให้ผู้ใช้สามารถระบุนามสกุลไฟล์ที่ต้องการยกเว้นระหว่างรีวิว และแพตเทิร์นเฉพาะในโค้ด (regular expression) ผ่านไฟล์ yml เพื่อให้สามารถกรองข้อมูลสำคัญได้อย่างเหมาะสมในแต่ละโปรเจกต์.

 
namongk 2025-09-18

โอ้โห...