# LocalAI

[LocalAI](https://github.com/go-skynet/LocalAI) là một API thay thế có khả năng tương thích với các đặc tả API của OpenAI để suy luận cục bộ. Nó cho phép bạn chạy các mô hình ngôn ngữ lớn (và không chỉ) cục bộ hoặc tại chỗ với phần cứng cấp người tiêu dùng, hỗ trợ nhiều họ mô hình tương thích với định dạng ggml. Không yêu cầu GPU.

ChatX cho phép tích hợp với LocalAI để triển khai suy luận mô hình ngôn ngữ lớn và các khả năng nhúng cục bộ.

## Triển khai LocalAI

### Bắt đầu LocalAI

Bạn có thể tham khảo hướng dẫn [Bắt đầu](https://localai.io/basics/getting_started/) chính thức để triển khai, hoặc nhanh chóng tích hợp theo các bước dưới đây:

(Các bước này được lấy từ [ví dụ truy vấn dữ liệu LocalAI](https://github.com/go-skynet/LocalAI/blob/master/examples/langchain-chroma/README.md))

1. Đầu tiên, clone kho mã LocalAI và điều hướng đến thư mục được chỉ định.

   ```
   $ git clone https://github.com/go-skynet/LocalAI
   $ cd LocalAI/examples/langchain-chroma
   ```
2. Tải xuống các mô hình ví dụ về LLM và Embedding.

   ```
   $ wget https://huggingface.co/skeskinen/ggml/resolve/main/all-MiniLM-L6-v2/ggml-model-q4_0.bin -O models/bert
   $ wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j
   ```

   Ở đây, chúng tôi chọn hai mô hình nhỏ hơn tương thích với tất cả các nền tảng. Dịch vụ `ggml-gpt4all-j` như mô hình LLM mặc định, và dịch vụ `all-MiniLM-L6-v2` như mô hình nhúng mặc định, để triển khai cục bộ nhanh chóng.
3. Cấu hình file .env.

   ```
   $ mv .env.example .env
   ```

   LƯU Ý: Đảm bảo rằng giá trị biến THREADS trong `.env` không vượt quá số lõi CPU trên máy của bạn.
4. Khởi động LocalAI.

   ```
   # start with docker-compose
   $ docker-compose up -d --build

   # tail the logs & wait until the build completes
   $ docker logs -f langchain-chroma-api-1
   7:16AM INF Starting LocalAI using 4 threads, with models path: /models
   7:16AM INF LocalAI version: v1.24.1 (9cc8d9086580bd2a96f5c96a6b873242879c70bc)
   ```

   API endpoint yêu cầu của LocalAI sẽ có sẵn tại <http://127.0.0.1:8080>.

   Và nó cung cấp hai mô hình, cụ thể là:

   * Mô hình LLM: `ggml-gpt4all-j`

     Tên truy cập bên ngoài: `gpt-3.5-turbo` (Tên này có thể tùy chỉnh và có thể cấu hình trong `models/gpt-3.5-turbo.yaml`).

   * Mô hình nhúng: `all-MiniLM-L6-v2`

     Tên truy cập bên ngoài: `text-embedding-ada-002` (Tên này có thể tùy chỉnh và có thể cấu hình trong `models/embeddings.yaml`).

   > Nếu bạn sử dụng phương pháp triển khai Docker của ChatX, bạn cần chú ý đến cấu hình mạng để đảm bảo rằng container ChatX có thể truy cập vào endpoint của LocalAI. Container ChatX không thể truy cập localhost bên trong, bạn cần sử dụng địa chỉ IP của máy chủ.
5. Tích hợp các mô hình vào ChatX.

   Đi tới `Cài đặt > Nhà cung cấp Mô hình > LocalAI` và điền vào:

   Mô hình 1: `ggml-gpt4all-j`

   * Loại Mô hình: Text Generation
   * Tên Mô hình: `gpt-3.5-turbo`
   * URL Máy chủ: <http://127.0.0.1:8080>

     Nếu ChatX được triển khai qua docker, điền vào tên miền máy chủ: `http://<your-LocalAI-endpoint-domain>:8080`, có thể là địa chỉ IP LAN, như: `http://192.168.1.100:8080`

   Nhấp vào "Lưu" để sử dụng mô hình trong ứng dụng.

   Mô hình 2: `all-MiniLM-L6-v2`

   * Loại Mô hình: Embeddings
   * Tên Mô hình: `text-embedding-ada-002`
   * URL Máy chủ: <http://127.0.0.1:8080>

     > Nếu ChatX được triển khai qua docker, điền vào tên miền máy chủ: `http://<your-LocalAI-endpoint-domain>:8080`, có thể là địa chỉ IP LAN, như: `http://192.168.1.100:8080`

   Nhấp vào "Lưu" để sử dụng mô hình trong ứng dụng.

Để biết thêm thông tin về LocalAI, vui lòng tham khảo: <https://github.com/go-skynet/LocalAI>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.chatx.vn/iv-huong-dan-tich-hop-nang-cao/ket-noi-voi-cac-mo-hinh-khac-nhau/localai.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
