Document ChatX (Dev)
Document ChatX
Document ChatX
  • Bắt Đầu
    • Chào mừng bạn đến với ChatX!
      • Thông số kỹ thuật
      • Nhà cung cấp Mô hình
    • Sử dụng ChatX Cloud
    • Cài đặt (Tự lưu trữ)
      • Triển khai thông qua Docker Compose
      • Bắt đầu từ mã nguồn cục bộ
      • Bắt đầu riêng container Docker giao diện người dùng
      • Môi Trường
      • Câu hỏi thường gặp
    • LLMOps là gì?
  • Hướng Dẫn Sử Dụng
    • Tạo ứng dụng ChatX
      • Bắt đầu nhanh
      • Tổng quan
      • Thiết lập gợi ý
        • Agent Assistant
        • Chatbot
        • Máy tạo văn bản
      • Câu hỏi thường gặp
      • Trường hợp sử dụng
        • Trợ lý Notion AI dựa trên ghi chú của riêng bạn
        • ChatBot AI với dữ liệu doanh nghiệp
        • Bot Yêu Cầu Giữa Hành Trình
    • Phát hành ứng dụng ChatX
      • Bắt đầu nhanh
      • Phát triển với API
        • Câu hỏi thường gặp
    • Sử dụng ứng dụng ChatX
      • Máy tạo văn bản
      • Chatbot
      • Cài đặt ứng dụng trò chuyện khác
    • Kết Nối
  • Tính Năng
    • Chế độ chuyên gia nhắc nhở
      • Mẫu nhắc nhở
    • Quy trình làm việc
      • Giới thiệu
      • Khái niệm chính
      • Nodes
        • Start
        • End
        • Answer
        • LLM
        • Truy Vấn Cơ Sở Kiến Thức
        • Question Classifier(Phân Loại Câu Hỏi)
        • IF/ELSE
        • Code (Mã)
        • Template
        • Variable Assigner
        • HTTP Reques
        • Tools
      • Preview&Run
        • Preview&Run
        • Step Test (Bước Kiểm Tra)
        • Log (Nhật ký)
        • Checklist (Danh mục)
        • History (Lịch sử)
      • Publish (Xuất bản)
      • Export/Import
    • RAG (Tạo tăng cường truy xuất)
      • Hybrid Search (Tìm kiếm kết hợp)
      • Rerank (Sắp xếp lại)
      • Retrieval (Truy xuất)
    • Knowledge Import ( Nhập kiến thức)
      • Đồng bộ từ Notion
      • Duy trì kiến ​​thức qua Api
    • Công cụ dữ liệu ngoài
    • Annotation Reply (Phản hồi chú thích)
    • Nhật ký & Thông báo
    • Plugins
      • Dựa Trên Mẫu WebApp
    • Tích hợp nhiều hơn
    • Extension (Tiện ích)
      • Mở rộng Dựa trên API
        • External_data_tool
        • Tiện ích mở rộng kiểm duyệt
      • Tiện ích mở rộng dựa trên mã
    • Kiểm duyệt
  • WORKSPACE
    • Khám phá
    • Thanh toán
  • hướng dẫn
    • Tích hợp công cụ nhanh
    • Tích hợp công cụ nâng cao
    • Hiển thị tiện ích mở rộng API trên Internet công cộng bằng cách sử dụng Cloudflare Workers
    • Kết nối với các mô hình khác nhau
      • Hugging Face
      • Replicate
      • Xinference
      • OpenLLM
      • LocalAI
      • Ollama
    • Công cụ Di chuyển Vector Database
    • Kết nối với các công cụ khác nhau
      • Stable Diffusion
      • SearXNG
  • CỘNG ĐỒNG
    • Hướng dẫn đóng góp
    • Hỗ trợ
  • Thỏa Thuận Người Dùng
    • Giấy phép mã nguồn mở
    • Bảo Mật Dữ Liệu
