發佈日期:

AI技術於3D模型領域的應用

Meshy – 線上圖片轉3D模型fbx檔案

網站: https://www.meshy.ai/

Meshy 是您的 3D 生成式 AI 工具箱,用於輕鬆從文本或圖像創建 3D 資產,從而加速您的 3D 工作流程。使用 Meshy,您可以在幾分鐘內創建高品質的紋理和 3D 模型。

Meshy的功能

Meshy是一個創新的 3D 模型生成平台,提供以下強大的功能

文字轉紋理 (Text-to-Texture):

  • 透過簡單的文字描述,快速生成符合要求的紋理。
  • 例如:輸入「磨損的木頭紋理」,Meshy 能夠在短時間內生成逼真的木頭紋理。

圖片轉紋理 (Image-to-Texture):

  • 將概念圖或參考圖片轉換成可套用的 3D 模型紋理。
  • 這對於藝術家和設計師來說,能大幅提升工作效率。

文字轉 3D 模型 (Text-to-3D):

  • 僅需一段文字描述,就能生成完整的 3D 模型。
  • 即使沒有 3D 建模經驗,也能輕鬆創造出想要的模型。

圖片轉 3D 模型 (Image-to-3D):

  • 這對於將 2D 概念快速轉換成 3D 模型非常有用。
  • 從單張圖片中提取 3D 資訊,生成具體的 3D 模型。

探索社區資源

社區資源: https://docs.meshy.ai/web-app-interface#explore-community-resources

嘗試使用圖片產生3D模型

操作網址: https://www.meshy.ai/workspace/image-to-3d

操作非常的簡單,可直接按最右邊的下載來下載fbx檔案

發佈日期:

Stable Diffusion常用操作介面

Easy Diffusion

下載位置: https://easydiffusion.github.io/

特色:

  • 簡易操作: 介面直觀,即使是新手也能快速上手。
  • 模型豐富: 支援多種模型,可根據需求選擇。
  • 擴充性強: 可透過外掛擴展功能。

優點:

  • 學習曲線平緩,適合初學者。
  • 功能齊全,能滿足大部分的繪圖需求。

缺點:

相較於其他工具,客製化選項可能較少。

ComfyUI

下載位置: https://github.com/comfyanonymous/ComfyUI

特色:

  • 高度客製化: 提供極高的自由度,可打造專屬的工作流程。
  • 功能強大: 除了繪圖,還能進行影像處理、動畫製作等。
  • 社群活躍: 有龐大的社群提供支援和資源。

優點:

  • 適合有經驗的使用者,可實現複雜的創作。
  • 功能多樣,能滿足專業人士的需求。

缺點:

  • 配置較為複雜。
  • 學習曲線較陡峭,需要花時間熟悉。

Stable Diffusion web UI

下載位置: https://github.com/AUTOMATIC1111/stable-diffusion-webui

特色:

  • 基於瀏覽器: 不需安裝軟體,直接在瀏覽器中使用。
  • 社群豐富: 有大量的模型和腳本可供選擇。
  • 擴充性強: 可透過擴充套件增加功能。

優點:

  • 使用門檻低,適合初學者。
  • 功能豐富,能滿足多種需求。

缺點:

相較於本地端軟體,速度可能較慢。

安裝指南

最終我選擇Stable Diffusion web UI,因為教學文章最多

發佈日期:

Dify:開源大語言模型應用開發平台

在人工智能快速發展的今天,大語言模型(LLM)已成為推動創新的核心力量。然而,如何有效地將這些強大的模型轉化為實用的AI應用,仍然是許多開發者和企業面臨的挑戰。這就是Dify發揮作用的地方,它作為一個開源的LLM應用開發平台,為我們提供了一個便捷的解決方案。

Dify:打造AI應用的全能工具箱

Dify不僅僅是一個開發平台,它更像是一個為LLM應用量身打造的全能工具箱。通過Dify,開發者可以輕鬆設計對話式AI、優化提示詞工程、管理知識庫,並實現無縫的API集成。這些功能的組合使得從概念到部署的整個AI應用開發過程變得更加流暢和高效。

對話式AI設計:打造個性化交互體驗

Dify的核心優勢之一是其強大的對話式AI設計功能。通過直觀的界面,開發者可以輕鬆定制AI助手的個性、知識範圍和回應方式。這使得創建符合特定需求的AI應用變得前所未有的簡單,無論是客戶服務機器人還是專業領域的智能顧問。

提示詞工程:釋放LLM的潛力

在LLM應用開發中,提示詞工程扮演著關鍵角色。Dify提供了先進的提示詞管理和優化工具,幫助開發者精確控制AI的輸出。通過細緻調整提示詞,我們可以顯著提升AI應用的性能和準確性,確保它能夠準確理解用戶意圖並提供恰當的回應。

知識庫管理:為AI注入專業知識

Dify的知識庫管理功能允許開發者輕鬆導入和組織大量專業資料。這意味著我們可以為AI應用注入特定領域的知識,使其能夠處理更複雜、更專業的查詢。無論是法律諮詢、醫療診斷還是技術支持,Dify都能幫助我們構建具有深度專業知識的AI系統。

API集成:無縫連接各種服務

為了確保開發的AI應用能夠與現有系統和服務無縫協作,Dify提供了強大的API集成能力。這使得將AI功能嵌入到各種應用程序和平台中變得異常簡單,大大擴展了LLM應用的可能性和實用性。

Dify介面介紹

Dify 的關鍵特性

