باب · اپنا ڈیٹا جوڑیں

ہر ماخذ۔
ایک دروازہ۔

ایک کال ماخذ رجسٹر کرتی ہے، ٹائپڈ اسکیما اخذ کرتی ہے، اور اس کی ریویژن ہر اس پلان میں پن کر دیتی ہے جو اسے چھوتا ہے۔ فائلیں اور SQLite عمل کے اندر چلتے ہیں — کوئی کلید نہیں، کچھ باہر نہیں جاتا۔ لائیو ڈیٹا بیسز انجن کے ذریعے جڑتے ہیں — براہ راست، ہر ڈیٹا بیس کے اپنے وائر پروٹوکول پر: اسناد خفیہ کاری شدہ، کوئی ڈیٹا کاپی نہیں۔

const sales = await sqai.connect("./data/sales.csv", { name: "sales" })

→ row_count 12 · schema_revision e4938027… · status ready

ٹائپڈ · ہیش‌پنڈ · صرف پڑھنے کے لیے

IIقسمیں

دو ٹرے۔ چھبیس خانے۔

ہر خانہ ایک ہی کنٹریکٹ پر کھلتا ہے: کیسے جڑتا ہے، کیا چاہیے، کیا باہر جاتا ہے۔ ایک کھولیں۔

عمل کے اندرکوئی کلید نہیں · کوئی ڈیمن نہیں · کوئی نیٹ ورک نہیں

CSV
کیس
فائل
جوڑیں
"./data/sales.csv"
توثیق
کوئی نہیں۔ SQAI آپ کے عمل میں بائٹس براہِ راست پڑھتا ہے۔
کلید
کلید کے بغیر — کوئی اکاؤنٹ نہیں، کوئی کارڈ نہیں، مکمل صرف-پڑھنے کی سطح۔
ڈیٹا
کچھ بھی عمل سے باہر نہیں جاتا۔
TSV
کیس
فائل
جوڑیں
"./data/orders.tsv"
توثیق
کوئی نہیں۔ SQAI آپ کے عمل میں بائٹس براہِ راست پڑھتا ہے۔
کلید
کلید کے بغیر — کوئی اکاؤنٹ نہیں، کوئی کارڈ نہیں، مکمل صرف-پڑھنے کی سطح۔
ڈیٹا
کچھ بھی عمل سے باہر نہیں جاتا۔
JSON
کیس
فائل
جوڑیں
"./data/sales.json"
توثیق
کوئی نہیں۔ SQAI آپ کے عمل میں بائٹس براہِ راست پڑھتا ہے۔
کلید
کلید کے بغیر — کوئی اکاؤنٹ نہیں، کوئی کارڈ نہیں، مکمل صرف-پڑھنے کی سطح۔
ڈیٹا
کچھ بھی عمل سے باہر نہیں جاتا۔
نوٹ
ایک راستہ یا ایک آبجیکٹ۔
rows
کیس
ان-میموری
جوڑیں
[{ region: "east", revenue: 512 }, …]
توثیق
کوئی نہیں۔ SQAI آپ کے عمل میں بائٹس براہِ راست پڑھتا ہے۔
کلید
کلید کے بغیر — کوئی اکاؤنٹ نہیں، کوئی کارڈ نہیں، مکمل صرف-پڑھنے کی سطح۔
ڈیٹا
کچھ بھی عمل سے باہر نہیں جاتا۔
{ records }
کیس
ان-میموری
جوڑیں
{ records: [ … ] }
توثیق
کوئی نہیں۔ SQAI آپ کے عمل میں بائٹس براہِ راست پڑھتا ہے۔
کلید
کلید کے بغیر — کوئی اکاؤنٹ نہیں، کوئی کارڈ نہیں، مکمل صرف-پڑھنے کی سطح۔
ڈیٹا
کچھ بھی عمل سے باہر نہیں جاتا۔
SQLite
کیس
ایمبیڈڈ ڈیٹابیس
جوڑیں
{ provider: "sqlite", path, table | query }
توثیق
کوئی نہیں۔ SQAI آپ کے عمل میں بائٹس براہِ راست پڑھتا ہے۔
کلید
کلید کے بغیر — کوئی اکاؤنٹ نہیں، کوئی کارڈ نہیں، مکمل صرف-پڑھنے کی سطح۔
ڈیٹا
کچھ بھی عمل سے باہر نہیں جاتا۔
نوٹ
ایک مکمل ڈیٹابیس، پھر بھی ان-پروسیس۔ کوئی ٹیبل یا صرف-پڑھنے کا سوال بتائیں۔
Excel
کیس
فائل
جوڑیں
"./data/sales.xlsx"
توثیق
کوئی نہیں۔ SQAI آپ کے عمل میں بائٹس براہِ راست پڑھتا ہے۔
کلید
کلید کے بغیر — کوئی اکاؤنٹ نہیں، کوئی کارڈ نہیں، مکمل صرف-پڑھنے کی سطح۔
ڈیٹا
کچھ بھی عمل سے باہر نہیں جاتا۔
نوٹ
صرف Python۔
Parquet
کیس
فائل
جوڑیں
"./data/sales.parquet"
توثیق
کوئی نہیں۔ SQAI آپ کے عمل میں بائٹس براہِ راست پڑھتا ہے۔
کلید
کلید کے بغیر — کوئی اکاؤنٹ نہیں، کوئی کارڈ نہیں، مکمل صرف-پڑھنے کی سطح۔
ڈیٹا
کچھ بھی عمل سے باہر نہیں جاتا۔
نوٹ
صرف Python۔

