跳转至

Paper summarize

labridge.tools.paper.temporary_papers.paper_summarize

labridge.tools.paper.temporary_papers.paper_summarize.RecentPaperSummarizeTool

Bases: CallBackBaseTool

This tool summarize a recent paper of a user (stored in the RecentPaperStore).

PARAMETER DESCRIPTION
llm

The used llm.

TYPE: LLM DEFAULT: None

embed_model

The used embedding model.

TYPE: BaseEmbedding DEFAULT: None

Source code in labridge\tools\paper\temporary_papers\paper_summarize.py
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
class RecentPaperSummarizeTool(CallBackBaseTool):
	r"""
	This tool summarize a recent paper of a user (stored in the RecentPaperStore).

	Args:
		llm (LLM): The used llm.
		embed_model (BaseEmbedding): The used embedding model.
	"""
	def __init__(
		self,
		llm: LLM = None,
		embed_model: BaseEmbedding = None,
		verbose: bool = False,
	):
		self._llm = llm or Settings.llm
		self._embed_model = embed_model or Settings.embed_model
		self._verbose = verbose
		super().__init__(
			fn=self.summarize_paper,
			async_fn=self.asummarize_paper,
			tool_name=RecentPaperSummarizeTool.__name__,
			callback_operation=PaperSummarizeOperation,
			return_direct=True,
		)

	def summarize_paper(
		self,
		user_id: str,
		paper_file_path: str,
	) -> FuncOutputWithLog:
		r"""
		This tool is used to summarize a paper that is stored in a specific user's recent papers storage.
		This tool is used ONLY when the user explicitly ask for a summarization of the paper.
		DO NOT use this tool by yourself.

		Args:
			user_id (str): The user_id of a lab member.
			paper_file_path (str): The file path of a specific paper. Browse the chat context to get the correct
				and valid file path of the paper.

		Returns:
			The summary of the paper.
		"""
		# This docstring is used as the tool description.
		op_name = self._callback_operation.__name__
		kwargs = {"user_id": user_id, "paper_file_path": paper_file_path}
		kwargs_str = json.dumps(kwargs)
		operation_log = operation_authorize(
			user_id=user_id,
			op_name=op_name,
			kwargs_str=kwargs_str,
			llm=self._llm,
			embed_model=self._embed_model,
			verbose=self._verbose,
		)
		fn_output = operation_log.operation_output
		fn_log = {"operation_log": operation_log}
		return FuncOutputWithLog(
			fn_output=fn_output,
			fn_log=fn_log,
		)

	async def asummarize_paper(
		self,
		user_id: str,
		paper_file_path: str,
	) -> FuncOutputWithLog:
		r"""
		This tool is used to summarize a paper that is stored in a specific user's recent papers storage.
		This tool is used ONLY when the user explicitly ask for a summarization of the paper.
		DO NOT use this tool by yourself.

		Args:
			user_id (str): The user_id of a lab member.
			paper_file_path (str): The file path of a specific paper. Browse the chat context to get the correct
				and valid file path of the paper.

		Returns:
			The summary of the paper.
		"""
		# This docstring is used as the tool description.
		op_name = self._callback_operation.__name__
		kwargs = {"user_id": user_id, "paper_file_path": paper_file_path}
		kwargs_str = json.dumps(kwargs)
		operation_log = await aoperation_authorize(
			user_id=user_id,
			op_name=op_name,
			kwargs_str=kwargs_str,
			llm=self._llm,
			embed_model=self._embed_model,
			verbose=self._verbose,
		)
		fn_output = operation_log.operation_output
		fn_log = {"operation_log": operation_log}
		return FuncOutputWithLog(
			fn_output=fn_output,
			fn_log=fn_log,
		)

	def log(self, **kwargs: Any) -> ToolLog:
		paper_file_path = kwargs["paper_file_path"]
		user_id = kwargs["user_id"]
		log_str = f"Summarize the paper {paper_file_path} for the user {user_id}."
		log_to_user = None
		log_to_system = {
			TOOL_OP_DESCRIPTION: log_str,
			TOOL_REFERENCES: None,
		}

		return ToolLog(
			tool_name=self.metadata.name,
			log_to_user=log_to_user,
			log_to_system=log_to_system,
		)

