0
0
Lập trình
Admin Team
Admin Teamtechmely

Sử Dụng Reka Research Để Xây Dựng Ứng Dụng AI Thông Minh

Đăng vào 4 tháng trước

• 8 phút đọc

Giới thiệu

Hãy tưởng tượng bạn có một trợ lý có thể tìm kiếm trên một danh sách nguồn tài liệu được chọn lọc, thu thập thông tin, tổng hợp lại và trình bày theo định dạng có cấu trúc phù hợp với nhu cầu của bạn. Đó chính là sức mạnh của Reka Research, một mô hình AI được thiết kế để thực hiện nghiên cứu sâu bằng cách sử dụng tìm kiếm web và phân tích tài liệu nhanh hơn nhiều so với con người. Với các công cụ như Reka Research tích hợp vào ứng dụng của bạn, bạn có thể tạo ra những trải nghiệm AI thông minh và đáng tin cậy hơn.

Bài viết này sẽ hướng dẫn bạn qua một ứng dụng demo cho thấy cách sử dụng Reka Research và tinh chỉnh nó bằng cách sử dụng các tùy chọn nâng cao để có kết quả tốt hơn, nhanh hơn.

Mục lục

  1. Xem video hướng dẫn
  2. Lấy mã nguồn và thiết lập
  3. Khách hàng tương thích với OpenAI
  4. Đầu ra có cấu trúc
  5. Kết quả dựa trên vị trí của người dùng
  6. Tuning độ rộng và độ trễ với max_uses
  7. Kiểm soát nguồn thông tin với allowed_domainsblocked_domains
  8. Lý do minh bạch
  9. Kết luận

Xem video hướng dẫn

Video Hướng Dẫn

Lấy mã nguồn và thiết lập

Yêu cầu trước: Node.js 18+ và npm.

  1. Clone kho mã và cài đặt các phụ thuộc

    bash Copy
    cd reka-restaurants
    npm install
  2. Lấy Reka API Key của bạn

    • Truy cập bảng điều khiển Reka Platform.
    • Mở "API keys" trong thanh bên trái.
    • Tạo một khóa mới (ví dụ: “reka-restaurants”) và sao chép nó.
  3. Cấu hình môi trường của bạn

    bash Copy
    export REKA_API_KEY="<your_reka_api_key>"
  4. Chạy ứng dụng

    bash Copy
    npm run build
    npm start

Mở http://localhost:5173 và thử một truy vấn như "sushi".

Khách hàng tương thích với OpenAI

Trong file src/server.ts, hằng số reka_research là khách hàng tương thích với OpenAI cho Reka:

javascript Copy
const reka_research = new OpenAI({
  apiKey: process.env.REKA_API_KEY,
  baseURL: 'https://api.reka.ai/v1'
});

Điều này giúp bạn dễ dàng thay thế Reka Research mà không cần thay đổi ngăn xếp ứng dụng của bạn. Bạn chỉ cần thay đổi mô hình thành 'reka-flash-research' và baseURL.

Đầu ra có cấu trúc

Một tính năng tuyệt vời của Reka Research là khả năng chỉ định định dạng phản hồi. Điều này cực kỳ hữu ích khi bạn muốn sử dụng đầu ra trực tiếp trong ứng dụng của mình mà không cần phân tích hoặc xử lý thêm.

Trong ví dụ hiện tại của chúng tôi, bằng cách xác định câu trả lời mong đợi là danh sách các nhà hàng với các thông tin sau: tên, loại món ăn, địa chỉ, khoảng giá, đánh giá, url, lý do chọn, đó chính xác là những gì chúng tôi nhận được. Danh sách này có thể được sử dụng trực tiếp bởi ứng dụng của chúng tôi, lưu vào cơ sở dữ liệu, hoặc hiển thị cho người dùng mà không cần phân tích hay xử lý thêm.

Tốt hơn nữa, việc chỉ định sơ đồ giúp hướng dẫn mô hình để sản xuất kết quả chính xác và phù hợp hơn.

Schema phản hồi

Backend của Reka Restaurant định nghĩa một sơ đồ phản hồi RestaurantItemSchema mà mô hình phải tuân theo:

javascript Copy
const RestaurantItemSchema = z.object({
  name: z.string(),
  cuisine: z.string(),
  address: z.string(),
  neighborhood: z.string().nullable(),
  approx_price: z.enum(["$", "$$", "$$$", "$$$$"]).nullable(),
  rating: z.number().nullable(),
  distance_km: z.number().nullable(),
  url: z.string().nullable(),
  why: z.string().nullable(),
});

Khi bạn gửi một truy vấn, agent sẽ thực hiện các tìm kiếm web để thu thập thông tin liên quan. Điều này có thể dẫn đến việc tìm kiếm nhiều trang web hơn để đảm bảo tất cả thông tin liên quan được tìm thấy. Agent sau đó sẽ mở và phân tích nội dung của các trang này để trích xuất các chi tiết cần thiết về mỗi nhà hàng. Cuối cùng, nó tổng hợp thông tin này thành một danh sách có cấu trúc tuân theo sơ đồ đã định nghĩa.

Kết quả dựa trên vị trí của người dùng

Thay vì yêu cầu người dùng nhập “gần tôi” hoặc chỉ định một thành phố, ứng dụng tự động sử dụng vị trí của trình duyệt để điền vào tham số vị trí của API. Điều này cho phép các gợi ý nhà hàng chính xác hơn, phù hợp hơn và trải nghiệm người dùng mượt mà hơn.

