مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

ARTEX کا تعارف: AI پر مبنی خودکار پینیٹریشن ٹیسٹنگ سسٹم بنانا اور دوہری گراف ایکسپلوریشن آرکیٹیکچر سمجھنا

یہ مضمون ARTEX کی بنیادی صلاحیتوں، انسٹالیشن، ڈیٹا بیس اور LLM کی کنفیگریشن، کاموں کی نگرانی، اثاثوں کی ہم وقت کاری، کمزوریوں کی دوبارہ جانچ اور اپ گریڈ کے طریقہ کار کا تعارف کراتا ہے، اور planner، worker اور دوہری گراف ماڈل پر مبنی اس کے خودکار ایکسپلوریشن میکانزم کی وضاحت کرتا ہے۔

ARTEX کا تعارف: AI پر مبنی خودکار پینیٹریشن ٹیسٹنگ سسٹم اور دوہری گراف ایکسپلوریشن

پہلے استعمال کا دائرہ سمجھیں

ARTEX صرف ذاتی مطالعے، کوڈ کی تحقیق اور مقامی علیحدہ ماحول میں تکنیکی توثیق کے لیے ہے۔ منصوبے کے بیان کے مطابق، اسے کسی بھی آن لائن نظام، ویب سائٹ، نیٹ ورک سے منسلک نظام یا پروڈکشن ماحول پر اسکین، جانچ، استحصال یا حملہ کرنے کے لیے استعمال نہیں کیا جا سکتا، خواہ ہدف آپ کی ملکیت ہو یا آپ کو اجازت حاصل ہو۔ شروع کرنے سے پہلے تصدیق کریں کہ آپ منصوبے کے AGPL-3.0 لائسنس، اپنے مقام کے سائبر سیکیورٹی قوانین، اور ریپوزٹری میں موجود استعمال کی پابندیوں و دستبرداری کو سمجھتے ہیں اور ان کی پابندی کریں گے۔

یہ مضمون مقامی تنصیب اور محفوظ علیحدہ ماحول کو بنیاد بناتے ہوئے ARTEX کی تنصیب، PostgreSQL اور LLM کی ترتیب، انٹرفیس سے کاموں کا مشاہدہ، نیز اثاثوں کی ہم وقت سازی اور کمزوریوں کی دوبارہ جانچ جیسی خصوصیات کا تعارف کراتا ہے۔

ARTEX ایک AI ملٹی ایجنٹ نظام ہے جس کا بیک اینڈ Go اور فرنٹ اینڈ Next.js پر مبنی ہے۔ منصوبہ تعامل کا اثر دیکھنے کے لیے آن لائن Demo فراہم کرتا ہے۔ باضابطہ اجرا کے وقت فرنٹ اینڈ کو Go کے go:embed کے ذریعے ایک واحد بائنری میں شامل کیا جا سکتا ہے۔

ARTEX کیا کر سکتا ہے

ARTEX خودکار تحقیق، کاموں کی ترتیب اور عمل کی دستاویز بندی کے گرد تشکیل دیا گیا ہے۔ نظام میں ڈیش بورڈ، کاموں کی فہرست، سیشن کا اجرا، تحقیقی سلسلہ، دریافتیں، اثاثے، اثاثہ کوریج کا نقشہ، ٹریفک ریکارڈ، انسان کی نگرانی میں گفتگو، Agent مینجمنٹ اور LLM کی ترتیب سمیت متعدد انٹرفیس شامل ہیں۔

