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 數等。