跳至主要内容

· 閱讀時間約 2 分鐘
Yung-Hsiang Hu

功能更新

  1. 自訂 Bot 權限:可設定 Bot 在系統、社群、群組和個人層級的可讀和可執行權限
  2. 自訂上傳檔案原則:管理員可設定最大上傳檔案大小和允許的檔案類型
  3. 工具範例:新增 Copycat、token counter 等工具範例
  4. 串好的模型設定檔:提供 LLaVA 和其他串好的模型的設定檔
  5. 使用者體驗優化:美化圖示和聊天清單
  6. 更新預設模型:ChatGPT Executor 預設串接 GPT-4o,Gemini Executor 預設串接 Gemini 1.5 pro

錯誤修復

  1. 上傳含空白字元檔名解析問題
  2. 語系登出後不會儲存的問題
  3. Llamacpp Executor 的相依套件問題
  4. Windows 版日誌不支援顏色以及換行的問題
  5. Multi-chat 單輪問答會多傳聊天室第一筆
  6. Windows 版 DocQA 預設參數可能超出 Context window

新增教學文件

  1. RAG 自訂參數教學: https://kuwaai.org/zh-Hant/blog/rag-param-tutorial
  2. 自訂 Tool 教學: https://kuwaai.org/zh-Hant/blog/tool-tutorial

· 閱讀時間約 2 分鐘
Yung-Hsiang Hu

Kuwa 的 RAG 應用 (DocQA/WebQA/DatabaseQA/SearchQA) 從 v0.3.1 版本起支援透過 Bot 的 modelfile 自訂進階參數, 可以讓單個 Executor 虛擬化成多個 RAG 應用,詳細參數說明及範例如下。

參數說明

以下參數內容為 v0.3.1 RAG應用的預設值。

所有 RAG 的共用參數

PARAMETER retriever_embedding_model "thenlper/gte-base-zh" # embedding model名稱
PARAMETER retriever_mmr_fetch_k 12 # MMR前取幾個chunk
PARAMETER retriever_mmr_k 6 # MMR取幾個chunk
PARAMETER retriever_chunk_size 512 # 每個chunk的長度,以字元為單位 (DatabaseQA不受限制)
PARAMETER retriever_chunk_overlap 128 # chunk間的交疊長度,以字元為單位 (DatabaseQA不受限制)
PARAMETER generator_model None # 指定哪個模型回答,None表示自動選擇
PARAMETER generator_limit 3072 # 整個prompt的長度限制,以字元為單位
PARAMETER display_hide_ref False # 不顯示參考資料

DocQA, WebQA, SearchQA 專用參數

PARAMETER crawler_user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" # 爬蟲的UA字串

SearchQA 專用參數

PARAMETER search_advanced_params "" # 進階搜尋參數 (SearchQA專用)
PARAMETER search_num_url 3 # 取用幾個搜尋結果[1~10] (SearchQA專用)

DatabaseQA專用參數

PARAMETER retriever_database None # Executor本機的向量資料庫路徑

使用範例

假如要建立一個 DatabaseQA 知識庫並指定模型回答,可以建立一個 Bot,
基底模型選擇 DocQA,並填入以下 Modelfile。

PARAMETER generator_model "model_access_code" # 指定哪個模型回答,None表示自動選擇
PARAMETER generator_limit 3072 # 整個prompt的長度限制,以字元為單位
PARAMETER retriever_database "/path/to/local/database/on/executor" # Executor本機的向量資料庫路徑

· 閱讀時間約 1 分鐘
Yung-Hsiang Hu

Kuwa 設計上支援串接各種非 LLM 的 Tool,最簡單的 Tool 可以參考 src/executor/debug.py
以下是內容說明。

import os
import sys
import asyncio
import logging
import json
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from kuwa.executor import LLMExecutor, Modelfile

logger = logging.getLogger(__name__)

class DebugExecutor(LLMExecutor):
def __init__(self):
super().__init__()

def extend_arguments(self, parser):
"""
Override this method to add custom command-line arguments.
"""
parser.add_argument('--delay', type=float, default=0.02, help='Inter-token delay')

def setup(self):
self.stop = False

async def llm_compute(self, history: list[dict], modelfile:Modelfile):
"""
Responsible for handling the requests, the input is chat history (in
OpenAI format) and parsed Modelfile (you can refer to
`src/executor/src/kuwa/executor/modelfile.py`), it will return an
Asynchronous Generators to represent the output stream.
"""
try:
self.stop = False
for i in "".join([i['content'] for i in history]).strip():
yield i
if self.stop:
self.stop = False
break
await asyncio.sleep(modelfile.parameters.get("llm_delay", self.args.delay))
except Exception as e:
logger.exception("Error occurs during generation.")
yield str(e)
finally:
logger.debug("finished")