ڈیش بورڈ
  • ملٹی ایجنٹ تحقیق: goals، planner، worker اور mainagent جیسے کردار مل کر کام آگے بڑھاتے ہیں۔
  • دوہرا گراف ماڈل: اثاثہ گراف مختلف کاموں میں مشترکہ اثاثہ حقائق محفوظ کرتا ہے، جبکہ تحقیقی گراف کسی ایک کام کے اہداف، ارادوں، حقائق، اشاروں اور دریافتوں کو ریکارڈ کرتا ہے۔
  • عمل کی سطح پر معلومات کا تبادلہ: worker دوسرے worker کے اجرا کے عمل کو تلاش کر کے اس میں موجود مشاہدات دوبارہ استعمال کر سکتے ہیں۔
  • انسان کی نگرانی: گفتگو اور مداخلتی منظوری کے ذریعے ٹول کالز اور اہم عملی فیصلوں میں حصہ لیا جا سکتا ہے۔
  • حقیقی وقت کی سرگرمیوں کا سلسلہ: بیک اینڈ SSE کے ذریعے سرگرمی کی معلومات بھیجتا ہے، اور کام کے اجرا کے عمل کو انٹرفیس میں مسلسل دیکھا جا سکتا ہے۔
  • ٹریفک ریکارڈ: ریکارڈنگ کرنے والا MITM پراکسی ٹول کے اجرا کے لیے ٹریفک اور شواہد محفوظ کرتا ہے۔
  • اثاثہ ہم وقت سازی: ScopeSentry سے ڈومین، ذیلی ڈومین، IP، پورٹ، سائٹ اور اینڈ پوائنٹ جیسے اثاثے ہم وقت کیے جا سکتے ہیں۔
  • کمزوریوں کی دوبارہ جانچ: موجودہ کمزوریوں کے لیے الگ سے دوبارہ جانچ کا Agent سیشن بنایا جا سکتا ہے، اور نتیجہ، شواہد اور سیشن لنک محفوظ کیے جا سکتے ہیں۔
کاموں کی فہرست

ARTEX انسٹال کریں

طریقہ اول: ایک کلک انسٹالیشن اسکرپٹ استعمال کریں

یہ منصوبے کا تجویز کردہ طریقہ تنصیب ہے۔ اسکرپٹ Docker کو چیک یا انسٹال کرتا ہے اور مکمل Docker یا مقامی کمپائل اور اجرا، دونوں میں سے انتخاب فراہم کرتا ہے۔

ڈیش بورڈ

git clone https://github.com/Autumn-27/ARTEX.git
cd ARTEX
./install.sh

مکمل Docker منتخب کرنے پر PostgreSQL پاس ورڈ درج کرنا ہوگا۔ آپ براہ راست Enter دبا کر اسکرپٹ سے بے ترتیب پاس ورڈ بھی بنوا سکتے ہیں۔ اس کے بعد اسکرپٹ .env لکھے گا اور docker compose up -d چلائے گا۔

مقامی اجرا منتخب کرتے وقت موجودہ ڈیٹابیس سے منسلک ہو سکتے ہیں یا Docker سے ڈیٹابیس شروع کروا سکتے ہیں۔ اسکرپٹ config.json بنائے گا، فرنٹ اینڈ سمیت واحد بائنری کمپائل کرے گا اور سروس شروع کرے گا۔

تنصیب مکمل ہونے کے بعد http://localhost:8787 کھولیں۔ پہلی بار /setup پر جا کر ایڈمنسٹریٹر پاس ورڈ مقرر کریں۔

طریقہ دوم: Docker Compose دستی طور پر استعمال کریں

git clone https://github.com/Autumn-27/ARTEX.git
cd ARTEX
cp .env.example .env
docker compose up -d

.env میں کم از کم POSTGRES_PASSWORD درج کریں۔ اگر Anthropic کو ماحولیاتی متغیر کے ذریعے ترتیب دینا ہو تو ANTHROPIC_API_KEY بھی درج کیا جا سکتا ہے۔ کنٹینر امیج میں عام ٹولز شامل ہیں، جبکہ ./skills اور ./data بائنڈ ماؤنٹ کے ذریعے محفوظ رہیں گے۔

