4-sentabr, 2026

CLI’da RAG chatbot qurish: hujjatdan javobgacha developer qo‘llanma

CLI RAG chatbot qurish uchun docs papkasi, chunklar, embedding vektorlari, vector index, terminal savoli, AI javobi va source citation oqimini ko‘rsatuvchi qorong‘i neon diagram hero image

RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. chatbotAsosan savol-javob shaklida ishlaydigan suhbat interfeysi. U doim ham agent darajasida harakat qilmaydi. qurishni darrov web app, Telegram bot yoki support widgetdan boshlash shart emas. Aksincha, birinchi versiyani terminalda ishlatish ko‘pincha tozaroq: hujjat qanday bo‘linyapti, qidiruv qaysi chunk’larni topyapti, model qaysi contextModelga shu paytda berilgan foydali ma’lumotlar to‘plami: qoida, hujjat, oldingi xabarlar va vazifa tavsifi. asosida javob beryapti - hammasi ko‘zga ko‘rinadi.

Bu tutorialda minimal CLICommand line interface. Dastur bilan terminal orqali buyruq yozib ishlash usuli. RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. chatbotAsosan savol-javob shaklida ishlaydigan suhbat interfeysi. U doim ham agent darajasida harakat qilmaydi. qilamiz. U docs/ papkasidagi .md va .txt fayllarni o‘qiydi, ularni chunk’larga bo‘ladi, OpenAI embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. modeli bilan vektorga aylantiradi, lokal data/index.json faylga yozadi va terminaldan berilgan savolga manbalar bilan javob qaytaradi.

Bu production arxitektura emas. Maqsad - RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. oqimini tushunish. Keyin shu mantiqni PostgreSQL + pgvector, Supabase Vector, Qdrant, Pinecone yoki boshqa vector databasega ko‘chirish mumkin.

Nima quramiz?

Flow shunday bo‘ladi:

