Xây dựng các ứng dụng thế hệ tăng cường truy xuất

Đã hoàn thành

Retrieval Augmented Generation (RAG) là một mẫu dành cho các ứng dụng AI tương tác với dữ liệu. Thay vì chỉ dựa vào kiến thức được nhúng trong các mô hình ngôn ngữ lớn trong quá trình đào tạo, các ứng dụng RAG tự động truy xuất thông tin liên quan từ cơ sở dữ liệu của bạn và cung cấp nó dưới dạng ngữ cảnh cho mô hình AI. Cách tiếp cận này đảm bảo các câu trả lời dựa trên dữ liệu chính xác, hiện tại của bạn trong khi sử dụng khả năng suy luận của các mô hình ngôn ngữ.

SQL Server 2025 cung cấp một nền tảng hoàn chỉnh để xây dựng các ứng dụng RAG, kết hợp khả năng tìm kiếm vectơ, tích hợp AI gốc và quản lý dữ liệu cấp doanh nghiệp. Cách tiếp cận tích hợp này có nghĩa là bạn có thể xây dựng các ứng dụng AI mà không cần quản lý nhiều cơ sở dữ liệu, đồng bộ hóa dữ liệu trên các hệ thống hoặc ảnh hưởng đến bảo mật và tuân thủ.

RAG giải quyết các hạn chế của các mô hình AI tĩnh — ngày giới hạn kiến thức, thông tin không chính xác và thiếu thông tin cụ thể theo miền — bằng cách tăng cường phản hồi của mô hình với truy xuất dữ liệu theo thời gian thực. Đối với các nhà phát triển, điều này có nghĩa là xây dựng các ứng dụng cung cấp câu trả lời chính xác, theo ngữ cảnh và up-tongày trong khi vẫn duy trì toàn quyền kiểm soát các nguồn dữ liệu được sử dụng.

Hiểu mô hình RAG

Mẫu RAG tuân theo quy trình làm việc có hệ thống kết hợp các hoạt động cơ sở dữ liệu truyền thống với khả năng AI.

Khám phá quy trình làm việc của RAG

Mẫu RAG điều phối tương tác giữa cơ sở dữ liệu, mô hình AI và người dùng ứng dụng của bạn. Hiểu quy trình làm việc này rất quan trọng để xây dựng các ứng dụng hỗ trợ AI cung cấp phản hồi chính xác, phù hợp với ngữ cảnh. Sơ đồ sau đây từ tài liệu Azure OpenAI của Microsoft minh họa cách các thành phần khác nhau của hệ thống RAG hoạt động cùng nhau:

Sơ đồ minh họa quy trình tạo tăng cường truy xuất hiển thị các giai đoạn nhập, phát triển và suy luận dữ liệu.

Sơ đồ cho thấy quy trình làm việc RAG ba giai đoạn: Nhập (tải lên và nhúng dữ liệu vào các chỉ mục có thể tìm kiếm), Phát triển (tạo ứng dụng với lời nhắc và ý định tìm kiếm) và Suy luận (xử lý lời nhắc của người dùng thông qua việc tạo ý định, truy xuất, lọc/xếp hạng lại và tạo phản hồi).

Mẫu này áp dụng cho việc triển khai SQL Server 2025 RAG, trong đó dữ liệu được lưu trữ và tìm kiếm trong SQL Server trước khi được gửi đến các mô hình ngôn ngữ để tạo phản hồi.

Việc triển khai RAG điển hình bao gồm một số bước chính:

  • Nhập dữ liệu: Lưu trữ tài liệu hoặc dữ liệu nguồn của bạn trong SQL Server
  • Tạo nhúng: Chuyển đổi văn bản thành nhúng vectơ bằng mô hình AI
  • Lưu trữ vector: Lưu trữ nhúng cùng với dữ liệu quan hệ của bạn
  • Xử lý truy vấn: Khi người dùng đặt câu hỏi, hãy tạo nhúng cho truy vấn của họ
  • Tìm kiếm điểm tương đồng: Tìm tài liệu phù hợp nhất bằng cách sử dụng tìm kiếm vectơ
  • Lắp ráp ngữ cảnh: Truy xuất toàn bộ nội dung của các tài liệu liên quan
  • Thi công nhanh chóng: Tạo lời nhắc bao gồm câu hỏi của người dùng và ngữ cảnh có liên quan
  • Suy luận AI: Gửi lời nhắc đến một mô hình ngôn ngữ (như GPT-4) để tạo phản hồi
  • Phân phối phản hồi: Trả về câu trả lời do AI tạo cho người dùng

