Saravanan666/pypi-org huggingface dataset:
Package: torrentstream
Libtorrent made easyThis is pythonic high-level libtorrent API, inspired on the for-humans trend
set by Kenneth Reitz (https://github.com/not-kennethreitz).TorrentStream is centered around the principle ofstreaminga torrent
(sequential download, buffering and playing).TorrentStream exposes a CLI command, intended as an example usage.Torrent objects are context managers that can clean up torrent content after
you finish using them.add_torrentmethod of a TorrentSession returns a Torrent object, thus can be
used directly as a context manager.asyncdefstream_torrent(hash_torrent):session=TorrentSession()# By default this will cleanup torrent contents after playingwithsession.add_torrent(magnet_link=hash_torrent,remove_after=True)astorrent:# Force sequential modetorrent.sequential(True)# Wait for torrent to be startedawaittorrent.wait_for('started')# Get first match of a media filetry:media=next(aforaintorrentifa.is_mediaandnot'sample'ina.path.lower())exceptStopIteration:raiseException('Could not find a playable source')withtimeout(5*60):# Abort if we can't fill 5% in 5 minutesawaitmedia.wait_for_completion(5)returnawaitasyncio.gather(media.wait_for_completion(100),media.launch())
Package: torrent-tracker-scraper
Torrent Tracker ScraperA UDP torrent tracker scraper written in Python 3Installationpipenvinstalltorrent-tracker-scraper
pipenvshellUsagePass in a list of infohashesfromtorrent_tracker_scraperimportscraperscraper=scraper.Scraper(infohashes=["82026E5C56F0AEACEDCE2D7BC2074A644BC50990","04D9A2D3FAEA111356519A0E0775E5EAEE9C944A",])results=scraper.scrape()print(results)[...,{'tracker':'udp://explodie.org:6969','results':[{'infohash':'82026E5C56F0AEACEDCE2D7BC2074A644BC50990','seeders':246,'completed':0,'leechers':36},{'infohash':'04D9A2D3FAEA111356519A0E0775E5EAEE9C944A','seeders':7,'completed':0,'leechers':27}]},{'tracker':'udp//:bt-trace.adgk.net:6969','results':[{'infohash':'82026E5C56F0AEACEDCE2D7BC2074A644BC50990','error':'Could not get stats for infohash [bt-trace.adgk.net:6969]'},{'infohash':'04D9A2D3FAEA111356519A0E0775E5EAEE9C944A','error':'Could not get stats for infohash [bt-trace.adgk.net:6969]'}],'error':None}...Get your scrapped informationPass in a list of trackersfromtorrent_tracker_scraperimportscraperscraper=scraper.Scraper(trackers=["udp://explodie.org:6969/annouce"],infohashes=["82026E5C56F0AEACEDCE2D7BC2074A644BC50990","04D9A2D3FAEA111356519A0E0775E5EAEE9C944A",],)results=scraper.scrape()print(results)[...,{'tracker':'udp://explodie.org:6969','results':[{'infohash':'82026E5C56F0AEACEDCE2D7BC2074A644BC50990','seeders':246,'completed':0,'leechers':36},{'infohash':'04D9A2D3FAEA111356519A0E0775E5EAEE9C944A','seeders':7,'completed':0,'leechers':27}]},...Testingpipenvinstall--dev
pipenvrunpytestHelp/ContributingInstall dev dependenciespipenv install --devMake your changesMake sure your tests passpipenv run pytestCreate an issue herehttps://github.com/project-mk-ultra/torrent-tracker-scraper/issues.Contributors (in alphabetical order)https://github.com/49e94b8f256530dc0d41f740dfe8a4c1https://github.com/dessalineshttps://github.com/zawi99
Package: torrentutils
TorrentUtilsTools to manipulate torrents.Install (automatic)$ pip install torrentutilsInstall (manual)$ git clone git@github.com:walidsa3d/torrentutils.git
$ cd torrentutils
$ python setup.py installLicenseThe MIT License (MIT)
Copyright (c) 2015 Walid Saad

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
Package: torroute
Usage:```pythonimport tornado.ioloopimport tornado.webfrom toroute import route@route('/')class MainHandler(tornado.web.RequestHandler):def get(self):self.write("Hello, world")@route('/login', name='login')class LoginHandler(tornado.web.RequestHandler):def get(self, *args, **kwargs):self.write('login')# group by `/blog`, e.g.: blog app@route('/list', name='blog_list', kwargs={'data': 'hello'}, group='/blog')class BlogListHandler(tornado.web.RequestHandler):def initialize(self, **kwargs):self.data = kwargs.get('data', None)def get(self, *args, **kwargs):self.write(self.data)@route('/post', name='blog_post', group='/blog')class BlogPostHandler(tornado.web.RequestHandler):def get(self, *args, **kwargs):print('post complete! redirect:%s' % route.url_for('blog_list'))self.redirect(route.url_for('blog_list'))@route(r'/view/(?P<pid>\d+)/detail', name='blog_view', group='/blog')class BlogViewHandler(tornado.web.RequestHandler):def get(self, pid, **kwargs):msg = 'Handle Class for /blog/list is %s' \% route.get_handler_class('/list', group='/blog').__name__self.write(msg)if __name__ == '__main__':application = tornado.web.Application([(r"/", MainHandler),] + route.routes())application.listen(8000)tornado.ioloop.IOLoop.current().start()```
Package: tor-router
ContentsINSTALLEXAMPLERequirementJust like flask blueprint, Handler match to url prefix and the url endpoint map to handler instance method decorated by route decorator.INSTALLpip install tor-router (recommended pypi: "https://pypi.python.org/pypi")EXAMPLEfrom tornado import gen
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from web import TrfRequestHandler, route, TrfApplication


class TrfHandler(TrfRequestHandler):
    def get(self, *args, **kwargs):
        self.write("get ok")
        self.finish()

    @gen.coroutine
    def post(self, *args, **kwargs):
        self.write("post ok")
        self.finish()

    @route("/hello")
    def say_hello(self, *args, **kwargs):
        self.write("hello")
        self.finish()

    @route("/hi")
    @gen.coroutine
    def say_hi(self, *args, **kwargs):
        self.write("hi")
        self.finish()

    @route("/fine", allow_method=["get", "post", "put"])
    @gen.coroutine
    def say_fine(self, *args, **kwargs):
        self.write("fine")
        self.finish()


if __name__ == '__main__':
    app = TrfApplication([(r"/api", TrfHandler)])
    server = HTTPServer(app)
    print 8988
    server.listen(8988)
    IOLoop.current().start()RequirementCpython 2.7.12tornado 4.2.1
Package: torrs-hammers
Torr's HammersTools that I use repeatedly that make my life easy.notifications.py - to make notifications during long runs.plotting.py - helping functions for matplotlib and plotly.tools.py - statistical functions and pandas.time.py - get time as str fast.print_ascii.py - print my signatureInstallationpip install git+https://github.com/PTorr/torrs_hammerspip install -r requirements.txtpip install torrs-hammers** 
    ** 
     **    
      **     *     
       **   ***    
        ** ******   
         ********* 
         *      *** 
        ****  **** 
       *****  ***  
        ****  **   
         ******     
          ****     
           **
Package: torrt
https://github.com/idlesign/torrtDescriptionAutomates torrent updates for you.torrtautomatically checks your favourite torrent tracker sites, where torrents are organized as articles (i.e forum-like tracker),
to verify whether specific torrents have been updated (e.g. torrent bundling some TV-series is updated with a new episode),
and instructs your torrent client to download new files.torrtcan function both as a console application and Python module.TrackersAutomatic updates are available for:AniDUB -http://tr.anidub.com/AniLibria -https://www.anilibria.tv/CasStudio -https://casstudio.tvEniaHD -https://eniahd.comKinozal -http://kinozal.tv/NNM-Club -http://nnm-club.me/RUTOR -http://rutor.org/RuTracker (ex torrents.ru) -http://rutracker.org/YTS.MX -https://yts.mx/Torrent clientstorrtis able to cooperate with the following torrent clients:Transmission (using built-in JSON RPC)Deluge (usingdeluge-webapiplugin -https://github.com/idlesign/deluge-webapi)uTorrent (using built-in RPC)qBittorrent (using built-in RPC) v4.1+Notificationstorrtis able to send update notifications using:E-Mail (SMTP)Telegram (via Telegram Bot API) -https://core.telegram.org/bots/apiBotstorrtcan be managed using messenger’s bots:Telegram  (via Telegram Bot API) -https://core.telegram.org/bots/apiDocumentationhttp://torrt.readthedocs.org/
Package: torscrape
TorScrapeTorScrape: Efficient Web Scraping for Data ExtractionFeaturesInformation Retreival: Easily fetch information of any TikTok user profile.Flexible Customization: Customize the number of video links to retrieve for optimal data collection.No API Dependency: Independently collect TikTok video links without relying on TikTok APIs.Pythonic and Easy-to-Use: Follows Pythonic conventions with an intuitive interface for seamless integration.InstallationInstall TorScrape using pip:pip install -r requirements.txtpip install torscrapenoteTorScrape requires Python 3.6 or later.DocumentationFor detailed usage instructions and additional functionality, please refer to the documentation on the github page.ContributingWe welcome contributions to TorScrape! If you encounter issues, have suggestions for improvements, or would like to contribute new features, please feel free to open an issue or submit a pull request on GitHub.LicenseThis package is licensed under the MIT License. See the LICENSE file for more information.ExampleHere'sanexampleofhowtofetchthelatestvideolinksfromaTikTokuserprofile:importTorScrapeusername="example_user"count=10ToreScrape.get_latest_vid_links(username,count)
Package: torsession
Torsession is an async && sync session backend with Mongodb for Tornado.Installation$pipinstalltorsessionExampleAsync example.fromtorsession.asyncimportSessionManager# Initialize SessionManagersm=SessionManager(motor.MotorClient())# create a new session or load a sessionsession=yieldsm.new_session()session=yieldsm.load_session("session id")# set a key-value pairyieldsession.set(key,val)# get keyval=yieldsession.get(key)# delete a keyyieldsession.delete(key)# refresh session idyieldsession.refresh_id()# clear a sessionyieldsession.clear()Sync example.fromtorsession.syncimportSessionManager# Initialize SessionManagersm=SessionManager(pymongo.MotorClient())# create a new session or load a sessionsession=sm.new_session()session=sm.load_session("session id")# set a key-value pairsession.set(key,val)# get keyval=session.get(key)# delete a keysession.delete(key)# refresh session idsession.refresh_id()# clear a sessionsession.clear()LICENSEMIT
Package: torsposer
TOR Service Exposer (torsposer)dMMMMMMP .aMMMb  dMMMMb  .dMMMb  dMMMMb  .aMMMb  .dMMMb  dMMMMMP dMMMMb 
   dMP   dMP"dMP dMP.dMP dMP" VP dMP.dMP dMP"dMP dMP" VP dMP     dMP.dMP 
  dMP   dMP dMP dMMMMK"  VMMMb  dMMMMP" dMP dMP  VMMMb  dMMMP   dMMMMK"  
 dMP   dMP.aMP dMP"AMF dP .dMP dMP     dMP.aMP dP .dMP dMP     dMP"AMF   
dMP    VMMMP" dMP dMP  VMMMP" dMP      VMMMP"  VMMMP" dMMMMMP dMP dMPExpose Services to the TOR network automaticallyInstallationUsing PyPiUse pippython3-mpipinstalltorsposerUsing GitHub + PipInstall requirementsGitUse below commandpython3-mpipinstallgit+https://github.com/dmdhrumilmistry/torsposer.gitUsageHelp menu❯torsposer
dMMMMMMP.aMMMbdMMMMb.dMMMbdMMMMb.aMMMb.dMMMbdMMMMMPdMMMMbdMPdMP"dMP dMP.dMP dMP"VPdMP.dMPdMP"dMP dMP"VPdMPdMP.dMPdMPdMPdMPdMMMMK"  VMMMb  dMMMMP"dMPdMPVMMMbdMMMPdMMMMK"dMP   dMP.aMP dMP"AMFdP.dMPdMPdMP.aMPdP.dMPdMPdMP"AMFdMP    VMMMP"dMPdMPVMMMP" dMP      VMMMP"VMMMP" dMMMMMP dMP dMP--------------------------------------------------------------------------Written By: dmdhrumilmistryGitHub: https://github.com/dmdhrumilmistry/torsposer--------------------------------------------------------------------------Warning: works only on debian based OSes!!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++usage: torsposer [-h] -s SERVICE_NAME [-sp SERVICE_PORT] [-tp TOR_PORT]torsposer: error: the following arguments are required: -s/--serviceexpose localhost server running on port 80 to tor network on tor host port 80torsposer-shttp_service-sp80-tp80Note: iftorsposerdoesn't work try replacing it withpython3 -m torsposer
Package: toRST
==========================================================toRSTConvert various data formats to reStructuredText tables.Currently supports:CSVJSONPlanned formats:ExcelinstallationpipinstalltoRSTCLI UsageexampleConvert file1.csv and file2.json into RSTtorstfile1.csvfile2.json-o/outputfolderPositional Arguments:inputs
One or more input files to convert to RST. Currently only CSV and JSON files are
supported, but additional formats will be added.Optional Arguments:-o, --output_dir
Output directory for generated RST files. Defaults to the current
working directory if not provided.Python UsageexampleImport Table classfromtoRST.toRSTimportTableConvert file1.csv into RST stringrst_table=Table('file1.csv').build_table()Can also convertlist[list or tuple or dict] and dict[str, list]into RST by passing the object into theTableclass
Package: torstack
Torstack is a bundle forTornado. it is designed to make getting started quick and easy, so you can focus on writing your app without needing to reinvent the wheel.InstallingInstall and update usingpip:pip install -U torstackA Simple Config[application]port:8000max_threads_num:500autoreload:Truesettings={'template_path':'website/template','static_path':'website/static','compress_response':True,'cookie_secret':'__cookie_secret__','xsrf_cookies':False,'login_url':'/login','debug':True,'autoreload':False}log={'log_level':'WARNING','log_console':False,'log_file':True,'log_path':'/tmp/logs','when':'D','interval':'1','backupCount':'30'}A Simple Exampleimportosfromtornadoimportgenfromtorstack.serverimportTorStackServerfromtorstack.handler.baseimportBaseHandlerclassMainHandler(BaseHandler):defget(self):self.write("Hello, world")defmain():server=TorStackServer()server.config.load('./dev.conf')server.add_handlers([(r"/",MainHandler)])server.run()if__name__=="__main__":main()FeaturessessioncookiedatabaseredistaskmgrwebsocketsmtpelasticsearchPython librariesredisaioredissqlalchemyaiomysqlpymysqlasyncpgmotorapschedulerelasticsearchpsycopg2
Package: torswitch
﻿# Tor SwitchPython package to interact with tor and control IP address rotations.Installationinstall torsudo apt install torinstall torswitchpip3 install torswitchUsagefromtorswitchimportTorProtocol#Create your networkthisnetwork=TorProtocol()#start your tor networkthisnetwork.Start()#for changing your ip usethisnetwork.NewTorIp()"""NewTorIP() just request for new ip, ip maybe or maybe not change"""#for getting absolute new ip usethisnetwork.AbsoluteNewTorIp()#for continues ip rotation usethisnetwork.TorIpRotation(delay=3,limit=12)"""delay is to define the time gap(in seconds) between new ip address request.limit is to define how many time you want to make request,default is 10"""#finally to stop torthisnetwork.Stop()Use tor as proxyimportrequestsfromtorswitchimportTorProtocolthisnetwork=TorProtocol()thisnetwork.Start()proxies={'http':'socks5://127.0.0.1:9050','https':'socks5://127.0.0.1:9050'}proxy=requests.get('https://api.ipify.org',proxies=proxies).textprint(proxy)thisnetwork.Stop()
Package: tort
TortTornado framework helpers.RequiresPython 3.7+as it uses contextvars andTornado 6+.Use casesAdd Request Id to all requestsimport logging
    import tornado.ioloop
    import tornado.web
    from tort.logger import configure_logging

    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Hello, world")

    def make_app():
        configure_logging('/tmp/logs_with_request_id.txt', logging.DEBUG)

        return tornado.web.Application([
            (r"/", MainHandler),
        ])

    if __name__ == "__main__":
        app = make_app()
        app.listen(8888)
        tornado.ioloop.IOLoop.current().start()
Package: tortik
Tortik is a frontend micro framework atop of Python Tornado making easier to develop SOA-based applications.Short explanation of tortik features:http://glibin.github.io/tortikDocumentation and installation instructionshttp://tortik.readthedocs.org/en/latest/SOA (microservices) and tortik use cases at PyCon RU 2014 (in Russian)http://glibin.github.io/lections/pycon2014/
Package: tortoise
Tortoise:turtle graphicson the webThis repository is theproof of conceptof an implementation, inPython, ofturtle graphicsbased on web technologies. This is the main difference with theturtlemodule, which uses(t|T)kinter.Cloning the repository (or retrieving the corresponding ZIP file) is sufficient to use this module. Themain.pyfile, with which above picture were generated, is an example of use of this library. Simply launchpython main.pyfrom the root of the repository.The module is also available onPypi:https://pypi.org/project/tortoise/. Simply launchpip install tortoiseto install it.You can also test the library directly in your web browser, with nothing to install:http://q37.info/s/dj9b7ksf.ThisPythonmodule is part of alarger projectthat aims to provide a way to write modern examples or exercises for programming tutorials.Thetortoiselibrary currently provides following methods (coordinates and distances are relative to theviewboxof the SVG):constructor(dom,id): returns atortoiseobject which usesdomas theDOMfrom theAtlastoolkit, and the SVG element of idid,getAngle(): returns the current angel, in degrees,up(): puts the pen up,down(): puts the pen down,setAutoDraw(value): the drawing is automatically rendered eachvaluemovements (0will disable the auto draw); calldraw()to render remaining movements,setPosition(x,y): the turtle jumps to positionxandy,forward(distance): the tortoise moves by the specifieddistance,right(angle): the tortoise turns clockwise fromangledegrees,left(angle): the tortoise turnscounterclockwise fromangledegrees,setColorRGB(r,g,b): sets the color of the pen following the RGB color model,setColorHSL(h,s,l): sets the color of the pen following the HSL color model, (h: 0 - 360;s,l: 0 - 100%),draw(): draws remaining movements,clear(): erase the drawing area and also resets the internal settings (coordinates, angle, color…).
Package: tortoise-api
Tortoise-APISimplest fastest minimal REST API CRUD generator for Tortoise ORM models.Fully async Zero config One line ASGI appRequirementsPython >= 3.9INSTALLpipinstalltortoise-apiRun your appDescribe your db models with Tortoise ORM inmodels.pymodulefromtortoise_apiimportModelclassUser(Model):id:int=fields.IntField(pk=True)name:str=fields.CharField(255,unique=True,null=False)posts:fields.ReverseRelation["Post"]classPost(Model):id:int=fields.IntField(pk=True)text:str=fields.CharField(4095)user:User=fields.ForeignKeyField('models.User',related_name='posts')_name='text'# `_name` sets the attr for displaying related Post instace inside User (default='name')Write run scriptmain.py: pass your models module in Api app:fromtortoise_apiimportApiimportmodelsapp=Api().start(models)SetDB_URLenv variable in.envfileRun it:uvicornmain:appOr you can just fork Completed minimal runnable example fromsample apps.And voila:You have menu with all your models at root app route:http://127.0.0.1:8000And JSON resources for each db Entity at/{modelName}routes:And one separate Entity at/{modelName}/{entity_id}routes:Made with ❤ on top of the Starlette and Tortoise ORM.
Package: tortoise-cli
tortoise-cliA cli tool for tortoise-orm, build on top of click and ptpython.InstallationYou can just install from pypi.pipinstalltortoise-cliQuick Start>tortoise-cli-h23:59:38
Usage:tortoise-cli[OPTIONS]COMMAND[ARGS]...

Options:-V,--versionShowtheversionandexit.-c,--configTEXTTortoiseORMconfigdictionarypath,likesettings.TORTOISE_ORM-h,--helpShowthismessageandexit.

Commands:shellStartaninteractiveshell.UsageFirst, you need make a TortoiseORM config object, assuming that insettings.py.TORTOISE_ORM={"connections":{"default":"sqlite://:memory:",},"apps":{"models":{"models":["examples.models"],"default_connection":"default"},},}Interactive shellThen you can start an interactive shell for TortoiseORM.tortoise-cli-csettings.TORTOISE_ORMshellOr you can set config by set environment variable.exportTORTOISE_ORM=settings.TORTOISE_ORMThen just run:tortoise-clishellLicenseThis project is licensed under theApache-2.0License.
Package: tortoise-data-migration
tortoise-data-migrationtortoise-data-migrationis a very simple project meant to perform migrations of data, similar to regular structural migrations.The main use case is when your system has some "default data" that needs to exist for the system to work. Some examples:The default username/password of a systemThe default configuration values (if you store the config in the DB)These values could be set in the system as part of the installation process, but then when writing tests that use those,
you would have to somehow get those values to the DB. So you create a test fixture, and very probably you will be
introducing duplication (the bringup/installation process has these values, and the fixture too).tortoise-data-migrations are meant to be executed by the software (either during test execution of production) after the
database structure is up-to-date (in production software after runningaerichmigrations for example
or during tests after the DB setup is done), but before the actual software starts executing. That's whytortoise-data-migrationis a library and not a command line tool.InstallationPippip install tortoise-data-migrationPipenvpipenv install tortoise-data-migrationPoetrypoetry add tortoise-data-migrationPDMpdm add tortoise-data-migrationNotes for maintainersReleaseTo create a new release, create a github release and a github action will take care of building and publishing. After
that, there will be a PR automatically created to bump the version inmain.
Package: tortoise-orm-stubs
tortoise-orm-stubsType stubs that maketortoise-orma bit easier to work with when using type checkers.Specifically, data fields' types automatically reflect the value of null argument (i.e. become optional if you set null=True)Installationpip install tortoise-orm-stubsDisclaimerPreviouslytortoise-orm-stubsprovided a lot more value but now the majority of its functionality has become a part oftortoise-orm. Hopefully, it will become completely unnecessary in the future.
Package: tortoise-pagination
UsageSupposing inmyapp.schemayou have a pydanticBaseModelto represent your modelfromfastapiimportDependsfromtortoise_paginationimportPagination,Pagefrommyapp.mainimportappfrommyapp.modelsimportMyModelfrommyapp.schemaimportMySchema@app.get('/mymodel')asyncdefmy_view(pagination:Depends(Pagination.from_query))->Page[MySchema]:returnawaitpagination.paginated_response(MyModel.all(),MySchema)now you can request with:curlhttp://localhost:8000/mymodel?offset=0&limit=20returned structure:items list[MySchema]count: NonNegativeInt -> the number of entries for this queryset
(MyModel.all().count()) wich the frontend will need to be able to display a pagination
Package: tortoise-vector
Implementation of vector from Tortoise-ORMUsage:fromtortoise_vector.fieldimportVectorFieldfromtortoise_vector.expressionsimportCosineSimilarityfromtortoiseimportModelOPENAI_VECTOR_SIZE=1536classMyModel(Model):# vectors have a fixed size, openai uses 1536 dimensionsembedding=VectorField(vector_size=OPENAI_VECTOR_SIZE)asyncdefget_embedding_from_text(str:str)->list[float]:...asyncdefget_nearst_models(text:str)->Queryset[MyModel]:embedding=awaitget_embedding_from_text(text)return(MyModel.all().annotate(distance=CosineSimilarity("embedding",embedding,OPENAI_VECTOR_SIZE)).order_by("distance"))