Dify 內建了建立 LLM 應用所需的關鍵技術棧,包括:

  • 支援數百個模型:提供多樣的模型選擇,滿足不同應用需求。
  • 直覺的 Prompt 編排介面:簡單易用,讓你輕鬆設計和調整提示語。
  • 高品質的 RAG 引擎:確保數據處理的準確性和效率。
  • 穩健的 Agent 框架:靈活配置和管理代理機器人。
  • 靈活的流程編排:支援複雜流程的設計和自動化。

這些特性使得開發者可以節省大量重複造輪子的時間,專注於創新和業務需求。

支持模型類型

在Dify 中,我們依照模型的使用情境將模型分為以下4 類:

  1. 系統推理模型。 在創建的應用中,用的是該類型的模型。智聊、對話名稱產生、下一步問題建議用的也是推理模型。已支援的系統推理模型供應商:OpenAIAzure OpenAI ServiceAnthropic、Hugging Face Hub、Replicate、Xinference、OpenLLM、訊飛星火文心一言通義千問Minimax、ZHIPU(ChatGLM)
  2. Embedding 模型。在資料集中,將分段過的文件做Embedding 用的是該類型的模型。在使用了資料集的應用程式中,將使用者的提問做Embedding 處理也是用的該類型的模型。已支援的Embedding 模型供應商:OpenAI、ZHIPU(ChatGLM)、JinaAI
  3. Rerank 模型 Rerank 模型用於增強檢索能力,改善LLM 的搜尋結果。已支援的Rerank 模型供應商:Cohere、JinaAI
  4. 語音轉文字模型。將對話型應用中,將語音轉文字用的是該類型的模型。已支援的語音轉文字模型供應商:OpenAI

為什麼選擇 Dify?

你可以將 Dify 與 LangChain 這類的開發庫做比較。LangChain 是一個提供鐵鎚和釘子的工具箱,而 Dify 則是一套經過精良工程設計和軟體測試的完整腳手架方案。

以下是選擇 Dify 的幾個主要理由:

  • 開源:由專業全職團隊和社群共同打造,提供靈活和安全的解決方案,同時保持對資料的完全控制。
  • 快速迭代:產品簡單、克制且迭代迅速,滿足用戶需求。
  • 生產級方案:提供接近生產需求的完整方案,節省開發時間和資源。

使用 Dify 的優勢

Dify 讓你基於任何模型自部署類似 Assistants API 和 GPTs 的能力,確保在靈活和安全的基礎上,對資料保持完全控制。這對於那些希望快速開發和部署生成式 AI 應用的團隊和個人來說,是一個理想選擇。

創業者的理想工具

Dify 可以幫助創業者快速將 AI 應用創意變成現實,無論是成功還是失敗,都需要加速推進。在真實世界中,已有數十個團隊透過 Dify 建立 MVP(最小可用產品)獲得投資,或透過 POC(概念驗證)贏得了客戶的訂單。

整合 LLM 至現有業務

Dify 使得將 LLM 增強現有應用變得簡單。透過 Dify 的 RESTful API,可以實現 Prompt 與業務程式碼的解耦。此外,Dify 的管理介面可以追蹤資料、成本和用量,持續改進應用效果,從而提升業務能力。

企業級 LLM 基礎設施

一些銀行和大型網路公司正在將 Dify 部署為企業內的 LLM 網關,加速 GenAI 技術在企業內的推廣,並實現中心化的監管。這使得 Dify 成為企業級應用的理想選擇,提供穩定、安全的 LLM 基礎設施。

探索 LLM 的能力邊界

即使你是技術愛好者,Dify 也能幫助你輕鬆實踐 Prompt 工程和 Agent 技術。在 GPTs 推出以前,已有超過 60,000 名開發者在 Dify 上創建了自己的第一個應用,展示了其在技術探索中的強大潛力。

Dify 開源許可證

Dify 專案在Apache License 2.0 授權下開源,同時包含以下附加條件:

Dify 允許被用於商業化,例如作為其他應用的「後端即服務」使用,或作為應用程式開發平台提供給企業。然而,當滿足以下條件時,必須聯繫生產者以獲得商業許可:

  • 多租戶SaaS 服務:除非獲得Dify 的明確書面授權,否則不得使用Dify.AI 的源碼來運作與Dify.AI 服務版類似的多租戶SaaS 服務。
  • LOGO 及版權資訊:在使用Dify 的過程中,不得移除或修改Dify 控制台內的LOGO 或版權資訊。

更多教學資源

官方的教學文件非常完整

https://docs.dify.ai/v/zh-hans/guides/model-configuration

對於擴充以及API支持非常的完整

https://docs.dify.ai/v/zh-hans/guides/application-publishing/developing-with-apis

發佈日期:

RagFlow深度文檔理解的新境界

RAGFlow的核心優勢在於其強大的深度文檔理解能力。通過結合先進的自然語言處理技術和大型語言模型,RAGFlow能夠深入解析各種複雜格式的文檔,包括PDF、Word和PowerPoint等。這種深度理解使得AI系統能夠更準確地回答用戶查詢,大大提升了問答系統的性能。

特性介紹

基於深度文檔理解,我們的系統能夠從各類複雜格式的非結構化資料中提取真知灼見,在無限上下文的場景下快速完成大海撈針測試。通過模板的文字切片技術,不僅智能而且可控可解釋,提供多種範本選擇並可視化調整。系統支援多種文件類型,包括Word、PPT、Excel、TXT、圖片、PDF、影印件等,全面優化的RAG工作流程能夠滿足從個人應用到超大型企業的需求,並提供易用的API,方便整合各類企業系統,最大程度降低幻覺風險,確保答案有理有據。

系統架構

畫面介紹

以下為登入畫面

模型設定介紹