Triển khai RAG cơ bản với T-SQL

SQL Server 2025 cho phép bạn xây dựng các ứng dụng RAG hoàn toàn trong cơ sở dữ liệu bằng T-SQL.

Chuẩn bị cơ sở tri thức của bạn

Bắt đầu bằng cách tạo một bảng để lưu trữ tài liệu và nhúng của chúng:

CREATE TABLE knowledge_base (
    doc_id INT IDENTITY(1,1) PRIMARY KEY,
    title NVARCHAR(200),
    content NVARCHAR(MAX),
    category NVARCHAR(100),
    created_date DATETIME2 DEFAULT GETDATE(),
    embedding VECTOR(1536)
);

-- Create a vector index for efficient similarity search
CREATE VECTOR INDEX idx_knowledge_embedding ON knowledge_base(embedding);

Bảng này lưu trữ cả nội dung gốc và nhúng vectơ của nó. Chỉ mục vectơ cho phép tìm kiếm tương tự nhanh chóng khi người dùng truy vấn cơ sở tri thức.

Tạo và lưu trữ nội dung nhúng

Chèn tài liệu và tạo nhúng trong một thao tác duy nhất:

-- Insert a document with embedding generation
DECLARE @content NVARCHAR(MAX) = N'SQL Server 2025 introduces native vector support for AI applications. Developers can store high-dimensional embeddings alongside relational data and perform semantic similarity searches using the VECTOR_DISTANCE function.';

INSERT INTO knowledge_base (title, content, category, embedding)
VALUES (
    N'SQL Server 2025 Vector Support',
    @content,
    N'Product Features',
    AI_GENERATE_EMBEDDINGS(@content USE MODEL Ada2Embeddings)
);

Mã này chèn tài liệu và tự động tạo nhúng bằng cách sử dụng mô hình bên ngoài được xác định trước đó. Việc nhúng được lưu trữ trong cùng một hàng với văn bản nguồn, đảm bảo tính nhất quán của dữ liệu.

Truy xuất các tài liệu liên quan dựa trên truy vấn của người dùng:

-- User's question
DECLARE @user_query NVARCHAR(MAX) = N'How do I use vectors in SQL Server?';

-- Generate embedding for the query
DECLARE @query_embedding VECTOR(1536) = AI_GENERATE_EMBEDDINGS(@user_query USE MODEL Ada2Embeddings);

-- Find top 5 most relevant documents
SELECT TOP 5
    doc_id,
    title,
    content,
    category,
    VECTOR_DISTANCE('cosine', @query_embedding, embedding) AS relevance_score
FROM knowledge_base
ORDER BY relevance_score;

Truy vấn này tìm thấy các tài liệu tương tự về mặt ngữ nghĩa với câu hỏi của người dùng bằng cách so sánh các nhúng vectơ. Hàm tính VECTOR_DISTANCE toán sự tương đồng, với điểm số thấp hơn cho thấy mức độ liên quan cao hơn.

Xây dựng lời nhắc với ngữ cảnh

Tạo lời nhắc bao gồm ngữ cảnh đã truy xuất:

DECLARE @user_query NVARCHAR(MAX) = N'How do I use vectors in SQL Server?';
DECLARE @query_embedding VECTOR(1536) = AI_GENERATE_EMBEDDINGS(@user_query USE MODEL Ada2Embeddings);

-- Retrieve relevant context
DECLARE @context NVARCHAR(MAX);

SELECT @context = STRING_AGG(
    CONCAT('Document: ', title, CHAR(10), 'Content: ', content, CHAR(10), CHAR(10)),
    ''
)
FROM (
    SELECT TOP 3
        title,
        content,
        VECTOR_DISTANCE('cosine', @query_embedding, embedding) AS score
    FROM knowledge_base
    ORDER BY score
) AS relevant_docs;

