Chào các độc giả của 2coffee.dev. Tết sắp đến rồi, các bạn đã sắm sửa hay chuẩn bị gì cho mình và gia đình chưa? Theo như tôi thấy có vẻ như càng cuối năm mọi người càng bận rộn. Từ đầu tháng đến giờ lượng truy cập vào blog đã giảm rõ rệt. Điều đó đôi khi khiến tôi phải sốt vó lên vì không biết độc giả của mình đã đi đâu hết. Hoặc là nghỉ tết sớm, hay là chatbot đang quá mạnh, hoặc cũng có thể là do nội dung không còn đủ hấp dẫn nữa 😥
Phải thú thật rằng mấy tuần cuối cùng này tôi luôn trong tâm thế của một người bận rộn, không có nhiều thời gian để viết bài thường xuyên. Chắc là do tính chất công việc, cộng thêm nhiều vấn đề phải lo quá nên là không còn tâm trí để mà thư giãn. Nhưng không sao, ngày hôm nay tôi vừa cấu hình thành công Cloudflare Tunnel kết hợp với Ollama để "public" một địa chỉ API lên mạng Internet - điều mà trước đó mấy tuần chưa làm được. Nghĩ rằng nhiều người sẽ cần nên bắt tay vào viết luôn một bài cho nóng.
Ban đầu tôi định viết thành một bài viết ngắn trong chuyên mục Threads, nhưng nghĩ lại đã quá lâu rồi mình chưa có một bài viết dài nào nên lại thôi. Bạn có tin được không? Một bài viết dài hoàn toàn có thể cô đọng lại chỉ trong vài dòng ngắn ngủi. Ngược lại, một bài viết ngắn chỉ cần "hoa mỹ" lên một chút là sẽ hoá thành một bài văn dài mà nhiều người phải khiếp sợ. Ấy thế tại sao phải cố viết dài ra làm gì?
Chà! Nếu không nói ra thì có thể chẳng ai biết lý do. Viết với tôi như một cách để giải toả căng thẳng. Bằng cách viết, tôi có thể giao lưu với độc giả của mình, hỏi han, tâm sự, hay lồng ghép những câu chuyện, bài học mà bản thân rút ra được. Nói cách khác, viết một phần là để thư giãn, một phần là để giao lưu với tất cả mọi người.
Từ khi ra chuyên mục bài viết ngắn Threads, tôi không ngờ rằng nhiều người quan tâm đến nó như vậy. À mà nói rằng không ngờ thì hơi quá, vì tôi đã nghiên cứu rất nhiều trước khi làm ra tính năng này. "Code" một tính năng thì không khó, cái khó là vận hành nó như thế nào. Threads phải đảm bảo tần suất viết bài không bị ngắt quãng, nếu như lâu lâu mới viết một bài thì liệu rằng có ai hay vào để cập nhật tin tức nữa không chứ? Việc đó vô tình gây ra một áp lực, rằng làm sao để vừa thu thập, vừa tổng hợp được tin tức thú vị và nổi bật trong ngày cho các độc giả. Nhiều hôm bận quá, quên không viết, y như rằng hôm sau phải lên bài bù cho đủ uy tín 😆
Tôi biết rằng có rất nhiều người thích đọc, mà tôi lại là một trong những người thích viết. Đôi khi đọc không phải lúc nào cũng trong tâm thế của người bị "dí deadline", đang trên đường đi tìm giải pháp, hay là học một cái gì đó mới... Tôi tin rằng với nhiều người việc đọc cũng giống như viết vậy: Là để thư giãn. Thư giãn mà có thêm kiến thức, có thêm kinh nghiệm thì quả là một công đôi việc phải không ạ! 😁
Nói hơi nhiều rồi nhỉ, vào vấn đề chính thôi. Hôm nay tôi mới cấu hình thành công Cloudflare Tunnel cùng với Ollama để public một địa chỉ API lên mạng Internet. Từ đó bất kỳ ai cũng gọi được mà không bị bó buộc trong máy chủ cục bộ (localhost) nữa. Sau khi đọc lại tài liệu của Ollama thì hoá ra nó lại đơn giản hơn mình nghĩ!
Nếu chưa biết Cloudflare Tunnel, bạn đọc hãy đọc lại bài viết Thêm một công cụ "Tunnel Locally" - Đưa máy chủ cục bộ lên Internet. Đây là một công cụ giúp chúng ta ánh xạ máy chủ cục bộ lên Internet, đồng nghĩa biến máy tính của bạn thành máy chủ và bất kỳ ai có địa chỉ IP hoặc tên miền đều có thể truy cập vào được.
Ollama là một công cụ giúp chúng ta chạy được một số mô hình ngôn ngữ lớn (LLM) trên máy tính chỉ bằng một câu lệnh duy nhất. Nó giúp đơn giản hoá quá trình cài đặt và sử dụng các mô hình. Điểm nổi bật nhất là hỗ trợ API tương thích với OpenAPI.
Trong bài viết trước đó, tôi có đề cập đến việc tạo một Tunnel thông qua một quy trình 6 bước - hơi dài nhỉ - thực ra Cloudflare Tunnel có cách khởi động nhanh hơn rất nhiều, chỉ cần cài đặt cloudflared
rồi sử dụng một lệnh duy nhất:
$ cloudflared tunnel --url http://localhost:11434
...
Your quick Tunnel has been created! Visit it at (it may take some time to be reachable):
https://tennis-coordination-korea-wv.trycloudflare.com
....
Ngay lập tức bạn sẽ thấy một địa chỉ ngẫu nhiên mà cloudflared
tạo ra. Nó ánh xạ đến địa chỉ http://localhost:11434
trong máy tính. Khi truy cập vào https://tennis-coordination-korea-wv.trycloudflare.com
từ một máy khác, chúng ta thấy kết quả y hệt như truy cập từ http://localhost:11434
trên máy cục bộ.
Ở trên chỉ là ví dụ để ánh xạ bất kỳ cổng (port) nào dưới máy lên Internet, đối với Ollama hoặc nhiều công cụ khác cần phải cấu hình thêm hostname có trong headers. Trong tài liệu Ollama hướng dẫn:
$ cloudflared tunnel --url http://localhost:11434 --http-host-header="localhost:11434"
Sau đó thử gọi API bằng URL mới có. Lưu ý trước đó phải chạy mô hình llama3.2
từ Ollama.
curl https://tennis-coordination-korea-wv.trycloudflare.com/api/generate -d '{
"model": "llama3.2",
"prompt": "Why is the sky blue?"
}'
Tuyệt vời, đến đây mọi thứ đã xong và bạn đã có một địa chỉ API trỏ đến Ollama trong máy chủ cục bộ mà bất kỳ ai cũng có thể truy cập vào được. Tuy nhiên, nếu bạn có một tên miền trong Cloudflare và muốn giữ cố định địa chỉ ví dụ như là api-ollama.2coffee.dev
thì cần cấu hình đủ theo 6 bước.
Rất đơn giản, sau khi làm đến bước 4 trong bài viết Thêm một công cụ "Tunnel Locally" - Đưa máy chủ cục bộ lên Internet, sửa lại nội dung của tệp config.yml như sau:
tunnel: <tunnel-uuid>
credentials-file: path/to/.cloudflared/.json
ingress:
- hostname: api-ollama.2coffee.dev
service: http://localhost:11434
originRequest:
httpHostHeader: "localhost:11434"
- service: http_status:404
Sau đó khởi chạy:
$ cloudflared tunnel run <tunnel-uuid>
Mặc dù cách này có thể giúp bạn tạo ra được một địa chỉ API tương tự như OpenAI của ChatGPT nhưng nó lại có nhiều hạn chế như phụ thuộc vào cấu hình máy và model đang sử dụng, Ollama chỉ xử lý được một truy vấn tại một thời điểm thế nên việc gọi liên tục hay đồng thời sẽ không hiệu quả.
Bí mật ngăn xếp của Blog
Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!
Đăng ký nhận thông báo bài viết mới
Bình luận (0)