summary
summary
是一個用於總結文件內容的class,支援多種摘要方法(如 map_reduce
和 refine
),可以處理多種格式的文件(如 .txt
, .docx
, .pdf
, .md
, .csv
, .pptx
),並將內容分塊後進行摘要,最終合併成一個完整的摘要。
summary 功能
- 多種摘要方法:
map_reduce
:將內容分塊後分別摘要,最後合併成完整摘要,速度較快,適合大規模內容。refine
:逐塊摘要並使用前一塊的摘要作為提示,摘要一致性較高,但速度較慢。
- 支援多種輸入格式:可處理本地文件、目錄、網址或純文字內容。
- 日誌保存:支持保存執行過程與結果的日誌,便於後續分析。
summary 範例
使用 map_reduce
方法進行摘要
1 | import akasha |
使用 refine
方法進行摘要
1 | summ = akasha.summary( |
summary 參數
初始化參數
model: str
使用的語言模型,例如 "openai:gpt-4o"
或 "openai:gpt-3.5-turbo"
。
sum_type: str
摘要方法,支持:
"map_reduce"
:分塊摘要後合併,速度較快。"refine"
:逐塊摘要並使用前一塊的摘要作為提示,摘要一致性較高。
sum_len: int
建議的摘要長度(以字數或 token 數計)。
chunk_size: int
分塊大小,單位為字數或 token。
chunk_overlap: int
分塊重疊大小,單位為字數或 token。
max_input_tokens: int
單次輸入模型的最大 token 數。
max_output_tokens: int
模型輸出的最大 token 數。
language: str
內容的語言,支持 "en"
(英文)和 "zh"
(中文)。
keep_logs: bool
是否保存執行過程與結果的日誌。
verbose: bool
是否顯示詳細的執行過程。
temperature: float
語言模型的隨機性參數,範圍為 0.0 到 1.0。
system_prompt: str
指示語言模型的輸出格式需求。
call 參數
content: Union[str, list, Path, Document]
需要總結的內容,可以是:
- 單個或多個文件路徑(如
.txt
,.docx
,.pdf
)。 - 單個或多個網址。
- 單個或多個純文字內容。
sum_type: str
摘要方法,支持 "map_reduce"
或 "refine"
。
sum_len: int
建議的摘要長度。
chunk_size: int
分塊大小。
chunk_overlap: int
分塊重疊大小。
max_input_tokens: int
單次輸入模型的最大 token 數。
max_output_tokens: int
模型輸出的最大 token 數。
temperature: float
語言模型的隨機性參數。
日誌與結果
- 總結過程與結果會保存到指定的日誌文件中。
- 日誌包括摘要的詳細過程、分塊信息、模型輸入輸出 token 數等。