-- Construct the prompt
DECLARE @prompt NVARCHAR(MAX) = CONCAT(
    'You are a helpful assistant. Use the following context to answer the user''s question.',
    CHAR(10), CHAR(10),
    'Context:', CHAR(10),
    @context,
    CHAR(10),
    'Question: ', @user_query,
    CHAR(10),
    'Answer:'
);

SELECT @prompt AS constructed_prompt;

Mã này truy xuất ba tài liệu có liên quan nhất hàng đầu, nối chúng thành một chuỗi ngữ cảnh và xây dựng lời nhắc hoàn chỉnh hướng dẫn mô hình AI sử dụng ngữ cảnh được cung cấp khi trả lời câu hỏi.

Tạo phản hồi AI

Gửi lời nhắc đã xây dựng đến mô hình ngôn ngữ:

-- Build the chat completion request
DECLARE @chat_request NVARCHAR(MAX) = JSON_OBJECT(
    'messages': JSON_ARRAY(
        JSON_OBJECT('role': 'system', 'content': 'You are a helpful assistant that answers questions based on provided context.'),
        JSON_OBJECT('role': 'user', 'content': @prompt)
    ),
    'max_tokens': 500,
    'temperature': 0.7
);

DECLARE @response NVARCHAR(MAX);

-- Call GPT-4
EXEC sp_invoke_external_rest_endpoint
    @url = N'https://myopenai.openai.azure.com/openai/deployments/gpt-4/chat/completions?api-version=2024-02-15-preview',
    @method = 'POST',
    @credential = [MyAzureOpenAICredential],
    @payload = @chat_request,
    @response = @response OUTPUT;

-- Extract and display the answer
SELECT JSON_VALUE(@response, '$.result.choices[0].message.content') AS ai_answer;

Thao tác này hoàn thành mẫu RAG bằng cách gửi lời nhắc có ngữ cảnh đến GPT-4 và trả về câu trả lời đã tạo. Mô hình AI sử dụng ngữ cảnh được truy xuất để cung cấp phản hồi chính xác, dựa trên dữ liệu.

Tích hợp với LangChain

LangChain là một framework phổ biến để xây dựng các ứng dụng với các mô hình ngôn ngữ lớn. SQL Server 2025 cung cấp hỗ trợ tích hợp LangChain, cho phép bạn sử dụng SQL Server làm kho lưu trữ vectơ trong các ứng dụng LangChain của mình.

Lưu ý

Tích hợp LangChain với các tính năng vectơ SQL Server đang ở dạng xem trước. Tên gói, API và chi tiết triển khai có thể thay đổi. Kiểm tra tài liệu LangChain để biết thông tin mới nhất về hỗ trợ lưu trữ vectơ SQL Server.

Thiết lập LangChain với SQL Server

Cài đặt các gói cần thiết:

# Install LangChain SQL Server connector (preview)
# Package names may vary - check documentation for latest
pip install langchain-sqlserver
pip install langchain-openai

Đặt cấu hình kết nối với SQL Server:

from langchain_sqlserver import SQLServerVectorStore
from langchain_openai import OpenAIEmbeddings, AzureChatOpenAI
from langchain.chains import RetrievalQA

# Configure Azure OpenAI
embeddings = OpenAIEmbeddings(
    deployment="text-embedding-ada-002",
    model="text-embedding-ada-002",
    azure_endpoint="https://myopenai.openai.azure.com",
    api_key="your-api-key"
)

# Connect to SQL Server vector store
vector_store = SQLServerVectorStore(
    connection_string="Driver={ODBC Driver 18 for SQL Server};Server=myserver;Database=mydb;Trusted_Connection=yes;",
    embedding_function=embeddings,
    table_name="knowledge_base",
    vector_column_name="embedding"
)

Mã Python này thiết lập kết nối giữa LangChain và cơ sở dữ liệu SQL Server của bạn, cho phép bạn sử dụng SQL Server làm kho lưu trữ vectơ cho ứng dụng RAG của mình.

Xây dựng chuỗi RAG với LangChain

Tạo một hệ thống trả lời câu hỏi hoàn chỉnh:

# Initialize the language model
llm = AzureChatOpenAI(
    deployment_name="gpt-4",
    azure_endpoint="https://myopenai.openai.azure.com",
    api_key="your-api-key"
)

# Create a retrieval QA chain
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vector_store.as_retriever(search_kwargs={"k": 3})
)

