跳转至

Insert

labridge.tools.paper.temporary_papers.insert

labridge.tools.paper.temporary_papers.insert.AddNewRecentPaperTool

Bases: CallBackBaseTool

This tool is used to add a new paper into a specific user's recent papers storage.

PARAMETER DESCRIPTION
llm

The used LLM. If not specified, the Settings.llm will be used.

TYPE: LLM DEFAULT: None

embed_model

The used embedding model. If not specified, the Settings.embed_model will be used.

TYPE: BaseEmbedding DEFAULT: None

verbose

Whether to show the inner progress.

TYPE: bool DEFAULT: False

Source code in labridge\tools\paper\temporary_papers\insert.py
 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
129
class AddNewRecentPaperTool(CallBackBaseTool):
	r"""
	This tool is used to add a new paper into a specific user's recent papers storage.

	Args:
		llm (LLM): The used LLM. If not specified, the `Settings.llm` will be used.
		embed_model (BaseEmbedding): The used embedding model. If not specified, the `Settings.embed_model` will be used.
		verbose (bool): Whether to show the inner progress.
	"""
	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.add_paper,
			async_fn=self.a_add_paper,
			tool_name=AddNewRecentPaperTool.__name__,
			callback_operation=AddNewRecentPaperOperation,
		)

	def log(self, **kwargs: Any) -> ToolLog:
		op_log = kwargs["operation_log"]
		if not isinstance(op_log, OperationOutputLog):
			raise ValueError("operation_log must be 'OperationLog'.")
		log_to_user = op_log.log_to_user
		log_to_system = op_log.log_to_system
		return ToolLog(
			tool_name=self.metadata.name,
			log_to_user=log_to_user,
			log_to_system=log_to_system,
		)

	def add_paper(
		self,
		user_id: str,
		paper_file_path: str,
	) -> FuncOutputWithLog:
		r"""
		This tool is used to add a new paper to a specific user's recent papers storage.

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

		Returns:
			FuncOutputWithLog: The output and log.
		"""
		# 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,
		)
		log_dict = {"operation_log": operation_log}

		return FuncOutputWithLog(
			fn_output=f"Have Added the paper {paper_file_path} to recent papers of the user {user_id}",
			fn_log=log_dict,
		)

	async def a_add_paper(
		self,
		user_id: str,
		paper_file_path: str,
	) -> FuncOutputWithLog:
		r"""
		This tool is used to add a new paper to a specific user's recent papers storage.

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

		Returns:
			FuncOutputWithLog: The output and log.
		"""
		# 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,
		)

		log_dict = {"operation_log": operation_log}
		return FuncOutputWithLog(
			fn_output=f"Have Added the paper {paper_file_path} to recent papers of the user {user_id}",
			fn_log=log_dict,
		)

labridge.tools.paper.temporary_papers.insert.AddNewRecentPaperTool.a_add_paper(user_id, paper_file_path) async

This tool is used to add a new paper to a specific user's recent papers storage.

PARAMETER DESCRIPTION
user_id

The user_id of a lab member.

TYPE: str

paper_file_path

The file path of the paper to be added. Browse the chat context or tool logs to get the correct and valid file path.

TYPE: str

RETURNS DESCRIPTION
FuncOutputWithLog

The output and log.

TYPE: FuncOutputWithLog

Source code in labridge\tools\paper\temporary_papers\insert.py
 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
129
async def a_add_paper(
	self,
	user_id: str,
	paper_file_path: str,
) -> FuncOutputWithLog:
	r"""
	This tool is used to add a new paper to a specific user's recent papers storage.

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

	Returns:
		FuncOutputWithLog: The output and log.
	"""
	# 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,
	)

	log_dict = {"operation_log": operation_log}
	return FuncOutputWithLog(
		fn_output=f"Have Added the paper {paper_file_path} to recent papers of the user {user_id}",
		fn_log=log_dict,
	)

labridge.tools.paper.temporary_papers.insert.AddNewRecentPaperTool.add_paper(user_id, paper_file_path)

This tool is used to add a new paper to a specific user's recent papers storage.

PARAMETER DESCRIPTION
user_id

The user_id of a lab member.

TYPE: str

paper_file_path

The file path of the paper to be added. Browse the chat context or tool logs to get the correct and valid file path.

TYPE: str

RETURNS DESCRIPTION
FuncOutputWithLog

The output and log.

TYPE: FuncOutputWithLog

Source code in labridge\tools\paper\temporary_papers\insert.py
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
def add_paper(
	self,
	user_id: str,
	paper_file_path: str,
) -> FuncOutputWithLog:
	r"""
	This tool is used to add a new paper to a specific user's recent papers storage.

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

	Returns:
		FuncOutputWithLog: The output and log.
	"""
	# 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,
	)
	log_dict = {"operation_log": operation_log}

	return FuncOutputWithLog(
		fn_output=f"Have Added the paper {paper_file_path} to recent papers of the user {user_id}",
		fn_log=log_dict,
	)