Powered by GitBook
On this page
  • 1. Làm cách nào để đặt lại mật khẩu nếu quá trình khởi tạo triển khai cục bộ không thành công do mật khẩu không chính xác?
  • 2. Làm cách nào để khắc phục lỗi Không tìm thấy tệp trong nhật ký khi triển khai cục bộ?
  • 3. Không thể đăng nhập khi cài đặt sau và sau đó đăng nhập thành công nhưng các giao diện tiếp theo lại nhắc 401?
  • 4. Sau khi bắt đầu, trang tiếp tục tải và kiểm tra yêu cầu nhắc lỗi CORS?
  • 5. Làm cách nào để nâng cấp phiên bản sau khi triển khai?
  • 6. Cách định cấu hình các biến môi trường khi sử dụng Notion import
  • 7. Làm cách nào để thay đổi tên không gian trong phiên bản triển khai cục bộ?
  • 8. Tôi có thể sửa đổi tên miền để truy cập ứng dụng ở đâu?
  • 9. Nếu cần di chuyển cơ sở dữ liệu thì cần sao lưu những gì?
  • 10. Tại sao Docker triển khai ChatX và khởi động OpenLLM cục bộ bằng 127.0.0.1 nhưng không thể truy cập cổng cục bộ?
  • 11. Làm cách nào để giải quyết các giới hạn về kích thước và số lượng khi tải lên tài liệu kiến ​​thức trong phiên bản triển khai cục bộ?
  • 12. Phiên bản triển khai cục bộ mời thành viên qua email như thế nào?
  • 13. Làm cách nào để giải quyết listen tcp4 0.0.0.0:80: bind: địa chỉ đã được sử dụng?
  • 14. Phải làm gì nếu lỗi này xảy ra khi chuyển văn bản sang giọng nói?
  • 15. Di chuyển cơ sở dữ liệu vectơ sang Qdrant hoặc Milvus
  • 16. Tại sao cần có SSRF_PROXY?
  1. Bắt Đầu
  2. Cài đặt (Tự lưu trữ)

Câu hỏi thường gặp

1. Làm cách nào để đặt lại mật khẩu nếu quá trình khởi tạo triển khai cục bộ không thành công do mật khẩu không chính xác?

Nếu được triển khai bằng docker compose, bạn có thể thực hiện lệnh sau để đặt lại mật khẩu:docker exec -it docker-api-1 flask reset-password Nhập email tài khoản và hai lần mật khẩu mới và nó sẽ được đặt lại.

2. Làm cách nào để khắc phục lỗi Không tìm thấy tệp trong nhật ký khi triển khai cục bộ?

ERROR:root:Unknown Error in completion
Traceback (most recent call last):
  File "/www/wwwroot/dify/dify/api/libs/rsa.py", line 45, in decrypt
    private_key = storage.load(filepath)
  File "/www/wwwroot/dify/dify/api/extensions/ext_storage.py", line 65, in load
    raise FileNotFoundError("File not found")
FileNotFoundError: File not found

Lỗi này có thể xảy ra do chuyển đổi phương thức triển khai hoặc xóa tệp api/storage/privkeys, tệp này được sử dụng để mã hóa các khóa mô hình lớn và không thể đảo ngược nếu bị mất. Bạn có thể đặt lại khóa chung và khóa riêng mã hóa bằng lệnh sau:

  • Triển khai docker compose

docker exec -it docker-api-1 flask reset-encrypt-key-pair
  • Khởi động mã nguồn

Truy cập thư mục api

flask reset-encrypt-key-pair

Làm theo lời nhắc để thiết lập lại.

3. Không thể đăng nhập khi cài đặt sau và sau đó đăng nhập thành công nhưng các giao diện tiếp theo lại nhắc 401?

Điều này có thể do chuyển đổi tên miền/trang web, gây ra hiện tượng cross-domain giữa front-end và server-side. Cross-domain và danh tính liên quan đến hai mục cấu hình:

Cấu hình CORS cross-domain

CONSOLE_CORS_ALLOW_ORIGINS Chính sách CORS cross-domain của Console, mặc định là *, , cho phép truy cập từ tất cả các tên miền. WEB_API_CORS_ALLOW_ORIGINS WebAPP CORS cross-domain strategy, mặc định là *, cho phép truy cập từ tất cả các tên miền.

4. Sau khi bắt đầu, trang tiếp tục tải và kiểm tra yêu cầu nhắc lỗi CORS?

Điều này có thể là do tên miền / URL đã được chuyển đổi, dẫn đến cross-domain giữa front end và back end. Vui lòng thay đổi tất cả các mục cấu hình sau trong docker-compose.yml sang tên miền mới: CONSOLE_API_URL: URL phụ trợ của API bảng điều khiển. CONSOLE_WEB_URL: URL giao diện người dùng của web bảng điều khiển. SERVICE_API_URL: Service API Url APP_API_URL: WebApp API backend Url. APP_WEB_URL: WebApp Url.

Để biết thêm thông tin, vui lòng xem: Môi trường

5. Làm cách nào để nâng cấp phiên bản sau khi triển khai?

Nếu bạn khởi động thông qua hình ảnh, vui lòng kéo những hình ảnh mới nhất để hoàn tất việc nâng cấp. Nếu bạn khởi động thông qua mã nguồn, vui lòng kéo mã mới nhất rồi khởi động để hoàn tất nâng cấp.