# Ask a question
question = "How do I use vectors in SQL Server?"
answer = qa_chain.run(question)
print(answer)

Điều này tạo ra một quy trình RAG trong đó LangChain tự động truy xuất các tài liệu liên quan từ SQL Server, xây dựng lời nhắc, gọi mô hình ngôn ngữ và trả về câu trả lời—tất cả chỉ với một vài dòng mã.

Tích hợp với Semantic Kernel

Semantic Kernel là SDK mã nguồn mở của Microsoft để tích hợp các khả năng AI vào các ứng dụng. SQL Server 2025 cung cấp hỗ trợ tích hợp Semantic Kernel, cho phép bạn sử dụng SQL Server làm kho lưu trữ vectơ trong các ứng dụng AI của mình.

Lưu ý

Tích hợp Semantic Kernel với các tính năng vector SQL Server đang ở dạng xem trước. Tên gói, API và chi tiết triển khai có thể thay đổi. Kiểm tra tài liệu Semantic Kernel để biết thông tin mới nhất về hỗ trợ lưu trữ vectơ SQL Server.

Định cấu hình Semantic Kernel với SQL Server

Thiết lập kết nối trong C#:

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Connectors.SqlServer;
using Microsoft.SemanticKernel.Connectors.OpenAI;

// Build the kernel
var builder = Kernel.CreateBuilder();

// Add Azure OpenAI chat completion
builder.AddAzureOpenAIChatCompletion(
    deploymentName: "gpt-4",
    endpoint: "https://myopenai.openai.azure.com",
    apiKey: "your-api-key"
);

// Add SQL Server vector store (preview - API may change)
builder.AddSqlServerVectorStore(
    connectionString: "Server=myserver;Database=mydb;Trusted_Connection=True;",
    tableName: "knowledge_base",
    vectorColumnName: "embedding"
);

var kernel = builder.Build();

Điều này đặt cấu hình Semantic Kernel để sử dụng SQL Server làm kho lưu trữ vectơ và Azure OpenAI để suy luận mô hình ngôn ngữ.

Triển khai RAG với Semantic Kernel

Tạo plugin hỗ trợ RAG:

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Memory;

public class KnowledgeBasePlugin
{
    private readonly ISemanticTextMemory _memory;
    
    public KnowledgeBasePlugin(ISemanticTextMemory memory)
    {
        _memory = memory;
    }
    
    [KernelFunction]
    [Description("Answers questions based on the knowledge base")]
    public async Task<string> AskQuestion(
        [Description("The user's question")] string question)
    {
        // Search for relevant documents
        var results = _memory.SearchAsync("knowledge_base", question, limit: 3);
        
        // Build context from retrieved documents
        var context = new StringBuilder();
        await foreach (var result in results)
        {
            context.AppendLine($"Document: {result.Metadata.Text}");
            context.AppendLine();
        }
        
        // The kernel will automatically use this context with the LLM
        return context.ToString();
    }
}

Plugin này tìm kiếm kho lưu trữ vectơ SQL Server và cung cấp ngữ cảnh có liên quan đến mô hình ngôn ngữ để tạo phản hồi.

Azure AI Search cung cấp các chức năng tìm kiếm nâng cao bổ sung cho các tính năng tìm kiếm vectơ của SQL Server.

Tìm kiếm kết hợp kết hợp các điểm mạnh của cả tìm kiếm ngữ nghĩa dựa trên vectơ và tìm kiếm toàn văn dựa trên từ khóa truyền thống. Tìm kiếm vectơ vượt trội trong việc tìm kiếm nội dung tương tự về mặt khái niệm ngay cả khi các từ chính xác không khớp, trong khi tìm kiếm toàn văn nắm bắt các thuật ngữ chính xác và các cụm từ dành riêng cho miền. Sự kết hợp này rất quan trọng đối với các ứng dụng RAG vì nó đảm bảo bạn truy xuất các tài liệu vừa có liên quan về ngữ nghĩa vừa chứa các thuật ngữ cụ thể mà người dùng hỏi, dẫn đến phản hồi AI chính xác và toàn diện hơn.

Thiết lập trình lập chỉ mục để đồng bộ hóa dữ liệu từ SQL Server sang Azure AI Search:

-- Enable Change Tracking on your table
ALTER DATABASE mydb SET CHANGE_TRACKING = ON;
ALTER TABLE knowledge_base ENABLE CHANGE_TRACKING;