async def abort(self):
"""
This method is invoked when the user presses the interrupt generation button.
"""
self.stop = True
logger.debug("aborted")
return "Aborted"

if __name__ == "__main__":
executor = DebugExecutor()
executor.run()

· 閱讀時間約 7 分鐘
Yung-Hsiang Hu

大家好,Kuwa v0.3.1 推出了, 這次的更新主要集中在多模態輸入輸出,語音及圖片皆有支援。再搭配先前推出的 Bot 系統及群聊功能,即可實現如會議摘要、演講摘要、簡易圖片生成、圖片修改等實用功能:

  1. 支援 Whisper 語音轉文字模型,可以上傳語音檔輸出逐字搞,並具備多語者辨識及時間戳記功能
  2. 支援 Stable Diffusion 圖片生成模型,可透過輸入一段文字來生成圖片,或是上傳一張圖片後指示模型如何改動
  3. Huggingface executor 支援串接視覺語言模型,如 Phi-3-Vision, LLaVA等
  4. RAG 支援直接透過 Web UI 及 Modelfile 調整參數,簡化調校門檻
  5. RAG 支援顯示原始文件與引用段落,方便檢視檢索效果以及幻覺
  6. 支援匯入預先建立的 RAG 向量資料庫,方便在不同系統間共享知識庫
  7. 安裝時可簡易選擇多種開放模型
  8. Multi-chat Web UI 支援直接將聊天紀錄匯出成PDF、Doc/ODT
  9. Multi-chat Web UI 支援 Modelfile 語法突顯,方便調整 Modelfile
  10. Kernel API 支援傳遞網站語系,讓 Executor 能根據使用者語系客製化
  11. Executor 移除預設的 System prompt 以避免影響模型效果
訊息

kuwa-v0.3.1 下載資訊: https://github.com/kuwaai/genai-os/releases/tag/v0.3.1
kuwa-v0.3.1 單一執行檔下載連結: https://dl.kuwaai.org/kuwa-os/v0.3.1/

· 閱讀時間約 5 分鐘
Yung-Hsiang Hu

Kuwa GenAI OS 是一個自由、開放、安全且注重隱私的開源系統,提供友善的生成式人工智慧使用介面,以及支援快速開發大語言模型應用的新世代生成式人工智慧編導系統。 Kuwa提供多語言與多模型的開發與部署之整體解決方案,可以讓個人及各行各業在地端筆電、伺服器或雲端使用生成式AI、開發應用,或開Store商店、對外提供服務。

Kuwa GenAI OS 的簡要說明如下:

使用環境

  1. 支援Windows、Linux、MacOS等多種作業系統,提供簡易安裝及軟體更新工具,包括Windows單一安裝執行檔、Linux自動安裝Script、Docker啟動腳本、預安裝好的VM虛擬主機等
  2. 支援多種硬體環境,從樹莓派、筆電、個人電腦、地端伺服器到虛擬主機、公私雲端,有無GPU加速器均可

使用介面

  1. 整合介面可以選取任何模型、知識庫或GenAI應用,隨意組合建立單一或群聊的聊天室
  2. 聊天室內可以自主編導,引用對話,指定群聊或直接單聊,切換連貫問答或單筆問答模式
  3. 隨時可以指揮介接,匯入提示腳本或上傳檔案,也可以匯出完整的聊天室對話劇本,直接輸出PDF、Doc/ODT、純文字等格式的檔案或分享網頁
  4. 支援文字、圖片生成,以及語音與視覺識別等多模態語言模型,並可突顯程式、Markdown等語法,或快速使用系統小工具

開發介面

  1. 使用者可以免寫程式,透過串接即有模型、知識庫或Bot應用,調整系統提示與參數、預置情境或建立提示模板,即可打造個人化或更強大的GenAI應用
  2. 使用者可以透過簡易拖拉的方式建立自有的知識庫,或匯入即有的向量資料庫,能同時利用多個知識庫進行GenAI應用
  3. 使用者可以自建及維護共用的Store應用商店,使用者間也可以共享Bot應用
  4. 可透過Ollama modelfile來調校啟用Kuwa擴充的模型及RAG進階功能

部署介面

  1. 支援多國語言,可以自行客製化畫面與訊息後,直接對外部署提供服務
  2. 可以串接即有帳號或提供邀請碼註冊,支援忘記密碼時可以用Email重設密碼
  3. 系統設定可修改系統公告、服務條款、警語等,或進行群組權限管理、使用者管理、模型管理等
  4. 儀錶板支援回饋管理、系統日誌管理、安全隱私管理、訊息查詢等