在這邊設定要使用的模型的Token或者連線至本地端的Ollama,在這邊要注意的是,如果你的Ragflow是用docker起的,那麼就一定也要把ollama起在docker裡面,彼此才連線的到,不然就是要透過公開網址

知識庫設定介紹

接著可以來新增知識庫

在設定知識庫的解析方式時,設定正確的選項非常重要,如果你上傳的文件屬於純文字PDF,則要記得把layout recognize關掉

以下為純文字檔案卻打開layout recognize的解析狀況

沒有打開則可以正常解析全部的純文字內容

如果要解析的是圖檔、POWERPOINT這種需要先解析layout的,則應打開layout recognize,以下為需要打開layout recognize的一個範例,這個PDF的檔案皆為圖像,是使用OCR去判斷上面的文字的

聊天功能介紹

這邊有點類似GPT Plus的功能,可以設定很多不同的聊天助理,並且可以附註搜尋到的檔案的文本,也可以針對每一個聊天助理設定要搜尋的知識庫

圖功能介紹

我們可以在這邊客製化聊天的流程,做更進一步的機器人的進階設定,預設有下面這些不同的流程

可設定的元件包括知識檢索、生成回答、人機交互、問題分類、靜態訊息、是否相關、問題最佳化,並且可以直接運行來測試

每一個元件都可以設定使用的模型和相關提示

預設的客服的流程,有點可怕,如果知識庫裡面沒有相關的文件,就會無限迴圈耶:D

文件管理介紹

從這邊可以看到我們上傳的所有文件的檔案夾

發佈日期:

RAGFlow: 檢索增強生成的開源引擎

在人工智能和自然語言處理領域,檢索增強生成(RAG)技術正在迅速崛起。RAGFlow作為一個開源的RAG引擎,為開發者和企業提供了一個強大的工具,以提升AI應用的問答能力和資訊檢索精準度。本文將深入探討RAGFlow的核心功能和應用場景,幫助您了解如何利用這一創新技術打造先進的NLP解決方案。

RAGFlow: 深度文檔理解的新境界

RAGFlow的核心優勢在於其強大的深度文檔理解能力。通過結合先進的自然語言處理技術和大型語言模型,RAGFlow能夠深入解析各種複雜文檔,提取關鍵信息,並建立語義連接。這使得AI系統能夠更準確地理解和回答用戶查詢,大大提升了問答系統的性能。

知識庫管理: 智能化的資訊組織

RAGFlow提供了全面的知識庫管理功能,使得組織和更新大量資訊變得簡單高效。通過智能分類和索引技術,RAGFlow能夠自動組織和關聯不同來源的資料,建立一個結構化的知識網絡。這不僅提高了資訊檢索的效率,還為AI應用提供了豐富的背景知識,使其能夠生成更加準確和相關的回答。

大型語言模型集成: 釋放AI的潛力

RAGFlow無縫集成了多種大型語言模型,如GPT系列,使得開發者可以輕鬆利用這些強大的AI模型來增強自己的應用。通過結合RAG技術和大型語言模型,RAGFlow能夠生成更加準確、相關和富有洞察力的回答,大大提升了AI系統的表現。

RAGFlow的應用場景

RAGFlow的靈活性使其適用於多種場景:

  1. 智能客服系統: 利用RAGFlow的深度文檔理解能力,企業可以構建更智能的客服機器人,能夠準確回答複雜的產品和服務相關問題。
  2. 研究輔助工具: 研究人員可以使用RAGFlow快速分析大量學術文獻,提取關鍵信息,並生成研究摘要。
  3. 法律文檔分析: 法律專業人士可以利用RAGFlow深入解析複雜的法律文件,快速找到相關案例和條款。
  4. 個人知識管理: 個人用戶可以使用RAGFlow建立自己的知識庫,實現高效的個人信息管理和學習。

線上測試RAGFlow

RAGFlow是一款基於深度文件理解所建構的開源RAG(Retrieval-Augmented Generation)引擎。 RAGFlow 可以為各種規模的企業及個人提供一套精簡的RAG 工作流程,結合大語言模型(LLM)針對用戶各類不同的複雜格式數據提供可靠的問答以及有理有據的引用。

線上DEMO網址: https://demo.ragflow.io.

安裝方式

如需確認vm.max_map_count的大小:

sysctl vm.max_map_count

如果vm.max_map_count的值小於262144,可以進行重設:

# 設為 262144:
sudo sysctl -w vm.max_map_count=262144

你的改動會在下次系統重新啟動時被重置。如果希望做永久改動,還需要在/etc/sysctl.conf檔案裡把vm.max_map_count的值再相應更新一次:

vm.max_map_count=262144

下載程式

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
chmod +x ./entrypoint.sh

直接啟動會顯示不支持MACOS,且無法設定環境變數include:env_file: ./.env因此對於內容有稍作修改,改成如下

以下為docker-compose-CN.yml