Khi triển khai và cập nhật mã nguồn cục bộ, bạn cần vào thư mục API và thực hiện lệnh sau để di chuyển cấu trúc cơ sở dữ liệu sang phiên bản mới nhất:

flask db upgrade

6. Cách định cấu hình các biến môi trường khi sử dụng Notion import

Q: Địa chỉ cấu hình Notion's Integration là gì?

A: https://www.notion.so/my-integrations

Q: Những biến môi trường nào cần được cấu hình?

A: Vui lòng đặt cấu hình dưới đây khi thực hiện triển khai tư nhân.

  1. NOTION_INTEGRATION_TYPE : Giá trị nên cấu hình là (public/internal). Vì Địa chỉ chuyển hướng OAuth của Notion chỉ hỗ trợ https, nếu triển khai cục bộ, vui lòng sử dụng tích hợp nội bộ của Notion.

  2. NOTION_CLIENT_SECRET : Khóa bí mật của Notion OAuth (sử dụng cho loại tích hợp công khai)

  3. NOTION_CLIENT_ID : ID khách hàng OAuth (sử dụng cho loại tích hợp công khai)

  4. NOTION_INTERNAL_SECRET : Bí mật tích hợp nội bộ của Notion, Nếu giá trị của NOTION_INTEGRATION_TYPE là internal ,bạn cần cấu hình biến này.

7. Làm cách nào để thay đổi tên không gian trong phiên bản triển khai cục bộ?

Sửa đổi trong bảng tenants trong cơ sở dữ liệu.

8. Tôi có thể sửa đổi tên miền để truy cập ứng dụng ở đâu?

Tìm tên miền cấu hình APP_WEB_URL trong docker_compose.yaml.

9. Nếu cần di chuyển cơ sở dữ liệu thì cần sao lưu những gì?

Cơ sở dữ liệu, bộ lưu trữ được định cấu hình và dữ liệu cơ sở dữ liệu vectơ cần được sao lưu. Nếu được triển khai ở chế độ Docker Compose, toàn bộ nội dung dữ liệu trong thư mục chatx/docker/volumes có thể được sao lưu trực tiếp.

10. Tại sao Docker triển khai ChatX và khởi động OpenLLM cục bộ bằng 127.0.0.1 nhưng không thể truy cập cổng cục bộ?

127.0.0.1 là địa chỉ nội bộ của vùng chứa và địa chỉ máy chủ được định cấu hình bởi ChatX yêu cầu địa chỉ IP LAN của máy chủ.

11. Làm cách nào để giải quyết các giới hạn về kích thước và số lượng khi tải lên tài liệu kiến ​​thức trong phiên bản triển khai cục bộ?

Bạn có thể tham khảo tài liệu mô tả biến môi trường trang web chính thức để định cấu hình: ​Môi trường

12. Phiên bản triển khai cục bộ mời thành viên qua email như thế nào?

Phiên bản triển khai cục bộ, thành viên có thể được mời qua email. Sau khi nhập lời mời qua email, trang sẽ hiển thị liên kết lời mời, sao chép liên kết lời mời và chuyển tiếp đến người dùng. Các thành viên trong nhóm của bạn có thể mở liên kết và đăng nhập vào không gian của bạn bằng cách đặt mật khẩu thông qua đăng nhập email.

13. Làm cách nào để giải quyết listen tcp4 0.0.0.0:80: bind: địa chỉ đã được sử dụng?

Điều này là do cổng đang bị chiếm. Bạn có thể sử dụng lệnh netstat -tunlp | grep 80 để xem quy trình nào đang chiếm cổng đó, và sau đó tiến hành chấm dứt quy trình. Ví dụ, nếu các quy trình apache và nginx chiếm cổng, bạn có thể sử dụng các lệnh service apache2 stop và service nginx stop để dừng quy trình.

14. Phải làm gì nếu lỗi này xảy ra khi chuyển văn bản sang giọng nói?

[openai] Error: ffmpeg is not installed

Vì OpenAI TTS đã triển khai phân đoạn dòng âm thanh, cần cài đặt ffmpeg để sử dụng bình thường khi triển khai mã nguồn. Dưới đây là các bước chi tiết:

Windows:

  1. Truy cập trang web chính thức của FFmpeg và tải xuống thư viện chia sẻ Windows được biên dịch sẵn.

  2. Tải xuống và giải nén thư mục FFmpeg, thư mục này sẽ tạo ra một thư mục tương tự như 'ffmpeg-20200715-51db0a4-win64-static'.

  3. Di chuyển thư mục đã giải nén đến vị trí bạn chọn, ví dụ: C:Program Files.

  4. Thêm đường dẫn tuyệt đối của thư mục bin FFmpeg vào các biến môi trường hệ thống.

  5. Mở dấu nhắc lệnh và nhập 'ffmpeg -version' để xem thông tin phiên bản FFmpeg có hiển thị hay không, cho biết cài đặt thành công.