شروع ہونے کے بعد http://localhost:8787 کھولیں۔ ریموٹ MCP درکار ہو تو نظام کی ترتیبات میں http یا sse منتخب کریں۔ پرانا SSE عموماً /sse کے ذریعے ایونٹ اسٹریم قائم کرتا ہے اور واپس ملنے والے /message?sessionId=... کے ذریعے JSON-RPC درخواستیں وصول کرتا ہے؛ تصدیقی ہیڈر کو Authorization=Bearer <token> کے مطابق ترتیب دیں۔

طریقہ سوم: پہلے سے کمپائل شدہ بائنری استعمال کریں

Releases سے اپنے پلیٹ فارم کے مطابق کمپریس شدہ پیکیج ڈاؤن لوڈ کریں۔ اسے کھولنے کے بعد عموماً artex، start.sh یا Windows پر start.bat، skills/ اور config.example.json شامل ہوتے ہیں۔

کام

cp config.example.json config.json
./start.sh

شروع کرنے کے لیے start.sh یا start.bat استعمال کریں، براہ راست ./artex نہ چلائیں۔ اسٹارٹ اسکرپٹ عمل کی نگرانی کرتا ہے اور صفحے سے ایک کلک میں اپ ڈیٹ کے بعد دوبارہ آغاز کی سہولت دیتا ہے۔ پس منظر میں چلانے کے لیے:

nohup ./start.sh >artex.log 2>&1 &

طریقہ چہارم: سورس سے کمپائل کریں

اگر فرنٹ اینڈ سمیت واحد بائنری سورس سے بنانی ہو تو پہلے Next.js کی جامد فائلیں تیار کریں، پھر انہیں بیک اینڈ کی ایمبیڈ ڈائریکٹری میں کاپی کریں۔

cd web && npm ci && npm run build:static && cd ..
cp -r web/out server/webui/dist
CGO_ENABLED=0 go build -tags embedui -o artex ./cmd/artex
./start.sh

بنیادی ترتیب مکمل کریں

PostgreSQL ترتیب دیں

ARTEX PostgreSQL پر منحصر ہے۔ مقامی اجرا کے وقت ڈیٹابیس کنکشن کی معلومات config.json میں درج کی جا سکتی ہیں یا ARTEX_PG_DSN کے ذریعے ترتیب کو اوور رائٹ کیا جا سکتا ہے۔

{
  "database": {
    "host": "127.0.0.1",
    "port": 5432,
    "user": "artex",
    "password": "yourpass",
    "dbname": "artex",
    "sslmode": "disable"
  }
}

اجرا کا عمل

سروس ہر بار شروع ہوتے وقت ڈیٹابیس کے ڈھانچے کی ابتدا اور منتقلی کو idempotent انداز میں انجام دیتی ہے، جس میں ضروری فیلڈز اور انڈیکس کی تبدیلیاں شامل ہیں۔ اپ گریڈ سے پہلے ڈیٹابیس اور ./data ڈائریکٹری کا بیک اپ لینا پھر بھی تجویز کیا جاتا ہے۔

LLM ترتیب دیں

تحقیقی خصوصیات کے لیے LLM درکار ہے۔ Anthropic یا OpenAI کی API Key استعمال کی جا سکتی ہے، یا انٹرفیس کے「LLM ترتیب」صفحے پر درج کی جا سکتی ہے۔

export ANTHROPIC_API_KEY=sk-...

OPENAI_API_KEY بھی مقرر کیا جا سکتا ہے۔ منصوبہ فراہم کنندہ، ماڈل، ایڈریس اور پراکسی کو تبدیل کرنے کے لیے ARTEX_LLM_PROVIDER، ARTEX_LLM_MODEL، ARTEX_LLM_BASE_URL اور ARTEX_LLM_PROXY کی بھی حمایت کرتا ہے۔

ہم وقتی اجرا اور پورٹ ایڈجسٹ کریں