javascript Copy
app.post('/api/recommendations', async (req: Request, res: Response) => {
  try {
    const user_query: string = (req.body?.query ?? '').toString();
    const loc: ApproxLocation = {
      country: req.body?.location?.country ?? null,
      city: req.body?.location?.city ?? null,
      region: req.body?.location?.region ?? null,
      timezone: req.body?.location?.timezone ?? null,
    };

Tuning độ rộng và độ trễ với max_uses

Reka Research thực hiện một loạt các bước (tìm kiếm, mở, phân tích). Đối với các truy vấn đơn giản hơn hoặc khi độ trễ quan trọng, hãy giới hạn số lượng tìm kiếm web mà agent thực hiện:

Thay đổi max_uses đến mức bạn chọn. Trong trường hợp này, đặt nó thành 1 để chỉ cho phép một tìm kiếm web trước khi trả về kết quả. Agent có thể vẫn mở và phân tích các trang, nhưng quỹ đạo ngắn hơn và trả về nhanh hơn. Điều này cung cấp một sự cân bằng tốt giữa độ sâu và tốc độ tùy thuộc vào trường hợp sử dụng—đôi khi bạn muốn có một câu trả lời nhanh, những lúc khác bạn muốn nghiên cứu kỹ lưỡng.

Hãy thử tăng hoặc giảm giá trị này tùy thuộc vào mức độ rộng/sâu mà bạn muốn nghiên cứu.

javascript Copy
research: {
  web_search: {
    allowed_domains: ["tripadvisor.com"],
    max_uses: 1,
    user_location: {
      approximate: {
        country: loc?.country,
        city: loc?.city,
        region: loc?.region,
        timezone: loc?.timezone,
      },
    },
  },
}

Kiểm soát nguồn thông tin với allowed_domainsblocked_domains

Khi thực hiện nghiên cứu, bạn có thể muốn kiểm soát các nguồn mà agent có thể sử dụng. Trên mạng, không phải tất cả các nguồn đều đáng tin cậy hoặc phù hợp cho trường hợp sử dụng của bạn. Có hai tham số để giúp bạn tinh chỉnh các nguồn mong muốn: allowed_domainsblocked_domains. Trong mã trên, chúng tôi đặt allowed_domains chỉ tìm kiếm trên "TripAdvisor". Điều này giới hạn nghiên cứu chỉ ở miền cụ thể đó. Điều này rất hữu ích khi bạn muốn đảm bảo rằng thông tin đến từ một danh sách nguồn được chọn lọc. Bạn cũng có thể sử dụng blocked_domains để loại trừ các miền mà bạn biết là không đáng tin cậy hoặc không phù hợp với nhu cầu của bạn. Những tùy chọn này cho bạn một chính sách tin cậy đơn giản mà bạn có thể tinh chỉnh theo từng trường hợp sử dụng.

Hãy thử thêm hoặc xóa miền trong allowed_domains hoặc thử nghiệm với blocked_domains để xem cách nó ảnh hưởng đến kết quả.

Lý do minh bạch

Phản hồi bao gồm một dấu vết lý do (các tìm kiếm và phân tích của agent). Điều này rất hữu ích để xác minh thông tin được trả về hoặc hiểu tại sao một số kết quả được chọn hoặc không được chọn trong phản hồi cuối cùng. Trong ứng dụng demo này, frontend hiển thị các bước này để người dùng có thể thấy các nguồn nào đã được truy vấn và cách mà kết quả được hình thành.

Kết luận

Reka Research cung cấp một nền tảng thực tế để xây dựng các ứng dụng mạnh mẽ và thông minh hơn. Bằng cách thêm khả năng tìm kiếm, phân tích nhiều nguồn và trả về dữ liệu có cấu trúc, bạn có thể tạo ra các ứng dụng vượt xa việc chỉ tạo văn bản đơn giản. Sự minh bạch trong quy trình nghiên cứu—cho thấy các nguồn nào đã được sử dụng và cách mà các kết luận được đưa ra—thêm một lớp độ tin cậy mà người dùng có thể tin tưởng. Chính sự kết hợp giữa khả năng nâng cao và kết quả có thể xác minh khiến cho các ứng dụng trở nên thật sự thông minh.

Điều làm cho Reka Research đặc biệt hấp dẫn là cách dễ dàng nó tích hợp vào các quy trình làm việc hiện có. Nếu bạn đã sử dụng API của OpenAI, việc chuyển sang Reka Research chỉ cần hai dòng thay đổi: cập nhật baseURL thành https://api.reka.ai/v1 và thay đổi mô hình thành reka-flash-research. Từ đó, bạn mở khóa được những khả năng mạnh mẽ như tìm kiếm dựa trên vị trí, kiểm soát nguồn và đầu ra có cấu trúc mà chỉ cần hoạt động.

Cho dù bạn đang xây dựng một ứng dụng tìm kiếm nhà hàng, một trợ lý nghiên cứu, hoặc bất kỳ ứng dụng nào cần thông tin đã được xác minh, Reka Research cung cấp cho bạn công cụ để tạo ra trải nghiệm AI thông minh và đáng tin cậy hơn. Sẵn sàng thử nghiệm ngay? Hãy clone kho mã tìm kiếm nhà hàng và xem sự khác biệt mà nghiên cứu sâu có thể mang lại, hoặc đơn giản là thay đổi URL trong ứng dụng OpenAI hiện tại của bạn và bắt đầu thử nghiệm ngay hôm nay.

Có ý kiến phản hồi hoặc muốn chia sẻ những gì bạn đã xây dựng? Tham gia cộng đồng Discord của chúng tôi và kiểm tra tài liệu tại docs.reka.ai. Chúng tôi rất mong được thấy những gì bạn tạo ra!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào