Sử dụng Cloudflare Tunnel để public Ollama lên Internet

Sử dụng Cloudflare Tunnel để public Ollama lên Internet

Tin ngắn hàng ngày dành cho bạn
  • Cũng giống như 12 Days of OpenAI - một chuỗi sự kiện diễn ra trong 12 ngày liên tiếp của OpenAI, mỗi ngày họ sẽ giới thiệu một công cụ "đột phá", và cứ như thế.

    DeepSeek đã bắt "trend" ngay sau đó với chuỗi 202502 Open-Source Week diễn ra ngay trong tuần sau. Mỗi ngày họ sẽ công bố một công cụ mã nguồn mở, trái được hoàn toàn với tính "Open" của AI. Chúng ta hãy chờ xem họ mang đến những dự án thú vị nào nhé 🤓. Chắc sẽ hấp dẫn lắm đây vì ai cũng biết từ lúc ra mô hình R1, Deepseek đã chiếm trọn tin tức nổi bật trên toàn thế giới.

    » Xem thêm
  • Grok 3 beta vừa ra mắt và cho mọi người dùng thử miễn phí có giới hạn số lần trong ngày (tài khoản trả phí hình như được dùng nhiều hơn). Trong đó có 2 tính năng nổi bật là Think và DeepSearch.

    Think thì chắc ai cũng biết hoặc dùng ở một số mô hình suy luận như ở ChatGPT rồi. Còn DeepSearch thì mới hơn, gõ điều bạn muốn vào thì nó sẽ tự lên mạng tìm kiếm thông tin rồi tổng hợp lại kết quả mà nó tìm thấy được. Khá hay nhưng chắc để tham khảo hoặc muốn tổng hợp thông tin nhanh chóng thôi chứ vẫn nên tự mình tìm kiếm thông tin 😅

    » Xem thêm
  • Có 2 phần mềm tiện ích cho Mac mà mỗi khi dùng máy Mac Mini hoặc Macbook có cắm thêm màn hình rời, thêm bàn phím với chuột nữa là BetterDisplayMac Mouse Fix. Đi qua từng cái nhé!

    BetterDisplay giúp tinh chỉnh kích thước của màn hình rời để đạt độ phân giải HiDPI. Như bạn biết Mac khá kén màn hình và tuỳ chọn độ phân giải trong cài đặt mặc định rất ít ỏi, nên BetterDisplay cung cấp nhiều lựa chọn phù hợp hơn.

    Cái thứ hai là Mac Mouse Fix, nếu dùng chuột ngoài bạn sẽ thấy nó cuộn không giống với Trackpad của Macbook cho lắm. Điều kì diệu xảy ra khi cài phần mềm này vào. Nó thêm hiệu ứng "smooth" và giúp cuộn chuột y như cuộn bằng Trackpad luôn. Thật thần kỳ.

    » Xem thêm

Vấn đề

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ĩ!

Cloudflare Tunnel & Ollama

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.

Giữ tên miền cố định

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ả.

Cao cấp
Hello

Tôi & khao khát "chơi chữ"

Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (1)

Nội dung bình luận...
Avatar
Ẩn danh2 tuần trước
hay bạn, đúng cái mình đang cần, many thanks
Trả lời
Avatar
Xuân Hoài Tống2 tuần trước
Rất vui vì nó giúp ích được cho bạn 🙏