paint-brush
Tận dụng API JSON mới của Astra DB để xây dựng các ứng dụng AI hỗ trợ JavaScripttừ tác giả@datastax
355 lượt đọc
355 lượt đọc

Tận dụng API JSON mới của Astra DB để xây dựng các ứng dụng AI hỗ trợ JavaScript

từ tác giả DataStax6m2023/09/20
Read on Terminal Reader

dài quá đọc không nổi

Hãy xem cách mới này để cung cấp cho lượng lớn các nhà phát triển JavaScript quyền truy cập vào cơ sở dữ liệu vectơ mạnh mẽ nhất trên thế giới, thông qua một API đơn giản.
featured image - Tận dụng API JSON mới của Astra DB để xây dựng các ứng dụng AI hỗ trợ JavaScript
DataStax HackerNoon profile picture


Một trong những mục tiêu của chúng tôi tại DataStax là cho phép mọi nhà phát triển - bất kể họ xây dựng ngôn ngữ gì - đưa các ứng dụng AI vào sản xuất nhanh nhất có thể.


Chúng tôi gần đây đã thêm khả năng tìm kiếm vectơ vào DataStax Astra DB , cơ sở dữ liệu dưới dạng dịch vụ của chúng tôi được xây dựng trên Apache Cassandra mã nguồn mở để giúp các nhà phát triển tạo ra các ứng dụng AI.

Cassandra nổi tiếng là cơ sở dữ liệu mạnh mẽ nhất, có khả năng mở rộng và sẵn sàng sản xuất. Với việc bổ sung tìm kiếm vectơ, Cassandra và Astra DB đã trở thành nền tảng quan trọng để xây dựng các ứng dụng Gen AI cấp doanh nghiệp. Nhưng chúng tôi cũng cần đảm bảo rằng công nghệ mạnh mẽ này có thể truy cập và dễ sử dụng cho nhiều nhà phát triển nhất, bất kể ngôn ngữ hoặc bộ kỹ năng ưa thích của họ.


Hôm nay, chúng tôi thực hiện một bước tiến lớn theo hướng đó bằng cách cung cấp cho lượng lớn các nhà phát triển JavaScript quyền truy cập vào cơ sở dữ liệu vectơ mạnh mẽ nhất trên thế giới, thông qua một API đơn giản: giới thiệu API JSON cho Astra DB.


Làm quen với API JSON!

Trong thế giới JavaScript, cơ sở dữ liệu tài liệu rất nổi bật. Không có gì ngạc nhiên, vì JSON là ký hiệu gốc trong JavaScript nên khả năng lưu trữ và truy xuất tài liệu JSON đến và từ cơ sở dữ liệu sẽ đẩy nhanh quá trình phát triển một cách đáng kể.


API JSON mới được thiết kế để mang lại trải nghiệm mượt mà cho nhà phát triển JavaScript khi tạo ứng dụng AI mới. Chúng tôi đặt ra mục tiêu đảm bảo rằng nếu là nhà phát triển JavaScript, bạn có thể khởi chạy phiên bản Astra DB và bắt đầu viết mã ngay bằng cách sử dụng các mô hình và khung mà bạn quen thuộc.


Việc hiển thị Astra DB dưới dạng cơ sở dữ liệu tài liệu mang lại nhiều cải tiến trong trải nghiệm của nhà phát triển:


  • Bạn nghĩ về các đối tượng JSON, điều này mang lại cho bạn sự liên kết tự nhiên với hệ sinh thái JavaScript.

  • Không có bước lập mô hình dữ liệu vì nó được cơ sở dữ liệu tự xử lý. Bạn chỉ cần lưu và lấy tài liệu.

  • Bạn có thể bắt đầu phát triển nhanh chóng và tập trung vào logic ứng dụng thay vì những gì đang xảy ra ở phần phụ trợ.


Tích hợp với MongooseJS

Chúng tôi cũng nhận thấy rằng nhiều thành viên của cộng đồng JavaScript làm việc với cơ sở dữ liệu tài liệu thông qua các thư viện mô hình hóa dữ liệu đối tượng (ODM), cụ thể là MongooseJS. MongooseJS là một framework phổ biến để lập mô hình đối tượng trên cơ sở dữ liệu tài liệu. Với hơn 2 triệu lượt tải xuống NPM hàng tuần gần 3,5 triệu kho lưu trữ Github phụ thuộc , nó không cần phải giới thiệu.


API JSON mới cho Astra DB hoàn toàn tương thích với MongooseJS. Điều này có nghĩa là chỉ cần vài dòng mã để trỏ MongooseJS tới một phiên bản Astra DB:


 // Import MongooseJS. const mongoose = require("mongoose"); // Import the driver for Astra DB (shipped as a part of stargate.io). const { driver } = require("stargate-mongoose"); // Tell MongooseJS to use the Astra DB driver instead of the default one. mongoose.setDriver(driver); // Connect to Astra DB. await mongoose.connect(astraDbUri, { isAstra: true, });


Sau khi kết nối, bạn có thể sử dụng API MongooseJS và Astra DB sẽ đảm nhiệm công việc nặng nhọc là lưu trữ tài liệu của bạn một cách hiệu quả, lập chỉ mục chúng và mở rộng quy mô khi cần.