services:
   ragflow:
    depends_on:
      mysql:
        condition: service_healthy
      es01:
        condition: service_healthy
    image: swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:${RAGFLOW_VERSION}
    container_name: ragflow-server
    ports:
      - ${SVR_HTTP_PORT}:9380
      - 80:80
      - 443:443
    volumes:
      - ./service_conf.yaml:/ragflow/conf/service_conf.yaml
      - ./ragflow-logs:/ragflow/logs
      - ./nginx/ragflow.conf:/etc/nginx/conf.d/ragflow.conf
      - ./nginx/proxy.conf:/etc/nginx/proxy.conf
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    environment:
      - MINIO_CONSOLE_PORT=9001
      - MINIO_PORT=9000
      - MINIO_USER=rag_flow
      - MINIO_PASSWORD=infini_rag_flow
      - REDIS_PORT=6379
      - REDIS_PASSWORD=infini_rag_flow
      - SVR_HTTP_PORT=9380
      - RAGFLOW_VERSION=dev
      - MEM_LIMIT=8073741824
      - KIBANA_PORT=6601
      - ELASTIC_PASSWORD=infini_rag_flow
      - STACK_VERSION=8.11.3
      - ES_PORT=1200
      - MYSQL_PASSWORD=infini_rag_flow
      - MYSQL_PORT=5455
      - TZ='Asia/Shanghai'
      - HF_ENDPOINT=https://hf-mirror.com
    networks:
      - ragflow
    network_mode: host
    restart: always

以下為docker-compose-base.yml

services:
  es01:
    container_name: ragflow-es-01
    image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
    volumes:
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - ${ES_PORT}:9200
    environment:
      - MINIO_CONSOLE_PORT=9001
      - MINIO_PORT=9000
      - MINIO_USER=rag_flow
      - MINIO_PASSWORD=infini_rag_flow
      - REDIS_PORT=6378
      - REDIS_PASSWORD=infini_rag_flow
      - SVR_HTTP_PORT=9380
      - RAGFLOW_VERSION=dev
      - TIMEZONE=Asia/Shanghai
      - MEM_LIMIT=8073741824
      - KIBANA_PORT=6601
      - ELASTIC_PASSWORD=infini_rag_flow
      - STACK_VERSION=8.11.3
      - ES_PORT=1200
      - MYSQL_PASSWORD=infini_rag_flow
      - MYSQL_PORT=5455
      - node.name=es01
      - bootstrap.memory_lock=false
      - discovery.type=single-node
      - xpack.security.enabled=true
      - xpack.security.http.ssl.enabled=false
      - xpack.security.transport.ssl.enabled=false
      - TZ=${TIMEZONE}
    mem_limit: ${MEM_LIMIT}
    ulimits:
      memlock:
        soft: -1
        hard: -1
    healthcheck:
      test: ["CMD-SHELL", "curl http://localhost:9200"]
      interval: 10s
      timeout: 10s
      retries: 120
    networks:
      - ragflow
    network_mode: host
    restart: always

  mysql:
    image: mysql:5.7.18
    container_name: ragflow-mysql
    environment:
      - MINIO_CONSOLE_PORT=9001
      - MINIO_PORT=9000
      - MINIO_USER=rag_flow
      - MINIO_PASSWORD=infini_rag_flow
      - REDIS_PORT=6378
      - REDIS_PASSWORD=infini_rag_flow
      - SVR_HTTP_PORT=9380
      - RAGFLOW_VERSION=dev
      - TIMEZONE=Asia/Shanghai
      - MEM_LIMIT=8073741824
      - KIBANA_PORT=6601
      - ELASTIC_PASSWORD=infini_rag_flow
      - STACK_VERSION=8.11.3
      - ES_PORT=1200
      - MYSQL_PASSWORD=infini_rag_flow
      - MYSQL_PORT=5455
      - MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
      - TZ=${TIMEZONE}
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
      --tls_version="TLSv1.2,TLSv1.3"
      --init-file /data/application/init.sql
    ports:
      - ${MYSQL_PORT}:3306
    volumes:
      - mysql_data:/var/lib/mysql
      - ./init.sql:/data/application/init.sql
    networks:
      - ragflow
    network_mode: host
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}"]
      interval: 10s
      timeout: 10s
      retries: 3
    restart: always

  minio:
    image: quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
    container_name: ragflow-minio
    command: server --console-address ":9001" /data
    ports:
      - ${MINIO_PORT}:9000
      - ${MINIO_CONSOLE_PORT}:9001
    environment:
      - MINIO_CONSOLE_PORT=9001
      - MINIO_PORT=9000
      - MINIO_USER=rag_flow
      - MINIO_PASSWORD=infini_rag_flow
      - REDIS_PORT=6378
      - REDIS_PASSWORD=infini_rag_flow
      - SVR_HTTP_PORT=9380
      - RAGFLOW_VERSION=dev
      - TIMEZONE=Asia/Shanghai
      - MEM_LIMIT=8073741824
      - KIBANA_PORT=6601
      - ELASTIC_PASSWORD=infini_rag_flow
      - STACK_VERSION=8.11.3
      - ES_PORT=1200
      - MYSQL_PASSWORD=infini_rag_flow
      - MYSQL_PORT=5455
      - MINIO_ROOT_USER=${MINIO_USER}
      - MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}
      - TZ=${TIMEZONE}
    volumes:
      - minio_data:/data
    networks:
      - ragflow
    network_mode: host
    restart: always

  redis:
    image: redis:7.2.4
    container_name: ragflow-redis
    command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lru
    ports:
      - 6379:6379
    volumes:
      - redis_data:/data
    networks:
      - ragflow
    network_mode: host
    restart: always

volumes:
  esdata01:
    driver: local
  mysql_data:
    driver: local
  minio_data:
    driver: local
  redis_data:
    driver: local

networks:
  ragflow:
    driver: bridge

同時啟動兩個docker-compose

docker-compose -f docker-compose-base.yml -f docker-compose-CN.yml up -d

可看到啟動成功

接著打開127.0.0.1就可以創建帳號並登入了

發佈日期:

開源RAG網頁套件研究

open-webui

Github位置: https://github.com/open-webui/open-webui

工具介紹

Open WebUI 是一種可擴展、功能豐富且使用者友好的自託管 WebUI,旨在完全離線運行。它支援各種LLM運行器,包括 Ollama 和 OpenAI 相容的 API。有關更多資訊,請查看: https://docs.openwebui.com/