docs/*.md
  -> text extraction
  -> chunking
  -> embeddings
  -> local JSON index
  -> CLI question
  -> query embedding
  -> cosine search
  -> prompt with retrieved context
  -> answer + sources

Bu klassik RAG oqimi: model javob yozishdan oldin tashqi bilim bazadan kerakli bo‘laklarni topadi. Farqi shuki, biz hozir vector databaseEmbedding ko‘rinishidagi vektorlarni saqlash va yaqin ma’nodagi yozuvlarni topish uchun mo‘ljallangan baza turi. o‘rniga oddiy JSON fayldan foydalanamiz. Kichik tutorial uchun bu yetarli.

Talablar

Sizga quyidagilar kerak bo‘ladi:

  • Node.js 20 yoki undan yuqori versiya;
  • OpenAI APIDasturlar bir-biri bilan gaplashishi uchun ishlatiladigan interfeys. AI mahsulotlarda model, servis yoki tool shu yo‘l bilan chaqiriladi. key;
  • bir nechta .md yoki .txt hujjat;
  • terminalda ishlash uchun oddiy loyiha papkasi.

OpenAI Node SDK bo‘yicha rasmiy yo‘l openai paketini o‘rnatish va OPENAI_APIDasturlar bir-biri bilan gaplashishi uchun ishlatiladigan interfeys. AI mahsulotlarda model, servis yoki tool shu yo‘l bilan chaqiriladi._KEY environment variable orqali client yaratishdir. EmbeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. uchun client.embeddings.create(...), javob generatsiyasi uchun esa Responses APIDasturlar bir-biri bilan gaplashishi uchun ishlatiladigan interfeys. AI mahsulotlarda model, servis yoki tool shu yo‘l bilan chaqiriladi. ishlatamiz. Rasmiy boshlang‘ich docs: OpenAI API quickstart va openai-node.

Loyiha strukturasi

rag-cli/
  docs/
    pricing.md
    refund.md
    onboarding.md
  src/
    chunk.js
    embed.js
    ingest.js
    search.js
    ask.js
  data/
    index.json
  .env
  package.json

docs/ ichida bilim bazasi turadi. src/ingest.js hujjatlarni index qiladi. src/ask.js terminaldan savol olib, javob beradi.

Loyiha yaratish

mkdir rag-cli
cd rag-cli
npm init -y
npm install openai dotenv
mkdir -p docs src data

package.json ichida ESM va scriptlarni qo‘shing:

{
  "type": "module",
  "scripts": {
    "ingest": "node src/ingest.js",
    "ask": "node src/ask.js"
  },
  "dependencies": {
    "dotenv": "latest",
    "openai": "latest"
  }
}

.env:

OPENAI_API_KEY=sk-...
CHAT_MODEL=gpt-5.5
EMBEDDING_MODEL=text-embedding-3-small

CHAT_MODELni o‘zingiz ishlatayotgan modelga almashtirishingiz mumkin. text-embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi.-3-small kichik RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. tutorial uchun yaxshi boshlang‘ich tanlov: arzonroq, tezroq va semantic searchSo‘z aynan bir xil bo‘lishini emas, ma’no yaqinligini topishga qaratilgan qidiruv usuli. uchun yetarli. Katta, ko‘p tilli yoki nozik retrieval talabi bo‘lsa, embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. model tanlovini alohida test qilish kerak.

Demo hujjatlar

docs/pricing.md:

# Pricing

Starter tarif oyiga $19. Kichik jamoalar uchun mos.
Pro tarif oyiga $49. Unda priority support va ko‘proq usage limit bor.
Enterprise tarif custom narxlanadi va SSO, audit log hamda dedicated support beradi.

docs/refund.md:

# Refund policy

Foydalanuvchi xariddan keyin 14 kun ichida refund so‘rashi mumkin.
Refund faqat hisobda jiddiy foydalanish bo‘lmagan holatda beriladi.
Enterprise shartnomalarida refund alohida kelishuvga bog‘liq.

docs/onboarding.md:

# Onboarding

Yangi mijoz avval account yaratadi, keyin billing sozlaydi.
Jamoa a’zolari Settings bo‘limidan taklif qilinadi.
SSO faqat Enterprise tarifda yoqiladi.

Haqiqiy loyihada hujjatlar bundan kattaroq bo‘ladi. Lekin RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. sifatini tushunishda kichik, aniq hujjatlar bilan boshlash foydali: agar mini datasetda retrieval ishlamasa, katta datasetda ham barqaror bo‘lmaydi.

OpenAI client

src/embed.js:

import "dotenv/config";
import OpenAI from "openai";

const client = new OpenAI();

export async function embedText(text) {
  const response = await client.embeddings.create({
    model: process.env.EMBEDDING_MODEL ?? "text-embedding-3-small",
    input: text,
    encoding_format: "float"
  });

  return response.data[0].embedding;
}

export async function answerWithContext({ question, context }) {
  const response = await client.responses.create({
    model: process.env.CHAT_MODEL ?? "gpt-5.5",
    instructions: [
      "Siz bilim bazasi yordamchisisiz.",
      "Faqat berilgan context asosida javob bering.",
      "Agar javob context ichida bo‘lmasa, bilmayman deb ayting.",
      "Javobni qisqa, aniq va foydalanuvchi tilida yozing."
    ].join("\n"),
    input: [
      {
        role: "user",
        content: [
          {
            type: "input_text",
            text: `Context:\n${context}\n\nSavol:\n${question}`
          }
        ]
      }
    ]
  });

  return response.output_text;
}

Bu yerda encoding_format: "float" qo‘ydik, chunki embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. vektorlarini oddiy JavaScript array sifatida ishlatamiz. SDK ichida boshqa optimizatsiyalar bo‘lishi mumkin, lekin tutorialda cosine similarityIkki vektor yo‘nalishi qanchalik o‘xshashligini o‘lchaydigan usul. Semantik qidiruvda savol va chunk yaqinligini baholash uchun ishlatiladi. hisoblash uchun float array tushunarliroq.

ChunkingKatta hujjatni qidiruv va model contextiga qulay kichik bo‘laklarga ajratish jarayoni.

RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. sifati ko‘pincha modeldan oldin chunkingKatta hujjatni qidiruv va model contextiga qulay kichik bo‘laklarga ajratish jarayoni.’da buziladi. Juda katta chunk umumiy bo‘lib ketadi, juda kichik chunk esa ma’noni yo‘qotadi. Biz hozir sodda yondashuv qilamiz: hujjatni paragraflar bo‘yicha yig‘ib, taxminan 1200 belgidan oshsa yangi chunk boshlaymiz.

src/chunk.js:

export function chunkText({ source, text, maxChars = 1200 }) {
  const blocks = text
    .split(/\n\s*\n/g)
    .map((block) => block.trim())
    .filter(Boolean);

  const chunks = [];
  let current = "";

  for (const block of blocks) {
    const next = current ? `${current}\n\n${block}` : block;

    if (next.length > maxChars && current) {
      chunks.push(current);
      current = block;
    } else {
      current = next;
    }
  }

  if (current) chunks.push(current);

  return chunks.map((chunk, index) => ({
    id: `${source}#${index + 1}`,
    source,
    index,
    text: chunk
  }));
}

Bu ideal chunkingKatta hujjatni qidiruv va model contextiga qulay kichik bo‘laklarga ajratish jarayoni. emas, lekin boshlash uchun yetarli. Keyin heading, overlap, metadata, section title va file path kabi qo‘shimchalar kiritiladi. Batafsil tushuncha uchun embedding va qidiruv maqolasidagi chunkingKatta hujjatni qidiruv va model contextiga qulay kichik bo‘laklarga ajratish jarayoni. bo‘limiga qaytish mumkin.

Ingestion: hujjatlarni index qilish

src/ingest.js:

import fs from "node:fs/promises";
import path from "node:path";
import { chunkText } from "./chunk.js";
import { embedText } from "./embed.js";

const docsDir = path.join(process.cwd(), "docs");
const indexPath = path.join(process.cwd(), "data", "index.json");

async function readDocs() {
  const files = await fs.readdir(docsDir);
  const docs = [];

  for (const file of files) {
    if (!file.endsWith(".md") && !file.endsWith(".txt")) continue;

    const fullPath = path.join(docsDir, file);
    const text = await fs.readFile(fullPath, "utf8");
    docs.push({ source: file, text });
  }

  return docs;
}

async function main() {
  const docs = await readDocs();
  const chunks = docs.flatMap((doc) => chunkText(doc));

  const indexed = [];

  for (const chunk of chunks) {
    const embedding = await embedText(chunk.text);
    indexed.push({ ...chunk, embedding });
    console.log(`indexed ${chunk.id}`);
  }

  await fs.mkdir(path.dirname(indexPath), { recursive: true });
  await fs.writeFile(indexPath, JSON.stringify(indexed, null, 2));

  console.log(`saved ${indexed.length} chunks to ${indexPath}`);
}

main().catch((error) => {
  console.error(error);
  process.exit(1);
});

Ishga tushirish:

npm run ingest

Natijada data/index.json ichida har bir chunk, source va embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. saqlanadi. Har safar hujjat o‘zgarsa, indexni qayta yaratish kerak. Production’da buni incremental qilish, file hash saqlash va faqat o‘zgargan hujjatlarni qayta embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. qilish yaxshiroq.

Search: savolga yaqin chunk’larni topish

src/search.js:

export function cosineSimilarity(a, b) {
  let dot = 0;
  let normA = 0;
  let normB = 0;

  for (let i = 0; i < a.length; i += 1) {
    dot += a[i] * b[i];
    normA += a[i] * a[i];
    normB += b[i] * b[i];
  }

  if (!normA || !normB) return 0;
  return dot / (Math.sqrt(normA) * Math.sqrt(normB));
}

export function searchChunks({ queryEmbedding, chunks, topK = 4 }) {
  return chunks
    .map((chunk) => ({
      ...chunk,
      score: cosineSimilarity(queryEmbedding, chunk.embedding)
    }))
    .sort((a, b) => b.score - a.score)
    .slice(0, topK);
}

Katta datasetda bunday linear scan sekin bo‘ladi. 100-500 chunk uchun tutorialda yetadi. Minglab yoki millionlab chunk bo‘lsa, approximate nearest neighbor qidiruv beradigan vector databaseEmbedding ko‘rinishidagi vektorlarni saqlash va yaqin ma’nodagi yozuvlarni topish uchun mo‘ljallangan baza turi. kerak bo‘ladi.

CLICommand line interface. Dastur bilan terminal orqali buyruq yozib ishlash usuli. ask: savol berish

src/ask.js:

import fs from "node:fs/promises";
import path from "node:path";
import { answerWithContext, embedText } from "./embed.js";
import { searchChunks } from "./search.js";

const question = process.argv.slice(2).join(" ").trim();

if (!question) {
  console.error('Usage: npm run ask -- "Refund siyosati qanday?"');
  process.exit(1);
}

const indexPath = path.join(process.cwd(), "data", "index.json");

function buildContext(chunks) {
  return chunks
    .map((chunk, index) => {
      return [
        `[${index + 1}] Source: ${chunk.source}`,
        `Score: ${chunk.score.toFixed(3)}`,
        chunk.text
      ].join("\n");
    })
    .join("\n\n---\n\n");
}

async function main() {
  const raw = await fs.readFile(indexPath, "utf8");
  const chunks = JSON.parse(raw);

  const queryEmbedding = await embedText(question);
  const matches = searchChunks({ queryEmbedding, chunks, topK: 4 });
  const context = buildContext(matches);

  const answer = await answerWithContext({ question, context });

  console.log("\nJavob:\n");
  console.log(answer);

  console.log("\nManbalar:\n");
  for (const match of matches) {
    console.log(`- ${match.source} (${match.score.toFixed(3)})`);
  }
}

main().catch((error) => {
  console.error(error);
  process.exit(1);
});

Ishga tushirish:

npm run ask -- "Refund siyosati qanday?"

Kutiladigan natija:

Javob:

Refund xariddan keyin 14 kun ichida so‘ralishi mumkin. Lekin hisobda jiddiy foydalanish bo‘lmagan bo‘lishi kerak. Enterprise shartnomalarida refund alohida kelishuvga bog‘liq.

Manbalar:
- refund.md (0.842)
- pricing.md (0.611)
- onboarding.md (0.588)

Bu yerda manbalar modelning o‘zi “o‘ylab topgan” citationAI javobida qaysi hujjat, sahifa yoki bo‘limga tayanganini ko‘rsatadigan manba havolasi yoki izoh. emas. Biz retrieval bosqichida topilgan chunk source’larini alohida chiqarib beryapmiz. Real mahsulotda citationAI javobida qaysi hujjat, sahifa yoki bo‘limga tayanganini ko‘rsatadigan manba havolasi yoki izoh. har bir jumla yoki paragraph bilan aniqroq bog‘lanishi kerak.

“Bilmayman” holatini tekshirish

RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. chatbotning eng muhim testi to‘g‘ri javobdan ko‘ra “bilmayman” holatidir. Masalan:

npm run ask -- "Kompaniya Toshkentda ofis ochganmi?"

Agar docs ichida bu haqida ma’lumot bo‘lmasa, model taxmin qilmasligi kerak. Promptdagi “faqat contextModelga shu paytda berilgan foydali ma’lumotlar to‘plami: qoida, hujjat, oldingi xabarlar va vazifa tavsifi. asosida javob bering” qoidasi shu uchun. Lekin faqat promptga ishonib qolmang. Hallucination baribir tekshirilishi kerak.

Amaliy himoya: agar topilgan chunk’larning eng yuqori score’i juda past bo‘lsa, modelni umuman chaqirmasdan “bilim bazasida bu savolga yetarli ma’lumot topilmadi” deb qaytarish mumkin.

src/ask.js ichida model chaqirishdan oldin:

if (matches[0]?.score < 0.72) {
  console.log("Bilim bazasida bu savolga yetarli ma’lumot topilmadi.");
  process.exit(0);
}

Bu threshold universal emas. Uni o‘z dataset va savollaringizda test qilish kerak.

EvalAI javobi qanchalik to‘g‘ri, foydali yoki barqaror ekanini oldindan belgilangan mezonlar bilan baholash jarayoni. fayl qo‘shish

RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. tizimni “men sinab ko‘rdim, ishlayapti” bilan baholash yetarli emas. Kichik evalAI javobi qanchalik to‘g‘ri, foydali yoki barqaror ekanini oldindan belgilangan mezonlar bilan baholash jarayoni./questions.json fayldan boshlash mumkin:

[
  {
    "question": "Refund necha kun ichida so‘raladi?",
    "expectedSource": "refund.md"
  },
  {
    "question": "SSO qaysi tarifda bor?",
    "expectedSource": "onboarding.md"
  },
  {
    "question": "Pro tarifda nima bor?",
    "expectedSource": "pricing.md"
  }
]

Minimal evalAI javobi qanchalik to‘g‘ri, foydali yoki barqaror ekanini oldindan belgilangan mezonlar bilan baholash jarayoni. script topilgan birinchi source kutilgan source bilan mos keladimi, shuni tekshirishi mumkin. Keyin javob sifati, citationAI javobida qaysi hujjat, sahifa yoki bo‘limga tayanganini ko‘rsatadigan manba havolasi yoki izoh. aniqligi, “bilmayman” holati va noto‘g‘ri confident javoblar alohida baholanadi. RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. uchun eval retrieval va generation’ni alohida o‘lchashi kerak.

Nega reranking qo‘shmadik?

Minimal tutorialda semantic searchSo‘z aynan bir xil bo‘lishini emas, ma’no yaqinligini topishga qaratilgan qidiruv usuli. yetarli. Lekin real knowledge baseKompaniya yoki mahsulot haqidagi tartiblangan ichki bilimlar to‘plami: FAQ, qo‘llanma, siyosat, wiki va dokumentatsiya. kattalashganda top-kQidiruvda eng yuqori ball olgan k ta natijani tanlash usuli. RAG’da modelga nechta chunk berilishini boshqaradi. ichida o‘rtacha chunklar ko‘payadi. Shunda reranking kerak bo‘lishi mumkin: avval embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. bilan 20-50 ta nomzod topiladi, keyin alohida ranking modeli yoki LLMLarge Language Model qisqartmasi. Katta matn korpuslarida o‘qitilgan va til bilan ishlaydigan model turi. eng foydali 3-5 tasini tanlaydi.

Reranking qo‘shishdan oldin uch narsani tekshiring:

  • chunkingKatta hujjatni qidiruv va model contextiga qulay kichik bo‘laklarga ajratish jarayoni. yomon emasmi;
  • metadata yetarlimi;
  • query juda noaniq emasmi.

Ko‘p muammo reranking yo‘qligidan emas, yomon hujjat va noto‘g‘ri chunkingKatta hujjatni qidiruv va model contextiga qulay kichik bo‘laklarga ajratish jarayoni.’dan chiqadi.

Productionga olib chiqishda nimalar o‘zgaradi?

Bu CLICommand line interface. Dastur bilan terminal orqali buyruq yozib ishlash usuli. demo yaxshi boshlanish, lekin production uchun yetarli emas.

Avvalo JSON index o‘rniga haqiqiy vector databaseEmbedding ko‘rinishidagi vektorlarni saqlash va yaqin ma’nodagi yozuvlarni topish uchun mo‘ljallangan baza turi. ishlatiladi. Chunk’lar bilan birga metadata saqlanadi: document ID, section title, version, language, access level, last updated. Aks holda foydalanuvchi ko‘rmasligi kerak bo‘lgan hujjat javobga kirib qolishi mumkin.

Ikkinchi muammo - yangilanish. Hujjat o‘zgarganda eski embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. qolib ketmasligi kerak. Buning uchun file hash, document version va re-index queue kerak bo‘ladi.

Uchinchi muammo - kuzatuvchanlik. Har savolda query, top-kQidiruvda eng yuqori ball olgan k ta natijani tanlash usuli. RAG’da modelga nechta chunk berilishini boshqaradi. chunks, score, model javobi va user feedback saqlansa, qaysi joyda tizim buzilayotganini topish osonlashadi. Bu AI mahsulotni tekshirish jarayonining bir qismi.

Eng ko‘p uchraydigan xatolar

Chunk juda katta

Modelga topilgan chunk mos ko‘rinadi, lekin ichida juda ko‘p ortiqcha matn bo‘ladi. Javob umumiylashadi yoki noto‘g‘ri joyga tayanadi.

Chunk juda kichik

Relevant jumla topiladi, lekin qoida yoki kontekstning ikkinchi yarmi boshqa chunk’da qoladi. Javob yarim chiqadi.

Source metadata yo‘q

Javob yaxshi bo‘lsa ham, foydalanuvchi manbani tekshira olmaydi. RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi.’ning asosiy foydalaridan biri yo‘qoladi.

PromptModelga berilgan ko‘rsatma yoki topshiriq matni. Javob sifati ko‘pincha shu kirishga bog‘liq bo‘ladi. modelga haddan tashqari erkinlik beradi

“Foydali javob ber” deyish yetmaydi. “Faqat contextModelga shu paytda berilgan foydali ma’lumotlar to‘plami: qoida, hujjat, oldingi xabarlar va vazifa tavsifi. asosida javob ber, yo‘q bo‘lsa bilmayman de” kabi guardrail kerak.

EvalAI javobi qanchalik to‘g‘ri, foydali yoki barqaror ekanini oldindan belgilangan mezonlar bilan baholash jarayoni. yo‘q

Bugun yaxshi ishlagan chatbotAsosan savol-javob shaklida ishlaydigan suhbat interfeysi. U doim ham agent darajasida harakat qilmaydi. ertaga hujjat yangilanganda buzilishi mumkin. EvalAI javobi qanchalik to‘g‘ri, foydali yoki barqaror ekanini oldindan belgilangan mezonlar bilan baholash jarayoni. bo‘lmasa, buni foydalanuvchi shikoyat qilgandan keyin bilasiz.

Keyingi qadam

CLICommand line interface. Dastur bilan terminal orqali buyruq yozib ishlash usuli. RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. ishlagandan keyin uch yo‘l bor.

Birinchisi - storage’ni almashtirish. JSON index o‘rniga pgvector yoki boshqa vector databaseEmbedding ko‘rinishidagi vektorlarni saqlash va yaqin ma’nodagi yozuvlarni topish uchun mo‘ljallangan baza turi. qo‘shiladi.

Ikkinchisi - UI qo‘shish. Shu ask logikasini Next.js APIDasturlar bir-biri bilan gaplashishi uchun ishlatiladigan interfeys. AI mahsulotlarda model, servis yoki tool shu yo‘l bilan chaqiriladi. route, Telegram bot yoki Slack bot ichiga ulash mumkin.

Uchinchisi - sifatni yaxshilash. Better chunkingKatta hujjatni qidiruv va model contextiga qulay kichik bo‘laklarga ajratish jarayoni., reranking, citationAI javobida qaysi hujjat, sahifa yoki bo‘limga tayanganini ko‘rsatadigan manba havolasi yoki izoh. mapping, feedback logging va evalAI javobi qanchalik to‘g‘ri, foydali yoki barqaror ekanini oldindan belgilangan mezonlar bilan baholash jarayoni. jarayoni qo‘shiladi.

Muhimi, UI’dan oldin retrieval sifatini ko‘rish. Terminaldagi kichik RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. chatbotAsosan savol-javob shaklida ishlaydigan suhbat interfeysi. U doim ham agent darajasida harakat qilmaydi. shuni majbur qiladi: modeldan oldin hujjat, chunk, qidiruv va contextModelga shu paytda berilgan foydali ma’lumotlar to‘plami: qoida, hujjat, oldingi xabarlar va vazifa tavsifi. ishlayaptimi - avval shu savolga javob topiladi.

Xulosa

CLICommand line interface. Dastur bilan terminal orqali buyruq yozib ishlash usuli.’da RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi. chatbotAsosan savol-javob shaklida ishlaydigan suhbat interfeysi. U doim ham agent darajasida harakat qilmaydi. qurish kichik ko‘rinsa ham, developer uchun eng foydali boshlang‘ich mashq. U web dizayn, auth, hosting va bot integratsiyadan chalg‘itmaydi. Siz to‘g‘ridan-to‘g‘ri RAGRetrieval-Augmented Generation qisqartmasi. Model javob berishdan oldin tashqi manbadan kerakli ma’lumot olib keladi.’ning yuragini ko‘rasiz: hujjat qanday bo‘linadi, embeddingMatnni ma’nosiga yaqin sonli vektorga aylantirish usuli. Ko‘pincha semantik qidiruv va RAG’da ishlatiladi. qanday ishlaydi, qidiruv nima topadi, model qaysi contextga tayanadi.

Bilim bazali chatbotni model emas, retrieval sifati yutadi. Model faqat berilgan contextdan foydali javob yasaydi. Agar contextModelga shu paytda berilgan foydali ma’lumotlar to‘plami: qoida, hujjat, oldingi xabarlar va vazifa tavsifi. noto‘g‘ri bo‘lsa, eng kuchli model ham ishonchli mahsulot bermaydi.

O'xshash maqolalar

AI bilan Excel va Google Sheets ishlarini avtomatlashtirish uchun spreadsheet, formula, cleaning, validation va workflow bosqichlarini ko‘rsatuvchi och rangli phase 2 uslubidagi diagram hero image

AI bilan Excel va Google Sheets ishlarini avtomatlashtirish

Jadvaldagi AI foydali bo‘lishi uchun u faqat formula yozib bermasligi kerak: ma’lumotni tozalash, tekshirish, tahlil qilish va takrorlanadigan ishlarni nazoratli avtomatizatsiyaga aylantirish muhimroq.

Kompaniya hujjatlariga javob beradigan AI chatbot xavflari uchun access control, maxfiy hujjat, prompt injection va audit qatlamlarini ko‘rsatuvchi och rangli phase 2 uslubidagi diagram hero image

AI chatbot kompaniya hujjatlariga javob bersa, qanday xavflar bor?

Kompaniya hujjatlariga ulangan chatbot foydali bo‘lishi mumkin, lekin noto‘g‘ri access control, eskirgan hujjat, prompt injection va manbasiz javob biznes riskiga aylanadi.

Jev System One decision modeli uchun software state, typed savollar, choice, score, noul, confidence gate va kod harakatlariga branching oqimini ko‘rsatuvchi qorong‘i neon diagram hero image

Jev nima: TypeSafe AI’ning System One decision modeli

Jev oddiy chat modeli emas: u matn yozish o‘rniga software ichida ishlatiladigan typed decision qaytaradi. Agent routing, guardrail, scoring va real-time avtomatizatsiyada u LLM o‘rnini emas, qaror qatlamini to‘ldiradi.

Mistral Agentic Search uchun search, open source, navigate chunks, grep va answer synthesis loopini ko‘rsatuvchi och rangli phase 2 uslubidagi diagram hero image

Mistral Agentic Search nima va oddiy RAGdan nimasi bilan farq qiladi

Mistral Agentic Search oddiy retrievaldan keyingi qatlam: agent source topadi, hujjat ichida yuradi, grep qiladi, oldingi chunklarni takrorlamaydi va javob uchun yetarli dalil yig‘ishga urinadi.

Prompt library uchun prompt kartalari, owner, version, test example va jamoa workflowini ko‘rsatuvchi och rangli phase 2 uslubidagi diagram hero image

Prompt library nima va jamoada qanday yuritiladi

Prompt library jamoa ishlatadigan promptlarni tartibsiz chat tarixidan olib, versiya, owner, test misol va foydalanish qoidasiga ega qayta ishlatiladigan aktivga aylantiradi.

AI agent skills uchun agent node, skill kartalari, qoida panellari, tool ikonlari, kontekst qatlami va tasdiq darvozasini ko‘rsatuvchi qorong‘i neon diagram hero image

AI agent skills: takrorlanadigan ishlarni qoida va ko‘nikmaga aylantirish

Skill agentga har safar uzun prompt yozmasdan, takrorlanadigan ishni barqaror qoida, kontekst va tool tanlovi bilan bajarishga yordam beradi. Bu prompt template emas, balki agentning ish uslubini paketlash usuli.