Hỗ trợ tìm kiếm vectơ

Thậm chí tốt hơn nữa, khi phát triển với MongooseJS được hỗ trợ bởi Astra DB, bạn có toàn quyền truy cập vào Astra DB Vector, cơ sở dữ liệu duy nhất được thiết kế để tìm kiếm và cập nhật đồng thời trên dữ liệu phân tán và khối lượng công việc phát trực tuyến với độ trễ cực thấp, cũng như các kết quả vectơ có liên quan cao loại bỏ sự dư thừa. Kết quả là, bạn có được sự quen thuộc và dễ sử dụng của MongooseJS, kết hợp với sự hỗ trợ vectơ phong phú và khả năng mở rộng của Astra DB. Phát triển ứng dụng AI bằng JavaScript chưa bao giờ dễ dàng hơn thế!


Chúng ta hãy xem một ví dụ đơn giản về cách sử dụng tìm kiếm vectơ của Astra DB trong ứng dụng MongooseJS. Trong ví dụ này, chúng tôi sẽ tạo một bộ sưu tập phim có mô tả văn bản và một số thông tin khác như tiêu đề, năm sản xuất và thể loại. Ngoài ra, chúng tôi sẽ hướng dẫn MongooseJS rằng chúng tôi muốn lưu trữ các phần nhúng vectơ cho mô tả. Đây là cách định nghĩa mô hình sẽ trông như thế nào:


 const Movie = mongoose.model( "Movie", new mongoose.Schema( { title: String, year: Number, genre: String, description: String, $vector: { type: [Number], validate: (vector) => vector && vector.length === 1536, }, }, { collectionOptions: { vector: { size: 1536, function: "cosine", }, }, }, ), );


Những người quen thuộc với MongooseJS sẽ thấy đây là một mô hình MongooseJS điển hình, ngoại trừ hai phần bổ sung mà trình điều khiển của Astra DB cho phép:


  1. $vector field đặc biệt được sử dụng để lưu trữ các vectơ nhúng.
  2. Đối tượng collectionOptions.vector cho Astra DB biết cách lập chỉ mục trường nhúng vectơ. Với mô hình trên, bạn có thể chèn tài liệu cùng với các phần nhúng:


 await Movie.insert({ title: "In the Border States", year: 1910, genre: "Drama", description: "In the Border States is a 1910 American drama film...",// Generate embedding for the description, // for example by invoking the OpenAI API. $vector: embedding("In the Border States is a 1910 American drama film..."), });


Ứng dụng của bạn hiện có thể cung cấp chức năng nhập truy vấn dạng tự do để tìm kiếm phim theo mô tả của chúng. Để làm được điều đó, bạn sẽ sử dụng cùng một mô hình để tạo nội dung nhúng cho truy vấn của người dùng và sử dụng tính năng tìm kiếm vectơ của Astra DB để tìm các mục nhập phù hợp nhất trong cơ sở dữ liệu:


 await Movie.find({}) .sort({ $vector: { $meta: embedding("Something funny") } }) .limit(3);


Tất nhiên, trong nhiều trường hợp, chỉ tìm kiếm vectơ là không đủ vì bạn có thể muốn kết hợp nó với tính năng lọc dựa trên các trường khác trong tài liệu. Ví dụ: đây là cách bạn có thể tìm thấy những bộ phim có liên quan tương tự như ví dụ trước nhưng chỉ xem phim truyền hình:


 await Movie.find({ genre: "Drama" }) .sort({ $vector: { $meta: embedding("Criminals and detectives") } }) .limit(3);


Với MongooseJS và Astra DB, bạn không bị giới hạn trong các thao tác CRUD đơn giản. Bạn có thể kết hợp chúng với tìm kiếm liên quan bằng cách sử dụng vectơ hoặc thậm chí kết hợp cả hai thành các truy vấn tìm kiếm kết hợp mạnh mẽ.


Bắt đầu với API JSON

API JSON mới hiện đang ở chế độ xem trước công khai và có sẵn trên Astra DB cho bất kỳ ai muốn dùng thử. Hãy làm theo ba bước đơn giản sau để bắt đầu:


  1. Đi tới Astra DB và tạo cơ sở dữ liệu vectơ.


  2. Sau khi cơ sở dữ liệu hoạt động, hãy chuyển sang tab “Kết nối”, chọn “API JSON” làm phương pháp ưa thích của bạn và làm theo hướng dẫn.




  3. Tận hưởng sự phát triển!


Bạn có thể tìm thêm chi tiết về cách sử dụng API JSON trong tài liệu.

Cái gì tiếp theo?

Bằng cách giới thiệu API JSON, tầm nhìn của chúng tôi rất rõ ràng: chúng tôi muốn Astra DB trở thành lựa chọn đầu tiên cho các nhà phát triển JavaScript xây dựng ứng dụng AI. Đây mới chỉ là sự khởi đầu - hãy theo dõi những cải tiến và bổ sung tiếp theo.


Bạn có câu hỏi, phản hồi hoặc có thể bạn cũng hào hứng như chúng tôi? Hãy gửi tin nhắn cho chúng tôi tại [email protected] .


Cũng được xuất bản ở đây.