主要功能

  • Ollama/OpenAI API 集成:毫不費力地集成與 OpenAI 相容的 API,以實現與 Ollama 模型一起進行的多功能對話。自定義 OpenAI API URL 以連結到 LMStudio、GroqCloud、Mistral、OpenRouter 等。
  • Pipelines、Open WebUI 外掛程式支援:使用 Pipelines 外掛程式框架將自定義邏輯和 Python 庫無縫集成到 Open WebUI 中。啟動您的 Pipelines 實例,將 OpenAI URL 設置為 Pipelines URL,並探索無限的可能性。示例包括函數調用、用於控制訪問的用戶速率限制、使用 Langfuse 等工具進行使用監控、使用 LibreTranslate 進行即時翻譯以實現多語言支援、有毒消息過濾等等。
  • 網頁,支持PWA、回應式設計:在台式電腦、筆記型電腦和行動裝置上享受無縫體驗。
  • 免提語音/視頻通話:通過集成的免提語音和視頻通話功能體驗無縫通信,從而實現更加動態和互動的聊天環境。
  • 模型生成器:通過 Web UI 輕鬆創建 Ollama 模型。通過 Open WebUI 社區集成,輕鬆創建和添加自定義角色/代理、自定義聊天元素和導入模型。
  • 本機 Python 函數調用工具:通過工具工作區中的內置代碼編輯器支援來增強您的LLMs功能。只需添加純 Python 函數,即可自帶函數 (BYOF),從而實現與LLMs的無縫集成。
  • 本地RAG整合:通過突破性的檢索增強生成 (RAG) 支援,深入瞭解聊天交互的未來。此功能將文檔交互無縫集成到您的聊天體驗中。您可以將文件直接載入到聊天中或將檔案添加到文件庫中,在查詢之前使用 # 命令輕鬆訪問它們。
  • RAG 的 Web 搜尋:使用 SearXNG 、 Google PSE 、 Brave Search 、 serpstack、serper、Serply、DuckDuckGo 和 TavilySearch 等提供程式執行 Web 搜尋,並將結果直接注入到您的聊天體驗中。
  • Web 瀏覽功能:使用後跟URL的命令將網站無縫集成到您的聊天體驗中。此功能允許您將 Web 內容直接合併到您的對話中,從而增強交互的豐富性和深度。
  • 圖像生成集成:使用 AUTOMATIC1111 API 或 ComfyUI(本地)和 OpenAI 的 DALL-E(外部)等選項無縫整合圖像生成功能,通過動態視覺內容豐富您的聊天體驗。
  • 多種模型對話:毫不費力地同時與各種模型互動,利用它們的獨特優勢獲得最佳回應。通過並行利用一組不同的模型來增強您的體驗。
  • 基於角色的訪問控制 (RBAC):確保具有受限許可權的安全訪問;只有經過授權的個人才能訪問您的Ollama,並且為管理員保留了獨佔的模型創建/拉取許可權。

Hollama

Github位置: https://github.com/fmaclen/hollama

線上DEMO: https://hollama.fernando.is

用於與 Ollama 伺服器通訊的最小 Web UI。

主要功能

  • 具有代碼編輯器功能的大型prompt輸入框
  • Markdown 解析,帶語法高亮顯示
  • 輕鬆將 Markdown 複製為原始文字
  • 可自定義的系統提示
  • 保存瀏覽器上 localStorage 的所有更改
  • 桌面和移動友好的佈局
  • 淺色和深色主題
  • 支持重新產出答案以及流式輸出

LoLLMs Webui

LoLLMs Webui是一個基於Web的用戶介面,用來運行和管理大型語言模型(Large Language Models,簡稱LLMs)。它提供了一個友好的界面,讓使用者能夠輕鬆地與各種大型語言模型互動,進行文本生成、對話、翻譯等操作。這個Webui通常用於研究和開發人員,需要處理自然語言處理任務的專業人員,或任何對語言模型有興趣的人。

lollms v6 支持文本生成,例如自動寫詩,並允許用戶在「遊樂場」應用中測試不同的文本完成任務。此外,用戶可以進行討論和創建自定義預設以應對特定任務。

主要功能

  1. 模型選擇:允許使用者選擇和切換不同的語言模型。
  2. 文本生成:根據用戶輸入的提示生成文本。
  3. 對話系統:進行類似於聊天機器人的對話。
  4. 多語言支持:支持多種語言的文本生成和翻譯。
  5. 性能監控:提供模型運行的性能數據和使用統計。
  6. 擴展和自定義:允許用戶添加自定義模型和擴展功能。

BionicGPT

Github頁面: https://github.com/bionic-gpt/bionic-gpt

BionicGPT 是 ChatGPT 的本地替代品,提供生成式 AI 的優勢,同時保持嚴格的數據機密性 BionicGPT 可以在您的筆記型電腦上運行或擴展到數據中心。

