Document ChatX (Dev)
Document Developer ChatX
Document Developer ChatX
  • I. THIẾT LẬP CƠ BẢN
    • Tạo ứng dụng ChatX
      • Bắt đầu nhanh
      • Tổng quan
      • Tạo AI Bot
        • 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
  • II, TÍNH NĂNG CƠ BẢN
    • 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
  • III, WORKSPACE
    • Khám phá
    • Thanh toán
  • IV, HƯỚNG DẪN TÍCH HỢP NÂNG CAO
    • 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
  • Bắt đầu
  • Những Logic Khác TL;DR
  • Về Bearer Auth
  • Về Xác Thực Tham Số
  • Truy Cập Nhật ký của Cloudflare Workers
  • Nội Dung Tham Khảo
  1. IV, HƯỚNG DẪN TÍCH HỢP 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

Bắt đầu

Vì Phần Mở Rộng API của ChatX yêu cầu một địa chỉ internet công khai làm Điểm Cuối API, chúng ta cần triển khai phần mở rộng API của mình đến một địa chỉ internet công khai. Ở đây, chúng tôi sử dụng Cloudflare Workers để triển khai phần mở rộng API của chúng tôi.

Chúng ta sao chép Repository GitHub Mẫu, chứa một phần mở rộng API đơn giản. Chúng ta có thể sửa đổi điều này như là một cơ sở.

git clone https://github.com/crazywoola/dify-extension-workers.git
cp wrangler.toml.example wrangler.toml

Mở tệp wrangler.toml và sửa tên và compatibility_date thành tên ứng dụng của bạn và ngày tương thích của bạn.

Một cấu hình quan trọng ở đây là TOKEN trong vars, mà bạn sẽ cần cung cấp khi thêm phần mở rộng API vào ChatX. Vì lý do bảo mật, nên sử dụng một chuỗi ngẫu nhiên làm Token. Bạn không nên viết Token trực tiếp trong mã nguồn mà phải chuyển qua biến môi trường. Do đó, đừng commit wrangler.toml của bạn vào kho lưu trữ mã nguồn của bạn.

name = "dify-extension-example"
compatibility_date = "2023-01-01"

[vars]
TOKEN = "bananaiscool"

Phần mở rộng API này trả về một câu trích dẫn ngẫu nhiên từ Breaking Bad. Bạn có thể sửa đổi logic của phần mở rộng API này trong src/index.ts. Ví dụ này cho thấy cách tương tác với một API bên thứ ba.

// ⬇️ implement your logic here ⬇️
// point === "app.external_data_tool.query"
// https://api.breakingbadquotes.xyz/v1/quotes
const count = params?.inputs?.count ?? 1;
const url = `https://api.breakingbadquotes.xyz/v1/quotes/${count}`;
const result = await fetch(url).then(res => res.text())
// ⬆️ implement your logic here ⬆️

Repository này đơn giản hóa tất cả các cấu hình ngoại trừ logic kinh doanh. Bạn có thể trực tiếp sử dụng các lệnh npm để triển khai phần mở rộng API của bạn.

npm run deploy

Sau khi triển khai thành công, bạn sẽ nhận được một địa chỉ internet công khai, mà bạn có thể thêm vào ChatX làm Điểm Cuối API. Vui lòng lưu ý không bỏ lỡ đường dẫn điểm cuối.

Những Logic Khác TL;DR

Về Bearer Auth

import { bearerAuth } from "hono/bearer-auth";

(c, next) => {
    const auth = bearerAuth({ token: c.env.TOKEN });
    return auth(c, next);
},

Logic xác thực Bearer của chúng tôi được hiển thị như trên. Chúng tôi sử dụng gói hono/bearer-auth cho xác thực Bearer. Bạn có thể sử dụng c.env.TOKEN trong src/index.ts để lấy Token.

Về Xác Thực Tham Số

import { z } from "zod";
import { zValidator } from "@hono/zod-validator";

const schema = z.object({
  point: z.union([
    z.literal("ping"),
    z.literal("app.external_data_tool.query"),
  ]), // Restricts 'point' to two specific values
  params: z
    .object({
      app_id: z.string().optional(),
      tool_variable: z.string().optional(),
      inputs: z.record(z.any()).optional(),
      query: z.any().optional(),  // string or null
    })
    .optional(),
});

Chúng tôi sử dụng zod để định nghĩa các loại tham số. Bạn có thể sử dụng zValidator trong src/index.ts để kiểm tra tham số. Lấy các tham số được xác thực qua const { point, params } = c.req.valid("json");. Điểm của chúng tôi chỉ có hai giá trị, vì vậy chúng tôi sử dụng z.union cho định nghĩa. params là một tham số tùy chọn, được định nghĩa với z.optional. Nó bao gồm một tham số inputs, một loại Record<string, any> đại diện cho một đối tượng với khóa chuỗi và giá trị bất kỳ. Loại này có thể đại diện cho bất kỳ đối tượng nào. Bạn có thể lấy tham số count trong src/index.ts bằng cách sử dụng params?.inputs?.count.

Truy Cập Nhật ký của Cloudflare Workers

wrangler tail

Nội Dung Tham Khảo

PreviousTích hợp công cụ nâng caoNextKết nối với các mô hình khác nhau

Last updated 1 year ago

Cloudflare Workers
Cloudflare Workers CLI
Thêm Điểm Cuối API vào ChatX
Thêm Công Cụ API trong trang chỉnh sửa Ứng dụng