ہر کام کے work agent کی تعداد「نظام کی ترتیبات」میں تبدیل کی جا سکتی ہے، جس کی طے شدہ قدر 3 ہے۔ اسٹارٹ پیرامیٹرز Web/API ایڈریس اور ٹریفک ریکارڈنگ پراکسی پورٹ مقرر کر سکتے ہیں:

./start.sh -addr :8787 -proxy :8788

اسٹارٹ اسکرپٹ پیرامیٹرز کو جوں کا توں artex تک منتقل کرتا ہے۔

Web انٹرفیس استعمال کرنا شروع کریں

تحقیقی سلسلہ

1. لاگ اِن کریں اور ڈیش بورڈ دیکھیں

پہلی بار رسائی پر ایڈمنسٹریٹر پاس ورڈ مقرر کریں، پھر مجموعی جائزہ، Token کے استعمال اور سرگرمیوں کا سلسلہ دیکھنے کے لیے ڈیش بورڈ کھولیں۔ ڈیش بورڈ سے فوری طور پر اندازہ لگایا جا سکتا ہے کہ موجودہ نظام معمول کے مطابق چل رہا ہے یا نہیں، اور آیا کاموں میں نئی سرگرمیاں پیدا ہوئی ہیں۔

2. کام اور اجرا کا عمل دیکھیں

کاموں کی فہرست میں مطلوبہ کام منتخب کر کے اس کے سیشن، ٹول کالز، سرگرمی کے ریکارڈ اور تحقیقی سلسلے دیکھے جا سکتے ہیں۔ اجرا کا صفحہ agent کے کام کے مراحل دکھاتا ہے، جبکہ تحقیقی سلسلہ اہداف، ارادوں، حقائق اور دریافتوں کے درمیان تعلق سمجھنے کے لیے استعمال ہوتا ہے۔

کام کے اجرا کا عملتحقیقی سلسلہ

ان صفحات کو استعمال کرتے وقت پہلے مقامی علیحدہ ماحول میں عمل کی توثیق کریں، اور سرگرمی و ٹریفک ریکارڈ کے ذریعے جانچیں کہ agent نے حقیقتاً کون سے مراحل انجام دیے ہیں۔

3. دریافتیں اور اثاثے دیکھیں

دریافتوں کا صفحہ کام سے حاصل ہونے والی کمزوریوں یا دیگر دریافتوں کو یکجا کر کے دکھاتا ہے، جبکہ اثاثوں کا صفحہ نظام کے جمع اور یکجا کیے گئے اثاثوں کی معلومات دکھاتا ہے۔

دریافتوں کی فہرستاثاثوں کی فہرست

اثاثہ کوریج کا نقشہ قوت پر مبنی لے آؤٹ میں دائرہ کار کے اثاثے دکھا سکتا ہے، آزمودہ نوڈز کو نمایاں کر سکتا ہے، اور نوڈز کو سکیڑنے یا پھیلانے کی سہولت دیتا ہے۔ یہ مجموعی طور پر دیکھنے کے لیے موزوں ہے کہ کون سے اثاثوں کی تحقیق ہو چکی ہے اور کون سے اثاثے ابھی کوریج سے باہر ہیں۔

اثاثہ کوریج کا نقشہ

ScopeSentry اثاثوں کو ہم وقت کریں

اگر ScopeSentry میں پہلے ہی اثاثے جمع کیے جا چکے ہیں تو ARTEX کے「اثاثہ ہم وقت سازی」صفحے سے ڈیٹا سورس منسلک کریں تاکہ دوبارہ جمع کرنے سے بچا جا سکے۔