開發環境

  1. 整合多種生成式AI開源工具,包括Faiss, HuggingFace, Langchain, llama.cpp, Ollama, vLLM等,以及多種Embedding及Transformer相關套件,開發者可以下載、串接、開發多種多模態的大語言模型及應用
  2. RAG Toolchain內建DBQA、DocumentQA、WebQA及SearchQA等多種檢索擴增生成應用工具,可以串接搜尋引擎與自動爬蟲,或整合企業內即有資料庫或系統,方便開發進階的客製化應用
  3. 開放原始碼讓開發者可以根據自己的需求來打造自己想要的客製系統

· 閱讀時間約 5 分鐘
Yung-Hsiang Hu

Kuwa v0.3.1 新增了基於 Stable Diffusion 圖片生成模型的 Kuwa Painter,
可以輸入一段文字產生圖片,或是上傳一張圖片並搭上一段文字產生圖片。

· 閱讀時間約 2 分鐘
Yung-Hsiang Hu

Kuwa v0.3.1 初步支援了常見的視覺語言模型 (VLM), 這類模型不但可以輸入文字,還可以輸入圖片,並根據圖片內容回應使用者的指令。 本篇教學將帶您初步建立與使用 VLM。

· 閱讀時間約 6 分鐘
Yung-Hsiang Hu

Kuwa v0.3.1 加入了基於 Whisper 語音辨識模型的 Kuwa Speech Recognizer, 可以透過上傳錄音檔來產生逐字稿,支援時間戳記以及語者標示。

已知問題與限制

硬體需求

預設使用 Whisper medium 模型並關閉語者標示功能,若跑在GPU上所消耗 VRAM 如下表所示。

模型名稱參數量VRAM需求相對辨識速度
tiny39 M~1 GB~32x
base74 M~1 GB~16x
small244 M~2 GB~6x
medium769 M~5 GB~2x
large1550 M~10 GB1x
pyannote/speaker-diarization-3.1
(語者辨識)
-~3GB-

已知限制

  1. 目前無法自動偵測輸入語言,須手動指定
  2. 目前語者辨識模組因為多行程的關係,導致每次都會重新載入模型,拉長響應時間
  3. 多語者同時講話時容易誤判內容

· 閱讀時間約 3 分鐘
Yung-Hsiang Hu

大家好,經過社群的回饋與建議,我們推出 kuwa-v0.3.0 正式版,以期更能滿足大家的需求。

與前一版 kuwa-v0.2.1 的主要差異為新增並強化了 Bot、Store、RAG toolchain和系統更新等功能,以及新的聊天與群聊整合介面:

  1. Bot 讓使用者可以 no code 建立 Bot 應用,可調整 System prompt、預置聊天紀錄、User prompt 前後綴來實現如角色扮演、執行特定任務等不同功能,或利用 Ollama modelfile 來打造更強大的應用;
  2. Store 讓使用者可以自行建置及維護共用的Bot應用商店,使用者間也可以共享 Bot;
  3. RAG toolchain 讓使用者可以將本機文件資料夾透過簡易拖拉的方式建立成自有的向量資料庫,不限一個,再透過既有的 DBQA 功能進行問答;
  4. 新的整合介面不僅直接支援群聊與單模型聊天,隨時可以匯入 Prompt Sets 或上傳檔案,也可以用於相關RAG;
  5. Windows 版新增 SearchQA,可透過串接 Google search 進行組織網站問答;
  6. 新增 Docker 啟動腳本,簡化 Docker 版啟動方式;
  7. Executor 可以直接串接 Ollama,藉以使用 Ollama 支援的模型及應用;
  8. 可以透過 update.bat 來快速更新至最新釋出的版本,不必重新下載 .exe 安裝檔
訊息

kuwa-v0.3.0 下載資訊: https://github.com/kuwaai/genai-os/releases/tag/v0.3.0
kuwa-taide-v0.3.0 單一執行檔下載連結: https://dl.kuwaai.org/kuwa-taide/v0.3.0/

· 閱讀時間約 3 分鐘
Yung-Hsiang Hu

即使地端沒有下載模型,也可以利用 Kuwa 串接雲端模型進行聊天及 RAG 應用。 本文將協助您了解如何申請 Google 免費的 Gemini Pro API Key ,以及如何在 Kuwa 進行設定。

申請 Gemini Pro API Key

  1. 前往 Google AI Studio - Get API key,點擊 "Get API key"