Xây Dựng CLI Hỗ Trợ AI với Golang và Google Gemini
Trong bài viết này, tôi muốn chia sẻ một chủ đề thú vị liên quan đến việc xây dựng một Command Line Interface (CLI) hỗ trợ trí tuệ nhân tạo (AI) bằng cách sử dụng ngôn ngữ lập trình Golang và API Google Gemini. Nếu bạn là người đam mê công nghệ và muốn khám phá khả năng của AI trong việc tương tác qua CLI, bài viết này sẽ rất hữu ích cho bạn.
Giới Thiệu Về Golang
Nếu bạn chưa biết về Golang, là một ngôn ngữ lập trình mạnh mẽ được phát triển bởi Google, bạn có thể tìm hiểu thêm qua bài viết "Golang là gì?" để hiểu rõ hơn về lý do tại sao nên chọn ngôn ngữ này cho các dự án của bạn.
Bắt Đầu Xây Dựng CLI
Tác giả Pradumna Saraf đã bắt tay vào việc phát triển một CLI có tên là GenCLI, cho phép người dùng gửi câu hỏi dưới định dạng văn bản hoặc hình ảnh và nhận thông tin chi tiết. Trong hướng dẫn này, chúng ta sẽ làm theo các bước để xây dựng CLI với Golang và Google Gemini.
Điều Kiện Tiên Quyết
- Bạn cần có kiến thức căn bản về Golang.
- Đã thử nghiệm với gói Cobra để tạo CLI.
Tạo Dự Án Mới
Đầu tiên, tạo một thư mục cho dự án của bạn và mở nó trong IDE hoặc editor yêu thích. Tôi sẽ sử dụng VS Code và đặt tên thư mục là go-ai
. Khởi tạo dự án bằng lệnh sau:
go mod init github.com/Pradumnasaraf/go-ai
Khi bạn đã thực hiện xong, file go.mod
sẽ được tạo ra.
Cài Đặt Gói Cobra
Để tăng tốc quá trình xây dựng CLI, chúng ta sẽ sử dụng gói Cobra. Cài đặt bằng lệnh:
go install github.com/spf13/cobra-cli@latest
Sau khi cài đặt, kiểm tra bằng cách gõ cobra-cli
trong terminal để xem danh sách các lệnh. Tiếp theo, khởi tạo dự án Cobra bằng lệnh:
cobra-cli init
Kết Nối với Google Gemini API
Để sử dụng API của Google Gemini, trước tiên bạn cần cài đặt gói generative-ai-go
:
go get github.com/google/generative-ai-go
Đừng quên tạo một biến môi trường cho API Key của bạn. Truy cập vào AI Studio để lấy API Key miễn phí trong vòng 30 giây. Thiết lập biến môi trường:
export GEMINI_API_KEY=<YOUR_API_KEY>
Thêm Lệnh Phụ cho CLI
Thay vì viết logic trực tiếp vào file root.go
, hãy thêm một lệnh phụ mới cho CLI:
cobra-cli add search
Tích Hợp API và Gọi Hàm
Tiếp theo, chúng ta sẽ tích hợp API Google Gemini để phản hồi với người dùng. Đầu tiên, nhập các gói cần thiết:
import (
"context"
"fmt"
"log"
"os"
"strings"
"github.com/google/generative-ai-go/genai"
"github.com/spf13/cobra"
"google.golang.org/api/option"
)
Thêm hàm getResponse
để giao tiếp với API và in ra phản hồi:
func getResponse(args []string) {
userArgs := strings.Join(args[0:], " ")
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
model := client.GenerativeModel("gemini-1.5-flash")
resp, err := model.GenerateContent(ctx, genai.Text(userArgs))
if err != nil {
log.Fatal(err)
}
fmt.Println(resp.Candidates[0].Content.Parts[0])
}
Kiểm Tra và Hoàn Thiện
Chạy lại CLI với lệnh go run main.go search <prompt>
để xem phản hồi từ API dựa trên câu hỏi bạn nhập vào. Đảm bảo bạn nhập vào đúng định dạng và có ít nhất một đối số.
Xuất Bản Gói CLI
Cuối cùng, để chia sẻ CLI, hãy đẩy mã nguồn lên GitHub và yêu cầu thêm gói vào trang pkg.go.dev. Khi mọi thứ đã hoàn thành, bạn có thể cài đặt gói CLI bằng cách sử dụng lệnh:
go install github.com/Pradumnasaraf/go-ai@latest
Kết Luận
Như vậy, bạn đã hoàn thành việc xây dựng một CLI hỗ trợ AI với Golang và Google Gemini. Điều này không chỉ mở ra cánh cửa cho bạn khám phá AI mà còn giúp bạn mài giũa kỹ năng lập trình của mình một cách hiệu quả. Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại để lại lời nhắn hoặc phản hồi. Cảm ơn bạn đã theo dõi bài viết này!
source: viblo