Files
gangyan/langchain-chat/server/custom/custom_fun.py

75 lines
2.1 KiB
Python

"""
Custom functions for document processing.
"""
async def chapter_overview_summary(docs, model_name, temperature, max_tokens):
"""
为文档生成章节概述摘要的占位函数。
Args:
docs: 文档列表
model_name: 模型名称
temperature: 温度参数
max_tokens: 最大token数
Returns:
chapter_summaries: 章节摘要字典
global_summary: 全局摘要字符串
"""
chapter_summaries = {}
global_summary = ""
# 简单的占位实现:直接使用文档内容
for doc in docs:
h1 = doc.metadata.get("head1", "默认章节") if hasattr(doc, 'metadata') else "默认章节"
if h1 not in chapter_summaries:
chapter_summaries[h1] = []
content = doc.page_content if hasattr(doc, 'page_content') else str(doc)
chapter_summaries[h1].append(content[:500] if len(content) > 500 else content)
# 生成全局摘要
if docs:
all_content = " ".join([doc.page_content if hasattr(doc, 'page_content') else str(doc) for doc in docs[:3]])
global_summary = all_content[:1000] if len(all_content) > 1000 else all_content
return chapter_summaries, global_summary
async def chi_translation(docs, prompt_template, model_name, temperature, max_tokens):
"""
中文翻译占位函数。
Args:
docs: 文档列表
prompt_template: 提示模板
model_name: 模型名称
temperature: 温度参数
max_tokens: 最大token数
Yields:
翻译结果字符串
"""
for doc in docs:
content = doc.page_content if hasattr(doc, 'page_content') else str(doc)
yield content
async def eng_translation(docs, prompt_template, model_name, temperature, max_tokens):
"""
英文翻译占位函数。
Args:
docs: 文档列表
prompt_template: 提示模板
model_name: 模型名称
temperature: 温度参数
max_tokens: 最大token数
Yields:
翻译结果字符串
"""
for doc in docs:
content = doc.page_content if hasattr(doc, 'page_content') else str(doc)
yield content