Đặt cấu hình trình lập chỉ mục Azure AI Search thông qua cổng thông tin Azure hoặc API REST để lấy dữ liệu từ SQL Server, cho phép bạn sử dụng cả khả năng giao dịch của SQL Server và phân tích văn bản nâng cao của Azure AI Search.

Triển khai chiến lược tìm kiếm kết hợp:

DECLARE @user_query NVARCHAR(MAX) = N'machine learning with SQL Server';
DECLARE @query_embedding VECTOR(1536) = AI_GENERATE_EMBEDDINGS(@user_query USE MODEL Ada2Embeddings);

-- Hybrid search combining vector similarity and full-text search
SELECT 
    kb.doc_id,
    kb.title,
    kb.content,
    VECTOR_DISTANCE('cosine', @query_embedding, kb.embedding) AS vector_score,
    fts.RANK AS text_score,
    -- Combined score (weighted average)
    (VECTOR_DISTANCE('cosine', @query_embedding, kb.embedding) * 0.5) + 
    ((1.0 - fts.RANK/1000.0) * 0.5) AS combined_score
FROM knowledge_base kb
INNER JOIN CONTAINSTABLE(knowledge_base, content, @user_query) fts
    ON kb.doc_id = fts.[KEY]
ORDER BY combined_score;

Truy vấn này kết hợp sự tương đồng về ngữ nghĩa (tìm kiếm vectơ) với đối sánh từ khóa (tìm kiếm toàn văn bản) để cung cấp kết quả có liên quan nắm bắt cả đối sánh khái niệm và đối sánh chính xác.

Xây dựng các ứng dụng RAG sẵn sàng sản xuất

Chuyển từ nguyên mẫu sang sản xuất đòi hỏi phải cân nhắc thêm về hiệu suất, độ tin cậy và khả năng bảo trì.

Tối ưu hóa tính năng tạo nhúng

Tạo nhúng cho nhiều tài liệu một cách hiệu quả:

-- Update embeddings for documents that don't have them yet
-- Note: AI_GENERATE_EMBEDDINGS executes once per row, not as a batch operation
UPDATE knowledge_base
SET embedding = AI_GENERATE_EMBEDDINGS(content USE MODEL Ada2Embeddings)
WHERE embedding IS NULL;

-- For large-scale operations, process in smaller batches to avoid long transactions
DECLARE @batch_size INT = 100;

WHILE EXISTS (SELECT 1 FROM knowledge_base WHERE embedding IS NULL)
BEGIN
    -- Update a limited number of rows at a time
    UPDATE TOP (@batch_size) knowledge_base
    SET embedding = AI_GENERATE_EMBEDDINGS(content USE MODEL Ada2Embeddings)
    WHERE embedding IS NULL;
    
    -- Optional: Add a small delay to avoid overloading the API endpoint
    WAITFOR DELAY '00:00:01';
END;

Cách tiếp cận này xử lý việc nhúng trong các lô có thể quản lý được, giảm thời gian khóa giao dịch và cho phép bạn theo dõi tiến độ cho các bộ sưu tập tài liệu lớn.

Triển khai chiến lược bộ nhớ đệm

Cache các câu hỏi thường gặp và câu trả lời của họ:

CREATE TABLE query_cache (
    cache_id INT IDENTITY(1,1) PRIMARY KEY,
    query_text NVARCHAR(500),
    query_embedding VECTOR(1536),
    response_text NVARCHAR(MAX),
    created_date DATETIME2 DEFAULT GETDATE(),
    hit_count INT DEFAULT 0,
    INDEX idx_query_embedding (query_embedding)
);

-- Check cache before executing full RAG pipeline
DECLARE @user_query NVARCHAR(MAX) = N'What are vectors?';
DECLARE @query_embedding VECTOR(1536) = AI_GENERATE_EMBEDDINGS(@user_query USE MODEL Ada2Embeddings);
DECLARE @cached_response NVARCHAR(MAX);

-- Look for similar cached queries
SELECT TOP 1 @cached_response = response_text
FROM query_cache
WHERE VECTOR_DISTANCE('cosine', @query_embedding, query_embedding) < 0.05
ORDER BY VECTOR_DISTANCE('cosine', @query_embedding, query_embedding);