主要功能

  • 在幾秒鐘內本地運行 Gen AI:嘗試我們的 Docker Compose 安裝,適合本地運行 AI 和小型試點項目。
  • 熟悉的聊天體驗:我們的聊天介面借鑒了 ChatGPT,確保使用者友好的體驗。仿生主題完全可定製,提供快速回應的性能,並支援聊天記錄管理。
  • AI 助手(檢索增強產生):用戶可以創建使用自己的數據來增強 AI 的助手,並在團隊中無縫共享。助手是企業級 RAG 管道,支援多種格式文件,並可通過 UI 進行無代碼配置。
  • 團隊功能:Bionic 利用團隊設置最大化效果,支持邀請和管理團隊成員。用戶可以在團隊之間切換,保持數據隔離,並使用 SSO 系統配置訪問權限。
  • 縱深防禦安全:我們的 CI/CD 管道運行 SAST 測試,並在 Postgres 中使用行級別安全性。內容安全策略處於最高級別,容器構建和運行具備安全保障,並支持 SIEM 集成和機密管理。
  • 可觀察性和報告:與 Prometheus 相容的可觀測性 API,使用 Grafana 創建儀錶板,所有問題和回復都記錄在 Postgres 資料庫中。
  • 令牌使用限制和控制:設置令牌使用限制,保護模型不過載,通過反向代理和角色基於限制確保公平使用。
  • 將 AI 助手轉變為 API:任何助手都可以轉換為相容 Open AI 的 API,並支持 API 金鑰管理和限制。
  • 使用 GuardRails 管理數據治理:將規則應用於批量和流式數據管道,抵禦立即注射攻擊等多種威脅。
  • 本地或遠端大型語言模型:支援在本地或數據中心運行的開源模型,支持多模型管理和無縫切換。
  • 基於角色的訪問控制:根據 IAM 系統中的角色授予或限制功能訪問權限,確保數據安全。
  • 數據集成:通過 Airbyte 集成,批量上傳數據,並支援手動上傳和即時數據捕獲,確保數據不洩露。
  • 部署到裸機或雲端:使用 Kubernetes 無縫安裝,定期更新和引入新功能以改進 Bionic。

LibreChat

LibreChat 將助理 AI 的未來與 OpenAI 的 ChatGPT 的革命性技術相結合。相容遠端和本地 AI 服務:groq, Ollama, Cohere, Mistral AI, Apple MLX, koboldcpp, OpenRouter, together.ai, Perplexity, ShuttleAI, and more

RAG API: github.com/danny-avila/rag_api

主要功能

  1. 語音轉文字和文字轉語音功能:用戶可以透過語音與系統互動,系統能夠識別語音並回應,也能將文字信息轉換為語音輸出。
  2. 共享連結功能:允許用戶創建訊息的共享連結,並將共享訊息在創建時固定,確保即使後來有新訊息添加,共享的內容也不會變更。更新共享訊息只需重新生成連結。
  3. 電子郵件驗證和密碼重設:增加註冊和登入的安全性,用戶可以通過驗證電子郵件地址來保護帳戶安全,並支持通過電子郵件重設密碼。
  4. 搜索功能增強:改進了搜索功能,使用戶更容易在聊天記錄中找到特定的信息。
  5. 初步支持 OpenAI 助理 V2:包括支持 GPT-4.0,原生圖像視覺支持,以及由 LibreChat 支持的圖像和代碼解釋功能。
  6. 增強的隱私保護:用戶可以設定只顯示自己創建或沒有作者的助理,這在使用共享 API 密鑰的環境中尤為重要,以防止用戶間的信息洩露。
  7. LDAP 支持:支持輕量級目錄訪問協議(LDAP)服務器認證,方便組織管理對 LibreChat 的訪問。
  8. 可以從 LibreChat、ChatGPT、Chatbot UI 導入對話

LLMStack

LLMStack 是一個強大的生成式 AI 平台,旨在簡化 AI 應用的構建和部署。無需編寫任何代碼,您就可以構建多種 AI 代理,並將它們連接到您的內部或外部工具,進行網頁搜索或互聯網瀏覽。這是一個專為現代業務需求設計的全面解決方案。

主要功能

  • 代理:構建生成式 AI 代理,如 AI SDR、研究分析師、RPA 自動化等,無需編寫任何代碼。將代理連接到您的內部或外部工具,搜索 Web 或與代理一起瀏覽互聯網。
  • 連結多個模型:LLMStack 允許您將多個 LLMs 模型連結在一起,以構建複雜的生成式 AI 應用程式。
  • 對您的數據使用生成式 AI:將您的數據導入帳戶,並在 AI 鏈中使用它。LLMStack 支援從各種來源(如 gdrive、notion、網站、直接上傳等)導入多種類型的數據(如 CSV、TXT、PDF、DOCX、PPTX 等)。平台將自動進行預處理和向量化,並將數據存儲在開箱即用的向量資料庫中。
  • 無代碼構建器:LLMStack 帶有一個無代碼構建器,允許您在沒有任何編碼經驗的情況下構建 AI 鏈。您可以將多個 LLMs 連結在一起,並將它們連接到您的數據和業務流程。
  • 部署到雲端或本地:LLMStack 可以部署到雲端或本地。您可以將其部署到您自己的基礎架構中,或使用我們的雲產品,網址為 Promptly。
  • API 訪問:使用 LLMStack 構建的應用程式或聊天機器人可以通過 HTTP API 訪問。您還可以從 Slack 或 Discord 觸發您的 AI 鏈。
  • 多租戶:LLMStack 是多租戶的。您可以建立多個組織並向其中添加使用者。使用者只能訪問屬於其組織的數據和 AI 鏈。
發佈日期:

EchoMimic – 人物圖片轉影片的開源模型

介紹EchoMimic

EchoMimic 是一款開源 AI 工具,可以將人物圖片轉換為逼真的說話視頻。它採用了創新的肖像圖像動畫技術,能夠通過組合音頻信號和面部關鍵點來生成生動自然的視頻。

EchoMimic 的工作原理

  1. 首先,需要將人物圖片和音頻輸入到模型中。
  2. 模型會提取音頻中的音素和人物圖片中的面部關鍵點。
  3. 然後,模型會利用這些信息生成相應的面部動畫。
  4. 最後,將生成的的面部動畫與原來的圖片合成,得到最終的說話視頻。

