@@ -1756,3 +1756,184 @@ def convert_list_of_dicts(
17561756 new_data [key ] = info [item [0 ]]
17571757 mapped_list .append (new_data )
17581758 return mapped_list
1759+
1760+ def get_dpo_response (
1761+ self ,
1762+ agent_name : str ,
1763+ user_input : str ,
1764+ injected_memories : int = 10 ,
1765+ conversation_name : str = "" ,
1766+ ) -> Dict [str , Any ]:
1767+ try :
1768+ response = requests .post (
1769+ headers = self .headers ,
1770+ url = f"{ self .base_uri } /api/agent/{ agent_name } /dpo" ,
1771+ json = {
1772+ "user_input" : user_input ,
1773+ "injected_memories" : injected_memories ,
1774+ "conversation_name" : conversation_name ,
1775+ },
1776+ )
1777+ if self .verbose :
1778+ parse_response (response )
1779+ return response .json ()
1780+ except Exception as e :
1781+ return self .handle_error (e )
1782+
1783+ def transcribe_audio (
1784+ self ,
1785+ file : str ,
1786+ model : str ,
1787+ language : str = None ,
1788+ prompt : str = None ,
1789+ response_format : str = "json" ,
1790+ temperature : float = 0.0 ,
1791+ ) -> Dict [str , Any ]:
1792+ try :
1793+ with open (file , "rb" ) as audio_file :
1794+ files = {"file" : (file , audio_file )}
1795+ data = {
1796+ "model" : model ,
1797+ "language" : language ,
1798+ "prompt" : prompt ,
1799+ "response_format" : response_format ,
1800+ "temperature" : temperature ,
1801+ }
1802+ response = requests .post (
1803+ headers = self .headers ,
1804+ url = f"{ self .base_uri } /v1/audio/transcriptions" ,
1805+ files = files ,
1806+ data = data ,
1807+ )
1808+ if self .verbose :
1809+ parse_response (response )
1810+ return response .json ()
1811+ except Exception as e :
1812+ return self .handle_error (e )
1813+
1814+ def translate_audio (
1815+ self ,
1816+ file : str ,
1817+ model : str ,
1818+ prompt : str = None ,
1819+ response_format : str = "json" ,
1820+ temperature : float = 0.0 ,
1821+ ) -> Dict [str , Any ]:
1822+ try :
1823+ with open (file , "rb" ) as audio_file :
1824+ files = {"file" : (file , audio_file )}
1825+ data = {
1826+ "model" : model ,
1827+ "prompt" : prompt ,
1828+ "response_format" : response_format ,
1829+ "temperature" : temperature ,
1830+ }
1831+ response = requests .post (
1832+ headers = self .headers ,
1833+ url = f"{ self .base_uri } /v1/audio/translations" ,
1834+ files = files ,
1835+ data = data ,
1836+ )
1837+ if self .verbose :
1838+ parse_response (response )
1839+ return response .json ()
1840+ except Exception as e :
1841+ return self .handle_error (e )
1842+
1843+ def generate_image (
1844+ self ,
1845+ prompt : str ,
1846+ model : str = "dall-e-3" ,
1847+ n : int = 1 ,
1848+ size : str = "1024x1024" ,
1849+ response_format : str = "url" ,
1850+ ) -> Dict [str , Any ]:
1851+ try :
1852+ response = requests .post (
1853+ headers = self .headers ,
1854+ url = f"{ self .base_uri } /v1/images/generations" ,
1855+ json = {
1856+ "model" : model ,
1857+ "prompt" : prompt ,
1858+ "n" : n ,
1859+ "size" : size ,
1860+ "response_format" : response_format ,
1861+ },
1862+ )
1863+ if self .verbose :
1864+ parse_response (response )
1865+ return response .json ()
1866+ except Exception as e :
1867+ return self .handle_error (e )
1868+
1869+ def oauth2_login (
1870+ self , provider : str , code : str , referrer : str = None
1871+ ) -> Dict [str , Any ]:
1872+ try :
1873+ data = {"code" : code }
1874+ if referrer :
1875+ data ["referrer" ] = referrer
1876+ response = requests .post (
1877+ headers = self .headers ,
1878+ url = f"{ self .base_uri } /v1/oauth2/{ provider } " ,
1879+ json = data ,
1880+ )
1881+ if self .verbose :
1882+ parse_response (response )
1883+ return response .json ()
1884+ except Exception as e :
1885+ return self .handle_error (e )
1886+
1887+ def update_conversation_message_by_id (
1888+ self ,
1889+ message_id : str ,
1890+ new_message : str ,
1891+ conversation_name : str ,
1892+ ) -> Dict [str , Any ]:
1893+ try :
1894+ response = requests .put (
1895+ headers = self .headers ,
1896+ url = f"{ self .base_uri } /api/conversation/message/{ message_id } " ,
1897+ json = {
1898+ "new_message" : new_message ,
1899+ "conversation_name" : conversation_name ,
1900+ },
1901+ )
1902+ if self .verbose :
1903+ parse_response (response )
1904+ return response .json ()
1905+ except Exception as e :
1906+ return self .handle_error (e )
1907+
1908+ def delete_conversation_message_by_id (
1909+ self ,
1910+ message_id : str ,
1911+ conversation_name : str ,
1912+ ) -> Dict [str , Any ]:
1913+ try :
1914+ response = requests .delete (
1915+ headers = self .headers ,
1916+ url = f"{ self .base_uri } /api/conversation/message/{ message_id } " ,
1917+ json = {"conversation_name" : conversation_name },
1918+ )
1919+ if self .verbose :
1920+ parse_response (response )
1921+ return response .json ()
1922+ except Exception as e :
1923+ return self .handle_error (e )
1924+
1925+ def get_unique_external_sources (
1926+ self ,
1927+ agent_name : str ,
1928+ collection_number : str = "0" ,
1929+ ) -> List [str ]:
1930+ try :
1931+ response = requests .get (
1932+ headers = self .headers ,
1933+ url = f"{ self .base_uri } /api/agent/{ agent_name } /memory/external_sources/{ collection_number } " ,
1934+ )
1935+ if self .verbose :
1936+ parse_response (response )
1937+ return response .json ()["external_sources" ]
1938+ except Exception as e :
1939+ return self .handle_error (e )
0 commit comments