অধ্যায় · আপনার ডেটা সংযুক্ত করুন

প্রতিটি উৎস।
একটি প্রবেশদ্বার।

একটি কল একটি উৎস নিবন্ধন করে, একটি টাইপড স্কিমা অনুমান করে, এবং এটি স্পর্শ করা প্রতিটি প্ল্যানে এর রিভিশন পিন করে। ফাইল ও 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-এর ফারাক ডাউনস্ট্রিম বোঝে না।

প্রতিটি সোর্স একই টাইপড SqaiSource ফেরত দেয় — একই ফিল্ড, একই পিন, একই গ্যারান্টি। ওয়্যারহাউস দিয়ে ফাইল বদলে দিন, ডাউনস্ট্রিমে কিছুই বদলায় না।

ইন-প্রসেস"./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

একটি সার্টিফিকেট, যেকোনো সোর্সের জন্য। ডাউনস্ট্রিম কোড কখনো জানে না রো কোথায় থাকে।

একবার নিবন্ধিত।
কখনো পুনর্সংজ্ঞায়িত নয়।

নাম পুনরায় বাঁধলে এরর ছোড়ে source_already_registered

Vপিন

ডেটা বদলান। রিপ্লে জানিয়ে দেবে।

connect() প্রতিটি প্ল্যান ও কম্পিউটেশনে একটি স্কিমা রিভিশন পিন করে। পরিবর্তিত ডেটার বিপরীতে সংরক্ষিত প্ল্যান রিপ্লে করলে পরিবর্তন স্পষ্ট হয় — নীরবে ভিন্ন সংখ্যা নয়।

schema_revision
সোর্স স্পর্শ করে এমন প্রতিটি প্ল্যান ও কম্পিউটেশনে connect-এর সময় পিন করা হয়।
schema_revision_mismatch
ডেটা পরিবর্তিত হলে রিপ্লে যা ফেরত দেয়।
source_already_registered
সোর্স অপরিবর্তনীয় — কোনো নাম নীরবে ভিন্ন ডেটায় পুনর্নির্দেশ করা যায় না।

provenance.bindings[0]

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

প্রতিটি বাউন্ড ফিল্ড তার উৎসপরম্পরা বহন করে।

VIপ্রশ্নাবলি

LLM ডেটাবেস অ্যাক্সেস, উত্তরসহ।

LLM-কে আমার ডেটাবেসে অ্যাক্সেস কীভাবে দেব?

connect() দিয়ে কোডে সোর্স নিবন্ধন করুন। মডেল কখনো কানেকশন স্ট্রিং দেখে না — এটি টাইপড সোর্সের উপর তিনটি রিড-অনলি টুল পায়, এবং পলিসি নির্ধারণ করে কোন সোর্স ও ফিল্ড স্পর্শ করা যাবে।

কানেক্ট করলে কি আমার ডেটা কোথাও কপি হয়?

না। ইন-প্রসেস সোর্স আপনার মেশিন ছাড়ে না। ইঞ্জিন সোর্স ক্রেডেনশিয়াল এনক্রিপ্টেড রাখে; রো চাহিদামতো পড়া হয়, কখনো কপি হয় না।

SQAI কি আমার ডেটাবেসের সিঙ্ক, এক্সপোর্ট, নাকি থার্ড-পার্টি ব্রিজ?

এর কোনোটিই নয়। কানেক্টিভিটি ডেটাবেসের নিজস্ব ওয়্যার প্রোটোকলে সরাসরি — ইঞ্জিন আপনার ডেটা যেখানে আছে সেখানেই কোয়েরি করে, আপনার অর্গানাইজেশনের স্কোপে, এবং কখনো ডেটাবেস কপি করে না।

ডেটা কানেক্ট করতে কি API কি লাগে?

ফাইল, ইন-মেমোরি রো বা SQLite-এর জন্য নয় — এগুলো কোনো অ্যাকাউন্ট ছাড়াই ইন-প্রসেসে চলে। লাইভ ডেটাবেস ও ওয়্যারহাউসের জন্য হোস্টেড ইঞ্জিনে SQAI_API_KEY, অথবা নিজের ইঞ্জিনে SQAI_ENGINE_URL দরকার।

মডেল কি আমার ক্রেডেনশিয়াল দেখতে পায়?

না। ক্রেডেনশিয়াল আপনার কোডে connect()-এর সময় সরবরাহ করা হয় এবং ইঞ্জিনে এনক্রিপ্টেড থাকে। মডেলের টুল ইনপুটে থাকে টাইপড ইন্টেন্ট — কোনো কানেকশন বিবরণ নয়, কোনো পলিসি ফিল্ড নয়।

ক্লায়েন্ট ইনস্টল ছাড়া কি Oracle সমর্থিত?

হ্যাঁ। ইঞ্জিনে বান্ডেলড Thin-mode ড্রাইভার আছে, তাই কোনো Oracle ক্লায়েন্ট ইনস্টল করতে হয় না।

অন্তর্নিহিত ডেটা বদলালে কী হয়?

connect-এর সময় পিন করা schema_revision মিলে না, এবং রিপ্লে নীরবে ভিন্ন সংখ্যার বদলে schema_revision_mismatch দেখায়। নিবন্ধিত নাম পুনরায় বাঁধলে source_already_registered ছোড়ে।

কিছু একটা কানেক্ট করুন।

Node ≥ 20 · Python ≥ 3.10 · ফাইল ও SQLite-এ কি লাগে না