| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | from typing import Optional, Anyfrom r2r import R2RClientfrom app.libs.util import verify_jwt_expirationfrom config.llm import tool_settingsimport inspectimport r2rprint(r2r.__version__)class R2R:    client: R2RClient    def init(self):        self.client = R2RClient(tool_settings.R2R_BASE_URL)                self.auth_enabled = tool_settings.R2R_USERNAME and tool_settings.R2R_PASSWORD        self._login()    def ingest_file(self, file_path: str, metadata: Optional[dict]):        self._check_login()        ingest_response = self.client.ingest_files(            file_paths=[file_path],            metadatas=[metadata] if metadata else None        )        return ingest_response.get("results")    def search(self, query: str, filters: dict[str, Any]):        self._check_login()        search_response = self.client.search(            query=query,            vector_search_settings={                "filters": filters,                "search_limit": tool_settings.R2R_SEARCH_LIMIT,                "do_hybrid_search": True            },        )        return search_response.get("results").get("vector_search_results")    def _login(self):        if not self.auth_enabled:            return        print("test")        print(self.client)        print(self.client.users)        print(self.client._wrap_v3_methods)        # 获取实例方法        instance_methods = inspect.getmembers(self.client._wrap_v3_methods, predicate=inspect.isfunction)        print("实例方法:", [method[0] for method in instance_methods])        # 获取类方法(包括静态方法)        class_methods = inspect.getmembers(self.client._wrap_v3_methods, predicate=inspect.ismethod)        print("类方法:", [method[0] for method in class_methods])        #self.client.user.login(tool_settings.R2R_USERNAME, tool_settings.R2R_PASSWORD)    def _check_login(self):        if not self.auth_enabled:            return        if verify_jwt_expiration(self.client.access_token):            return        if verify_jwt_expiration(self.client._refresh_token):            self.client.refresh_access_token()        else:            self._login()def get_method_parameters(method):    params = inspect.signature(method).parameters    for name, param in params.items():        default_value = param.default if param.default is not param.empty else None        print(f"参数名: {name}, 默认值: {default_value}")# 获取实例方法instance_methods = inspect.getmembers(R2RClient, predicate=inspect.isfunction)print("实例方法:", [method[0] for method in instance_methods])# 获取类方法(包括静态方法)class_methods = inspect.getmembers(R2RClient, predicate=inspect.ismethod)print("类方法:", [method[0] for method in class_methods])r2r1 = R2R()r2r1.init()
 |