Saravanan666/pypi-org huggingface dataset:
Package: chatllm
🔥ChatLLM 基于知识库🔥ChatLLM API 分发系统上线Click to Star⭐️免费领取tokenshttps://oneapi.chatllm.vip/https://chat.chatllm.vip/Installpipinstall-UchatllmDocsUsages目前适配的LLMs计划推出国内 oneapi，支持各种主流大模型，兼容openai客户端生态。fromchatllm.applicationsimportChatBaseqa=ChatBase()qa.load_llm(model_name_or_path="THUDM/chatglm-6b")foriinqa(query='周杰伦是谁',knowledge_base='周杰伦是傻子'):print(i,end='')# 根据已知信息无法回答该问题，因为周杰伦是中国内地流行歌手、演员、音乐制作人、导演，# 是具有一定的知名度和专业能力的人物，没有提供足够的信息无法判断他是傻子。OpenaiEcosystemClick to 无缝对接openai生态# 服务端pipinstall"chatllm[openai]"&&chatllm-runopenai<本地模型地址>SDK：pip install openaiimportopenaiopenai.api_base='http://0.0.0.0:8000/v1'openai.api_key='chatllm'prompt="你好"completion=openai.Completion.create(prompt=prompt,stream=True,model="text-davinci-003")forcincompletion:print(c.choices[0].text,end='')# 你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你，欢迎问我任何问题。客户端：点击下载chatbox，也可接入客户端openai_keys:不定期更新免费keysChatOCRClick to ChatOCRfrommeutils.pipeimport*fromchatllm.llmchain.applicationsimportChatOCRllm=ChatOCR()file_path="data/invoice.jpg"llm.display(file_path,700)llm.chat('识别编号,公司名称,开票日期,开票人,收款人,复核人,金额',file_path=file_path)|xprintChatMindClick to ChatMindpipinstall"chatllm"&&chatllm-runwebui--namechatmindChatPDFClick to ChatPDFpipinstall"chatllm[pdf]"&&chatllm-runwebui--namechatpdfpython交互fromchatllm.applications.chatpdfimportChatPDFqa=ChatPDF(encode_model='nghuyong/ernie-3.0-nano-zh')qa.load_llm(model_name_or_path="THUDM/chatglm-6b")qa.create_index('财报.pdf')# 构建知识库foriinqa(query='东北证券主营业务'):print(i,end='')# 根据已知信息，东北证券的主营业务为证券业务。公司作为证券公司，主要从事证券经纪、证券投资咨询、与证券交易、# 证券投资活动有关的财务顾问、证券承销与保荐、证券自营、融资融券、证券投资基金代销和代销金融产品待业务。支持召回结果查看DeployClick to DeployChatGLM-6B 模型硬件需求量化等级最低 GPU 显存（推理）最低 GPU 显存（高效参数微调）FP16（无量化）13 GB14 GBINT88 GB9 GBINT46 GB7 GB从本地加载模型安装指南ChatGLM-6B Mac 本地部署实操记录THUDM/ChatGLM-6B#从本地加载模型TODOClick to TODOChatLLM 应用接入非结构化文档（已支持 md、pdf、docx、txt 文件格式）搜索引擎与本地网页接入结构化数据接入（如 csv、Excel、SQL 等）知识图谱/图数据库接入增加 ANN 后端，ES/RedisSearch【确保生产高可用】增加多级缓存缓存多路召回问标量匹配多种向量化，向量匹配增加相似问，换几个问法高置信度直接返回答案【匹配标准问】答高置信度篇章增加上下文信息增加夸篇章信息增加召回信息的相似信息提前生成标准问，匹配问拒绝推断增加更多 LLM 模型支持THUDM/chatglm-6bTHUDM/chatglm-6b-int8THUDM/chatglm-6b-int4THUDM/chatglm-6b-int4-qeClueAI/ChatYuan-large-v2增加更多 Embedding 模型支持nghuyong/ernie-3.0-nano-zhnghuyong/ernie-3.0-base-zhshibing624/text2vec-base-chineseGanymedeNil/text2vec-large-chinese增加一键启动 webui利用 streamlit 实现 ChatPDF，一键启动chatllm-run webui --name chatpdf利用 gradio 实现 Web UI DEMO添加输出内容及错误提示引用标注增加知识库管理选择知识库开始问答上传文件/文件夹至知识库删除知识库中文件增加 API 支持利用 Fastapi/Flask/Grpc
实现流式接口chatllm-run openai <本地模型地址> --host 127.0.0.1 --port 8000前后端分离，实现调用 API 的 Web UI Demo交流群若二维码失效加微信拉群 313303303
Package: chatmanager
chatmanagerchatmanagerprovides various interfaces to facilitate the use of OpenAI API like ChatGPT. It supports functions including API key management, session managementm, and interaction with ChatGPT with multi-threads, and etc.InstallDownload this repository:git clone https://github.com/PeiweiHu/chatmanager.gitBuild and install locally:cd chatmanager 
./script/build.shQuickstartHere are two exmples to show how to usechatmanager.Simple examplefromchatmanagerimportChatManager,ChatMessagecm=ChatManager()cm.add_key('key-name','sk-xxxx')msg=ChatMessage()msg.push_user("How are you?")response=cm.send(msg)print(response.get_msg())More detailed examplefromchatmanagerimportChatManager,ChatSetup,ChatMessage,ChatResponse"""ChatManager is the main interface that the user uses to send prompts and get theresponse.ChatSetup stores the configurations.ChatMessage is the interface to construct the prompts sent to the openai API.ChatResponse parses and stores the responses from openai API."""ChatSetup.api_base="https://api.openai.com/v1"# default api_basecm=ChatManager()"""Before communicating with the openai API, set a session. The session is usedto store the <ChatMessage, ChatResponse> pairs during the communication.The following code set a session named session1."""cm.set_session("session1")"""The following code adds new API keys, then sets the strategy for key usage.Currently there are four strtegies:1. default/roll-polling: use in turn2. random: choose a random key3. least-used: choose the key that has been used the least4. rest-time: choose the key that has not been used for the longest time"""cm.add_key("key_name1","sk-xxx")cm.add_key("key_name2","sk-yyy")cm.keys.set_strategy("rest-time")"""To construct your prompt sent to ChatGPT (or other models), you can use ChatMessage."""msg=ChatMessage()msg.push_system("You are an assistant for programming")msg.push_user("Can you write a loop in C language?")response=cm.send(msg)# response: Optional[ChatResponse]ifresponse:msg1=ChatMessage()"""By the following two lines of code, we construct the <msg> and theresponse of <msg> in <msg1>."""msg1.push_msg(msg.drain())msg1.push_assistant(resposne.get_msg())new_query="Is the above loop correct?"msg1.push_user(new_query)response=cm.send(msg1)"""You can also send multiple ChatMessage one time with multi-threads."""msgs=[msgfor_inrange(10)]response_lst=cm.send(msgs,thread_num=10)# response_lst: List[Optioanl[ChatResponse]]"""All the above communication with openai is saved in the session1.You can export it.You can also define the export manner. Please check the method export_session ofChatManager."""exported_json_str=cm.export_session("session1")withopen('log','w')asw:w.write(exported_json_str)
Package: chatmof
ChatMOF : An Autonomous AI System for Predicting and Generating Metal-Organic FrameworksChatMOF is an autonomous Artificial Intelligence (AI) system that is built to predict and generate of metal-organic frameworks (MOFs). By leveraging a large-scale language model (GPT-4 and GPT-3.5-turbo), ChatMOF extracts key details from textual inputs and delivers appropriate responses, thus eliminating the necessity for rigid structured queries. The system is comprised of  three core components (i.e. an agent, a toolkit, and an evaluator) and it forms a robust pipeline that manages a variety of tasks, including data retrieval, property prediction, and structure generation. The study further explores the merits and constraints of using large language models (LLMs) AI system in material sciences using and showcases its transformative potential for future advancements.NOTE: We've resolved the unavailability issue, if you run into any further issues please leave a github issue.Online DemoYou can test ChatMOF inOnline-Demosite. It requires anOpenAI key(For more information, visit theOpenAI site). In online demo, only the Search task is available. For prediction tasks and generation tasks that require machine learning do not work properly, except for the provided examples.InstallDependenciesNOTE: This package is primarily tested on Linux. We strongly recommend using Linux for the installation.python>=3.9Installation$pipinstallchatmofIf you have a dependency issues betweentorchandmoftransformer, uninstalltorchandpytorch-lightning, installtorch <2.0.0, and reinstall.For prediction and generation task, you have to setup modules.$chatmofsetupAdd the following line to.bashrcfor the openai api key.# openai api keyexportOPENAI_API_KEY="enter_your_api_key"If you want to search the internet, you'll need to enter theGOOGLE_API_KEYandGOOGLE_CSE_IDinto.bashrc.# google api and cse_idexportGOOGLE_API_KEY="enter_your_api_key"exportGOOGLE_CSE_ID="enter_your_id"For MOF generation, you need to install GRIDAY.$chatmofinstall-gridayHow to use ChatMOFYou can use it by running chatmof'srunfunction.$chatmofrunYou can adjust argument of Chatmof such as model and temperature.$chatmofrun--model-namegpt-3.5-turbo--temperature0.5You can usehelpto see more options.$chatmofrun--helpExample of ChatMOF1) Search task2) prediction task3) prediction taskArchitectureChatMOF comprises three core components: an agent, toolkits, and an evaluator. Upon receiving a query from human, the agent formulates a plan and selects a suitable toolkit. Subsequently, the toolkit generates outputs following the proposed plan, and the evaluator makes these results into a final response.Citationif you want to cite ChatMOF, please refer to the following paper:ChatMOF: An Autonomous AI System for Predicting and Generating Metal-Organic Frameworks, arxiv:2308.01423[link]Contributing 🙌Contributions are welcome! If you have any suggestions or find any issues, please open an issue or a pull request.License 📄This project is licensed under the MIT License. See theLICENSEfile for more information.
Package: chatmysql
cmysql本项目是一个MySQL客户端(CLI），它的功能是在普通的MySQL客户端的基础上增加了一个chat功能，可以在MySQL客户端上进行对话聊天，以完成更复杂的任务。依赖MySQL 标准客户端 CLI一个OpenAI的账号，用于调用OpenAI的API其他 python 依赖库，请参考 requirements.txt安装pipinstallcmysql使用cmysql-h127.0.0.1-urootcmysql>select1;+---+|1|+---+|1|+---+1rowinset(0.00sec)cmysql>这个库是干嘛的？

这个是一个电商系统的数据库，用于存储用户的信息，订单信息，商品信息等等。

cmysql>有多大？

总共有40GB。

SQL:selectcount(*)frominformation_schema.tableswheretable_schema='test';+----------+|count(*)|+----------+|10|+----------+1rowinset(0.00sec)cmysql>cmysql>帮我造1000个订单数据吧

好的，马上开始造数据。

写入中...10%50%100%

完成！

cmysql>帮我导出一份订单数据，用csv格式存储

文件导出中...90%100%
导出完成，文件路径：/tmp/orders.csv

cmysql>上周的订单量是多少？

总共1342个订单。目标打造 一个 MySQL Client Copilot，背后是一个 AI Agent基于人的反馈，来构建一个有记忆的 Database Copilot，需要用到符号化存储（Vector&Graph Database）除了是一个MySQL Client，还能支持以对话的方式完成以下操作：数据的导入和导出数据的查询和可视化数据字典的管理，可自动识别，可基于HF更新测试数据的构造因为是一个mysql客户端的增强，因此只考虑单实例、单并发（对异构数据源、多实例、多人并发的支持会放在后续版本中）架构设计
Package: chatnio
ChatNio Python LibraryThe official Python library for the Chat Nio APIAuthors: Deeptrain TeamFree software: MIT licenseDocumentation:https://docs.chatnio.netFeaturesChatConversationQuotaSubscription and PackageInstallationInstall usingpippipinstall--upgradechatnioAnd then import itimportchatnioUsageAuthenticationchatnio.set_key("sk-...")# or read from environment variablechatnio.set_key_from_env("CHATNIO_TOKEN")# set custom api endpoint (default: https://api.chatnio.net)# chatnio.set_endpoint("https://example.com/api")# clear tokenchatnio.clear_key()# get current tokenchatnio.get_token()Chatchat=awaitchatnio.new_chat()asyncformessageinchat.ask("Hello, world!"):print(message.message,end="")Conversation# list conversations (100 conversations max)forconversationinchatnio.list_conversations():print(conversation.id,conversation.name)# load conversationconversation=chatnio.load_conversation(42)print(conversation)formessageinconversation.messages:print(message.role,message.content)# delete conversationstate=chatnio.delete_conversation(42)print(state)Quota# get quotaquota=chatnio.get_quota()print(quota)# buy quotastate=chatnio.buy_quota(1000)print(state)Subscription and Package# get subscriptionsubscription=chatnio.get_subscription()print(subscription.is_subscribed,subscription.expired)# buy subscriptionstate=chatnio.buy_subscription(1,1)# 1 month of basic planprint(state)# get packagepackage=chatnio.get_package()print(package)Errorchatnio.AuthenticationErrorTestTo run the tests, you need to set the environment variableCHATNIO_TOKENto your secret key.exportCHATNIO_TOKEN="sk-..."Then run the testspytestHistory0.1.0 (2023-10-13)First release on PyPI.0.1.1 (2023-10-14)Update Documentation0.1.2 (2023-10-31)Update API0.1.3 (2023-11-29)Add Subscription Level0.1.4 (2023-12-01)Add Customize Endpoint Option
Package: chatnoir-pyterrier
🔍 chatnoir-pyterrierUse the ChatNoir search engine in PyTerrier.Powered by thechatnoir-apipackage.InstallationInstall the package from PyPI:pipinstallchatnoir-pyterrierUsageYou can use theChatNoirRetrievePyTerrier module in any PyTerrier pipeline, like you would do withBatchRetrieve.fromchatnoir_pyterrierimportChatNoirRetrieveapi_key:str="<API_KEY>"chatnoir=ChatNoirRetrieve(api_key)chatnoir.search("python library")Please check out oursample notebookoropen it in Google Colab.Touché 2023Are you participating in Touché 2023task 1ortask 2?
We've prepared asample notebookto show you how to retrieve from the ClueWeb22.
Get started byopening it in Google Colab.CitationIf you use this package, please cite thepaperfrom theChatNoirauthors.
You can use the following BibTeX information for citation:@InProceedings{bevendorff:2018,address={Berlin Heidelberg New York},author={Janek Bevendorff and Benno Stein and Matthias Hagen and Martin Potthast},booktitle={Advances in Information Retrieval. 40th European Conference on IR Research (ECIR 2018)},editor={Leif Azzopardi and Allan Hanbury and Gabriella Pasi and Benjamin Piwowarski},month=mar,publisher={Springer},series={Lecture Notes in Computer Science},site={Grenoble, France},title={{Elastic ChatNoir: Search Engine for the ClueWeb and the Common Crawl}},year=2018}DevelopmentTo build this package and contribute to its development you need to install thebuild, andsetuptoolsandwheelpackages:pipinstallbuildsetuptoolswheel(On most systems, these packages are already pre-installed.)InstallationInstall package and test dependencies:pipinstall-e.[test]TestingConfigure the API keys for testing:exportCHATNOIR_API_KEY="<API_KEY>"exportCHATNOIR_API_KEY_STAGING="<API_KEY>"Verify your changes against the test suite to verify.flake8chatnoir_pyterriertestsexamples
pylint-Echatnoir_pyterriertestsexamples
pytestchatnoir_pyterriertestsexamplesPlease also add tests for your newly developed code.Build wheelsWheels for this package can be built with:python-mbuildSupportIf you hit any problems using this package, please file anissue.
We're happy to help!LicenseThis repository is released under theMIT license.
Package: chaton
ChatonChaton is a small chatbot with the following characteristics:RiveScript-like SyntaxEvent-based Dialog Management for Multi-Modal Event ProcessingContext Information Exchange ProtocolRequired SoftwarePython 3.xChaton depends on python 3.x.LarkLark is used to implement the chaton parser. Lark is a modern parser library for python hosted athttp://github.com/lark-parser. Lark can be installed by:pip install lark-parserInstallationChaton is registered to Python Package Index, and can be installed by:pip install chatonMessage ProtocolLicenseChaton uses theGPL v3.0.ContactAny questions or assistance? Please contact me at minsu(at)etri.re.kr.
Package: chatopera
Chatopera 云服务，实现定制化聊天机器人服务。https://bot.chatopera.com/低代码上线智能对话机器人！支持自定义知识库语料/查询知识库支持多轮对话支持屏蔽/取消屏蔽用户查看聊天机器人详情支持技能：心理问答 API, etc.详细文档：https://github.com/chatopera/chatopera-py-sdk
Package: chatora.confluent-kafka-ext
chatora.confluent_kafka_extApache Kafka and Schema Registry client libraries for Python on top of confluent-kafka-python.Changelog0.4 (2020-02-21)change avro codec error handling.0.3.1 (2019-12-03)support chunked decoding.fix fastavro mappingproxy problem.0.3 (2019-07-07)support chunked decoding.fix fastavro mappingproxy problem.0.2.4 (2019-07-04)change dependencies.0.2.2 (2019-01-15)change exc_handler signature to support arbitrary_info.0.2.1 (2018-12-28)fix decoder bug.allow key_value_pair_iter to have arbitrary infos which are yielded as it is.0.2 (2018-12-28)make AvroCodec decode_with_schema_registry funcs to return schema and schema id.0.1.2 (2018-11-1)fix required urllib3 version.0.1.1 (2018-11-1)fix loading file-like obj and add iter-loading multiple schema.0.1 (2018-11-07)Birth!
Package: chatora.dispatch
chatora.dispatchMultiple argument dispatching for Python.UsageTransform a function into a dispatch generic function, such as thefunctools.singledispatch.
Unlike thefunctools.singledispatch, it supports multi-dispatch.fromchatora.dispatch.apiimportdispatch@dispatchdeffunc(arg0,arg1):return'1st func'assertfunc(0,0)=='1st func'assertfunc('0','0')=='1st func'@func.registerdef_(arg0,arg1:int):return'2nd func'assertfunc(0,0)=='2nd func'assertfunc('0',0)=='2nd func'assertfunc('0','0')=='1st func'@func.registerdef_(arg0:int,arg1:int):return'3rd func'assertfunc(0,0)=='3rd func'assertfunc('0',0)=='2nd func'assertfunc('0','0')=='1st func'It partially supports arguments with typing.Union, typing.Optioanl and typing.Any.
typing.Any is equivalent to empty annotation.fromchatora.dispatch.apiimportdispatchimporttyping@dispatchdeffunc(arg0:typing.Any,arg1:typing.Any):return'1st func'@func.registerdef_(arg0:typing.Optional[str],arg1:typing.Union[str,list,tuple]):return'2nd func'assertfunc(0,0)=='1st func'assertfunc('0',0)=='1st func'assertfunc('0','0')=='2nd func'assertfunc('0',[])=='2nd func'assertfunc(None,())=='2nd func'It also partially supports return type annotation.fromchatora.dispatch.apiimportdispatchimporttypingclassResultTuple(tuple):def__new__(cls,*args):returnsuper().__new__(cls,args)classResultClass:def__init__(self,a,b):self.a,self.b=a,b@dispatchdeffunc(arg0:typing.Optional[str],arg1:tuple):return'1st func'@func.registerdef_(arg0:typing.Optional[str],arg1:tuple)->typing.Sequence[str]:return['2nd','func']@func.registerdef_(arg0:typing.Optional[str],arg1:tuple)->typing.Tuple[str]:return('3rd','func')@func.registerdef_(arg0:typing.Optional[str],arg1:tuple)->ResultTuple:returnResultTuple('4th','func')@func.registerdef_(arg0:typing.Optional[str],arg1:tuple)->ResultClass:returnResultClass('4th','func')assertfunc('0',())=='1st func'assertfunc('0',(),_return_type=typing.Sequence[str])==['2nd','func']assertfunc('0',(),_return_type=typing.Tuple[str])==('3rd','func')assertfunc('0',(),_return_type=ResultTuple)==ResultTuple('4th','func')assertisinstance(func('0',(),_return_type=ResultClass),ResultClass)Changelog0.1 (2019-05-01)Birth!
Package: chatora.mmid
chatora.mmidPython helper libraries for MMID which is similar to UUIDv1 but sortable.Usageimportdatetimeimportrandomimportuuidfromchatora.mmid.apiimportBaseMMID1BASE_DT=datetime.datetime(2011,1,1,tzinfo=datetime.timezone.utc)classMMID1v0(BaseMMID1):__slots__=('int',)UUID_VERSION=4MMID_VERSION=0TS_BIT_LENGTH=55EPOCH_DT=datetime.datetime(2010,1,1,tzinfo=datetime.timezone.utc)# ConstructassertMMID1v0().version==4assertMMID1v0(dt=BASE_DT).dt==MMID1v0(ts=BASE_DT.timestamp()).dt==BASE_DT# Sortable, which is useful for RDB column index (PostgreSQL UUID/BYTEA, MySQL BINARY).assertMMID1v0(dt=BASE_DT)<MMID1v0(dt=BASE_DT+datetime.timedelta(days=1))clock_seq=random.getrandbits(14)assertMMID1v0(dt=BASE_DT,clock_seq=clock_seq)==MMID1v0(dt=BASE_DT,clock_seq=clock_seq)# create_min_instance_from_time()/create_max_instance_from_time() may be useful in case of range query on RDB.assertMMID1v0.create_min_instance_from_time(dt=BASE_DT,)==MMID1v0(hex_='811ed178-c6c0-4000-0000-000000000000')assertMMID1v0.create_max_instance_from_time(dt=BASE_DT,)==MMID1v0(hex_='811ed178-c6c0-4000-ffff-ffffffffffff')# Compatible with UUID1uuid1=uuid.uuid1()mmid1v0=MMID1v0(src_uuid1=uuid1)assertuuid1==mmid1v0assertmmid1v0.uuid1==uuid1Changelog0.1 (2019-01-16)Birth!0.1.1 (2019-01-16)Remove unused requirements.0.1.2 (2019-01-17)Fix timestamp/datetime precision.Accept decimal.Decimal() timestamp values.0.1.3 (2019-01-17)Fix timestamp/datetime precision.0.1.4 (2019-05-14)Removestructlogdependency.
Package: chatora.util
chatora.utilHelper utilities for python.Changelog0.2.5 (2019-07-07)Addfix re-register signal problem0.2.4 (2019-07-07)Addsignal_handler_ctx0.2.3 (2019-05-09)Fix super()0.2.2 (2019-05-09)AddBaseSingletonInstance0.2.1 (2019-05-09)Fix singleton management0.2 (2019-05-09)Add import_symbol.py0.1.1 (2018-11-11)Add constant.py0.1 (2018-11-07)Birth!
Package: chatproto
chatprotoLarge Language Model Chat Protocol.The different chat prompt formats used by different Large Language Models have been a problem for developers. We developedchatprototo output the prompt format for different LLMs through a unified interface.Compared to theapply_chat_formatfunction in HuggingFace and the version in FastChat,ChatProtocan locate the position of each message after applying the template. This makes it very convenient for us to mask out certain conversations during training.Quick Startfromchatproto.conversation.historyimportConversationHistoryfromchatproto.registryimportlist_conv_settings,get_conv_settings# Print all available settingsall_settings=list_conv_settings()print(all_settings)settings=get_conv_settings("openbuddy")history=ConversationHistory("SYSTEM_MESSAGE",messages=[(settings.roles[0],"Hello!"),(settings.roles[1],"Hello! How can I assist you today?"),],offset=0,settings=settings)# Apply the templateprint(history.get_prompt())# Get prompt and indicesprompt,indices=history.get_prompt_and_indices()# Print the start and end offsets of each message in the conversation one by one.# The start and end offsets here refer to the offsets in the text, not the tokens.# They do not include any additional characters added in the template.system_start,system_end=indices[0]fori,(conv_start,conv_end)inenumerate(indices[1:]):print((conv_start,conv_end))InstallMethod 1: With pippipinstallchatprotoor:pipinstallgit+https://github.com/vtuber-plan/chatproto.gitMethod 2: From sourceClone this repositorygitclonehttps://github.com/vtuber-plan/chatproto.gitcdchatprotoInstall the Packagepipinstall--upgradepip
pipinstall.
Package: chatproxy
ChatProxyThe goal of ChatProxy is providing python library that enables developers to effortlessly interface with various LLMs such as OpenAI's GPT-4, Google's BERT, and others.This package encapsulates the complex interactions with these LLMs behind intuitive and user-friendly proxy classes, allowing developers to focus on leveraging the power of these advanced models, without being bogged down by intricate API details and interfacing code.Features (WIP)Multiple LLM Support:The package supports multiple LLMs, including but not limited to GPT-4, BERT, and others. It is also designed with flexibility in mind to accommodate future models.Uniform API:It provides a uniform API for different LLMs, allowing developers to switch between models without the need to extensively change the codebase.Error Handling:It includes built-in error handling and retry logic, ensuring that your application remains resilient against minor network hiccups and transient errors.Optimized Performance:With caching and other optimizations, this package makes sure you get the best possible performance out of your chosen LLM.Asynchronous Support:For developers who require high performance and non-blocking code execution, this package offers asynchronous methods.InstallationYou can install thechatproxypackage via pip:pipinstallchatproxyQuickstartHere's an example of how to create a ChatGPT proxy and use it to generate text:importchatproxysession=chatproxy.Session()while(prompt:=input("you : "))!="exit":message=session.send(prompt)print(f"\n{message['role']}:{message['content']}\n")DocumentationFor detailed information on using this package, please refer to ourdocumentation.ContributingWe welcome contributions! Please see ourcontributing guidelinesfor details.LicenseThis project is licensed under the terms of the MIT license. SeeLICENSEfor more details.