Ubuntu:

  1. Mở terminal.

  2. Nhập các lệnh sau để cài đặt FFmpeg: sudo apt-get update, sau đó nhập sudo apt-get install ffmpeg.

  3. Nhập 'ffmpeg -version' để kiểm tra xem nó đã được cài đặt thành công chưa.

CentOS:

  1. Trước tiên, bạn cần kích hoạt kho lưu trữ EPEL. Trong terminal, nhập: sudo yum install epel-release

  2. Sau đó, nhập: sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

  3. Cập nhật gói yum, nhập: sudo yum update

  4. Cuối cùng cài đặt FFmpeg, nhập: sudo yum install ffmpeg ffmpeg-devel

  5. Nhập 'ffmpeg -version' để kiểm tra xem nó đã được cài đặt thành công chưa.

Mac OS X:

  1. Mở terminal.

  2. Nếu bạn chưa cài đặt Homebrew, bạn có thể cài đặt nó bằng cách nhập lệnh sau vào terminal: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  3. Cài đặt FFmpeg với Homebrew, nhập: brew install ffmpeg

  4. Nhập 'ffmpeg -version' để kiểm tra xem nó đã được cài đặt thành công chưa.

15. Di chuyển cơ sở dữ liệu vectơ sang Qdrant hoặc Milvus

Nếu bạn muốn di chuyển cơ sở dữ liệu vectơ từ weaviate sang qdrant hoặc milvus, bạn cần di chuyển dữ liệu trong cơ sở dữ liệu vectơ. Sau đây là phương pháp di chuyển:

Bước:

  1. Nếu bạn đang bắt đầu từ mã nguồn cục bộ, hãy sửa biến môi trường trong tệp .env thành cơ sở dữ liệu vector mà bạn muốn di chuyển đến. Ví dụ: VECTOR_STORE=qdrant

  2. Nếu bạn bắt đầu từ docker-compose, hãy sửa biến môi trường trong tệp docker-compose.yaml thành cơ sở dữ liệu vector mà bạn muốn di chuyển đến, cả api và worker đều cần được chỉnh sửa. Ví dụ:

# The type of vector store to use. Supported values are `weaviate`, `qdrant`, `milvus`.
VECTOR_STORE: weaviate
  1. chạy lệnh dưới đây trong terminal hoặc container docker của bạn

flask vdb-migrarte # or docker exec -it docker-api-1 flask vdb-migrarte

16. Tại sao cần có SSRF_PROXY?

Bạn có thể đã nhận thấy biến môi trường SSRF_PROXY trong tệp docker-compose.yaml. Điều này rất quan trọng vì triển khai cục bộ của ChatX sử dụng SSRF_PROXY để ngăn chặn các cuộc tấn công Forgery Yêu cầu Phía máy chủ (SSRF). Để biết thêm thông tin về các cuộc tấn công SSRF, hãy tham khảo tài nguyên này.

Để giảm thiểu các rủi ro tiềm ẩn, chúng tôi đã thiết lập một proxy cho tất cả các dịch vụ có thể bị tổn thương bởi các cuộc tấn công SSRF. Proxy này đảm bảo rằng các dịch vụ như Sandbox chỉ có thể truy cập vào các mạng bên ngoài thông qua nó, từ đó bảo vệ dữ liệu và dịch vụ của bạn. Theo mặc định, proxy này không can thiệp vào bất kỳ yêu cầu cục bộ nào. Tuy nhiên, bạn có thể tùy chỉnh hành vi của proxy bằng cách sửa đổi tệp cấu hình squid.

Làm cách nào để tùy chỉnh Proxy Behavior?

Trong tệp docker/volumes/ssrf_proxy/squid.conf, bạn sẽ tìm thấy các cài đặt cấu hình cho proxy. Ví dụ, nếu bạn muốn cho phép mạng 192.168.101.0/24 được truy cập bởi proxy, nhưng hạn chế quyền truy cập vào một địa chỉ IP 192.168.101.19 chứa dữ liệu nhạy cảm, bạn có thể thêm các quy tắc sau vào squid.conf:

acl restricted_ip dst 192.168.101.19
acl localnet src 192.168.101.0/24

http_access deny restricted_ip
http_access allow localnet
http_access deny all

Đây là một ví dụ cơ bản, và bạn có thể tùy chỉnh các quy tắc để phù hợp với nhu cầu cụ thể của mình. Để biết thêm thông tin về cấu hình squid, hãy tham khảo tài liệu chính thức.

PreviousMôi TrườngNextLLMOps là gì?