例如這樣的圖片

加上這樣的音檔

可以合成這樣的影片

安裝教學

事前作業

  1. 先安裝CUDA和CUDNN(https://developer.nvidia.com/cuda-toolkit)
  2. 接著安裝可支援GPU的pytorch,要注意的是,Pytorch所支持的CUDA版本有可能無法支持最新的,我們可以在官網看現在最新支持到哪個版本的CUDA,以下圖為例,我們所安裝的CUDA版本就不可以高於CUDA12.1

接著下載EchoMimic 專案,並創建新的CONDA環境,安裝所需函式庫

git clone https://github.com/BadToBest/EchoMimic
cd EchoMimic
conda create -n echomimic python=3.8
conda activate echomimic
pip install -r requirements.txt

接著到這邊下載FFMPEG: https://www.gyan.dev/ffmpeg/builds/

此為一個範例的下載網址: https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z

接著將ffmpeg的exe的路徑加入環境變數的path當中,如果能夠在CMD裡面輸入ffmpeg看到以下回覆代表安裝成功

接著下載預訓練權重

git lfs install
git clone https://huggingface.co/BadToBest/EchoMimic pretrained_weights

然後修改configs/prompts裡面的yaml檔案

接著執行 python 

python -u infer_audio2vid.py
python -u infer_audio2vid_pose.py

就可以看見執行的狀態,最終產生的檔案會位於output資料夾下

發佈日期:

文字轉語音的開源套件ChatTTS

ChatTTS介紹

chatTTS 是一個開源的文本轉語音(Text-to-Speech, TTS)項目,旨在將文字內容轉換為接近人類真實聲音的語音輸出。該項目在GitHub上迅速獲得了大量關注,因其語音合成效果非常逼真,甚至超越了一些商用TTS服務。chatTTS使用了大量的語音數據進行訓練,目前提供的模型已能夠生成語氣、停頓和節奏都極其自然的語音,並且支持多種語言和音色的合成。該項目允許用戶在本地或雲端(如Colab)環境中運行,並提供了易於使用的整合包和腳本,方便用戶快速上手。

官方網站

Github項目地址: https://github.com/2noise/ChatTTS/tree/main

直接可使用的易用版本ChatTTS_colab: https://github.com/6drf21e/ChatTTS_colab

模型的優勢

  1. 對話式TTS:ChatTTS針對對話式任務進行了最佳化,能夠實現自然且富有表現力的合成語音。
  2. 精細的控制:模型可以預測和控制精細的韻律特徵,包括笑聲、停頓和插入語。
  3. 更好的韻律:ChatTTS在韻律方面超越了大多數開源TTS模型。

ChatTTS安裝

Clone Repo 

git clone https://github.com/2noise/ChatTTS
cd ChatTTS

安裝相關套件

pip install --upgrade -r requirements.txt

啟動

python examples/web/webui.py

ChatTTS_colab下載

這個套件真的可以讓人很容易地使用ChatTTS,從官方Github的下載連結下載、解壓縮後,直接便可以使用

點選運行就可以跑出網頁操作介面了

以下為網頁介面的樣子,可使用音色抽卡功能挑選滿意的音色,並且下載該語音模型檔案

另外有Refine Text的功能,這個功能可以透過大語言模型,自動為所輸入的文字加上停頓或笑聲,或者我們也可以自己手動加上這個(使用特別的標籤[uv_break][uv_laugh])

也可以透過文本來產生多個人的對話,用::來分隔”腳色”和”對話內容”,例如:

旁白::在一個風和日麗的下午,小紅帽準備去森林裡看望他的奶奶

接著按下步驟1提取腳色,右邊的腳色種子就會根據文本的腳色來出現在表格當中,接著我們可以填入預選好的種子編號以及相關語速、笑聲等設定,就可以將整段對話產生為一個音檔

此為開啟伺服器的python視窗,我們可以看到伺服器正在產生影片

模型產生的音檔試聽

也有整理過的音色評比網站,登入後可直接線上試聽不同的音色

https://modelscope.cn/studios/ttwwwaa/ChatTTS_Speaker

發佈日期:

適用於雲端的物件存儲系統 – Minio

Minio介紹

MinIO 是一個開源的分佈式物件儲存服務器,針對需要大規模數據基礎架構的用戶設計。它支持與 S3 API 的完全兼容,並以私有雲為目標從頭開始建立。MinIO 在全球範圍內擁有廣泛的用戶和開發者社群,並且在 GitHub 上有超過 16,000 個星標,以及在 Docker 上超過 2.19 億次的下載。

核心功能

  • 非結構化數據存儲:能夠存儲各種類型的非結構化數據,包括照片、視頻、日誌文件和時間序列數據。
  • HTTP 方法支持:使用 PUT 方法上傳數據,GET 方法訪問數據,DELETE 方法刪除數據。
  • 高可擴展性:支持從單個服務器到成千上萬個節點的集群配置。
  • 企業級安全性:集成了擦除編碼和防位腐壞保護,並支持多種身份驗證系統如 WSO2、Keycloak 等。

部署教學

1. 下載和安裝

首先,訪問 MinIO 的 GitHub 頁面 下載最新的 MinIO 二進制文件。選擇適合您操作系統的版本進行下載並解壓。

2. 啟動 MinIO 服務器

在命令行中導航到 MinIO 二進制文件的位置,運行以下命令來啟動 MinIO 伺服器:

minio.exe server D:\

這裡 D:\ 是您想要 MinIO 使用來存儲數據的目錄。

3. 訪問 MinIO 管理界面

啟動伺服器後,可以通過瀏覽器訪問 http://localhost:9000 來打開 MinIO 的內建網頁管理界面。在這裡,您可以創建存儲桶,上傳和管理數據。

使用 MinIO 控制台進行測試

MinIO Server 帶有一個嵌入式的基於 Web 的物件瀏覽器。將您的 Web 瀏覽器指向 http://127.0.0.1:9000,以確保您的伺服器已成功啟動。

適用於 Kubernetes 的 MinIO 物件存儲

相關教學請見此: https://min.io/docs/minio/kubernetes/upstream/index.html

發佈日期:

專為連接性設計的查詢語言 – Cypher

甚麼是Cypher 

Cypher 是為了滿足開發者在處理圖形數據時的需求而生的。它的設計靈感來自於 SQL,目的是提供一種易於閱讀且表達能力強的語言來操作圖形數據。與傳統的 SQL 針對表格數據操作不同,Cypher 是專門為圖形數據設計的,能夠直觀地表示節點、關係及其屬性。

Cypher 的優點

  • 簡潔:Cypher 使用類似於自然語言的語法,因此易於閱讀和編寫。
  • 強大:Cypher 可以用於執行從簡單的查詢到複雜的圖形分析的所有操作。
  • 高效:Cypher 經過優化以實現圖形資料庫的快速查詢。

Cypher 的基本結構

在 Cypher 中,圖形被視為由節點(Nodes)和關係(Relationships)構成的網絡。每個節點和關係都可以擁有多個屬性。Cypher 查詢主要包括以下幾個部分:

  • CREATE: 用於創建圖中的節點和關係。
  • MATCH: 用來尋找匹配特定模式的節點和關係。
  • WHERE: 提供條件來限制 MATCH 或其他操作的結果。
  • RETURN: 指定返回的數據。
  • UPDATE: 更新節點或關係的屬性。
  • DELETE: 用於刪除節點或關係。

與 SQL 的比較

以下是一個客戶提供的實際 SQL 查詢示例,用於了解其組織結構:

SELECT *
FROM employees e
JOIN departments d ON e.department_id = d.department_id
JOIN locations l ON d.location_id = l.location_id
WHERE e.manager_id IS NULL;

以下是等效的 Cypher 查詢:

MATCH (e:Employee)-[:MANAGES*0..]->(m:Employee)
WHERE m.manager_id IS NULL
RETURN e

新增圖形資料的步驟

1. 定義節點與關係

首先,您需要定義圖形中的節點(Nodes)和邊(Edges)或稱關係(Relationships)。節點代表實體,如人、地點、物件等,而邊則代表節點間的關係,如“朋友”、“位於”或“擁有”。

2. 創建模型

在 Neo4j 中,您可以透過 Cypher 語言創建模型。例如,如果您要建立一個表示人和學校的簡單模型,您可能會有如下命令:

CREATE (p:Person {name: "John", age: 25})
CREATE (s:School {name: "Stanford University", location: "California"})

這裡,PersonSchool 是節點的標籤,用於描述節點類型,而花括號內的是節點的屬性。

3. 建立關係

接著,您可以建立節點之間的關係。使用 CREATE 語句,您可以加上一個關係,比如:

MATCH (p:Person {name: "John"}), (s:School {name: "Stanford University"})
CREATE (p)-[:STUDIED_AT]->(s)

這個命令中,MATCH 部分先找到名字為 John 的人和名字為 Stanford University 的學校,然後 CREATE 建立了一個名為 STUDIED_AT 的關係,從人指向學校。

4. 數據加載

如果您已有現成的數據,如 CSV 文件,可以透過 Neo4j 的導入工具或命令行工具來批量導入數據。例如,使用以下 Cypher 命令從 CSV 文件中加載數據:

LOAD CSV WITH HEADERS FROM 'file:///path_to_your_file.csv' AS line
CREATE (:Person {name: line.name, age: toInteger(line.age)})

這樣就可以創建多個節點,每個節點根據 CSV 文件中的一行數據來設定屬性。

5. 驗證與查詢

建立數據後,您可以使用各種查詢來檢視數據是否正確加載,並進行分析。例如,查詢所有學生和他們就讀的學校:

MATCH (p:Person)-[:STUDIED_AT]->(s:School)
RETURN p.name, s.name

6. 數據更新與管理

管理和更新圖形數據庫中的數據是日常操作的一部分。例如,你可以更新一個節點的屬性或添加新的關係:

MATCH (n:Person {name: 'Ann'})
SET n.age = 26

7. 高級過濾技術

Cypher 提供了豐富的過濾條件來精確控制查詢結果。使用 WHERE 子句可以根據具體條件篩選節點或邊。例如,要找出所有2000年後上映的電影,可以使用:

MATCH (movie:Movie)
WHERE movie.releaseDate >= 2000
RETURN movie

這種過濾方式使得 Cypher 查詢在處理複雜條件時更加靈活和強大。

8. 聚合函數的應用

與 SQL 不同,Cypher 的聚合操作不需要指定分組鍵,因為非聚合字段會自動成為分組的依據。這一特性簡化了查詢的編寫。例如,計算每個演員參演的電影數量:

MATCH (actor:Person)-[:ACTED_IN]->(movie:Movie)
RETURN actor.name, COUNT(movie)

這裡,COUNT(movie) 是一個聚合函數,用來統計每位演員參演的電影數。

這些基本步驟可幫助您開始使用圖形資料庫並有效地管理圖形數據。隨著熟悉過程,您可以進一步探索更複雜的模型和查詢技術。