دریافت

  1. ScopeSentry کا ایڈریس اور API Key درج کر کے ڈیٹا سورس منسلک کریں۔
  2. پروجیکٹ یا کام کے مطابق ہم وقت کیے جانے والے ہدف منتخب کریں۔
  3. اثاثے کی قسم منتخب کریں، مثلاً ڈومین، ذیلی ڈومین، IP، پورٹ، سائٹ یا اینڈ پوائنٹ۔
  4. درآمد شروع کریں تاکہ ARTEX کمپنی کے اثاثہ دائرہ کار کے مطابق ڈیٹا یکجا کرے۔
  5. اثاثہ گراف میں درآمد کا نتیجہ چیک کریں اور اسے مزید تحقیق کے لیے agent کو فراہم کریں۔

اثاثہ گراف مختلف کاموں میں مشترکہ عالمی اثاثہ حقائق کا ذخیرہ ہے۔ پروگرام والدین و اولاد کے تعلقات اور deduplication key کا حساب لگاتا ہے، جبکہ agent خام اثاثہ معلومات جمع کراتا ہے۔

ARTEX کے دوہری گراف کے معماری ڈھانچے کو سمجھنا

اثاثہ گراف: کون سے اثاثے موجود ہیں

اثاثہ گراف کے نوڈز میں root_domain، subdomain، ip، service، app اور endpoint شامل ہیں۔ ڈومینز، ذیلی ڈومینز، سروسز اور اینڈ پوائنٹس کو والدین-اولاد تعلقات کے ذریعے منظم کیا جاتا ہے اور متعلقہ کمپنی سے منسلک کیا جاتا ہے۔

ایکسپلوریشن گراف: کام کو کیسے آگے بڑھایا جائے

ایکسپلوریشن گراف ہر کام کے لیے الگ محفوظ کیا جاتا ہے۔ اس کے نوڈز میں goal، intent، fact، finding اور hint شامل ہیں۔ نظام spawns، derived_from، yields اور proves جیسے تعلقات کے ذریعے پیش رفت کا سلسلہ ریکارڈ کرتا ہے۔

دونوں گراف اینکرز کے ذریعے منسلک ہیں۔ ارادوں، حقائق اور کمزوریوں کو مخصوص اثاثوں سے منسلک کیا جا سکتا ہے، لہٰذا آپ ایکسپلوریشن کی سمت سے متعلقہ اثاثے دیکھ سکتے ہیں، یا کسی اثاثے سے یہ معلوم کر سکتے ہیں کہ موجودہ کام میں اسے کن سمتوں سے جانچا جا چکا ہے۔

planner اور worker کا باہمی تعاون

انجن ایونٹ سے چلنے والے بند چکر کا استعمال کرتا ہے: گراف میں تبدیلی کے بعد planner فعال ہوتا ہے، موجودہ صورتحال پڑھتا ہے اور ارادے تقسیم کرتا ہے؛ worker ایک ارادہ حاصل کرتا ہے، ٹولز کے ذریعے اسے انجام دیتا ہے اور نئے اثاثے، حقائق یا دریافتیں ڈیٹابیس میں واپس لکھتا ہے؛ واپسی کی یہ کارروائی دوبارہ planner کو فعال کرتی ہے۔

اثاثے

planner صرف اس وقت ارادہ تقسیم کرتا ہے جب کوئی نیا اور ابھی تک غیر احاطہ شدہ رخ دریافت ہو۔ worker اپنا حاصل کردہ ارادہ مکمل کرنے کے بعد رک جاتا ہے، تاکہ مختلف worker بے حد تکراری عمل نہ کریں۔

متعدد مراحل اور باہمی انحصار رکھنے والے ایکسپلوریشن سلسلوں کے لیے planner ہر کام کے لیے محفوظ مشترکہ todolist برقرار رکھتا ہے۔ اگلا مرحلہ صرف اس وقت تقسیم کیا جاتا ہے جب پیشگی مرحلہ مکمل ہو جائے اور متعلقہ حقیقت موجود ہو۔ یہ طریقہ پورے سلسلے کو ایک ہی بار متوازی طور پر کھولنے سے بچاتا ہے۔

دیگر worker کے عمل کی تلاش