انجن کے ذریعےاسناد خفیہ کاری شدہ · کوئی ڈیٹا کاپی نہیں

PostgreSQL
کیس
ریلیشنل
جوڑیں
{ type: "postgres", host, port, database, user, password, table | query }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
MySQL
کیس
ریلیشنل
جوڑیں
{ type: "mysql", host, port, database, user, password, table | query }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
Oracle
کیس
ریلیشنل
جوڑیں
{ type: "oracle", host, port, database, user, password, table | query }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
نوٹ
بنڈل شدہ Thin-mode ڈرائیور — Oracle کلائنٹ انسٹال کرنے کی ضرورت نہیں۔
SQL Server
کیس
ریلیشنل
جوڑیں
{ type: "mssql", host, port, database, user, password, table | query }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
Snowflake
کیس
ویئرہاؤس
جوڑیں
{ type: "snowflake", connection_string, query }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
BigQuery
کیس
ویئرہاؤس
جوڑیں
{ type: "bigquery", connection_string, query }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
ClickHouse
کیس
ویئرہاؤس
جوڑیں
{ type: "clickhouse", connection_string, query }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
Redshift
کیس
ویئرہاؤس
جوڑیں
{ type: "redshift", connection_string, query }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
S3
کیس
آبجیکٹ اسٹوریج
جوڑیں
{ type: "s3", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
GCS
کیس
آبجیکٹ اسٹوریج
جوڑیں
{ type: "gcs", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
Azure Blob
کیس
آبجیکٹ اسٹوریج
جوڑیں
{ type: "azure_blob", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
Redis
کیس
NoSQL · گراف · سرچ
جوڑیں
{ type: "redis", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
Neo4j
کیس
NoSQL · گراف · سرچ
جوڑیں
{ type: "neo4j", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
Elasticsearch
کیس
NoSQL · گراف · سرچ
جوڑیں
{ type: "elasticsearch", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
REST
کیس
API
جوڑیں
{ type: "rest", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
GitHub
کیس
کوڈ ریپوز
جوڑیں
{ type: "github", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
GitLab
کیس
کوڈ ریپوز
جوڑیں
{ type: "gitlab", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔
Bitbucket
کیس
کوڈ ریپوز
جوڑیں
{ type: "bitbucket", … }
توثیق
میزبان انجن کے لیے SQAI_API_KEY، یا اپنے انجن کے لیے SQAI_ENGINE_URL۔
کلید
ایک کلید، یا آپ کے اپنے انجن کا URL۔
ڈیٹا
اسناد انجن پر خفیہ کاری شدہ۔ قطاریں ضرورت پر پڑھی جاتی ہیں — کبھی نقل نہیں ہوتیں۔

موڈ ماحول سے خود بخود متعین ہوتا ہے

SQAI_ENGINE_URLself_hosted

آپ کا انجن، آپ کا نیٹ ورک۔

SQAI_API_KEYapi

میزبان انجن۔

کوئی بھی سیٹ نہیںlocal

صرف ان-پروسیس۔

فائلیں اور SQLite ہر موڈ میں کام کرتے ہیں۔ لائیو ڈیٹابیسز کے لیے api یا self_hosted درکار ہے۔ انجن ایک بار کنکشن قائم کرتا ہے، پھر گرم رہتا ہے — ایک مستقل ڈیمن، ہر سوال پر کوئی کولڈ اسٹارٹ نہیں۔

نہ کوئی سنک۔ نہ کوئی ایکسپورٹ۔
نہ کوئی تھرڈ-پارٹی برج۔

ڈیٹابیس کے اپنے وائر پروٹوکول پر براہِ راست رابطہ

IIIوائر

براہِ راست۔ پروٹوکول تک۔

انجن براہِ راست جڑتا ہے، ہر ڈیٹابیس کا اپنا وائر پروٹوکول بولتا ہے۔ سوالات وہیں چلتے ہیں، آپ کی تنظیم تک محدود — آپ کا ڈیٹابیس کبھی نقل نہیں ہوتا۔

شکل — تار
آپ کا ڈیٹابیسقطاریں اپنی جگہ رہتی ہیں
اس کا اپنا وائر پروٹوکول — انجن براہِ راست بولتا ہے
انجنصرف-پڑھنے کے سوالات

اپنی جگہ، دائرے میں۔

انجن آپ کا ڈیٹا وہیں سوال کرتا ہے جہاں وہ ہے، آپ کی تنظیم تک محدود — اور کبھی آپ کی ترتیب سے آگے نہیں جاتا۔

اسناد محفوظ۔

آرام پر خفیہ کاری شدہ، تنظیم-محدود، صرف آپ کی تنظیم کے سوالات کے لیے استعمال۔ کنیکٹر اپنی ترتیب کبھی نہیں لوٹاتا — صرف نام، قسم، حیثیت، اور آخری ٹیسٹ کا نتیجہ۔

کبھی نقل نہیں

انجن آپ کا ڈیٹابیس کبھی نقل نہیں کرتا — قطاریں وہیں پڑھی جاتی ہیں جہاں وہ ہیں۔

SELECT 1ok · connector: live

ہر ٹیسٹ ایک حقیقی کنکشن کھولتا ہے — SQL کے لیے SELECT 1، آبجیکٹ اسٹوریج کے لیے HEAD، REST کے لیے نمونہ فیچ۔ کنیکٹر صرف تب لائیو ہوتا ہے جب حقیقی کنکشن کامیاب ہو؛ ترتیب بدلیں تو وہ غیر-آزمودہ پر واپس آ جاتا ہے۔

فلیگ شپ وائر · Oracle

Thin موڈ۔ کچھ انسٹال نہیں۔

انجن python-oracledb کو Thin موڈ میں بنڈل کرتا ہے اور براہِ راست جڑتا ہے — نہ Instant Client، نہ اضافی رن ٹائم عمل، نہ کوئی اضافی Python پیکیج۔ انجن وائر کا مکمل اختیار رکھتا ہے: ڈرائیور، محدود کنکشن پول، اسناد کی تصدیق، اسکیما براؤز، اور Arrow-مطابق بیچ فیچ راستہ — کوئی پوشیدہ غیر-پولڈ فال بیک کنکشن نہیں۔

  • صرف SELECT / WITH جڑیں
  • محدود ROWNUM حد
  • مستقل پروب · 0 ms پر دوبارہ استعمال

Redshift کا جواب PostgreSQL میں۔

ٹیبلز PostgreSQL وائر پروٹوکول پر وہیں پڑھی جاتی ہیں — کلسٹر کبھی نقل نہیں ہوتا۔ ٹیسٹ کامیابی کا پیغام بھی PostgreSQL کا نام لیتا ہے۔

ایک منزل، ہر راستہ۔

آبجیکٹ اسٹوریج اور اپلوڈز ایک ہی پارسرز استعمال کرتے ہیں — S3 میں Parquet آبجیکٹ اور اپلوڈ شدہ Parquet فائل انجن میں یکساں طور پر پہنچتے ہیں۔

ایک ہی درخواست → ایک ہی قطاریں، ایک ہی ترتیب · ہر رسائی قابلِ آڈٹ · ایگریس ایک فیل-کلوزڈ فی-ڈیپلائمنٹ اجازت فہرست ہے

IVیکسانیت

CSV اور Snowflake میں فرق نہیں رہتا۔

ہر ذریعہ ایک ہی typed SqaiSource لوٹاتا ہے — یکساں فیلڈز، یکساں pins، یکساں ضمانتیں۔ فائل کی جگہ warehouse لگائیں، downstream میں کچھ نہیں بدلتا۔

in-process"./data/sales.csv"
انجن کے ذریعے{ type: "snowflake", connection_string, query }

SqaiSource

یکساں ساخت · ہر ذریعہ
name"sales"
source_ide135c6f7eec0e846c01c4ef8
fieldsregion · product · revenue · cost · units · order_date
typed_fields2 string · 3 number · 1 date
row_count12
schema_revisione4938027ddf0d2210f019770403efd45d350eac28100902ddd7c5191c9b8cfbe
statusready

ایک سند، ذریعہ کوئی بھی ہو۔ Downstream کوڈ کو کبھی معلوم نہیں ہوتا کہ rows کہاں ہیں۔

ایک بار رجسٹر۔
دوبارہ تعریف نہیں۔

نام دوبارہ باندھنے پر خطا آتی ہے source_already_registered

VPin

ڈیٹا بدلا — replay بتا دیتا ہے۔

connect() ہر plan اور computation میں schema revision pin کر دیتا ہے۔ بدلے ہوئے ڈیٹا پر محفوظ plan دوبارہ چلائیں تو تبدیلی سامنے آتی ہے — خاموشی سے غلط نمبر نہیں۔

schema_revision
connect کے وقت ہر plan اور computation میں pin ہوتا ہے جو اس ذریعے کو چھوتا ہے۔
schema_revision_mismatch
جب replay کے دوران ڈیٹا بدل چکا ہو تو یہی واپس آتا ہے۔
source_already_registered
ذرائع ناقابلِ تبدیل ہیں — کوئی نام خاموشی سے مختلف ڈیٹا پر نہیں موڑا جا سکتا۔

provenance.bindings[0]

source_name"sales"
fields["revenue"]
schema_revisione4938027…c9b8cfbe
row_count12
input_hash2ea5ede7…478e3212

ہر bound فیلڈ اپنی نسب اپنے ساتھ رکھتا ہے۔

VIسوالات

LLM کا ڈیٹابیس تک رسائی — جوابات۔

میں LLM کو اپنے ڈیٹابیس تک رسائی کیسے دوں؟

connect() سے کوڈ میں ذریعہ رجسٹر کریں۔ ماڈل کو connection string کبھی نہیں ملتی — اسے typed ذرائع پر صرف تین read-only tools ملتے ہیں، اور policy طے کرتی ہے کہ کون سے ذرائع اور فیلڈز چھو سکتا ہے۔

connect کرنے سے میرا ڈیٹا کہیں copy ہوتا ہے؟

نہیں۔ In-process ذرائع آپ کی مشین نہیں چھوڑتے۔ Engine ذرائع credentials کو encrypted رکھتے ہیں؛ rows ضرورت پر پڑھی جاتی ہیں، copy نہیں ہوتیں۔

کیا SQAI میرے ڈیٹابیس کا sync، export، یا third-party bridge ہے؟

ان میں سے کچھ نہیں۔ رابطہ ڈیٹابیس کے اپنے wire protocol پر براہِ راست ہوتا ہے — engine آپ کا ڈیٹا وہیں query کرتا ہے، آپ کی تنظیم تک محدود، اور ڈیٹابیس کبھی copy نہیں ہوتا۔

ڈیٹا connect کرنے کے لیے API key چاہیے؟

فائلوں، in-memory rows، یا SQLite کے لیے نہیں — یہ بغیر کسی account کے in-process چلتے ہیں۔ Live ڈیٹابیس اور warehouses کو hosted engine کے لیے SQAI_API_KEY یا اپنے engine کے لیے SQAI_ENGINE_URL چاہیے۔

کیا ماڈل میرے credentials دیکھ سکتا ہے؟

نہیں۔ Credentials آپ کے کوڈ میں connect() کے وقت فراہم ہوتے اور engine پر encrypted رہتے ہیں۔ ماڈل کا tool input typed intent رکھتا ہے — کوئی connection تفصیل نہیں، کوئی policy فیلڈ نہیں۔

کیا Oracle بغیر client انسٹال کیے چلتا ہے؟

ہاں۔ Engine میں Thin-mode driver شامل ہے، اس لیے Oracle client انسٹال کرنے کی ضرورت نہیں۔

بنیادی ڈیٹا بدل جائے تو کیا ہوتا ہے؟

connect کے وقت pin ہوئی schema_revision مطابقت کھو دیتی ہے، اور replay خاموشی سے غلط نمبروں کی بجائے schema_revision_mismatch ظاہر کرتا ہے۔ رجسٹرڈ نام دوبارہ باندھنے پر source_already_registered آتا ہے۔

کچھ connect کریں۔

Node ≥ 20 · Python ≥ 3.10 · فائلوں اور SQLite کو key کی ضرورت نہیں