labridge.tools.paper.temporary_papers.paper_summarize.RecentPaperSummarizeTool.asummarize_paper(user_id, paper_file_path) async

This tool is used to summarize a paper that is stored in a specific user's recent papers storage. This tool is used ONLY when the user explicitly ask for a summarization of the paper. DO NOT use this tool by yourself.

PARAMETER DESCRIPTION
user_id

The user_id of a lab member.

TYPE: str

paper_file_path

The file path of a specific paper. Browse the chat context to get the correct and valid file path of the paper.

TYPE: str

RETURNS DESCRIPTION
FuncOutputWithLog

The summary of the paper.

Source code in labridge\tools\paper\temporary_papers\paper_summarize.py
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
async def asummarize_paper(
	self,
	user_id: str,
	paper_file_path: str,
) -> FuncOutputWithLog:
	r"""
	This tool is used to summarize a paper that is stored in a specific user's recent papers storage.
	This tool is used ONLY when the user explicitly ask for a summarization of the paper.
	DO NOT use this tool by yourself.

	Args:
		user_id (str): The user_id of a lab member.
		paper_file_path (str): The file path of a specific paper. Browse the chat context to get the correct
			and valid file path of the paper.

	Returns:
		The summary of the paper.
	"""
	# This docstring is used as the tool description.
	op_name = self._callback_operation.__name__
	kwargs = {"user_id": user_id, "paper_file_path": paper_file_path}
	kwargs_str = json.dumps(kwargs)
	operation_log = await aoperation_authorize(
		user_id=user_id,
		op_name=op_name,
		kwargs_str=kwargs_str,
		llm=self._llm,
		embed_model=self._embed_model,
		verbose=self._verbose,
	)
	fn_output = operation_log.operation_output
	fn_log = {"operation_log": operation_log}
	return FuncOutputWithLog(
		fn_output=fn_output,
		fn_log=fn_log,
	)

labridge.tools.paper.temporary_papers.paper_summarize.RecentPaperSummarizeTool.summarize_paper(user_id, paper_file_path)

This tool is used to summarize a paper that is stored in a specific user's recent papers storage. This tool is used ONLY when the user explicitly ask for a summarization of the paper. DO NOT use this tool by yourself.

PARAMETER DESCRIPTION
user_id

The user_id of a lab member.

TYPE: str

paper_file_path

The file path of a specific paper. Browse the chat context to get the correct and valid file path of the paper.

TYPE: str

RETURNS DESCRIPTION
FuncOutputWithLog

The summary of the paper.

Source code in labridge\tools\paper\temporary_papers\paper_summarize.py
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
def summarize_paper(
	self,
	user_id: str,
	paper_file_path: str,
) -> FuncOutputWithLog:
	r"""
	This tool is used to summarize a paper that is stored in a specific user's recent papers storage.
	This tool is used ONLY when the user explicitly ask for a summarization of the paper.
	DO NOT use this tool by yourself.

	Args:
		user_id (str): The user_id of a lab member.
		paper_file_path (str): The file path of a specific paper. Browse the chat context to get the correct
			and valid file path of the paper.

	Returns:
		The summary of the paper.
	"""
	# This docstring is used as the tool description.
	op_name = self._callback_operation.__name__
	kwargs = {"user_id": user_id, "paper_file_path": paper_file_path}
	kwargs_str = json.dumps(kwargs)
	operation_log = operation_authorize(
		user_id=user_id,
		op_name=op_name,
		kwargs_str=kwargs_str,
		llm=self._llm,
		embed_model=self._embed_model,
		verbose=self._verbose,
	)
	fn_output = operation_log.operation_output
	fn_log = {"operation_log": operation_log}
	return FuncOutputWithLog(
		fn_output=fn_output,
		fn_log=fn_log,
	)