بعد کے worker اس کام کے دیگر work کے عمل کے دوران کلیدی الفاظ کے ذریعے تلاش کرنے کے لیے search_all_worker_traces(q) استعمال کر سکتے ہیں۔ وہ پہلے مکمل کیے گئے work دیکھنے کے لیے list_worker_traces، پھر مخصوص مراحل کا مکمل مواد حاصل کرنے کے لیے get_worker_trace(intent_id, step_ids=[...]) استعمال کر سکتے ہیں۔ نظام موجودہ worker کے اپنے ارادوں کو خودکار طور پر خارج کر دیتا ہے۔

عمل کی سطح پر معلومات کا یہ تبادلہ agent کو ان مشاہدات کو دوبارہ استعمال کرنے میں مدد دیتا ہے جو ابھی باضابطہ طور پر fact میں نہیں لکھے گئے، جبکہ ہر worker کو صرف اپنے حاصل کردہ ارادے پر عمل کرنے کی حد برقرار رہتی ہے۔

ٹریفک ریکارڈنگ اور منظوری

ARTEX ٹریفک ریکارڈنگ پراکسی اور ٹول منظوری کا دروازہ فراہم کرتا ہے۔ ٹریفک صفحہ ٹول کے اجرا سے پیدا ہونے والے ریکارڈ دیکھنے کے لیے ہے، جبکہ مداخلتی منظوری کا صفحہ انسانی تصدیق درکار کارروائیوں سے نمٹنے کے لیے استعمال ہوتا ہے۔

ٹریفک ریکارڈ

سکیورٹی کی توثیق کے دوران، کام کے سیشن، ٹول کالز، سرگرمی کے سلسلے اور ٹریفک ریکارڈ بیک وقت دیکھنے کی سفارش کی جاتی ہے، تاکہ تصدیق ہو سکے کہ نظام کا رویہ توقع کے مطابق ہے۔ انسان کی شمولیت والی گفتگو اضافی سیاق و سباق فراہم کرنے اور منظوری کے عمل میں حصہ لینے کے لیے بھی استعمال کی جا سکتی ہے۔

کمزوری کی دوبارہ جانچ

کام کی تفصیلات کے «دوبارہ جانچ» ٹیب میں اس کام کی کمزوریوں کو صفحات کے ذریعے منتخب کیا جا سکتا ہے، سابقہ نتائج اور شواہد دیکھے جا سکتے ہیں، اور الگ سے دوبارہ جانچ شروع کی جا سکتی ہے۔ کمزوریوں کی فہرست، کمزوری کی تفصیلات، کام کے گروپ کا منظر اور اثاثہ منظر سب دوبارہ جانچ کا راستہ فراہم کرتے ہیں۔

اثاثہ کوریج گراف

  1. کمزوریوں کی فہرست یا کمزوری کی تفصیلات میں «دوبارہ جانچ» پر کلک کریں۔
  2. ضرورت کے مطابق اصلاحی ورژن، ٹیسٹ کی شرائط یا پابندیاں درج کریں۔
  3. ایک آزاد دوبارہ جانچ Agent سیشن شروع کریں۔
  4. سیشن میں دوبارہ جانچ کا عمل دیکھیں، اور اختتام کے بعد نتیجہ اور شواہد دیکھیں۔

دوبارہ جانچ کے نتائج میں «اب بھی دوبارہ پیدا ہو سکتی ہے»، «درست کر دی گئی» اور «تصدیق نہیں ہو سکی» شامل ہیں۔ اگر دوبارہ جانچ کامیابی سے مکمل ہو اور نتیجہ «درست کر دی گئی» ہو، تو نظام کمزوری کی کارروائی کی حالت خودکار طور پر اپ ڈیٹ کر دیتا ہے؛ عمل جاری ہونے، ناکام ہونے، رکنے یا کسی دوسرے نتیجے کی صورت میں اصل حالت خودکار طور پر تبدیل نہیں ہوتی۔ اصل شواہد اور رپورٹ محفوظ رہتے ہیں۔