IF @cached_response IS NOT NULL
BEGIN
    -- Return cached response
    SELECT @cached_response AS answer;
    
    -- Increment hit count
    UPDATE query_cache
    SET hit_count = hit_count + 1
    WHERE response_text = @cached_response;
END
ELSE
BEGIN
    -- Execute full RAG pipeline
    -- ... (RAG code here)
    
    -- Cache the new response
    INSERT INTO query_cache (query_text, query_embedding, response_text)
    VALUES (@user_query, @query_embedding, @generated_response);
END;

Bộ nhớ đệm truy vấn giúp giảm chi phí và cải thiện thời gian phản hồi bằng cách sử dụng lại câu trả lời cho các câu hỏi tương tự.

Xử lý phân đoạn cho các tài liệu lớn

Chia các tài liệu lớn thành các phần có thể quản lý được:

-- Use AI_GENERATE_CHUNKS for text splitting
DECLARE @large_document NVARCHAR(MAX) = N'... very long document content ...';

-- Generate chunks with AI_GENERATE_CHUNKS
-- The function splits text into fixed-size character chunks
INSERT INTO knowledge_base (title, content, embedding)
SELECT 
    CONCAT('Document Chunk ', c.chunk_order),
    c.chunk,
    AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL Ada2Embeddings)
FROM AI_GENERATE_CHUNKS(
    source = @large_document,
    chunk_type = FIXED,
    chunk_size = 512  -- Size in characters (not tokens)
) AS c;

Phân đoạn đảm bảo rằng ngữ cảnh được truy xuất phù hợp với giới hạn mã thông báo và cải thiện mức độ liên quan của các đoạn được truy xuất.

Áp dụng các phương pháp hay nhất của RAG

Thực hiện theo các hướng dẫn sau để triển khai RAG hiệu quả:

Danh mục Tập Mô tả
Thiết kế lời nhắc hiệu quả Cụ thể Hướng dẫn rõ ràng mô hình chỉ sử dụng ngữ cảnh được cung cấp
Thêm ràng buộc Chỉ định rằng mô hình sẽ thừa nhận khi thông tin không nằm trong ngữ cảnh
Bao gồm các ví dụ Cung cấp một vài ví dụ về định dạng phản hồi mong muốn
Đặt giai điệu Xác định tính cách và phong cách giao tiếp của trợ lý
Điều chỉnh các thông số truy xuất Điều chỉnh giá trị k Thử nghiệm truy xuất số lượng tài liệu khác nhau (thường là 3-5)
Đặt ngưỡng tương tự Lọc ra các tài liệu dưới ngưỡng điểm liên quan
Cân bằng độ chính xác và khả năng thu hồi Tìm sự đánh đổi phù hợp cho trường hợp sử dụng của bạn
Kiểm tra với các truy vấn đa dạng Đảm bảo truy xuất hoạt động trên các loại câu hỏi khác nhau
Đảm bảo chất lượng dữ liệu Tài liệu nguồn sạch Loại bỏ nhiễu, vấn đề định dạng và nội dung không liên quan
Cập nhật thường xuyên Làm mới nhúng khi tài liệu nguồn thay đổi
Xác thực nhúng Kiểm tra xem nội dung nhúng có thể hiện chính xác nội dung không
Giám sát độ trôi Theo dõi xem chất lượng truy xuất có giảm theo thời gian hay không
Ứng dụng RAG bảo mật Kiểm soát quyền truy cập dữ liệu Sử dụng bảo mật cấp hàng để hạn chế tài liệu mà người dùng có thể truy xuất
Kiểm tra hoạt động AI Ghi nhật ký tất cả các truy vấn và phản hồi để tuân thủ
Vệ sinh đầu vào Xác thực và dọn dẹp các truy vấn của người dùng để ngăn chặn các cuộc tấn công tiêm
Bảo vệ khóa API Sử dụng danh tính được quản lý và lưu trữ thông tin xác thực bảo mật

Bằng cách làm theo các phương pháp này và áp dụng các khả năng AI tích hợp của SQL Server 2025, bạn có thể xây dựng các ứng dụng RAG sẵn sàng sản xuất, mang lại trải nghiệm chính xác, theo ngữ cảnh và an toàn do AI cung cấp.