Những gì bạn đang thiết lập
Nếu bạn đến đây bằng cách gõ openwebui cách trò chuyện n8n, bạn có lẽ đang cố gắng thực hiện hai việc liên quan: nói chuyện với mô hình trong Open WebUI và gọi cùng mô hình đó từ các quy trình n8n. Cả hai công cụ đều có thể trỏ đến bất kỳ máy chủ nào tuân theo định dạng hoàn thành trò chuyện OpenAI, vì vậy một tài khoản bao gồm cả hai.
Open WebUI là giao diện trò chuyện tự lưu trữ. n8n là công cụ tự động hóa quy trình nơi bạn kết nối các nút với nhau. API phía sau chúng giống nhau trong mỗi trường hợp:
- URL cơ sở:
https://api.nofilteraichat.com/v1 - ID mô hình:
uncensored - Auth: tiêu đề
Authorization: Bearermang theo khóa của bạn
Bạn cần một khóa trước. Trang khóa API hướng dẫn đăng ký và tín dụng dùng thử $0.50 một cú nhấp chuột, đủ để kiểm tra mọi thứ bên dưới.
Phần một: Open WebUI
Tùy chọn A: bảng quản trị
Nếu Open WebUI đang chạy, hãy đăng nhập với tư cách quản trị và mở Cài đặt Quản trị, sau đó Kết nối. Thêm kết nối API OpenAI mới với các giá trị này:
- URL:
https://api.nofilteraichat.com/v1 - Khóa: khóa API của bạn
- Lưu, sau đó sử dụng nút xác minh nếu phiên bản của bạn có.
Tên menu thay đổi một chút giữa các bản phát hành, vì vậy hãy tìm phần liệt kê các kết nối kiểu OpenAI. Sau khi lưu, hãy bắt đầu một cuộc trò chuyện mới và mở bộ chọn mô hình. Mô hình uncensored sẽ xuất hiện, vì Open WebUI tải danh sách từ GET /v1/models.
Tùy chọn B: biến môi trường trong Docker
Nếu bạn bắt đầu từ đầu, hãy truyền các cài đặt khi bạn khởi chạy container:
docker run -d --name open-webui -p 3000:8080 \
-e OPENAI_API_BASE_URL="https://api.nofilteraichat.com/v1" \
-e OPENAI_API_KEY="$NOFILTER_API_KEY" \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:mainMở http://localhost:3000, tạo tài khoản cục bộ đầu tiên và mô hình sẽ hiển thị trong trình chọn. Lưu ý rằng Open WebUI lưu trữ các cài đặt kết nối trong cơ sở dữ liệu của nó sau lần khởi chạy đầu tiên. Nếu bạn thay đổi các biến sau đó mà không có gì xảy ra, hãy chỉnh sửa kết nối trong bảng điều khiển quản trị.
Điều chỉnh trò chuyện
Trong các điều khiển trò chuyện, bạn có thể đặt temperature, top_p, một chuỗi dừng và một system prompt. Những giá trị này được chuyển tiếp đến mô hình. Đối với văn học và nhập vai, nhiệt độ từ 0.7 đến 1.0 mang lại văn phong sống động hơn. Đối với các câu hỏi mang tính thực tế, hãy đặt giá trị thấp hơn. Nếu mô hình bắt đầu lặp lại các cụm từ, hãy tăng frequency penalty lên một chút.
Phần hai: n8n với nút OpenAI
n8n có thông tin xác thực OpenAI gốc. Cấu hình của nó bao gồm trường URL cơ sở, mặc định là máy chủ chính thức. Thay đổi nó và nút sẽ nói chuyện với endpoint của bạn:
- Trong n8n, tạo thông tin xác thực mới loại OpenAI.
- Dán khóa API của bạn.
- Đặt URL cơ sở thành
https://api.nofilteraichat.com/v1. - Lưu và đính kèm thông tin xác thực vào nút Mô hình Trò chuyện OpenAI hoặc quy trình Đại lý AI.
Điểm mấu chốt nằm ở trường mô hình. Một số node hiển thị một danh sách thả xuống được điền từ danh sách mô hình, trong khi một số khác giới hạn các lựa chọn chỉ ở các tên đã biết. Nếu bạn không thể chọn uncensored, hãy chuyển trường sang chế độ biểu thức và nhập thủ công ID. Nếu phiên bản n8n của bạn vẫn từ chối, hãy sử dụng phương thức HTTP Request trong phần tiếp theo, phương thức này không có hạn chế đó.
Khi thông tin xác thực hoạt động, bạn có thể gắn mô hình trò chuyện vào một nút AI Agent và cung cấp công cụ cho nó. API hỗ trợ gọi công cụ (tools, tool_choice, và kết quả dưới dạng role: "tool"). Tương tự như bất kỳ mô hình trọng số mở nào, hãy kiểm tra agent với các đầu vào thực tế và giữ mô tả công cụ ngắn gọn và trực tiếp.
Phần ba: trò chuyện từ nút Yêu cầu HTTP
Tùy chọn dễ dự đoán nhất là nút Yêu cầu HTTP đơn giản. Nó hiển thị chính xác những gì được gửi và hoạt động trong mọi phiên bản n8n. Cấu hình nút như sau:
- Phương thức: POST
- URL:
https://api.nofilteraichat.com/v1/chat/completions - Xác thực: Header Auth, với tên
Authorizationvà giá trịBearer YOUR_KEY(lưu trữ dưới dạng thông tin xác thực, không phải trong nút) - Gửi Thân: bật, loại nội dung JSON
Đặt thân thành nội dung sau, sử dụng biểu thức cho văn bản người dùng:
{
"model": "uncensored",
"messages": [
{ "role": "system", "content": "You are a concise story assistant for adult fiction writers." },
{ "role": "user", "content": "{{ $json.prompt }}" }
],
"temperature": 0.8,
"max_tokens": 600
}Văn bản phản hồi nằm ở choices[0].message.content. Trong node tiếp theo, hãy đọc nó bằng biểu thức {{ $json.choices[0].message.content }}. Phản hồi đó cũng chứa một khối usage, vì vậy bạn có thể ghi lại số lượng token vào một bảng tính hoặc cơ sở dữ liệu.
Một quy trình điển hình là kích hoạt webhook, nút HTTP này và nút phản hồi trả về văn bản. Một quy trình phổ biến khác đọc các hàng từ bảng tính, tạo bản nháp cho từng hàng và ghi kết quả trở lại. Bạn cũng có thể kiểm tra yêu cầu bên ngoài n8n trước bằng curl:
curl https://api.nofilteraichat.com/v1/chat/completions \
-H "Authorization: Bearer $NOFILTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Say hello in five words."}]}'Giới hạn, thử lại và phân lô trong n8n
Một khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút; một khóa dùng thử cho phép 2 và 60. n8n dễ dàng phá vỡ những con số đó, vì một nút xử lý mọi mục đến và có thể kích hoạt chúng nhanh chóng.
Trong node HTTP Request, hãy mở Options và sử dụng Batching: đặt kích thước batch là 4 hoặc 6 và khoảng thời gian là một hoặc hai giây. Trong phần Settings của node, hãy bật Retry On Fail với 3 lần thử và thời gian chờ là 5000 ms. Điều này phù hợp với hành vi của API: khi API bị quá tải tạm thời, nó sẽ trả về HTTP 429 kèm tiêu đề Retry-After: 5. Các mã 429 khác cho bạn biết giới hạn nào bạn đã chạm tới: rate_limited nghĩa là quá nhiều yêu cầu mỗi phút, concurrency nghĩa là quá nhiều yêu cầu cùng lúc.
Streaming cần một lưu ý. Một yêu cầu streaming giữ nguyên slot concurrency của nó cho đến khi stream kết thúc. Trong n8n, hãy tắt streaming trong node HTTP, vì quy trình làm việc sẽ chờ toàn bộ câu trả lời. Open WebUI mặc định sử dụng streaming, điều này phù hợp cho một cửa sổ trò chuyện.
Chi phí của một quy trình
Giả sử một quy trình làm việc xử lý 500 hàng, gửi 800 token đầu vào và nhận được 250 token đầu ra cho mỗi hàng. Đầu vào: 500 × 800 = 400.000 token, chi phí 400.000 × $0,15 / 1.000.000 = $0,06. Đầu ra: 500 × 250 = 125.000 token, chi phí 125.000 × $0,50 / 1.000.000 = $0,0625. Tổng chi phí của lần chạy là $0,1225, tương đương khoảng 12 cent. Xem trang giá cả để biết cách nạp tiền.
Khắc phục sự cố
| Triệu chứng | Nguyên nhân có thể | Cách khắc phục |
|---|---|---|
| Open WebUI không hiển thị mô hình nào | URL hoặc khóa sai | Sử dụng URL cơ sở kết thúc bằng /v1; kiểm tra GET /v1/models bằng curl |
| Các thay đổi env Docker bị bỏ qua | Cài đặt đã được lưu trữ | Chỉnh sửa kết nối trong Cài đặt Quản trị |
| 401 từ n8n | Giá trị tiêu đề thiếu từ Bearer | Giá trị phải đọc Bearer, một khoảng trắng, sau đó là khóa |
| Open WebUI trong Docker không thể kết nối với proxy cục bộ | localhost trỏ tới container | Sử dụng địa chỉ máy chủ, không phải localhost |
| Lỗi 429 giữa vòng lặp | Quá nhiều yêu cầu đồng thời | Nhóm các nút HTTP và bật tính năng thử lại |
| Không tìm thấy mô hình | Tên được nhập sai | ID duy nhất là uncensored |
Hãy nhớ các giới hạn sản phẩm khi bạn thiết kế quy trình: chỉ trò chuyện văn bản, cửa sổ ngữ cảnh 100.000 token dùng chung cho prompt và phản hồi, và kích thước yêu cầu tối đa 8 MB. Không có endpoint embeddings, vì vậy hãy giữ mọi tìm kiếm vector trên một dịch vụ khác. Trang bắt đầu nhanh có tài liệu tham khảo đầy đủ về yêu cầu, và hướng dẫn tích hợp bao gồm nhiều giao diện người dùng hơn. Các prompt được gửi qua API không được sử dụng để huấn luyện.
Quy tắc cứng này áp dụng cho mọi công cụ: không có nội dung tình dục liên quan đến người chưa thành niên. Trong phạm vi sử dụng người trưởng thành hợp pháp, mô hình được tinh chỉnh để trả lời mà không từ chối nội dung, phù hợp cho ứng dụng tiểu thuyết, nhập vai và bạn đồng hành cho người lớn.