نظام قابل تدوین «کمزوری کی دوبارہ جانچ» retester Agent پہلے سے فراہم کرتا ہے۔ اسے Agent مینجمنٹ میں پرامپٹ، LLM، رن بجٹ اور ٹولز کے ساتھ ترتیب دیا جا سکتا ہے؛ اگر مخصوص LLM منسلک نہ ہو تو عالمی فعال ترتیب استعمال کی جاتی ہے۔ ایک ہی کمزوری کی دوبارہ جانچ جاری ہو تو موجودہ سیشن دوبارہ استعمال کیا جاتا ہے، جبکہ رکنے، ناکام ہونے یا سروس دوبارہ شروع ہونے کے بعد اسے دوبارہ شروع کیا جا سکتا ہے۔

نوٹ کریں کہ پروجیکٹ کی وضاحت کے مطابق، دوبارہ جانچ کی تاریخ ابھی کمزوریوں کی رپورٹ برآمد یا کام کے آرکائیو پیکیج میں شامل نہیں کی گئی، اور نہ ہی اسے ٹریفک پیکیج سے خودکار طور پر منسلک کیا گیا ہے۔ ڈیمو موڈ صرف واضح طور پر نشان زدہ نقلی ریکارڈ بناتا ہے اور حقیقی ہدف کو درخواست نہیں بھیجتا۔

ریورس پراکسی کی تعیناتی کے اہم نکات

فرنٹ اینڈ، API اور SSE پہلے سے ایک ہی بیک اینڈ پورٹ کے ذریعے فراہم کیے جاتے ہیں، اس لیے عموماً صرف عوامی HTTPS پورٹ کھولنا کافی ہوتا ہے، جبکہ ARTEX کا 8787 اندرونی نیٹ ورک میں رکھا جاتا ہے۔ حقیقی وقت کی سرگرمی کا سلسلہ اسی origin کا پتہ استعمال کرتا ہے، اس لیے عموماً NEXT_PUBLIC_SSE_BASE ترتیب دینے کی ضرورت نہیں ہوتی۔

Nginx جیسی ریورس پراکسی کو SSE بفرنگ بند کرنی چاہیے اور پڑھنے کا طویل ٹائم آؤٹ مقرر کرنا چاہیے، ورنہ براؤزر کنکشن قائم ہونے کے باوجود سرگرمی کے ایونٹس مسلسل وصول نہیں کر پائے گا۔

location / {
    proxy_pass http://127.0.0.1:8787;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;
    proxy_cache off;
    proxy_read_timeout 3600s;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
}

صرف اس صورت میں تعمیر کے مرحلے پر NEXT_PUBLIC_SSE_BASE ترتیب دینے کی ضرورت ہوتی ہے جب SSE کے لیے مختلف origin، مثلاً ایک الگ ذیلی ڈومین، لازمی ہو۔ یہ متغیر next build کے وقت جامد پیکیج میں شامل ہو جاتا ہے، اس لیے کنٹینر کے رن ٹائم پر اسے ترتیب دینا مؤثر نہیں ہوگا۔

اپ گریڈ اور رول بیک

ٹریفک

ARTEX کا اپ گریڈ پروگرام کو تبدیل کرتا ہے، لیکن PostgreSQL ڈیٹا والیوم، ./data اور ./skills محفوظ رہتے ہیں۔ نظام کی ترتیب کے صفحے پر موجود «ورژن اور اپ ڈیٹس» کارڈ سے ایک کلک میں اپ ڈیٹ کرنے کی سفارش کی جاتی ہے۔ اپ ڈیٹ کا عمل موجودہ پلیٹ فارم کا ریلیز پیکیج ڈاؤن لوڈ کرتا ہے، SHA256SUMS کی جانچ کرتا ہے، نئے بائنری کا اسموک ٹیسٹ چلاتا ہے، پھر اسٹارٹ اپ اسکرپٹ کے ذریعے تبدیلی مکمل کرتا ہے۔

