Graphify៖ របៀបបង្កើត Knowledge Graph សម្រាប់ Codebase និងវិធីវាស់ប្រសិទ្ធភាព
ស្រមៃថាអ្នកសួរ AI Coding Assistant៖ «បើកែរបៀបគណនាតម្លៃផលិតផល តើផ្នែកណាខ្លះនៃកម្មវិធីអាចរងផលប៉ះពាល់?» ក្នុង Project តូច AI អាចអាន File មួយចំនួនហើយឆ្លើយបាន។ ប៉ុន្តែនៅពេលមាន File, Function និង Module រាប់រយ ការស្វែងរកទំនាក់ទំនងត្រូវការពេល និងការអាន Code ឡើងវិញជាច្រើនដង។
ចំណុចសំខាន់មិនមែនត្រឹមតែចំនួន File ទេ។ Function នៅ products.py អាចត្រូវបានហៅពី orders.py ហើយបន្តទៅកាន់ Checkout ឬ API។ AI ត្រូវយល់ថាធាតុទាំងនោះតភ្ជាប់គ្នាយ៉ាងដូចម្តេច។
Graphify អាចជួយបង្កើត Knowledge Graph ពី Repository ដើម្បីឱ្យ Coding Assistant ដែលគាំទ្រអាចស្វែងរកទំនាក់ទំនងក្នុង Codebase បាន។ អត្ថបទនេះសម្រាប់ Developer និង AI Solution Team មិនមែនជាជំហានចាំបាច់សម្រាប់អ្នកប្រើ AI ទូទៅនោះទេ។
Graphify ជាអ្វី? ពន្យល់ឱ្យងាយយល់
ប្រៀបធៀប Codebase ទៅនឹងទីក្រុង។ File គឺជាតំបន់ Function និង Class គឺជាទីកន្លែង ចំណែក Import ឬ Function Call គឺជាផ្លូវដែលភ្ជាប់គ្នា។ Knowledge Graph ជួយឱ្យឃើញផែនទីទំនាក់ទំនងទាំងនេះ។
Node គឺធាតុមួយនៅក្នុង Graph ដូចជា Function, Class ឬ File។ Edge គឺទំនាក់ទំនងរវាង Node។ Codebase គឺកូដ និងផ្នែកពាក់ព័ន្ធរបស់គម្រោង។ Graph មិនអាចធានាថា Code ដំណើរការត្រឹមត្រូវទេ ដូច្នេះត្រូវពិនិត្យ Source Code ជានិច្ច។
តាម README ផ្លូវការ Code ត្រូវបានវិភាគនៅលើម៉ាស៊ីនរបស់អ្នកដោយប្រើ tree-sitter៖ មិនប្រើ LLM ហើយ Code មិនចេញក្រៅម៉ាស៊ីនទេ។ ចំណែកឯកសារ, PDF, រូបភាព និងវីដេអូ នឹងប្រើ Model របស់ Assistant ឬ API Key ដែលអ្នកកំណត់ ដើម្បីវិភាគអត្ថន័យ។ ដូច្នេះ បើ Repository ផ្ទាល់ខ្លួនមានឯកសារភ្ជាប់ សូមពិនិត្យការកំណត់ និងគោលការណ៍ទិន្នន័យមុនដំណើរការ។
ពេលណាគួរប្រើ Graphify?
សាកល្បងនៅពេលមាន Repository ធំ ចង់រកកន្លែង Function ត្រូវបានប្រើ ឬចង់ដឹងផលប៉ះពាល់នៃការកែ Module។ មិនចាំបាច់ប្រើសម្រាប់ Script តូច ឬការងារបង្កើត Caption ដែលមិនទាក់ទង Code ទេ។ តម្លៃនៃការបង្កើត Graph ក៏គួរតែប្រៀបធៀបនឹងផលប្រយោជន៍ផងដែរ។
Project សាកល្បងសុវត្ថិភាព៖ sample-shop
យើងកំណត់ Project តូចមួយមាន File ពីរ។ products.py មាន get_price(product_id)។ orders.py មាន checkout(product_id, qty=1) ដែលហៅ get_price៖
# products.py
PRICES = {"A001": 22.0}
def get_price(product_id):
return PRICES[product_id]
# orders.py
from products import get_price
def checkout(product_id, qty=1):
return get_price(product_id) * qtyគោលបំណងគឺមើលថាតើ Graph បង្ហាញទំនាក់ទំនងរវាង Function ទាំងពីរឬទេ។ ឈ្មោះ Node និងរូបរាងពិតអាចខុសតាម Version។ កុំបញ្ចូល API Key ពាក្យសម្ងាត់ ឬទិន្នន័យអតិថិជន។
ជំហានទី១ — រៀបចំបរិស្ថាន
ប្រើ Python 3.10 ឬថ្មីជាងនេះ និង AI Coding Assistant ដែល Graphify គាំទ្រ។ ពិនិត្យ python --version ឬ python3 --version។ ដំឡើង uv តាម https://docs.astral.sh/uv/ រួចពិនិត្យ uv --version។ លើ Windows អាចប្រើ winget install astral-sh.uv ប្រសិនបើមានការគាំទ្រ។
ជំហានទី២ — ដំឡើង Graphify
នៅក្នុង Terminal បញ្ចូល៖
uv tool install graphifyy
graphify --version
graphify installឈ្មោះ Package ផ្លូវការគឺ graphifyy មាន y ពីរ ចំណែក Command គឺ graphify។ graphify install ស្វែងរក Assistant ដែលអ្នកកំពុងប្រើ ហើយដំឡើង Skill ដោយស្វ័យប្រវត្តិ។ Assistant ដែលគាំទ្ររួមមាន Claude Code, Cursor, Codex, Gemini CLI និងជាង ២០ ឧបករណ៍ផ្សេងទៀត។ បើប្រើ pipx អាចដំឡើងដោយ pipx install graphifyy។ បើមិនស្គាល់ Command សូមពិនិត្យ PATH ហើយអាចសាកល្បង uv tool update-shell តាមឯកសារផ្លូវការ។
ជំហានទី៣ — បង្កើត Knowledge Graph
បើក sample-shop ក្នុង AI Coding Assistant ដែលគាំទ្រ។ នៅក្នុង Chat របស់ Assistant សរសេរ៖
/graphify .សញ្ញា (.) សំដៅលើថតបច្ចុប្បន្ន (Current Directory)។ នេះជា Skill Instruction នៅក្នុង Assistant មិនមែន Terminal Command ទេ។ សម្រាប់ Codex ឯកសារ Quickstart បង្ហាញការជ្រើស $graphify skill ហើយស្នើឱ្យវាបង្កើត Graph ពី Repository។
ជំហានទី៤ — ពិនិត្យលទ្ធផល
ក្រោយវិភាគ សូមរកថត graphify-out/។ តាម Quickstart អាចមាន graph.html សម្រាប់មើល Graph, GRAPH_REPORT.md សម្រាប់អានរបាយការណ៍ និង graph.json សម្រាប់ទិន្នន័យ Graph។ បើក graph.html រួចចុចលើ Node ដើម្បីមើលទំនាក់ទំនង។ ត្រូវផ្ទៀងផ្ទាត់ជាមួយ Source Code មុនជឿលទ្ធផល។
ជំហានទី៥ — សួរសំណួរទៅ Graph
នៅ Terminal ក្នុង Repository អាចសាកល្បង៖
graphify query "Where is get_price used?"
graphify explain "get_price"
graphify path "checkout" "get_price"ប្រើឈ្មោះដែលមានពិតក្នុង Graph របស់អ្នក។ CLI Command និង /graphify នៅក្នុង Assistant គឺមិនដូចគ្នាទេ។ Command path បង្ហាញថា Node ទាំងពីរតភ្ជាប់គ្នាតាមផ្លូវណា ហើយផ្តល់លទ្ធផលតែពេល Node និង Edge ទាំងនោះមានពិតក្នុង Graph។
ជំហានទី៦ — កែ Code និងធ្វើបច្ចុប្បន្នភាព
សាកល្បងកែ Function Call មួយក្នុង Project គំរូ រួចធ្វើបច្ចុប្បន្នភាព Graph។ ឯកសារបច្ចុប្បន្នបង្ហាញវិធីពីរ៖
graphify update .
/graphify . --updateCommand ទីមួយដំណើរការក្នុង Terminal ឧទាហរណ៍ក្រោយ git pull។ Command ទីពីរវាយក្នុង Chat របស់ Assistant ហើយវិភាគឡើងវិញតែ File ដែលបានផ្លាស់ប្តូរ។ បន្ទាប់មកពិនិត្យថា Graph ផ្លាស់ប្តូរតាម Code ឬអត់។ Syntax អាចខុសគ្នាតាម Version ដូច្នេះសូមកត់ត្រាលទ្ធផល graphify --version ក្នុងរបាយការណ៍សាកល្បង។
Graphify អាចសន្សំ Token មែនទេ?
ក្រាហ្វនេះប្រើតួលេខសន្មតដើម្បីបង្ហាញឧទាហរណ៍ មិនមែនលទ្ធផលវាស់ពិតទេ។
អាចជួយបាន បើការស្វែងរកតាម Graph ធ្វើឱ្យ AI ទទួលបានតែ Context ពាក់ព័ន្ធ ជំនួសឱ្យអាន Repository ធំទាំងមូលជាបន្តបន្ទាប់។ ប៉ុន្តែមិនមានការធានាទេ។ ត្រូវគិតពីពេលវេលាបង្កើត Graph ការធ្វើបច្ចុប្បន្នភាព ចំណាយបន្ថែម និងភាពត្រឹមត្រូវនៃចម្លើយ។ ជំហានវិភាគ Code ខ្លួនឯងមិនប្រើ LLM ទេ ប៉ុន្តែឯកសារ, PDF និងរូបភាពប្រើ Model។
វាស់ដោយប្រៀបធៀបសំណួរដូចគ្នា Model ដូចគ្នា និងលក្ខខណ្ឌស្រដៀងគ្នា៖ វិធី A ស្វែងរកនៅ Source Files; វិធី B ប្រើ Graph។ កត់ត្រាភាពត្រឹមត្រូវ Input/Output Tokens បើមាន រយៈពេល ចំនួនដងកែ និងចំណាយបង្កើត ឬធ្វើបច្ចុប្បន្នភាព Graph។ សម្រាប់សំណួរមួយលើក តម្លៃបង្កើត Graph អាចធ្វើឱ្យវិធី B មិនទាន់សមរម្យ។
កត់ត្រាចំណុចខាងក្រោមសម្រាប់ទាំងវិធី A និងវិធី B៖
ចំណុចវាស់ | របៀបកត់ត្រា |
|---|---|
ភាពត្រឹមត្រូវ | ចំនួនចម្លើយត្រឹមត្រូវ ធៀបនឹងចំនួនសំណួរសរុប |
Input/Output Tokens | យកពីរបាយការណ៍ការប្រើប្រាស់ (Usage) របស់អ្នកផ្តល់សេវា (បើមាន) |
រយៈពេល | ពីពេលសួរ រហូតដល់បានចម្លើយដែលប្រើបាន |
ចំនួនដងកែ | ចំនួនដងដែលត្រូវសួរឡើងវិញ ឬកែចម្លើយ |
ចំណាយបង្កើត/ធ្វើបច្ចុប្បន្នភាព Graph (តែវិធី B) | Token និងពេលវេលាសម្រាប់ការបង្កើតលើកដំបូង និងការធ្វើបច្ចុប្បន្នភាពនីមួយៗ |
ចំណាយសរុប | បូកសរុបក្រោយសំណួរច្រើន មិនមែនតែមួយ |
ចំណាំ៖ ឯកសារផ្លូវការមិនបានប្រកាសតួលេខសន្សំ Token ថេរសម្រាប់ Graphify កំណែ Open-source ទេ។ ការអះអាង «កាត់បន្ថយ Token 80%» នៅលើទំព័រគម្រោង គឺសម្រាប់ Graphify Cloud ដែលជាសេវាបង់ប្រាក់។ សូមប្រកាសតែតួលេខដែលអ្នកវាស់បានពីគម្រោងរបស់អ្នកផ្ទាល់។
បញ្ហាដែលជួបញឹកញាប់
រក graphify command មិនឃើញ៖ ពិនិត្យ uv និង PATH រួចបើក Terminal ឡើងវិញ។
មិនឃើញ Skill៖ ពិនិត្យ Assistant និង graphify install សម្រាប់ Platform របស់អ្នក។
មិនឃើញ Node៖ ពិនិត្យថត Project, Source Files និងឈ្មោះ Node ក្នុង Graph។
ចម្លើយមិនត្រូវ៖ ផ្ទៀងផ្ទាត់ជាមួយ Source Code ព្រោះ Edge មិនមែនជាភស្តុតាងថា Code រត់ត្រឹមត្រូវជានិច្ចទេ។
សេចក្តីសន្និដ្ឋាន៖ ប្រើ Graph នៅពេលទំនាក់ទំនងសំខាន់
Graphify សមស្របនៅពេលអ្នកត្រូវសួរជាញឹកញាប់ថា Function ឬ Module មួយពាក់ព័ន្ធនឹងអ្វីខ្លះ។ ចាប់ផ្តើមពី Repository សុវត្ថិភាព ផ្ទៀងផ្ទាត់ការតភ្ជាប់ និងវាស់លទ្ធផលពិត មុនពង្រីកទៅការងារធំ។ កុំជ្រើសរើសត្រឹមតែដោយសារ Graph មើលទៅស្អាត ឬការអះអាងសន្សំ Token។
ឯកសារផ្លូវការ៖ https://github.com/Graphify-Labs/graphify
Quickstart៖ https://github.com/Graphify-Labs/docs/blob/main/quickstart.mdx
ការដំឡើង uv៖ https://docs.astral.sh/uv/
អត្ថបទ NiMo សម្រាប់អ្នកចាប់ផ្តើម៖ ៤ វិធីកាត់បន្ថយ Token ខ្ជះខ្ជាយ
NiMo Solutions — Make Your Next Move Count.