اگر جانچ یا اسموک ٹیسٹ ناکام ہو جائے تو عارضی پروگرام حذف کر دیا جاتا ہے؛ نئے ورژن کے مسلسل تین بار شروع ہونے میں ناکام ہونے پر خودکار رول بیک کیا جاتا ہے۔ سابقہ ورژن artex.old کے طور پر محفوظ رہتا ہے۔ تاہم، ڈیٹابیس کا ڈھانچہ پروگرام کے ساتھ رول بیک نہیں ہوتا، اس لیے اپ گریڈ سے پہلے ڈیٹابیس اور ./data کا بیک اپ لینا ضروری ہے۔

اپ ڈیٹ سروس کو دوبارہ شروع کرے گا اور جاری کاموں میں خلل ڈالے گا، اس لیے اسے خالی وقت میں انجام دیں۔ Docker تعیناتی میں یہ بھی یاد رکھیں: صفحے کی اپ ڈیٹ صرف پروگرام کو تبدیل کرتی ہے، امیج میں موجود ٹول چین کو نہیں۔ امیج اپ گریڈ کرنے کے لیے یہ چلائیں:

docker compose pull artex
docker compose up -d artex

آپ ریپوزٹری میں موجود اپ ڈیٹ اسکرپٹ بھی استعمال کر سکتے ہیں:

cd ARTEX
./update.sh

مقامی ترقی اور ٹیسٹنگ

ترقیاتی ماحول میں dev.sh کے ذریعے بیک اینڈ، ٹریفک پراکسی اور Next.js ڈویلپمنٹ سرور بیک وقت شروع کیے جا سکتے ہیں:

./dev.sh

ڈیفالٹ بیک اینڈ پورٹ 8787، ٹریفک پراکسی پورٹ 8788 اور فرنٹ اینڈ ڈویلپمنٹ سرور 5173 ہے۔ انہیں الگ الگ بھی چلایا جا سکتا ہے:

go run ./cmd/artex
cd web && npm run dev
go test ./...

اگر بیک اینڈ شروع کیے بغیر صرف فرنٹ اینڈ کا پیش منظر دیکھنا ہو تو یہ استعمال کریں:

cd web && NEXT_PUBLIC_MOCK=1 npm run dev

خلاصہ

ARTEX Go کے یکجا بیک اینڈ، Next.js انٹرفیس، PostgreSQL، LLM agent، ٹریفک ریکارڈنگ، منظوری کے طریقہ کار اور اثاثہ مینجمنٹ کو ایک نظام میں یکجا کرتا ہے۔ آغاز کے لیے پہلے Docker یا انسٹالیشن اسکرپٹ کے ذریعے تعیناتی مکمل کریں، پھر PostgreSQL اور LLM ترتیب دیں، اور اس کے بعد کاموں، سیشنز، ایکسپلوریشن سلسلوں، اثاثہ کوریج گراف اور ٹریفک ریکارڈز کے ذریعے نظام کے رویے کو مرحلہ وار سمجھیں۔

اثاثہ گراف اور ایکسپلوریشن گراف کی ذمہ داریوں کو سمجھنا ARTEX پر عبور حاصل کرنے کی کلید ہے: اثاثہ گراف جواب دیتا ہے کہ «کون سے اثاثے موجود ہیں»، جبکہ ایکسپلوریشن گراف بتاتا ہے کہ «کام کیسے آگے بڑھتا ہے»۔ کسی بھی ٹیسٹ سے پہلے اسے مقامی الگ تھلگ ماحول اور پروجیکٹ کے مجاز تعلیمی استعمال تک سختی سے محدود رکھیں، اور پروجیکٹ کے اعلان، اوپن سورس لائسنس اور قابل اطلاق قوانین کی پابندی کریں۔