aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/litellm/llms
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/litellm/llms
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/llms')
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/README.md12
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/__init__.py1
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/ai21/chat/transformation.py70
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/aiohttp_openai/chat/transformation.py80
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/__init__.py1
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/handler.py839
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/transformation.py831
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/common_utils.py46
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/completion/handler.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/completion/transformation.py306
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/cost_calculation.py25
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/handler.py179
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py47
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/assistants.py1024
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/audio_transcriptions.py198
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/azure.py1347
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/batches/handler.py210
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/gpt_transformation.py294
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/o_series_handler.py72
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/o_series_transformation.py75
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/common_utils.py426
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/completion/handler.py378
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/completion/transformation.py53
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/cost_calculation.py61
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/files/handler.py284
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/fine_tuning/handler.py47
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure/realtime/handler.py75
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/README.md1
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/chat/handler.py3
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/chat/transformation.py268
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/__init__.py1
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/cohere_transformation.py99
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/handler.py292
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/handler.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/transformation.py90
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base.py90
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/anthropic_messages/transformation.py35
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/audio_transcription/transformation.py73
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/base_model_iterator.py137
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/base_utils.py142
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/chat/transformation.py372
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/completion/transformation.py74
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/embedding/transformation.py88
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/image_variations/transformation.py132
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/rerank/transformation.py128
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/base_llm/responses/transformation.py141
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/baseten.py172
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/base_aws_llm.py627
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/__init__.py2
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_handler.py470
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_like/handler.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_like/transformation.py3
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_transformation.py800
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_handler.py1660
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_ai21_transformation.py99
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_cohere_transformation.py78
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_deepseek_transformation.py135
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_llama_transformation.py80
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py83
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_nova_transformation.py70
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_titan_transformation.py116
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude2_transformation.py90
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py100
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/base_invoke_transformation.py678
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/common_utils.py407
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py88
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_multimodal_transformation.py80
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_v2_transformation.py97
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/cohere_transformation.py45
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/embedding.py480
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_nova_canvas_transformation.py106
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability1_transformation.py104
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py100
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/cost_calculator.py41
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/image_handler.py314
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/handler.py168
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/transformation.py119
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cerebras/chat.py83
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/clarifai/chat/transformation.py261
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/clarifai/common_utils.py6
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cloudflare/chat/handler.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cloudflare/chat/transformation.py216
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/codestral/completion/handler.py425
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/codestral/completion/transformation.py122
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/chat/transformation.py368
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/common_utils.py146
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/completion/handler.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/completion/transformation.py264
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/embed/handler.py178
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/embed/transformation.py153
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank/handler.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank/transformation.py151
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank_v2/transformation.py80
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/aiohttp_handler.py595
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/http_handler.py746
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py49
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/llm_http_handler.py1260
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/custom_llm.py170
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/handler.py84
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/transformation.py106
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/databricks/common_utils.py82
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/databricks/cost_calculator.py66
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/databricks/embed/handler.py49
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/databricks/embed/transformation.py48
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/databricks/exceptions.py12
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/databricks/streaming_utils.py166
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/deepgram/audio_transcription/transformation.py129
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/deepgram/common_utils.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/deepinfra/chat/transformation.py119
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/deepseek/chat/transformation.py55
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/deepseek/cost_calculator.py21
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/aleph_alpha.py307
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/palm.py201
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/empower/chat/transformation.py9
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/audio_transcription/transformation.py28
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/chat/transformation.py262
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/common_utils.py51
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/completion/transformation.py61
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/cost_calculator.py78
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/embed/fireworks_ai_transformation.py44
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/friendliai/chat/transformation.py9
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/galadriel/chat/transformation.py9
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/gemini/chat/transformation.py132
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/gemini/context_caching/README.md1
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/gemini/cost_calculator.py21
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/github/chat/transformation.py9
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/groq/chat/handler.py76
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/groq/chat/transformation.py158
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/groq/stt/transformation.py101
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py40
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/embedding/README.md5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/huggingface/chat/handler.py769
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/huggingface/chat/transformation.py589
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/huggingface/common_utils.py45
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/huggingface/huggingface_llms_metadata/hf_conversational_models.txt2523
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/huggingface/huggingface_llms_metadata/hf_text_generation_models.txt37632
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/common_utils.py19
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/handler.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/transformation.py116
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/embedding/transformation.py78
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/handler.py3
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/transformation.py143
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/litellm_proxy/chat/transformation.py33
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/lm_studio/chat/transformation.py20
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/lm_studio/embed/transformation.py50
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/maritalk.py66
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/mistral/chat.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/mistral/embedding.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/mistral/mistral_chat_transformation.py212
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/mistral/mistral_embedding_transformation.py0
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/chat/handler.py130
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/chat/transformation.py227
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/common_utils.py15
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/nvidia_nim/chat.py134
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/nvidia_nim/embed.py82
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py45
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/handler.py102
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/transformation.py441
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/ollama_chat.py607
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/oobabooga.py158
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/transformation.py100
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/common_utils.py15
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/gpt_audio_transformation.py48
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/gpt_transformation.py405
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/o_series_handler.py3
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/o_series_transformation.py156
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/common_utils.py208
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/handler.py319
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/transformation.py158
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/utils.py50
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/cost_calculation.py120
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/fine_tuning/handler.py282
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/handler.py244
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/transformation.py82
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/openai.py2870
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/realtime/handler.py73
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/responses/transformation.py216
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai/transcriptions/handler.py210
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai_like/chat/handler.py403
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai_like/chat/transformation.py126
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai_like/common_utils.py56
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openai_like/embedding/handler.py153
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openrouter/chat/transformation.py88
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/openrouter/common_utils.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/perplexity/chat/transformation.py43
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/petals/common_utils.py10
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/petals/completion/handler.py149
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/petals/completion/transformation.py137
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/handler.py472
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/transformation.py180
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/predibase/common_utils.py23
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/handler.py300
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/transformation.py319
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/replicate/common_utils.py15
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/handler.py179
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/transformation.py26
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/common_utils.py207
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/handler.py701
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/transformation.py270
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/sambanova/chat.py67
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/snowflake/chat/transformation.py167
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/snowflake/common_utils.py34
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/together_ai/chat.py59
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/together_ai/completion/handler.py3
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/together_ai/completion/transformation.py61
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/together_ai/cost_calculator.py79
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/together_ai/embed.py7
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/together_ai/rerank/handler.py92
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/together_ai/rerank/transformation.py63
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/topaz/common_utils.py35
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/topaz/image_variations/transformation.py204
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/triton/common_utils.py15
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/triton/completion/handler.py5
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/triton/completion/transformation.py343
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/triton/embedding/transformation.py123
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/Readme.md6
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/handler.py218
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/transformation.py193
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/common_utils.py282
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/context_caching/transformation.py110
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py416
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/cost_calculator.py242
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/files/handler.py97
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/files/transformation.py163
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/fine_tuning/handler.py371
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini/transformation.py479
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py1495
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py182
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py74
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/image_generation/cost_calculator.py23
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/image_generation/image_generation_handler.py236
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/multimodal_embeddings/embedding_handler.py294
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py243
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_non_gemini.py784
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/ai21/transformation.py62
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/transformation.py114
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py73
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py242
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/embedding_handler.py228
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/transformation.py265
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/types.py62
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_llm_base.py319
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_model_garden/main.py149
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/handler.py195
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/transformation.py15
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/volcengine.py64
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/voyage/embedding/transformation.py146
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/handler.py90
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/transformation.py110
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/watsonx/common_utils.py291
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/watsonx/completion/handler.py3
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/watsonx/completion/transformation.py391
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/watsonx/embed/transformation.py112
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/xai/chat/transformation.py53
254 files changed, 88330 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/README.md b/.venv/lib/python3.12/site-packages/litellm/llms/README.md
new file mode 100644
index 00000000..7a813679
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/README.md
@@ -0,0 +1,12 @@
+## File Structure
+
+### August 27th, 2024
+
+To make it easy to see how calls are transformed for each model/provider:
+
+we are working on moving all supported litellm providers to a folder structure, where folder name is the supported litellm provider name.
+
+Each folder will contain a `*_transformation.py` file, which has all the request/response transformation logic, making it easy to see how calls are modified.
+
+E.g. `cohere/`, `bedrock/`.
+ \ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/__init__.py b/.venv/lib/python3.12/site-packages/litellm/llms/__init__.py
new file mode 100644
index 00000000..b6e690fd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/__init__.py
@@ -0,0 +1 @@
+from . import *
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/ai21/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/ai21/chat/transformation.py
new file mode 100644
index 00000000..1a07b50d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/ai21/chat/transformation.py
@@ -0,0 +1,70 @@
+"""
+AI21 Chat Completions API
+
+this is OpenAI compatible - no translation needed / occurs
+"""
+
+from typing import Optional, Union
+
+from ...openai_like.chat.transformation import OpenAILikeChatConfig
+
+
+class AI21ChatConfig(OpenAILikeChatConfig):
+ """
+ Reference: https://docs.ai21.com/reference/jamba-15-api-ref#request-parameters
+
+ Below are the parameters:
+ """
+
+ tools: Optional[list] = None
+ response_format: Optional[dict] = None
+ documents: Optional[list] = None
+ max_tokens: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ n: Optional[int] = None
+ stream: Optional[bool] = None
+ seed: Optional[int] = None
+ tool_choice: Optional[str] = None
+ user: Optional[str] = None
+
+ def __init__(
+ self,
+ tools: Optional[list] = None,
+ response_format: Optional[dict] = None,
+ max_tokens: Optional[int] = None,
+ temperature: Optional[float] = None,
+ top_p: Optional[float] = None,
+ stop: Optional[Union[str, list]] = None,
+ n: Optional[int] = None,
+ stream: Optional[bool] = None,
+ seed: Optional[int] = None,
+ tool_choice: Optional[str] = None,
+ user: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ Get the supported OpenAI params for the given model
+
+ """
+
+ return [
+ "tools",
+ "response_format",
+ "max_tokens",
+ "max_completion_tokens",
+ "temperature",
+ "stop",
+ "n",
+ "stream",
+ "seed",
+ "tool_choice",
+ ]
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/aiohttp_openai/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/aiohttp_openai/chat/transformation.py
new file mode 100644
index 00000000..212db185
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/aiohttp_openai/chat/transformation.py
@@ -0,0 +1,80 @@
+"""
+*New config* for using aiohttp to make the request to the custom OpenAI-like provider
+
+This leads to 10x higher RPS than httpx
+https://github.com/BerriAI/litellm/issues/6592
+
+New config to ensure we introduce this without causing breaking changes for users
+"""
+
+from typing import TYPE_CHECKING, Any, List, Optional
+
+from aiohttp import ClientResponse
+
+from litellm.llms.openai_like.chat.transformation import OpenAILikeChatConfig
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import Choices, ModelResponse
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class AiohttpOpenAIChatConfig(OpenAILikeChatConfig):
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ Ensure - /v1/chat/completions is at the end of the url
+
+ """
+ if api_base is None:
+ api_base = "https://api.openai.com"
+
+ if not api_base.endswith("/chat/completions"):
+ api_base += "/chat/completions"
+ return api_base
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return {"Authorization": f"Bearer {api_key}"}
+
+ async def transform_response( # type: ignore
+ self,
+ model: str,
+ raw_response: ClientResponse,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ _json_response = await raw_response.json()
+ model_response.id = _json_response.get("id")
+ model_response.choices = [
+ Choices(**choice) for choice in _json_response.get("choices")
+ ]
+ model_response.created = _json_response.get("created")
+ model_response.model = _json_response.get("model")
+ model_response.object = _json_response.get("object")
+ model_response.system_fingerprint = _json_response.get("system_fingerprint")
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/__init__.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/__init__.py
new file mode 100644
index 00000000..ae84c3b1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/__init__.py
@@ -0,0 +1 @@
+from .handler import AnthropicChatCompletion, ModelResponseIterator
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/handler.py
new file mode 100644
index 00000000..f2c5f390
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/handler.py
@@ -0,0 +1,839 @@
+"""
+Calling + translation logic for anthropic's `/v1/messages` endpoint
+"""
+
+import copy
+import json
+from typing import Any, Callable, Dict, List, Optional, Tuple, Union
+
+import httpx # type: ignore
+
+import litellm
+import litellm.litellm_core_utils
+import litellm.types
+import litellm.types.utils
+from litellm import LlmProviders
+from litellm.litellm_core_utils.core_helpers import map_finish_reason
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.llms.anthropic import (
+ AnthropicChatCompletionUsageBlock,
+ ContentBlockDelta,
+ ContentBlockStart,
+ ContentBlockStop,
+ MessageBlockDelta,
+ MessageStartBlock,
+ UsageDelta,
+)
+from litellm.types.llms.openai import (
+ ChatCompletionThinkingBlock,
+ ChatCompletionToolCallChunk,
+ ChatCompletionUsageBlock,
+)
+from litellm.types.utils import (
+ Delta,
+ GenericStreamingChunk,
+ ModelResponseStream,
+ StreamingChoices,
+)
+from litellm.utils import CustomStreamWrapper, ModelResponse, ProviderConfigManager
+
+from ...base import BaseLLM
+from ..common_utils import AnthropicError, process_anthropic_headers
+from .transformation import AnthropicConfig
+
+
+async def make_call(
+ client: Optional[AsyncHTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ json_mode: bool,
+) -> Tuple[Any, httpx.Headers]:
+ if client is None:
+ client = litellm.module_level_aclient
+
+ try:
+ response = await client.post(
+ api_base, headers=headers, data=data, stream=True, timeout=timeout
+ )
+ except httpx.HTTPStatusError as e:
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise AnthropicError(
+ status_code=e.response.status_code,
+ message=await e.response.aread(),
+ headers=error_headers,
+ )
+ except Exception as e:
+ for exception in litellm.LITELLM_EXCEPTION_TYPES:
+ if isinstance(e, exception):
+ raise e
+ raise AnthropicError(status_code=500, message=str(e))
+
+ completion_stream = ModelResponseIterator(
+ streaming_response=response.aiter_lines(),
+ sync_stream=False,
+ json_mode=json_mode,
+ )
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=completion_stream, # Pass the completion stream for logging
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream, response.headers
+
+
+def make_sync_call(
+ client: Optional[HTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ json_mode: bool,
+) -> Tuple[Any, httpx.Headers]:
+ if client is None:
+ client = litellm.module_level_client # re-use a module level client
+
+ try:
+ response = client.post(
+ api_base, headers=headers, data=data, stream=True, timeout=timeout
+ )
+ except httpx.HTTPStatusError as e:
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise AnthropicError(
+ status_code=e.response.status_code,
+ message=e.response.read(),
+ headers=error_headers,
+ )
+ except Exception as e:
+ for exception in litellm.LITELLM_EXCEPTION_TYPES:
+ if isinstance(e, exception):
+ raise e
+ raise AnthropicError(status_code=500, message=str(e))
+
+ if response.status_code != 200:
+ response_headers = getattr(response, "headers", None)
+ raise AnthropicError(
+ status_code=response.status_code,
+ message=response.read(),
+ headers=response_headers,
+ )
+
+ completion_stream = ModelResponseIterator(
+ streaming_response=response.iter_lines(), sync_stream=True, json_mode=json_mode
+ )
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream, response.headers
+
+
+class AnthropicChatCompletion(BaseLLM):
+ def __init__(self) -> None:
+ super().__init__()
+
+ async def acompletion_stream_function(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ timeout: Union[float, httpx.Timeout],
+ client: Optional[AsyncHTTPHandler],
+ encoding,
+ api_key,
+ logging_obj,
+ stream,
+ _is_function_call,
+ data: dict,
+ json_mode: bool,
+ optional_params=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ ):
+ data["stream"] = True
+
+ completion_stream, headers = await make_call(
+ client=client,
+ api_base=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ timeout=timeout,
+ json_mode=json_mode,
+ )
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="anthropic",
+ logging_obj=logging_obj,
+ _response_headers=process_anthropic_headers(headers),
+ )
+ return streamwrapper
+
+ async def acompletion_function(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ timeout: Union[float, httpx.Timeout],
+ encoding,
+ api_key,
+ logging_obj,
+ stream,
+ _is_function_call,
+ data: dict,
+ optional_params: dict,
+ json_mode: bool,
+ litellm_params: dict,
+ provider_config: BaseConfig,
+ logger_fn=None,
+ headers={},
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+ async_handler = client or get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.ANTHROPIC
+ )
+
+ try:
+ response = await async_handler.post(
+ api_base, headers=headers, json=data, timeout=timeout
+ )
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=str(e),
+ additional_args={"complete_input_dict": data},
+ )
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ if error_response and hasattr(error_response, "text"):
+ error_text = getattr(error_response, "text", error_text)
+ raise AnthropicError(
+ message=error_text,
+ status_code=status_code,
+ headers=error_headers,
+ )
+
+ return provider_config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ json_mode=json_mode,
+ )
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_llm_provider: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ acompletion=None,
+ logger_fn=None,
+ headers={},
+ client=None,
+ ):
+
+ optional_params = copy.deepcopy(optional_params)
+ stream = optional_params.pop("stream", None)
+ json_mode: bool = optional_params.pop("json_mode", False)
+ is_vertex_request: bool = optional_params.pop("is_vertex_request", False)
+ _is_function_call = False
+ messages = copy.deepcopy(messages)
+ headers = AnthropicConfig().validate_environment(
+ api_key=api_key,
+ headers=headers,
+ model=model,
+ messages=messages,
+ optional_params={**optional_params, "is_vertex_request": is_vertex_request},
+ )
+
+ config = ProviderConfigManager.get_provider_chat_config(
+ model=model,
+ provider=LlmProviders(custom_llm_provider),
+ )
+
+ data = config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+ print_verbose(f"_is_function_call: {_is_function_call}")
+ if acompletion is True:
+ if (
+ stream is True
+ ): # if function call - fake the streaming (need complete blocks for output parsing in openai format)
+ print_verbose("makes async anthropic streaming POST request")
+ data["stream"] = stream
+ return self.acompletion_stream_function(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=api_base,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=stream,
+ _is_function_call=_is_function_call,
+ json_mode=json_mode,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ client=(
+ client
+ if client is not None and isinstance(client, AsyncHTTPHandler)
+ else None
+ ),
+ )
+ else:
+ return self.acompletion_function(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=api_base,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ provider_config=config,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=stream,
+ _is_function_call=_is_function_call,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ client=client,
+ json_mode=json_mode,
+ timeout=timeout,
+ )
+ else:
+ ## COMPLETION CALL
+ if (
+ stream is True
+ ): # if function call - fake the streaming (need complete blocks for output parsing in openai format)
+ data["stream"] = stream
+ completion_stream, headers = make_sync_call(
+ client=client,
+ api_base=api_base,
+ headers=headers, # type: ignore
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ timeout=timeout,
+ json_mode=json_mode,
+ )
+ return CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="anthropic",
+ logging_obj=logging_obj,
+ _response_headers=process_anthropic_headers(headers),
+ )
+
+ else:
+ if client is None or not isinstance(client, HTTPHandler):
+ client = HTTPHandler(timeout=timeout) # type: ignore
+ else:
+ client = client
+
+ try:
+ response = client.post(
+ api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout,
+ )
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ if error_response and hasattr(error_response, "text"):
+ error_text = getattr(error_response, "text", error_text)
+ raise AnthropicError(
+ message=error_text,
+ status_code=status_code,
+ headers=error_headers,
+ )
+
+ return config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ json_mode=json_mode,
+ )
+
+ def embedding(self):
+ # logic for parsing in - calling - parsing out model embedding calls
+ pass
+
+
+class ModelResponseIterator:
+ def __init__(
+ self, streaming_response, sync_stream: bool, json_mode: Optional[bool] = False
+ ):
+ self.streaming_response = streaming_response
+ self.response_iterator = self.streaming_response
+ self.content_blocks: List[ContentBlockDelta] = []
+ self.tool_index = -1
+ self.json_mode = json_mode
+
+ def check_empty_tool_call_args(self) -> bool:
+ """
+ Check if the tool call block so far has been an empty string
+ """
+ args = ""
+ # if text content block -> skip
+ if len(self.content_blocks) == 0:
+ return False
+
+ if (
+ self.content_blocks[0]["delta"]["type"] == "text_delta"
+ or self.content_blocks[0]["delta"]["type"] == "thinking_delta"
+ ):
+ return False
+
+ for block in self.content_blocks:
+ if block["delta"]["type"] == "input_json_delta":
+ args += block["delta"].get("partial_json", "") # type: ignore
+
+ if len(args) == 0:
+ return True
+ return False
+
+ def _handle_usage(
+ self, anthropic_usage_chunk: Union[dict, UsageDelta]
+ ) -> AnthropicChatCompletionUsageBlock:
+
+ usage_block = AnthropicChatCompletionUsageBlock(
+ prompt_tokens=anthropic_usage_chunk.get("input_tokens", 0),
+ completion_tokens=anthropic_usage_chunk.get("output_tokens", 0),
+ total_tokens=anthropic_usage_chunk.get("input_tokens", 0)
+ + anthropic_usage_chunk.get("output_tokens", 0),
+ )
+
+ cache_creation_input_tokens = anthropic_usage_chunk.get(
+ "cache_creation_input_tokens"
+ )
+ if cache_creation_input_tokens is not None and isinstance(
+ cache_creation_input_tokens, int
+ ):
+ usage_block["cache_creation_input_tokens"] = cache_creation_input_tokens
+
+ cache_read_input_tokens = anthropic_usage_chunk.get("cache_read_input_tokens")
+ if cache_read_input_tokens is not None and isinstance(
+ cache_read_input_tokens, int
+ ):
+ usage_block["cache_read_input_tokens"] = cache_read_input_tokens
+
+ return usage_block
+
+ def _content_block_delta_helper(self, chunk: dict) -> Tuple[
+ str,
+ Optional[ChatCompletionToolCallChunk],
+ List[ChatCompletionThinkingBlock],
+ Dict[str, Any],
+ ]:
+ """
+ Helper function to handle the content block delta
+ """
+
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ provider_specific_fields = {}
+ content_block = ContentBlockDelta(**chunk) # type: ignore
+ thinking_blocks: List[ChatCompletionThinkingBlock] = []
+
+ self.content_blocks.append(content_block)
+ if "text" in content_block["delta"]:
+ text = content_block["delta"]["text"]
+ elif "partial_json" in content_block["delta"]:
+ tool_use = {
+ "id": None,
+ "type": "function",
+ "function": {
+ "name": None,
+ "arguments": content_block["delta"]["partial_json"],
+ },
+ "index": self.tool_index,
+ }
+ elif "citation" in content_block["delta"]:
+ provider_specific_fields["citation"] = content_block["delta"]["citation"]
+ elif (
+ "thinking" in content_block["delta"]
+ or "signature" in content_block["delta"]
+ ):
+ thinking_blocks = [
+ ChatCompletionThinkingBlock(
+ type="thinking",
+ thinking=content_block["delta"].get("thinking") or "",
+ signature=content_block["delta"].get("signature"),
+ )
+ ]
+ provider_specific_fields["thinking_blocks"] = thinking_blocks
+ return text, tool_use, thinking_blocks, provider_specific_fields
+
+ def _handle_reasoning_content(
+ self, thinking_blocks: List[ChatCompletionThinkingBlock]
+ ) -> Optional[str]:
+ """
+ Handle the reasoning content
+ """
+ reasoning_content = None
+ for block in thinking_blocks:
+ if reasoning_content is None:
+ reasoning_content = ""
+ if "thinking" in block:
+ reasoning_content += block["thinking"]
+ return reasoning_content
+
+ def chunk_parser(self, chunk: dict) -> ModelResponseStream:
+ try:
+ type_chunk = chunk.get("type", "") or ""
+
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ finish_reason = ""
+ usage: Optional[ChatCompletionUsageBlock] = None
+ provider_specific_fields: Dict[str, Any] = {}
+ reasoning_content: Optional[str] = None
+ thinking_blocks: Optional[List[ChatCompletionThinkingBlock]] = None
+
+ index = int(chunk.get("index", 0))
+ if type_chunk == "content_block_delta":
+ """
+ Anthropic content chunk
+ chunk = {'type': 'content_block_delta', 'index': 0, 'delta': {'type': 'text_delta', 'text': 'Hello'}}
+ """
+ text, tool_use, thinking_blocks, provider_specific_fields = (
+ self._content_block_delta_helper(chunk=chunk)
+ )
+ if thinking_blocks:
+ reasoning_content = self._handle_reasoning_content(
+ thinking_blocks=thinking_blocks
+ )
+ elif type_chunk == "content_block_start":
+ """
+ event: content_block_start
+ data: {"type":"content_block_start","index":1,"content_block":{"type":"tool_use","id":"toolu_01T1x1fJ34qAmk2tNTrN7Up6","name":"get_weather","input":{}}}
+ """
+ content_block_start = ContentBlockStart(**chunk) # type: ignore
+ self.content_blocks = [] # reset content blocks when new block starts
+ if content_block_start["content_block"]["type"] == "text":
+ text = content_block_start["content_block"]["text"]
+ elif content_block_start["content_block"]["type"] == "tool_use":
+ self.tool_index += 1
+ tool_use = {
+ "id": content_block_start["content_block"]["id"],
+ "type": "function",
+ "function": {
+ "name": content_block_start["content_block"]["name"],
+ "arguments": "",
+ },
+ "index": self.tool_index,
+ }
+ elif type_chunk == "content_block_stop":
+
+ ContentBlockStop(**chunk) # type: ignore
+ # check if tool call content block
+ is_empty = self.check_empty_tool_call_args()
+
+ if is_empty:
+ tool_use = {
+ "id": None,
+ "type": "function",
+ "function": {
+ "name": None,
+ "arguments": "{}",
+ },
+ "index": self.tool_index,
+ }
+ elif type_chunk == "message_delta":
+ """
+ Anthropic
+ chunk = {'type': 'message_delta', 'delta': {'stop_reason': 'max_tokens', 'stop_sequence': None}, 'usage': {'output_tokens': 10}}
+ """
+ # TODO - get usage from this chunk, set in response
+ message_delta = MessageBlockDelta(**chunk) # type: ignore
+ finish_reason = map_finish_reason(
+ finish_reason=message_delta["delta"].get("stop_reason", "stop")
+ or "stop"
+ )
+ usage = self._handle_usage(anthropic_usage_chunk=message_delta["usage"])
+ elif type_chunk == "message_start":
+ """
+ Anthropic
+ chunk = {
+ "type": "message_start",
+ "message": {
+ "id": "msg_vrtx_011PqREFEMzd3REdCoUFAmdG",
+ "type": "message",
+ "role": "assistant",
+ "model": "claude-3-sonnet-20240229",
+ "content": [],
+ "stop_reason": null,
+ "stop_sequence": null,
+ "usage": {
+ "input_tokens": 270,
+ "output_tokens": 1
+ }
+ }
+ }
+ """
+ message_start_block = MessageStartBlock(**chunk) # type: ignore
+ if "usage" in message_start_block["message"]:
+ usage = self._handle_usage(
+ anthropic_usage_chunk=message_start_block["message"]["usage"]
+ )
+ elif type_chunk == "error":
+ """
+ {"type":"error","error":{"details":null,"type":"api_error","message":"Internal server error"} }
+ """
+ _error_dict = chunk.get("error", {}) or {}
+ message = _error_dict.get("message", None) or str(chunk)
+ raise AnthropicError(
+ message=message,
+ status_code=500, # it looks like Anthropic API does not return a status code in the chunk error - default to 500
+ )
+
+ text, tool_use = self._handle_json_mode_chunk(text=text, tool_use=tool_use)
+
+ returned_chunk = ModelResponseStream(
+ choices=[
+ StreamingChoices(
+ index=index,
+ delta=Delta(
+ content=text,
+ tool_calls=[tool_use] if tool_use is not None else None,
+ provider_specific_fields=(
+ provider_specific_fields
+ if provider_specific_fields
+ else None
+ ),
+ thinking_blocks=(
+ thinking_blocks if thinking_blocks else None
+ ),
+ reasoning_content=reasoning_content,
+ ),
+ finish_reason=finish_reason,
+ )
+ ],
+ usage=usage,
+ )
+
+ return returned_chunk
+
+ except json.JSONDecodeError:
+ raise ValueError(f"Failed to decode JSON from chunk: {chunk}")
+
+ def _handle_json_mode_chunk(
+ self, text: str, tool_use: Optional[ChatCompletionToolCallChunk]
+ ) -> Tuple[str, Optional[ChatCompletionToolCallChunk]]:
+ """
+ If JSON mode is enabled, convert the tool call to a message.
+
+ Anthropic returns the JSON schema as part of the tool call
+ OpenAI returns the JSON schema as part of the content, this handles placing it in the content
+
+ Args:
+ text: str
+ tool_use: Optional[ChatCompletionToolCallChunk]
+ Returns:
+ Tuple[str, Optional[ChatCompletionToolCallChunk]]
+
+ text: The text to use in the content
+ tool_use: The ChatCompletionToolCallChunk to use in the chunk response
+ """
+ if self.json_mode is True and tool_use is not None:
+ message = AnthropicConfig._convert_tool_response_to_message(
+ tool_calls=[tool_use]
+ )
+ if message is not None:
+ text = message.content or ""
+ tool_use = None
+
+ return text, tool_use
+
+ # Sync iterator
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ try:
+ chunk = self.response_iterator.__next__()
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ str_line = chunk
+ if isinstance(chunk, bytes): # Handle binary data
+ str_line = chunk.decode("utf-8") # Convert bytes to string
+ index = str_line.find("data:")
+ if index != -1:
+ str_line = str_line[index:]
+
+ if str_line.startswith("data:"):
+ data_json = json.loads(str_line[5:])
+ return self.chunk_parser(chunk=data_json)
+ else:
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error parsing chunk: {e},\nReceived chunk: {chunk}")
+
+ # Async iterator
+ def __aiter__(self):
+ self.async_response_iterator = self.streaming_response.__aiter__()
+ return self
+
+ async def __anext__(self):
+ try:
+ chunk = await self.async_response_iterator.__anext__()
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ str_line = chunk
+ if isinstance(chunk, bytes): # Handle binary data
+ str_line = chunk.decode("utf-8") # Convert bytes to string
+ index = str_line.find("data:")
+ if index != -1:
+ str_line = str_line[index:]
+
+ if str_line.startswith("data:"):
+ data_json = json.loads(str_line[5:])
+ return self.chunk_parser(chunk=data_json)
+ else:
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error parsing chunk: {e},\nReceived chunk: {chunk}")
+
+ def convert_str_chunk_to_generic_chunk(self, chunk: str) -> ModelResponseStream:
+ """
+ Convert a string chunk to a GenericStreamingChunk
+
+ Note: This is used for Anthropic pass through streaming logging
+
+ We can move __anext__, and __next__ to use this function since it's common logic.
+ Did not migrate them to minmize changes made in 1 PR.
+ """
+ str_line = chunk
+ if isinstance(chunk, bytes): # Handle binary data
+ str_line = chunk.decode("utf-8") # Convert bytes to string
+ index = str_line.find("data:")
+ if index != -1:
+ str_line = str_line[index:]
+
+ if str_line.startswith("data:"):
+ data_json = json.loads(str_line[5:])
+ return self.chunk_parser(chunk=data_json)
+ else:
+ return ModelResponseStream()
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/transformation.py
new file mode 100644
index 00000000..1a77c453
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/chat/transformation.py
@@ -0,0 +1,831 @@
+import json
+import time
+from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union, cast
+
+import httpx
+
+import litellm
+from litellm.constants import RESPONSE_FORMAT_TOOL_NAME
+from litellm.litellm_core_utils.core_helpers import map_finish_reason
+from litellm.litellm_core_utils.prompt_templates.factory import anthropic_messages_pt
+from litellm.llms.base_llm.base_utils import type_to_response_format_param
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.anthropic import (
+ AllAnthropicToolsValues,
+ AnthropicComputerTool,
+ AnthropicHostedTools,
+ AnthropicInputSchema,
+ AnthropicMessagesTool,
+ AnthropicMessagesToolChoice,
+ AnthropicSystemMessageContent,
+)
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ ChatCompletionCachedContent,
+ ChatCompletionSystemMessage,
+ ChatCompletionThinkingBlock,
+ ChatCompletionToolCallChunk,
+ ChatCompletionToolCallFunctionChunk,
+ ChatCompletionToolParam,
+)
+from litellm.types.utils import Message as LitellmMessage
+from litellm.types.utils import PromptTokensDetailsWrapper
+from litellm.utils import ModelResponse, Usage, add_dummy_tool, has_tool_call_blocks
+
+from ..common_utils import AnthropicError, process_anthropic_headers
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+
+ LoggingClass = LiteLLMLoggingObj
+else:
+ LoggingClass = Any
+
+
+class AnthropicConfig(BaseConfig):
+ """
+ Reference: https://docs.anthropic.com/claude/reference/messages_post
+
+ to pass metadata to anthropic, it's {"user_id": "any-relevant-information"}
+ """
+
+ max_tokens: Optional[int] = (
+ 4096 # anthropic requires a default value (Opus, Sonnet, and Haiku have the same default)
+ )
+ stop_sequences: Optional[list] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ top_k: Optional[int] = None
+ metadata: Optional[dict] = None
+ system: Optional[str] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[
+ int
+ ] = 4096, # You can pass in a value yourself or use the default value 4096
+ stop_sequences: Optional[list] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ top_k: Optional[int] = None,
+ metadata: Optional[dict] = None,
+ system: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str):
+ params = [
+ "stream",
+ "stop",
+ "temperature",
+ "top_p",
+ "max_tokens",
+ "max_completion_tokens",
+ "tools",
+ "tool_choice",
+ "extra_headers",
+ "parallel_tool_calls",
+ "response_format",
+ "user",
+ ]
+
+ if "claude-3-7-sonnet" in model:
+ params.append("thinking")
+
+ return params
+
+ def get_json_schema_from_pydantic_object(
+ self, response_format: Union[Any, Dict, None]
+ ) -> Optional[dict]:
+
+ return type_to_response_format_param(
+ response_format, ref_template="/$defs/{model}"
+ ) # Relevant issue: https://github.com/BerriAI/litellm/issues/7755
+
+ def get_cache_control_headers(self) -> dict:
+ return {
+ "anthropic-version": "2023-06-01",
+ "anthropic-beta": "prompt-caching-2024-07-31",
+ }
+
+ def get_anthropic_headers(
+ self,
+ api_key: str,
+ anthropic_version: Optional[str] = None,
+ computer_tool_used: bool = False,
+ prompt_caching_set: bool = False,
+ pdf_used: bool = False,
+ is_vertex_request: bool = False,
+ user_anthropic_beta_headers: Optional[List[str]] = None,
+ ) -> dict:
+
+ betas = set()
+ if prompt_caching_set:
+ betas.add("prompt-caching-2024-07-31")
+ if computer_tool_used:
+ betas.add("computer-use-2024-10-22")
+ if pdf_used:
+ betas.add("pdfs-2024-09-25")
+ headers = {
+ "anthropic-version": anthropic_version or "2023-06-01",
+ "x-api-key": api_key,
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+
+ if user_anthropic_beta_headers is not None:
+ betas.update(user_anthropic_beta_headers)
+
+ # Don't send any beta headers to Vertex, Vertex has failed requests when they are sent
+ if is_vertex_request is True:
+ pass
+ elif len(betas) > 0:
+ headers["anthropic-beta"] = ",".join(betas)
+
+ return headers
+
+ def _map_tool_choice(
+ self, tool_choice: Optional[str], parallel_tool_use: Optional[bool]
+ ) -> Optional[AnthropicMessagesToolChoice]:
+ _tool_choice: Optional[AnthropicMessagesToolChoice] = None
+ if tool_choice == "auto":
+ _tool_choice = AnthropicMessagesToolChoice(
+ type="auto",
+ )
+ elif tool_choice == "required":
+ _tool_choice = AnthropicMessagesToolChoice(type="any")
+ elif isinstance(tool_choice, dict):
+ _tool_name = tool_choice.get("function", {}).get("name")
+ _tool_choice = AnthropicMessagesToolChoice(type="tool")
+ if _tool_name is not None:
+ _tool_choice["name"] = _tool_name
+
+ if parallel_tool_use is not None:
+ # Anthropic uses 'disable_parallel_tool_use' flag to determine if parallel tool use is allowed
+ # this is the inverse of the openai flag.
+ if _tool_choice is not None:
+ _tool_choice["disable_parallel_tool_use"] = not parallel_tool_use
+ else: # use anthropic defaults and make sure to send the disable_parallel_tool_use flag
+ _tool_choice = AnthropicMessagesToolChoice(
+ type="auto",
+ disable_parallel_tool_use=not parallel_tool_use,
+ )
+ return _tool_choice
+
+ def _map_tool_helper(
+ self, tool: ChatCompletionToolParam
+ ) -> AllAnthropicToolsValues:
+ returned_tool: Optional[AllAnthropicToolsValues] = None
+
+ if tool["type"] == "function" or tool["type"] == "custom":
+ _input_schema: dict = tool["function"].get(
+ "parameters",
+ {
+ "type": "object",
+ "properties": {},
+ },
+ )
+ input_schema: AnthropicInputSchema = AnthropicInputSchema(**_input_schema)
+ _tool = AnthropicMessagesTool(
+ name=tool["function"]["name"],
+ input_schema=input_schema,
+ )
+
+ _description = tool["function"].get("description")
+ if _description is not None:
+ _tool["description"] = _description
+
+ returned_tool = _tool
+
+ elif tool["type"].startswith("computer_"):
+ ## check if all required 'display_' params are given
+ if "parameters" not in tool["function"]:
+ raise ValueError("Missing required parameter: parameters")
+
+ _display_width_px: Optional[int] = tool["function"]["parameters"].get(
+ "display_width_px"
+ )
+ _display_height_px: Optional[int] = tool["function"]["parameters"].get(
+ "display_height_px"
+ )
+ if _display_width_px is None or _display_height_px is None:
+ raise ValueError(
+ "Missing required parameter: display_width_px or display_height_px"
+ )
+
+ _computer_tool = AnthropicComputerTool(
+ type=tool["type"],
+ name=tool["function"].get("name", "computer"),
+ display_width_px=_display_width_px,
+ display_height_px=_display_height_px,
+ )
+
+ _display_number = tool["function"]["parameters"].get("display_number")
+ if _display_number is not None:
+ _computer_tool["display_number"] = _display_number
+
+ returned_tool = _computer_tool
+ elif tool["type"].startswith("bash_") or tool["type"].startswith(
+ "text_editor_"
+ ):
+ function_name = tool["function"].get("name")
+ if function_name is None:
+ raise ValueError("Missing required parameter: name")
+
+ returned_tool = AnthropicHostedTools(
+ type=tool["type"],
+ name=function_name,
+ )
+ if returned_tool is None:
+ raise ValueError(f"Unsupported tool type: {tool['type']}")
+
+ ## check if cache_control is set in the tool
+ _cache_control = tool.get("cache_control", None)
+ _cache_control_function = tool.get("function", {}).get("cache_control", None)
+ if _cache_control is not None:
+ returned_tool["cache_control"] = _cache_control
+ elif _cache_control_function is not None and isinstance(
+ _cache_control_function, dict
+ ):
+ returned_tool["cache_control"] = ChatCompletionCachedContent(
+ **_cache_control_function # type: ignore
+ )
+
+ return returned_tool
+
+ def _map_tools(self, tools: List) -> List[AllAnthropicToolsValues]:
+ anthropic_tools = []
+ for tool in tools:
+ if "input_schema" in tool: # assume in anthropic format
+ anthropic_tools.append(tool)
+ else: # assume openai tool call
+ new_tool = self._map_tool_helper(tool)
+
+ anthropic_tools.append(new_tool)
+ return anthropic_tools
+
+ def _map_stop_sequences(
+ self, stop: Optional[Union[str, List[str]]]
+ ) -> Optional[List[str]]:
+ new_stop: Optional[List[str]] = None
+ if isinstance(stop, str):
+ if (
+ stop.isspace() and litellm.drop_params is True
+ ): # anthropic doesn't allow whitespace characters as stop-sequences
+ return new_stop
+ new_stop = [stop]
+ elif isinstance(stop, list):
+ new_v = []
+ for v in stop:
+ if (
+ v.isspace() and litellm.drop_params is True
+ ): # anthropic doesn't allow whitespace characters as stop-sequences
+ continue
+ new_v.append(v)
+ if len(new_v) > 0:
+ new_stop = new_v
+ return new_stop
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "max_tokens":
+ optional_params["max_tokens"] = value
+ if param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ if param == "tools":
+ # check if optional params already has tools
+ tool_value = self._map_tools(value)
+ optional_params = self._add_tools_to_optional_params(
+ optional_params=optional_params, tools=tool_value
+ )
+ if param == "tool_choice" or param == "parallel_tool_calls":
+ _tool_choice: Optional[AnthropicMessagesToolChoice] = (
+ self._map_tool_choice(
+ tool_choice=non_default_params.get("tool_choice"),
+ parallel_tool_use=non_default_params.get("parallel_tool_calls"),
+ )
+ )
+
+ if _tool_choice is not None:
+ optional_params["tool_choice"] = _tool_choice
+ if param == "stream" and value is True:
+ optional_params["stream"] = value
+ if param == "stop" and (isinstance(value, str) or isinstance(value, list)):
+ _value = self._map_stop_sequences(value)
+ if _value is not None:
+ optional_params["stop_sequences"] = _value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "response_format" and isinstance(value, dict):
+
+ ignore_response_format_types = ["text"]
+ if value["type"] in ignore_response_format_types: # value is a no-op
+ continue
+
+ json_schema: Optional[dict] = None
+ if "response_schema" in value:
+ json_schema = value["response_schema"]
+ elif "json_schema" in value:
+ json_schema = value["json_schema"]["schema"]
+ """
+ When using tools in this way: - https://docs.anthropic.com/en/docs/build-with-claude/tool-use#json-mode
+ - You usually want to provide a single tool
+ - You should set tool_choice (see Forcing tool use) to instruct the model to explicitly use that tool
+ - Remember that the model will pass the input to the tool, so the name of the tool and description should be from the model’s perspective.
+ """
+
+ _tool_choice = {"name": RESPONSE_FORMAT_TOOL_NAME, "type": "tool"}
+ _tool = self._create_json_tool_call_for_response_format(
+ json_schema=json_schema,
+ )
+ optional_params = self._add_tools_to_optional_params(
+ optional_params=optional_params, tools=[_tool]
+ )
+ optional_params["tool_choice"] = _tool_choice
+ optional_params["json_mode"] = True
+ if param == "user":
+ optional_params["metadata"] = {"user_id": value}
+ if param == "thinking":
+ optional_params["thinking"] = value
+ return optional_params
+
+ def _create_json_tool_call_for_response_format(
+ self,
+ json_schema: Optional[dict] = None,
+ ) -> AnthropicMessagesTool:
+ """
+ Handles creating a tool call for getting responses in JSON format.
+
+ Args:
+ json_schema (Optional[dict]): The JSON schema the response should be in
+
+ Returns:
+ AnthropicMessagesTool: The tool call to send to Anthropic API to get responses in JSON format
+ """
+ _input_schema: AnthropicInputSchema = AnthropicInputSchema(
+ type="object",
+ )
+
+ if json_schema is None:
+ # Anthropic raises a 400 BadRequest error if properties is passed as None
+ # see usage with additionalProperties (Example 5) https://github.com/anthropics/anthropic-cookbook/blob/main/tool_use/extracting_structured_json.ipynb
+ _input_schema["additionalProperties"] = True
+ _input_schema["properties"] = {}
+ else:
+ _input_schema.update(cast(AnthropicInputSchema, json_schema))
+
+ _tool = AnthropicMessagesTool(
+ name=RESPONSE_FORMAT_TOOL_NAME, input_schema=_input_schema
+ )
+ return _tool
+
+ def is_cache_control_set(self, messages: List[AllMessageValues]) -> bool:
+ """
+ Return if {"cache_control": ..} in message content block
+
+ Used to check if anthropic prompt caching headers need to be set.
+ """
+ for message in messages:
+ if message.get("cache_control", None) is not None:
+ return True
+ _message_content = message.get("content")
+ if _message_content is not None and isinstance(_message_content, list):
+ for content in _message_content:
+ if "cache_control" in content:
+ return True
+
+ return False
+
+ def is_computer_tool_used(
+ self, tools: Optional[List[AllAnthropicToolsValues]]
+ ) -> bool:
+ if tools is None:
+ return False
+ for tool in tools:
+ if "type" in tool and tool["type"].startswith("computer_"):
+ return True
+ return False
+
+ def is_pdf_used(self, messages: List[AllMessageValues]) -> bool:
+ """
+ Set to true if media passed into messages.
+
+ """
+ for message in messages:
+ if (
+ "content" in message
+ and message["content"] is not None
+ and isinstance(message["content"], list)
+ ):
+ for content in message["content"]:
+ if "type" in content and content["type"] != "text":
+ return True
+ return False
+
+ def translate_system_message(
+ self, messages: List[AllMessageValues]
+ ) -> List[AnthropicSystemMessageContent]:
+ """
+ Translate system message to anthropic format.
+
+ Removes system message from the original list and returns a new list of anthropic system message content.
+ """
+ system_prompt_indices = []
+ anthropic_system_message_list: List[AnthropicSystemMessageContent] = []
+ for idx, message in enumerate(messages):
+ if message["role"] == "system":
+ valid_content: bool = False
+ system_message_block = ChatCompletionSystemMessage(**message)
+ if isinstance(system_message_block["content"], str):
+ anthropic_system_message_content = AnthropicSystemMessageContent(
+ type="text",
+ text=system_message_block["content"],
+ )
+ if "cache_control" in system_message_block:
+ anthropic_system_message_content["cache_control"] = (
+ system_message_block["cache_control"]
+ )
+ anthropic_system_message_list.append(
+ anthropic_system_message_content
+ )
+ valid_content = True
+ elif isinstance(message["content"], list):
+ for _content in message["content"]:
+ anthropic_system_message_content = (
+ AnthropicSystemMessageContent(
+ type=_content.get("type"),
+ text=_content.get("text"),
+ )
+ )
+ if "cache_control" in _content:
+ anthropic_system_message_content["cache_control"] = (
+ _content["cache_control"]
+ )
+
+ anthropic_system_message_list.append(
+ anthropic_system_message_content
+ )
+ valid_content = True
+
+ if valid_content:
+ system_prompt_indices.append(idx)
+ if len(system_prompt_indices) > 0:
+ for idx in reversed(system_prompt_indices):
+ messages.pop(idx)
+
+ return anthropic_system_message_list
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ """
+ Translate messages to anthropic format.
+ """
+ ## VALIDATE REQUEST
+ """
+ Anthropic doesn't support tool calling without `tools=` param specified.
+ """
+ if (
+ "tools" not in optional_params
+ and messages is not None
+ and has_tool_call_blocks(messages)
+ ):
+ if litellm.modify_params:
+ optional_params["tools"] = self._map_tools(
+ add_dummy_tool(custom_llm_provider="anthropic")
+ )
+ else:
+ raise litellm.UnsupportedParamsError(
+ message="Anthropic doesn't support tool calling without `tools=` param specified. Pass `tools=` param OR set `litellm.modify_params = True` // `litellm_settings::modify_params: True` to add dummy tool to the request.",
+ model="",
+ llm_provider="anthropic",
+ )
+
+ # Separate system prompt from rest of message
+ anthropic_system_message_list = self.translate_system_message(messages=messages)
+ # Handling anthropic API Prompt Caching
+ if len(anthropic_system_message_list) > 0:
+ optional_params["system"] = anthropic_system_message_list
+ # Format rest of message according to anthropic guidelines
+ try:
+ anthropic_messages = anthropic_messages_pt(
+ model=model,
+ messages=messages,
+ llm_provider="anthropic",
+ )
+ except Exception as e:
+ raise AnthropicError(
+ status_code=400,
+ message="{}\nReceived Messages={}".format(str(e), messages),
+ ) # don't use verbose_logger.exception, if exception is raised
+
+ ## Load Config
+ config = litellm.AnthropicConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ ## Handle user_id in metadata
+ _litellm_metadata = litellm_params.get("metadata", None)
+ if (
+ _litellm_metadata
+ and isinstance(_litellm_metadata, dict)
+ and "user_id" in _litellm_metadata
+ ):
+ optional_params["metadata"] = {"user_id": _litellm_metadata["user_id"]}
+
+ data = {
+ "model": model,
+ "messages": anthropic_messages,
+ **optional_params,
+ }
+
+ return data
+
+ def _transform_response_for_json_mode(
+ self,
+ json_mode: Optional[bool],
+ tool_calls: List[ChatCompletionToolCallChunk],
+ ) -> Optional[LitellmMessage]:
+ _message: Optional[LitellmMessage] = None
+ if json_mode is True and len(tool_calls) == 1:
+ # check if tool name is the default tool name
+ json_mode_content_str: Optional[str] = None
+ if (
+ "name" in tool_calls[0]["function"]
+ and tool_calls[0]["function"]["name"] == RESPONSE_FORMAT_TOOL_NAME
+ ):
+ json_mode_content_str = tool_calls[0]["function"].get("arguments")
+ if json_mode_content_str is not None:
+ _message = AnthropicConfig._convert_tool_response_to_message(
+ tool_calls=tool_calls,
+ )
+ return _message
+
+ def extract_response_content(self, completion_response: dict) -> Tuple[
+ str,
+ Optional[List[Any]],
+ Optional[List[ChatCompletionThinkingBlock]],
+ Optional[str],
+ List[ChatCompletionToolCallChunk],
+ ]:
+ text_content = ""
+ citations: Optional[List[Any]] = None
+ thinking_blocks: Optional[List[ChatCompletionThinkingBlock]] = None
+ reasoning_content: Optional[str] = None
+ tool_calls: List[ChatCompletionToolCallChunk] = []
+ for idx, content in enumerate(completion_response["content"]):
+ if content["type"] == "text":
+ text_content += content["text"]
+ ## TOOL CALLING
+ elif content["type"] == "tool_use":
+ tool_calls.append(
+ ChatCompletionToolCallChunk(
+ id=content["id"],
+ type="function",
+ function=ChatCompletionToolCallFunctionChunk(
+ name=content["name"],
+ arguments=json.dumps(content["input"]),
+ ),
+ index=idx,
+ )
+ )
+ ## CITATIONS
+ if content.get("citations", None) is not None:
+ if citations is None:
+ citations = []
+ citations.append(content["citations"])
+ if content.get("thinking", None) is not None:
+ if thinking_blocks is None:
+ thinking_blocks = []
+ thinking_blocks.append(cast(ChatCompletionThinkingBlock, content))
+ if thinking_blocks is not None:
+ reasoning_content = ""
+ for block in thinking_blocks:
+ if "thinking" in block:
+ reasoning_content += block["thinking"]
+ return text_content, citations, thinking_blocks, reasoning_content, tool_calls
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LoggingClass,
+ request_data: Dict,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ _hidden_params: Dict = {}
+ _hidden_params["additional_headers"] = process_anthropic_headers(
+ dict(raw_response.headers)
+ )
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=raw_response.text,
+ additional_args={"complete_input_dict": request_data},
+ )
+
+ ## RESPONSE OBJECT
+ try:
+ completion_response = raw_response.json()
+ except Exception as e:
+ response_headers = getattr(raw_response, "headers", None)
+ raise AnthropicError(
+ message="Unable to get json response - {}, Original Response: {}".format(
+ str(e), raw_response.text
+ ),
+ status_code=raw_response.status_code,
+ headers=response_headers,
+ )
+ if "error" in completion_response:
+ response_headers = getattr(raw_response, "headers", None)
+ raise AnthropicError(
+ message=str(completion_response["error"]),
+ status_code=raw_response.status_code,
+ headers=response_headers,
+ )
+ else:
+ text_content = ""
+ citations: Optional[List[Any]] = None
+ thinking_blocks: Optional[List[ChatCompletionThinkingBlock]] = None
+ reasoning_content: Optional[str] = None
+ tool_calls: List[ChatCompletionToolCallChunk] = []
+
+ text_content, citations, thinking_blocks, reasoning_content, tool_calls = (
+ self.extract_response_content(completion_response=completion_response)
+ )
+
+ _message = litellm.Message(
+ tool_calls=tool_calls,
+ content=text_content or None,
+ provider_specific_fields={
+ "citations": citations,
+ "thinking_blocks": thinking_blocks,
+ },
+ thinking_blocks=thinking_blocks,
+ reasoning_content=reasoning_content,
+ )
+
+ ## HANDLE JSON MODE - anthropic returns single function call
+ json_mode_message = self._transform_response_for_json_mode(
+ json_mode=json_mode,
+ tool_calls=tool_calls,
+ )
+ if json_mode_message is not None:
+ completion_response["stop_reason"] = "stop"
+ _message = json_mode_message
+
+ model_response.choices[0].message = _message # type: ignore
+ model_response._hidden_params["original_response"] = completion_response[
+ "content"
+ ] # allow user to access raw anthropic tool calling response
+
+ model_response.choices[0].finish_reason = map_finish_reason(
+ completion_response["stop_reason"]
+ )
+
+ ## CALCULATING USAGE
+ prompt_tokens = completion_response["usage"]["input_tokens"]
+ completion_tokens = completion_response["usage"]["output_tokens"]
+ _usage = completion_response["usage"]
+ cache_creation_input_tokens: int = 0
+ cache_read_input_tokens: int = 0
+
+ model_response.created = int(time.time())
+ model_response.model = completion_response["model"]
+ if "cache_creation_input_tokens" in _usage:
+ cache_creation_input_tokens = _usage["cache_creation_input_tokens"]
+ prompt_tokens += cache_creation_input_tokens
+ if "cache_read_input_tokens" in _usage:
+ cache_read_input_tokens = _usage["cache_read_input_tokens"]
+ prompt_tokens += cache_read_input_tokens
+
+ prompt_tokens_details = PromptTokensDetailsWrapper(
+ cached_tokens=cache_read_input_tokens
+ )
+ total_tokens = prompt_tokens + completion_tokens
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=total_tokens,
+ prompt_tokens_details=prompt_tokens_details,
+ cache_creation_input_tokens=cache_creation_input_tokens,
+ cache_read_input_tokens=cache_read_input_tokens,
+ )
+
+ setattr(model_response, "usage", usage) # type: ignore
+
+ model_response._hidden_params = _hidden_params
+ return model_response
+
+ @staticmethod
+ def _convert_tool_response_to_message(
+ tool_calls: List[ChatCompletionToolCallChunk],
+ ) -> Optional[LitellmMessage]:
+ """
+ In JSON mode, Anthropic API returns JSON schema as a tool call, we need to convert it to a message to follow the OpenAI format
+
+ """
+ ## HANDLE JSON MODE - anthropic returns single function call
+ json_mode_content_str: Optional[str] = tool_calls[0]["function"].get(
+ "arguments"
+ )
+ try:
+ if json_mode_content_str is not None:
+ args = json.loads(json_mode_content_str)
+ if (
+ isinstance(args, dict)
+ and (values := args.get("values")) is not None
+ ):
+ _message = litellm.Message(content=json.dumps(values))
+ return _message
+ else:
+ # a lot of the times the `values` key is not present in the tool response
+ # relevant issue: https://github.com/BerriAI/litellm/issues/6741
+ _message = litellm.Message(content=json.dumps(args))
+ return _message
+ except json.JSONDecodeError:
+ # json decode error does occur, return the original tool response str
+ return litellm.Message(content=json_mode_content_str)
+ return None
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[Dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return AnthropicError(
+ status_code=status_code,
+ message=error_message,
+ headers=cast(httpx.Headers, headers),
+ )
+
+ def _get_user_anthropic_beta_headers(
+ self, anthropic_beta_header: Optional[str]
+ ) -> Optional[List[str]]:
+ if anthropic_beta_header is None:
+ return None
+ return anthropic_beta_header.split(",")
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> Dict:
+ if api_key is None:
+ raise litellm.AuthenticationError(
+ message="Missing Anthropic API Key - A call is being made to anthropic but no key is set either in the environment variables or via params. Please set `ANTHROPIC_API_KEY` in your environment vars",
+ llm_provider="anthropic",
+ model=model,
+ )
+
+ tools = optional_params.get("tools")
+ prompt_caching_set = self.is_cache_control_set(messages=messages)
+ computer_tool_used = self.is_computer_tool_used(tools=tools)
+ pdf_used = self.is_pdf_used(messages=messages)
+ user_anthropic_beta_headers = self._get_user_anthropic_beta_headers(
+ anthropic_beta_header=headers.get("anthropic-beta")
+ )
+ anthropic_headers = self.get_anthropic_headers(
+ computer_tool_used=computer_tool_used,
+ prompt_caching_set=prompt_caching_set,
+ pdf_used=pdf_used,
+ api_key=api_key,
+ is_vertex_request=optional_params.get("is_vertex_request", False),
+ user_anthropic_beta_headers=user_anthropic_beta_headers,
+ )
+
+ headers = {**headers, **anthropic_headers}
+
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/common_utils.py
new file mode 100644
index 00000000..409bbe2d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/common_utils.py
@@ -0,0 +1,46 @@
+"""
+This file contains common utils for anthropic calls.
+"""
+
+from typing import Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class AnthropicError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message,
+ headers: Optional[httpx.Headers] = None,
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
+
+
+def process_anthropic_headers(headers: Union[httpx.Headers, dict]) -> dict:
+ openai_headers = {}
+ if "anthropic-ratelimit-requests-limit" in headers:
+ openai_headers["x-ratelimit-limit-requests"] = headers[
+ "anthropic-ratelimit-requests-limit"
+ ]
+ if "anthropic-ratelimit-requests-remaining" in headers:
+ openai_headers["x-ratelimit-remaining-requests"] = headers[
+ "anthropic-ratelimit-requests-remaining"
+ ]
+ if "anthropic-ratelimit-tokens-limit" in headers:
+ openai_headers["x-ratelimit-limit-tokens"] = headers[
+ "anthropic-ratelimit-tokens-limit"
+ ]
+ if "anthropic-ratelimit-tokens-remaining" in headers:
+ openai_headers["x-ratelimit-remaining-tokens"] = headers[
+ "anthropic-ratelimit-tokens-remaining"
+ ]
+
+ llm_response_headers = {
+ "{}-{}".format("llm_provider", k): v for k, v in headers.items()
+ }
+
+ additional_headers = {**llm_response_headers, **openai_headers}
+ return additional_headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/completion/handler.py
new file mode 100644
index 00000000..f1c8be7b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/completion/handler.py
@@ -0,0 +1,5 @@
+"""
+Anthropic /complete API - uses `llm_http_handler.py` to make httpx requests
+
+Request/Response transformation is handled in `transformation.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/completion/transformation.py
new file mode 100644
index 00000000..7a260b6f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/completion/transformation.py
@@ -0,0 +1,306 @@
+"""
+Translation logic for anthropic's `/v1/complete` endpoint
+
+Litellm provider slug: `anthropic_text/<model_name>`
+"""
+
+import json
+import time
+from typing import AsyncIterator, Dict, Iterator, List, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ custom_prompt,
+ prompt_factory,
+)
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.llms.base_llm.chat.transformation import (
+ BaseConfig,
+ BaseLLMException,
+ LiteLLMLoggingObj,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import (
+ ChatCompletionToolCallChunk,
+ ChatCompletionUsageBlock,
+ GenericStreamingChunk,
+ ModelResponse,
+ Usage,
+)
+
+
+class AnthropicTextError(BaseLLMException):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url="https://api.anthropic.com/v1/complete"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ message=self.message,
+ status_code=self.status_code,
+ request=self.request,
+ response=self.response,
+ ) # Call the base class constructor with the parameters it needs
+
+
+class AnthropicTextConfig(BaseConfig):
+ """
+ Reference: https://docs.anthropic.com/claude/reference/complete_post
+
+ to pass metadata to anthropic, it's {"user_id": "any-relevant-information"}
+ """
+
+ max_tokens_to_sample: Optional[int] = (
+ litellm.max_tokens
+ ) # anthropic requires a default
+ stop_sequences: Optional[list] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ top_k: Optional[int] = None
+ metadata: Optional[dict] = None
+
+ def __init__(
+ self,
+ max_tokens_to_sample: Optional[int] = 256, # anthropic requires a default
+ stop_sequences: Optional[list] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ top_k: Optional[int] = None,
+ metadata: Optional[dict] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ # makes headers for API call
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ if api_key is None:
+ raise ValueError(
+ "Missing Anthropic API Key - A call is being made to anthropic but no key is set either in the environment variables or via params"
+ )
+ _headers = {
+ "accept": "application/json",
+ "anthropic-version": "2023-06-01",
+ "content-type": "application/json",
+ "x-api-key": api_key,
+ }
+ headers.update(_headers)
+ return headers
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ prompt = self._get_anthropic_text_prompt_from_messages(
+ messages=messages, model=model
+ )
+ ## Load Config
+ config = litellm.AnthropicTextConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ data = {
+ "model": model,
+ "prompt": prompt,
+ **optional_params,
+ }
+
+ return data
+
+ def get_supported_openai_params(self, model: str):
+ """
+ Anthropic /complete API Ref: https://docs.anthropic.com/en/api/complete
+ """
+ return [
+ "stream",
+ "max_tokens",
+ "max_completion_tokens",
+ "stop",
+ "temperature",
+ "top_p",
+ "extra_headers",
+ "user",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ """
+ Follows the same logic as the AnthropicConfig.map_openai_params method (which is the Anthropic /messages API)
+
+ Note: the only difference is in the get supported openai params method between the AnthropicConfig and AnthropicTextConfig
+ API Ref: https://docs.anthropic.com/en/api/complete
+ """
+ for param, value in non_default_params.items():
+ if param == "max_tokens":
+ optional_params["max_tokens_to_sample"] = value
+ if param == "max_completion_tokens":
+ optional_params["max_tokens_to_sample"] = value
+ if param == "stream" and value is True:
+ optional_params["stream"] = value
+ if param == "stop" and (isinstance(value, str) or isinstance(value, list)):
+ _value = litellm.AnthropicConfig()._map_stop_sequences(value)
+ if _value is not None:
+ optional_params["stop_sequences"] = _value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "user":
+ optional_params["metadata"] = {"user_id": value}
+
+ return optional_params
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: str,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ try:
+ completion_response = raw_response.json()
+ except Exception:
+ raise AnthropicTextError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+ prompt = self._get_anthropic_text_prompt_from_messages(
+ messages=messages, model=model
+ )
+ if "error" in completion_response:
+ raise AnthropicTextError(
+ message=str(completion_response["error"]),
+ status_code=raw_response.status_code,
+ )
+ else:
+ if len(completion_response["completion"]) > 0:
+ model_response.choices[0].message.content = completion_response[ # type: ignore
+ "completion"
+ ]
+ model_response.choices[0].finish_reason = completion_response["stop_reason"]
+
+ ## CALCULATING USAGE
+ prompt_tokens = len(
+ encoding.encode(prompt)
+ ) ##[TODO] use the anthropic tokenizer here
+ completion_tokens = len(
+ encoding.encode(model_response["choices"][0]["message"].get("content", ""))
+ ) ##[TODO] use the anthropic tokenizer here
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+
+ setattr(model_response, "usage", usage)
+ return model_response
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[Dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return AnthropicTextError(
+ status_code=status_code,
+ message=error_message,
+ )
+
+ @staticmethod
+ def _is_anthropic_text_model(model: str) -> bool:
+ return model == "claude-2" or model == "claude-instant-1"
+
+ def _get_anthropic_text_prompt_from_messages(
+ self, messages: List[AllMessageValues], model: str
+ ) -> str:
+ custom_prompt_dict = litellm.custom_prompt_dict
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details["initial_prompt_value"],
+ final_prompt_value=model_prompt_details["final_prompt_value"],
+ messages=messages,
+ )
+ else:
+ prompt = prompt_factory(
+ model=model, messages=messages, custom_llm_provider="anthropic"
+ )
+
+ return str(prompt)
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ):
+ return AnthropicTextCompletionResponseIterator(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+
+class AnthropicTextCompletionResponseIterator(BaseModelResponseIterator):
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ is_finished = False
+ finish_reason = ""
+ usage: Optional[ChatCompletionUsageBlock] = None
+ provider_specific_fields = None
+ index = int(chunk.get("index", 0))
+ _chunk_text = chunk.get("completion", None)
+ if _chunk_text is not None and isinstance(_chunk_text, str):
+ text = _chunk_text
+ finish_reason = chunk.get("stop_reason", None)
+ if finish_reason is not None:
+ is_finished = True
+ returned_chunk = GenericStreamingChunk(
+ text=text,
+ tool_use=tool_use,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=usage,
+ index=index,
+ provider_specific_fields=provider_specific_fields,
+ )
+
+ return returned_chunk
+
+ except json.JSONDecodeError:
+ raise ValueError(f"Failed to decode JSON from chunk: {chunk}")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/cost_calculation.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/cost_calculation.py
new file mode 100644
index 00000000..0dbe19ca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/cost_calculation.py
@@ -0,0 +1,25 @@
+"""
+Helper util for handling anthropic-specific cost calculation
+- e.g.: prompt caching
+"""
+
+from typing import Tuple
+
+from litellm.litellm_core_utils.llm_cost_calc.utils import generic_cost_per_token
+from litellm.types.utils import Usage
+
+
+def cost_per_token(model: str, usage: Usage) -> Tuple[float, float]:
+ """
+ Calculates the cost per token for a given model, prompt tokens, and completion tokens.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - usage: LiteLLM Usage block, containing anthropic caching information
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+ """
+ return generic_cost_per_token(
+ model=model, usage=usage, custom_llm_provider="anthropic"
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/handler.py
new file mode 100644
index 00000000..a7dfff74
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/handler.py
@@ -0,0 +1,179 @@
+"""
+- call /messages on Anthropic API
+- Make streaming + non-streaming request - just pass it through direct to Anthropic. No need to do anything special here
+- Ensure requests are logged in the DB - stream + non-stream
+
+"""
+
+import json
+from typing import Any, AsyncIterator, Dict, Optional, Union, cast
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.llms.base_llm.anthropic_messages.transformation import (
+ BaseAnthropicMessagesConfig,
+)
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.router import GenericLiteLLMParams
+from litellm.types.utils import ProviderSpecificHeader
+from litellm.utils import ProviderConfigManager, client
+
+
+class AnthropicMessagesHandler:
+
+ @staticmethod
+ async def _handle_anthropic_streaming(
+ response: httpx.Response,
+ request_body: dict,
+ litellm_logging_obj: LiteLLMLoggingObj,
+ ) -> AsyncIterator:
+ """Helper function to handle Anthropic streaming responses using the existing logging handlers"""
+ from datetime import datetime
+
+ from litellm.proxy.pass_through_endpoints.streaming_handler import (
+ PassThroughStreamingHandler,
+ )
+ from litellm.proxy.pass_through_endpoints.success_handler import (
+ PassThroughEndpointLogging,
+ )
+ from litellm.proxy.pass_through_endpoints.types import EndpointType
+
+ # Create success handler object
+ passthrough_success_handler_obj = PassThroughEndpointLogging()
+
+ # Use the existing streaming handler for Anthropic
+ start_time = datetime.now()
+ return PassThroughStreamingHandler.chunk_processor(
+ response=response,
+ request_body=request_body,
+ litellm_logging_obj=litellm_logging_obj,
+ endpoint_type=EndpointType.ANTHROPIC,
+ start_time=start_time,
+ passthrough_success_handler_obj=passthrough_success_handler_obj,
+ url_route="/v1/messages",
+ )
+
+
+@client
+async def anthropic_messages(
+ api_key: str,
+ model: str,
+ stream: bool = False,
+ api_base: Optional[str] = None,
+ client: Optional[AsyncHTTPHandler] = None,
+ custom_llm_provider: Optional[str] = None,
+ **kwargs,
+) -> Union[Dict[str, Any], AsyncIterator]:
+ """
+ Makes Anthropic `/v1/messages` API calls In the Anthropic API Spec
+ """
+ # Use provided client or create a new one
+ optional_params = GenericLiteLLMParams(**kwargs)
+ model, _custom_llm_provider, dynamic_api_key, dynamic_api_base = (
+ litellm.get_llm_provider(
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ api_base=optional_params.api_base,
+ api_key=optional_params.api_key,
+ )
+ )
+ anthropic_messages_provider_config: Optional[BaseAnthropicMessagesConfig] = (
+ ProviderConfigManager.get_provider_anthropic_messages_config(
+ model=model,
+ provider=litellm.LlmProviders(_custom_llm_provider),
+ )
+ )
+ if anthropic_messages_provider_config is None:
+ raise ValueError(
+ f"Anthropic messages provider config not found for model: {model}"
+ )
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ async_httpx_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.ANTHROPIC
+ )
+ else:
+ async_httpx_client = client
+
+ litellm_logging_obj: LiteLLMLoggingObj = kwargs.get("litellm_logging_obj", None)
+
+ # Prepare headers
+ provider_specific_header = cast(
+ Optional[ProviderSpecificHeader], kwargs.get("provider_specific_header", None)
+ )
+ extra_headers = (
+ provider_specific_header.get("extra_headers", {})
+ if provider_specific_header
+ else {}
+ )
+ headers = anthropic_messages_provider_config.validate_environment(
+ headers=extra_headers or {},
+ model=model,
+ api_key=api_key,
+ )
+
+ litellm_logging_obj.update_environment_variables(
+ model=model,
+ optional_params=dict(optional_params),
+ litellm_params={
+ "metadata": kwargs.get("metadata", {}),
+ "preset_cache_key": None,
+ "stream_response": {},
+ **optional_params.model_dump(exclude_unset=True),
+ },
+ custom_llm_provider=_custom_llm_provider,
+ )
+ litellm_logging_obj.model_call_details.update(kwargs)
+
+ # Prepare request body
+ request_body = kwargs.copy()
+ request_body = {
+ k: v
+ for k, v in request_body.items()
+ if k
+ in anthropic_messages_provider_config.get_supported_anthropic_messages_params(
+ model=model
+ )
+ }
+ request_body["stream"] = stream
+ request_body["model"] = model
+ litellm_logging_obj.stream = stream
+
+ # Make the request
+ request_url = anthropic_messages_provider_config.get_complete_url(
+ api_base=api_base, model=model
+ )
+
+ litellm_logging_obj.pre_call(
+ input=[{"role": "user", "content": json.dumps(request_body)}],
+ api_key="",
+ additional_args={
+ "complete_input_dict": request_body,
+ "api_base": str(request_url),
+ "headers": headers,
+ },
+ )
+
+ response = await async_httpx_client.post(
+ url=request_url,
+ headers=headers,
+ data=json.dumps(request_body),
+ stream=stream,
+ )
+ response.raise_for_status()
+
+ # used for logging + cost tracking
+ litellm_logging_obj.model_call_details["httpx_response"] = response
+
+ if stream:
+ return await AnthropicMessagesHandler._handle_anthropic_streaming(
+ response=response,
+ request_body=request_body,
+ litellm_logging_obj=litellm_logging_obj,
+ )
+ else:
+ return response.json()
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py
new file mode 100644
index 00000000..e9b598f1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py
@@ -0,0 +1,47 @@
+from typing import Optional
+
+from litellm.llms.base_llm.anthropic_messages.transformation import (
+ BaseAnthropicMessagesConfig,
+)
+
+DEFAULT_ANTHROPIC_API_BASE = "https://api.anthropic.com"
+DEFAULT_ANTHROPIC_API_VERSION = "2023-06-01"
+
+
+class AnthropicMessagesConfig(BaseAnthropicMessagesConfig):
+ def get_supported_anthropic_messages_params(self, model: str) -> list:
+ return [
+ "messages",
+ "model",
+ "system",
+ "max_tokens",
+ "stop_sequences",
+ "temperature",
+ "top_p",
+ "top_k",
+ "tools",
+ "tool_choice",
+ "thinking",
+ # TODO: Add Anthropic `metadata` support
+ # "metadata",
+ ]
+
+ def get_complete_url(self, api_base: Optional[str], model: str) -> str:
+ api_base = api_base or DEFAULT_ANTHROPIC_API_BASE
+ if not api_base.endswith("/v1/messages"):
+ api_base = f"{api_base}/v1/messages"
+ return api_base
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ ) -> dict:
+ if "x-api-key" not in headers:
+ headers["x-api-key"] = api_key
+ if "anthropic-version" not in headers:
+ headers["anthropic-version"] = DEFAULT_ANTHROPIC_API_VERSION
+ if "content-type" not in headers:
+ headers["content-type"] = "application/json"
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/assistants.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/assistants.py
new file mode 100644
index 00000000..2e8c78b2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/assistants.py
@@ -0,0 +1,1024 @@
+from typing import Any, Coroutine, Dict, Iterable, Literal, Optional, Union
+
+import httpx
+from openai import AsyncAzureOpenAI, AzureOpenAI
+from typing_extensions import overload
+
+from ...types.llms.openai import (
+ Assistant,
+ AssistantEventHandler,
+ AssistantStreamManager,
+ AssistantToolParam,
+ AsyncAssistantEventHandler,
+ AsyncAssistantStreamManager,
+ AsyncCursorPage,
+ OpenAICreateThreadParamsMessage,
+ OpenAIMessage,
+ Run,
+ SyncCursorPage,
+ Thread,
+)
+from .common_utils import BaseAzureLLM
+
+
+class AzureAssistantsAPI(BaseAzureLLM):
+ def __init__(self) -> None:
+ super().__init__()
+
+ def get_azure_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AzureOpenAI] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> AzureOpenAI:
+ if client is None:
+ azure_client_params = self.initialize_azure_sdk_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ model_name="",
+ api_version=api_version,
+ is_async=False,
+ )
+ azure_openai_client = AzureOpenAI(**azure_client_params) # type: ignore
+ else:
+ azure_openai_client = client
+
+ return azure_openai_client
+
+ def async_get_azure_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> AsyncAzureOpenAI:
+ if client is None:
+ azure_client_params = self.initialize_azure_sdk_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ model_name="",
+ api_version=api_version,
+ is_async=True,
+ )
+
+ azure_openai_client = AsyncAzureOpenAI(**azure_client_params)
+ # azure_openai_client = AsyncAzureOpenAI(**data) # type: ignore
+ else:
+ azure_openai_client = client
+
+ return azure_openai_client
+
+ ### ASSISTANTS ###
+
+ async def async_get_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ litellm_params: Optional[dict] = None,
+ ) -> AsyncCursorPage[Assistant]:
+ azure_openai_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = await azure_openai_client.beta.assistants.list()
+
+ return response
+
+ # fmt: off
+
+ @overload
+ def get_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ aget_assistants: Literal[True],
+ ) -> Coroutine[None, None, AsyncCursorPage[Assistant]]:
+ ...
+
+ @overload
+ def get_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AzureOpenAI],
+ aget_assistants: Optional[Literal[False]],
+ ) -> SyncCursorPage[Assistant]:
+ ...
+
+ # fmt: on
+
+ def get_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client=None,
+ aget_assistants=None,
+ litellm_params: Optional[dict] = None,
+ ):
+ if aget_assistants is not None and aget_assistants is True:
+ return self.async_get_assistants(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ azure_openai_client = self.get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ api_version=api_version,
+ litellm_params=litellm_params,
+ )
+
+ response = azure_openai_client.beta.assistants.list()
+
+ return response
+
+ ### MESSAGES ###
+
+ async def a_add_message(
+ self,
+ thread_id: str,
+ message_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> OpenAIMessage:
+ openai_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ thread_message: OpenAIMessage = await openai_client.beta.threads.messages.create( # type: ignore
+ thread_id, **message_data # type: ignore
+ )
+
+ response_obj: Optional[OpenAIMessage] = None
+ if getattr(thread_message, "status", None) is None:
+ thread_message.status = "completed"
+ response_obj = OpenAIMessage(**thread_message.dict())
+ else:
+ response_obj = OpenAIMessage(**thread_message.dict())
+ return response_obj
+
+ # fmt: off
+
+ @overload
+ def add_message(
+ self,
+ thread_id: str,
+ message_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ a_add_message: Literal[True],
+ litellm_params: Optional[dict] = None,
+ ) -> Coroutine[None, None, OpenAIMessage]:
+ ...
+
+ @overload
+ def add_message(
+ self,
+ thread_id: str,
+ message_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AzureOpenAI],
+ a_add_message: Optional[Literal[False]],
+ litellm_params: Optional[dict] = None,
+ ) -> OpenAIMessage:
+ ...
+
+ # fmt: on
+
+ def add_message(
+ self,
+ thread_id: str,
+ message_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client=None,
+ a_add_message: Optional[bool] = None,
+ litellm_params: Optional[dict] = None,
+ ):
+ if a_add_message is not None and a_add_message is True:
+ return self.a_add_message(
+ thread_id=thread_id,
+ message_data=message_data,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ openai_client = self.get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ )
+
+ thread_message: OpenAIMessage = openai_client.beta.threads.messages.create( # type: ignore
+ thread_id, **message_data # type: ignore
+ )
+
+ response_obj: Optional[OpenAIMessage] = None
+ if getattr(thread_message, "status", None) is None:
+ thread_message.status = "completed"
+ response_obj = OpenAIMessage(**thread_message.dict())
+ else:
+ response_obj = OpenAIMessage(**thread_message.dict())
+ return response_obj
+
+ async def async_get_messages(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> AsyncCursorPage[OpenAIMessage]:
+ openai_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = await openai_client.beta.threads.messages.list(thread_id=thread_id)
+
+ return response
+
+ # fmt: off
+
+ @overload
+ def get_messages(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ aget_messages: Literal[True],
+ litellm_params: Optional[dict] = None,
+ ) -> Coroutine[None, None, AsyncCursorPage[OpenAIMessage]]:
+ ...
+
+ @overload
+ def get_messages(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AzureOpenAI],
+ aget_messages: Optional[Literal[False]],
+ litellm_params: Optional[dict] = None,
+ ) -> SyncCursorPage[OpenAIMessage]:
+ ...
+
+ # fmt: on
+
+ def get_messages(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client=None,
+ aget_messages=None,
+ litellm_params: Optional[dict] = None,
+ ):
+ if aget_messages is not None and aget_messages is True:
+ return self.async_get_messages(
+ thread_id=thread_id,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ openai_client = self.get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = openai_client.beta.threads.messages.list(thread_id=thread_id)
+
+ return response
+
+ ### THREADS ###
+
+ async def async_create_thread(
+ self,
+ metadata: Optional[dict],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ messages: Optional[Iterable[OpenAICreateThreadParamsMessage]],
+ litellm_params: Optional[dict] = None,
+ ) -> Thread:
+ openai_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ data = {}
+ if messages is not None:
+ data["messages"] = messages # type: ignore
+ if metadata is not None:
+ data["metadata"] = metadata # type: ignore
+
+ message_thread = await openai_client.beta.threads.create(**data) # type: ignore
+
+ return Thread(**message_thread.dict())
+
+ # fmt: off
+
+ @overload
+ def create_thread(
+ self,
+ metadata: Optional[dict],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ messages: Optional[Iterable[OpenAICreateThreadParamsMessage]],
+ client: Optional[AsyncAzureOpenAI],
+ acreate_thread: Literal[True],
+ litellm_params: Optional[dict] = None,
+ ) -> Coroutine[None, None, Thread]:
+ ...
+
+ @overload
+ def create_thread(
+ self,
+ metadata: Optional[dict],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ messages: Optional[Iterable[OpenAICreateThreadParamsMessage]],
+ client: Optional[AzureOpenAI],
+ acreate_thread: Optional[Literal[False]],
+ litellm_params: Optional[dict] = None,
+ ) -> Thread:
+ ...
+
+ # fmt: on
+
+ def create_thread(
+ self,
+ metadata: Optional[dict],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ messages: Optional[Iterable[OpenAICreateThreadParamsMessage]],
+ client=None,
+ acreate_thread=None,
+ litellm_params: Optional[dict] = None,
+ ):
+ """
+ Here's an example:
+ ```
+ from litellm.llms.openai.openai import OpenAIAssistantsAPI, MessageData
+
+ # create thread
+ message: MessageData = {"role": "user", "content": "Hey, how's it going?"}
+ openai_api.create_thread(messages=[message])
+ ```
+ """
+ if acreate_thread is not None and acreate_thread is True:
+ return self.async_create_thread(
+ metadata=metadata,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ messages=messages,
+ litellm_params=litellm_params,
+ )
+ azure_openai_client = self.get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ data = {}
+ if messages is not None:
+ data["messages"] = messages # type: ignore
+ if metadata is not None:
+ data["metadata"] = metadata # type: ignore
+
+ message_thread = azure_openai_client.beta.threads.create(**data) # type: ignore
+
+ return Thread(**message_thread.dict())
+
+ async def async_get_thread(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ litellm_params: Optional[dict] = None,
+ ) -> Thread:
+ openai_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = await openai_client.beta.threads.retrieve(thread_id=thread_id)
+
+ return Thread(**response.dict())
+
+ # fmt: off
+
+ @overload
+ def get_thread(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ aget_thread: Literal[True],
+ litellm_params: Optional[dict] = None,
+ ) -> Coroutine[None, None, Thread]:
+ ...
+
+ @overload
+ def get_thread(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AzureOpenAI],
+ aget_thread: Optional[Literal[False]],
+ litellm_params: Optional[dict] = None,
+ ) -> Thread:
+ ...
+
+ # fmt: on
+
+ def get_thread(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client=None,
+ aget_thread=None,
+ litellm_params: Optional[dict] = None,
+ ):
+ if aget_thread is not None and aget_thread is True:
+ return self.async_get_thread(
+ thread_id=thread_id,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ openai_client = self.get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = openai_client.beta.threads.retrieve(thread_id=thread_id)
+
+ return Thread(**response.dict())
+
+ # def delete_thread(self):
+ # pass
+
+ ### RUNS ###
+
+ async def arun_thread(
+ self,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ stream: Optional[bool],
+ tools: Optional[Iterable[AssistantToolParam]],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ litellm_params: Optional[dict] = None,
+ ) -> Run:
+ openai_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = await openai_client.beta.threads.runs.create_and_poll( # type: ignore
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata, # type: ignore
+ model=model,
+ tools=tools,
+ )
+
+ return response
+
+ def async_run_thread_stream(
+ self,
+ client: AsyncAzureOpenAI,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ tools: Optional[Iterable[AssistantToolParam]],
+ event_handler: Optional[AssistantEventHandler],
+ litellm_params: Optional[dict] = None,
+ ) -> AsyncAssistantStreamManager[AsyncAssistantEventHandler]:
+ data: Dict[str, Any] = {
+ "thread_id": thread_id,
+ "assistant_id": assistant_id,
+ "additional_instructions": additional_instructions,
+ "instructions": instructions,
+ "metadata": metadata,
+ "model": model,
+ "tools": tools,
+ }
+ if event_handler is not None:
+ data["event_handler"] = event_handler
+ return client.beta.threads.runs.stream(**data) # type: ignore
+
+ def run_thread_stream(
+ self,
+ client: AzureOpenAI,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ tools: Optional[Iterable[AssistantToolParam]],
+ event_handler: Optional[AssistantEventHandler],
+ litellm_params: Optional[dict] = None,
+ ) -> AssistantStreamManager[AssistantEventHandler]:
+ data: Dict[str, Any] = {
+ "thread_id": thread_id,
+ "assistant_id": assistant_id,
+ "additional_instructions": additional_instructions,
+ "instructions": instructions,
+ "metadata": metadata,
+ "model": model,
+ "tools": tools,
+ }
+ if event_handler is not None:
+ data["event_handler"] = event_handler
+ return client.beta.threads.runs.stream(**data) # type: ignore
+
+ # fmt: off
+
+ @overload
+ def run_thread(
+ self,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ stream: Optional[bool],
+ tools: Optional[Iterable[AssistantToolParam]],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ arun_thread: Literal[True],
+ ) -> Coroutine[None, None, Run]:
+ ...
+
+ @overload
+ def run_thread(
+ self,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ stream: Optional[bool],
+ tools: Optional[Iterable[AssistantToolParam]],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AzureOpenAI],
+ arun_thread: Optional[Literal[False]],
+ ) -> Run:
+ ...
+
+ # fmt: on
+
+ def run_thread(
+ self,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ stream: Optional[bool],
+ tools: Optional[Iterable[AssistantToolParam]],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client=None,
+ arun_thread=None,
+ event_handler: Optional[AssistantEventHandler] = None,
+ litellm_params: Optional[dict] = None,
+ ):
+ if arun_thread is not None and arun_thread is True:
+ if stream is not None and stream is True:
+ azure_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ return self.async_run_thread_stream(
+ client=azure_client,
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata,
+ model=model,
+ tools=tools,
+ event_handler=event_handler,
+ litellm_params=litellm_params,
+ )
+ return self.arun_thread(
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata, # type: ignore
+ model=model,
+ stream=stream,
+ tools=tools,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ openai_client = self.get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ if stream is not None and stream is True:
+ return self.run_thread_stream(
+ client=openai_client,
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata,
+ model=model,
+ tools=tools,
+ event_handler=event_handler,
+ litellm_params=litellm_params,
+ )
+
+ response = openai_client.beta.threads.runs.create_and_poll( # type: ignore
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata, # type: ignore
+ model=model,
+ tools=tools,
+ )
+
+ return response
+
+ # Create Assistant
+ async def async_create_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ create_assistant_data: dict,
+ litellm_params: Optional[dict] = None,
+ ) -> Assistant:
+ azure_openai_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = await azure_openai_client.beta.assistants.create(
+ **create_assistant_data
+ )
+ return response
+
+ def create_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ create_assistant_data: dict,
+ client=None,
+ async_create_assistants=None,
+ litellm_params: Optional[dict] = None,
+ ):
+ if async_create_assistants is not None and async_create_assistants is True:
+ return self.async_create_assistants(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ create_assistant_data=create_assistant_data,
+ litellm_params=litellm_params,
+ )
+ azure_openai_client = self.get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = azure_openai_client.beta.assistants.create(**create_assistant_data)
+ return response
+
+ # Delete Assistant
+ async def async_delete_assistant(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AsyncAzureOpenAI],
+ assistant_id: str,
+ litellm_params: Optional[dict] = None,
+ ):
+ azure_openai_client = self.async_get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = await azure_openai_client.beta.assistants.delete(
+ assistant_id=assistant_id
+ )
+ return response
+
+ def delete_assistant(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ assistant_id: str,
+ async_delete_assistants: Optional[bool] = None,
+ client=None,
+ litellm_params: Optional[dict] = None,
+ ):
+ if async_delete_assistants is not None and async_delete_assistants is True:
+ return self.async_delete_assistant(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ assistant_id=assistant_id,
+ litellm_params=litellm_params,
+ )
+ azure_openai_client = self.get_azure_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ litellm_params=litellm_params,
+ )
+
+ response = azure_openai_client.beta.assistants.delete(assistant_id=assistant_id)
+ return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/audio_transcriptions.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/audio_transcriptions.py
new file mode 100644
index 00000000..be7d0fa3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/audio_transcriptions.py
@@ -0,0 +1,198 @@
+import uuid
+from typing import Any, Coroutine, Optional, Union
+
+from openai import AsyncAzureOpenAI, AzureOpenAI
+from pydantic import BaseModel
+
+from litellm.litellm_core_utils.audio_utils.utils import get_audio_file_name
+from litellm.types.utils import FileTypes
+from litellm.utils import (
+ TranscriptionResponse,
+ convert_to_model_response_object,
+ extract_duration_from_srt_or_vtt,
+)
+
+from .azure import AzureChatCompletion
+from .common_utils import AzureOpenAIError
+
+
+class AzureAudioTranscription(AzureChatCompletion):
+ def audio_transcriptions(
+ self,
+ model: str,
+ audio_file: FileTypes,
+ optional_params: dict,
+ logging_obj: Any,
+ model_response: TranscriptionResponse,
+ timeout: float,
+ max_retries: int,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ api_version: Optional[str] = None,
+ client=None,
+ azure_ad_token: Optional[str] = None,
+ atranscription: bool = False,
+ litellm_params: Optional[dict] = None,
+ ) -> Union[TranscriptionResponse, Coroutine[Any, Any, TranscriptionResponse]]:
+ data = {"model": model, "file": audio_file, **optional_params}
+
+ if atranscription is True:
+ return self.async_audio_transcriptions(
+ audio_file=audio_file,
+ data=data,
+ model_response=model_response,
+ timeout=timeout,
+ api_key=api_key,
+ api_base=api_base,
+ client=client,
+ max_retries=max_retries,
+ logging_obj=logging_obj,
+ model=model,
+ litellm_params=litellm_params,
+ )
+
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ _is_async=False,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="azure_client is not an instance of AzureOpenAI",
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=f"audio_file_{uuid.uuid4()}",
+ api_key=azure_client.api_key,
+ additional_args={
+ "headers": {"Authorization": f"Bearer {azure_client.api_key}"},
+ "api_base": azure_client._base_url._uri_reference,
+ "atranscription": True,
+ "complete_input_dict": data,
+ },
+ )
+
+ response = azure_client.audio.transcriptions.create(
+ **data, timeout=timeout # type: ignore
+ )
+
+ if isinstance(response, BaseModel):
+ stringified_response = response.model_dump()
+ else:
+ stringified_response = TranscriptionResponse(text=response).model_dump()
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=get_audio_file_name(audio_file),
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=stringified_response,
+ )
+ hidden_params = {"model": "whisper-1", "custom_llm_provider": "azure"}
+ final_response: TranscriptionResponse = convert_to_model_response_object(response_object=stringified_response, model_response_object=model_response, hidden_params=hidden_params, response_type="audio_transcription") # type: ignore
+ return final_response
+
+ async def async_audio_transcriptions(
+ self,
+ audio_file: FileTypes,
+ model: str,
+ data: dict,
+ model_response: TranscriptionResponse,
+ timeout: float,
+ logging_obj: Any,
+ api_version: Optional[str] = None,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ client=None,
+ max_retries=None,
+ litellm_params: Optional[dict] = None,
+ ) -> TranscriptionResponse:
+ response = None
+ try:
+ async_azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ _is_async=True,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(async_azure_client, AsyncAzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="async_azure_client is not an instance of AsyncAzureOpenAI",
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=f"audio_file_{uuid.uuid4()}",
+ api_key=async_azure_client.api_key,
+ additional_args={
+ "headers": {
+ "Authorization": f"Bearer {async_azure_client.api_key}"
+ },
+ "api_base": async_azure_client._base_url._uri_reference,
+ "atranscription": True,
+ "complete_input_dict": data,
+ },
+ )
+
+ raw_response = (
+ await async_azure_client.audio.transcriptions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ ) # type: ignore
+
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+
+ if isinstance(response, BaseModel):
+ stringified_response = response.model_dump()
+ else:
+ stringified_response = TranscriptionResponse(text=response).model_dump()
+ duration = extract_duration_from_srt_or_vtt(response)
+ stringified_response["duration"] = duration
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=get_audio_file_name(audio_file),
+ api_key=api_key,
+ additional_args={
+ "headers": {
+ "Authorization": f"Bearer {async_azure_client.api_key}"
+ },
+ "api_base": async_azure_client._base_url._uri_reference,
+ "atranscription": True,
+ "complete_input_dict": data,
+ },
+ original_response=stringified_response,
+ )
+ hidden_params = {"model": "whisper-1", "custom_llm_provider": "azure"}
+ response = convert_to_model_response_object(
+ _response_headers=headers,
+ response_object=stringified_response,
+ model_response_object=model_response,
+ hidden_params=hidden_params,
+ response_type="audio_transcription",
+ )
+ if not isinstance(response, TranscriptionResponse):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="response is not an instance of TranscriptionResponse",
+ )
+ return response
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ original_response=str(e),
+ )
+ raise e
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/azure.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/azure.py
new file mode 100644
index 00000000..03c5cc09
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/azure.py
@@ -0,0 +1,1347 @@
+import asyncio
+import json
+import time
+from typing import Any, Callable, Coroutine, Dict, List, Optional, Union
+
+import httpx # type: ignore
+from openai import APITimeoutError, AsyncAzureOpenAI, AzureOpenAI
+
+import litellm
+from litellm.constants import DEFAULT_MAX_RETRIES
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.litellm_core_utils.logging_utils import track_llm_api_timing
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.utils import (
+ EmbeddingResponse,
+ ImageResponse,
+ LlmProviders,
+ ModelResponse,
+)
+from litellm.utils import (
+ CustomStreamWrapper,
+ convert_to_model_response_object,
+ modify_url,
+)
+
+from ...types.llms.openai import HttpxBinaryResponseContent
+from ..base import BaseLLM
+from .common_utils import (
+ AzureOpenAIError,
+ BaseAzureLLM,
+ get_azure_ad_token_from_oidc,
+ process_azure_headers,
+ select_azure_base_url_or_endpoint,
+)
+
+
+class AzureOpenAIAssistantsAPIConfig:
+ """
+ Reference: https://learn.microsoft.com/en-us/azure/ai-services/openai/assistants-reference-messages?tabs=python#create-message
+ """
+
+ def __init__(
+ self,
+ ) -> None:
+ pass
+
+ def get_supported_openai_create_message_params(self):
+ return [
+ "role",
+ "content",
+ "attachments",
+ "metadata",
+ ]
+
+ def map_openai_params_create_message_params(
+ self, non_default_params: dict, optional_params: dict
+ ):
+ for param, value in non_default_params.items():
+ if param == "role":
+ optional_params["role"] = value
+ if param == "metadata":
+ optional_params["metadata"] = value
+ elif param == "content": # only string accepted
+ if isinstance(value, str):
+ optional_params["content"] = value
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="Azure only accepts content as a string.",
+ status_code=400,
+ )
+ elif (
+ param == "attachments"
+ ): # this is a v2 param. Azure currently supports the old 'file_id's param
+ file_ids: List[str] = []
+ if isinstance(value, list):
+ for item in value:
+ if "file_id" in item:
+ file_ids.append(item["file_id"])
+ else:
+ if litellm.drop_params is True:
+ pass
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="Azure doesn't support {}. To drop it from the call, set `litellm.drop_params = True.".format(
+ value
+ ),
+ status_code=400,
+ )
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="Invalid param. attachments should always be a list. Got={}, Expected=List. Raw value={}".format(
+ type(value), value
+ ),
+ status_code=400,
+ )
+ return optional_params
+
+
+def _check_dynamic_azure_params(
+ azure_client_params: dict,
+ azure_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]],
+) -> bool:
+ """
+ Returns True if user passed in client params != initialized azure client
+
+ Currently only implemented for api version
+ """
+ if azure_client is None:
+ return True
+
+ dynamic_params = ["api_version"]
+ for k, v in azure_client_params.items():
+ if k in dynamic_params and k == "api_version":
+ if v is not None and v != azure_client._custom_query["api-version"]:
+ return True
+
+ return False
+
+
+class AzureChatCompletion(BaseAzureLLM, BaseLLM):
+ def __init__(self) -> None:
+ super().__init__()
+
+ def validate_environment(self, api_key, azure_ad_token, azure_ad_token_provider):
+ headers = {
+ "content-type": "application/json",
+ }
+ if api_key is not None:
+ headers["api-key"] = api_key
+ elif azure_ad_token is not None:
+ if azure_ad_token.startswith("oidc/"):
+ azure_ad_token = get_azure_ad_token_from_oidc(azure_ad_token)
+ headers["Authorization"] = f"Bearer {azure_ad_token}"
+ elif azure_ad_token_provider is not None:
+ azure_ad_token = azure_ad_token_provider()
+ headers["Authorization"] = f"Bearer {azure_ad_token}"
+
+ return headers
+
+ def make_sync_azure_openai_chat_completion_request(
+ self,
+ azure_client: AzureOpenAI,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ ):
+ """
+ Helper to:
+ - call chat.completions.create.with_raw_response when litellm.return_response_headers is True
+ - call chat.completions.create by default
+ """
+ try:
+ raw_response = azure_client.chat.completions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+ return headers, response
+ except Exception as e:
+ raise e
+
+ @track_llm_api_timing()
+ async def make_azure_openai_chat_completion_request(
+ self,
+ azure_client: AsyncAzureOpenAI,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ logging_obj: LiteLLMLoggingObj,
+ ):
+ """
+ Helper to:
+ - call chat.completions.create.with_raw_response when litellm.return_response_headers is True
+ - call chat.completions.create by default
+ """
+ start_time = time.time()
+ try:
+ raw_response = await azure_client.chat.completions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+ return headers, response
+ except APITimeoutError as e:
+ end_time = time.time()
+ time_delta = round(end_time - start_time, 2)
+ e.message += f" - timeout value={timeout}, time taken={time_delta} seconds"
+ raise e
+ except Exception as e:
+ raise e
+
+ def completion( # noqa: PLR0915
+ self,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ api_key: str,
+ api_base: str,
+ api_version: str,
+ api_type: str,
+ azure_ad_token: str,
+ azure_ad_token_provider: Callable,
+ dynamic_params: bool,
+ print_verbose: Callable,
+ timeout: Union[float, httpx.Timeout],
+ logging_obj: LiteLLMLoggingObj,
+ optional_params,
+ litellm_params,
+ logger_fn,
+ acompletion: bool = False,
+ headers: Optional[dict] = None,
+ client=None,
+ ):
+ if headers:
+ optional_params["extra_headers"] = headers
+ try:
+ if model is None or messages is None:
+ raise AzureOpenAIError(
+ status_code=422, message="Missing model or messages"
+ )
+
+ max_retries = optional_params.pop("max_retries", None)
+ if max_retries is None:
+ max_retries = DEFAULT_MAX_RETRIES
+ json_mode: Optional[bool] = optional_params.pop("json_mode", False)
+
+ ### CHECK IF CLOUDFLARE AI GATEWAY ###
+ ### if so - set the model as part of the base url
+ if "gateway.ai.cloudflare.com" in api_base:
+ client = self._init_azure_client_for_cloudflare_ai_gateway(
+ api_base=api_base,
+ model=model,
+ api_version=api_version,
+ max_retries=max_retries,
+ timeout=timeout,
+ api_key=api_key,
+ azure_ad_token=azure_ad_token,
+ azure_ad_token_provider=azure_ad_token_provider,
+ acompletion=acompletion,
+ client=client,
+ )
+
+ data = {"model": None, "messages": messages, **optional_params}
+ else:
+ data = litellm.AzureOpenAIConfig().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers or {},
+ )
+
+ if acompletion is True:
+ if optional_params.get("stream", False):
+ return self.async_streaming(
+ logging_obj=logging_obj,
+ api_base=api_base,
+ dynamic_params=dynamic_params,
+ data=data,
+ model=model,
+ api_key=api_key,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ azure_ad_token_provider=azure_ad_token_provider,
+ timeout=timeout,
+ client=client,
+ max_retries=max_retries,
+ litellm_params=litellm_params,
+ )
+ else:
+ return self.acompletion(
+ api_base=api_base,
+ data=data,
+ model_response=model_response,
+ api_key=api_key,
+ api_version=api_version,
+ model=model,
+ azure_ad_token=azure_ad_token,
+ azure_ad_token_provider=azure_ad_token_provider,
+ dynamic_params=dynamic_params,
+ timeout=timeout,
+ client=client,
+ logging_obj=logging_obj,
+ max_retries=max_retries,
+ convert_tool_call_to_json_mode=json_mode,
+ litellm_params=litellm_params,
+ )
+ elif "stream" in optional_params and optional_params["stream"] is True:
+ return self.streaming(
+ logging_obj=logging_obj,
+ api_base=api_base,
+ dynamic_params=dynamic_params,
+ data=data,
+ model=model,
+ api_key=api_key,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ azure_ad_token_provider=azure_ad_token_provider,
+ timeout=timeout,
+ client=client,
+ max_retries=max_retries,
+ litellm_params=litellm_params,
+ )
+ else:
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key=api_key,
+ additional_args={
+ "headers": {
+ "api_key": api_key,
+ "azure_ad_token": azure_ad_token,
+ },
+ "api_version": api_version,
+ "api_base": api_base,
+ "complete_input_dict": data,
+ },
+ )
+ if not isinstance(max_retries, int):
+ raise AzureOpenAIError(
+ status_code=422, message="max retries must be an int"
+ )
+ # init AzureOpenAI Client
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ client=client,
+ _is_async=False,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="azure_client is not an instance of AzureOpenAI",
+ )
+
+ headers, response = self.make_sync_azure_openai_chat_completion_request(
+ azure_client=azure_client, data=data, timeout=timeout
+ )
+ stringified_response = response.model_dump()
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=stringified_response,
+ additional_args={
+ "headers": headers,
+ "api_version": api_version,
+ "api_base": api_base,
+ },
+ )
+ return convert_to_model_response_object(
+ response_object=stringified_response,
+ model_response_object=model_response,
+ convert_tool_call_to_json_mode=json_mode,
+ _response_headers=headers,
+ )
+ except AzureOpenAIError as e:
+ raise e
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ error_body = getattr(e, "body", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise AzureOpenAIError(
+ status_code=status_code,
+ message=str(e),
+ headers=error_headers,
+ body=error_body,
+ )
+
+ async def acompletion(
+ self,
+ api_key: str,
+ api_version: str,
+ model: str,
+ api_base: str,
+ data: dict,
+ timeout: Any,
+ dynamic_params: bool,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ max_retries: int,
+ azure_ad_token: Optional[str] = None,
+ azure_ad_token_provider: Optional[Callable] = None,
+ convert_tool_call_to_json_mode: Optional[bool] = None,
+ client=None, # this is the AsyncAzureOpenAI
+ litellm_params: Optional[dict] = {},
+ ):
+ response = None
+ try:
+ # setting Azure client
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ client=client,
+ _is_async=True,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AsyncAzureOpenAI):
+ raise ValueError("Azure client is not an instance of AsyncAzureOpenAI")
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["messages"],
+ api_key=azure_client.api_key,
+ additional_args={
+ "headers": {
+ "api_key": api_key,
+ "azure_ad_token": azure_ad_token,
+ },
+ "api_base": azure_client._base_url._uri_reference,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+
+ headers, response = await self.make_azure_openai_chat_completion_request(
+ azure_client=azure_client,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ )
+ logging_obj.model_call_details["response_headers"] = headers
+
+ stringified_response = response.model_dump()
+ logging_obj.post_call(
+ input=data["messages"],
+ api_key=api_key,
+ original_response=stringified_response,
+ additional_args={"complete_input_dict": data},
+ )
+
+ return convert_to_model_response_object(
+ response_object=stringified_response,
+ model_response_object=model_response,
+ hidden_params={"headers": headers},
+ _response_headers=headers,
+ convert_tool_call_to_json_mode=convert_tool_call_to_json_mode,
+ )
+ except AzureOpenAIError as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=data["messages"],
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ raise e
+ except asyncio.CancelledError as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=data["messages"],
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ raise AzureOpenAIError(status_code=500, message=str(e))
+ except Exception as e:
+ message = getattr(e, "message", str(e))
+ body = getattr(e, "body", None)
+ ## LOGGING
+ logging_obj.post_call(
+ input=data["messages"],
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ if hasattr(e, "status_code"):
+ raise e
+ else:
+ raise AzureOpenAIError(status_code=500, message=message, body=body)
+
+ def streaming(
+ self,
+ logging_obj,
+ api_base: str,
+ api_key: str,
+ api_version: str,
+ dynamic_params: bool,
+ data: dict,
+ model: str,
+ timeout: Any,
+ max_retries: int,
+ azure_ad_token: Optional[str] = None,
+ azure_ad_token_provider: Optional[Callable] = None,
+ client=None,
+ litellm_params: Optional[dict] = {},
+ ):
+ # init AzureOpenAI Client
+ azure_client_params = {
+ "api_version": api_version,
+ "azure_endpoint": api_base,
+ "azure_deployment": model,
+ "http_client": litellm.client_session,
+ "max_retries": max_retries,
+ "timeout": timeout,
+ }
+ azure_client_params = select_azure_base_url_or_endpoint(
+ azure_client_params=azure_client_params
+ )
+ if api_key is not None:
+ azure_client_params["api_key"] = api_key
+ elif azure_ad_token is not None:
+ if azure_ad_token.startswith("oidc/"):
+ azure_ad_token = get_azure_ad_token_from_oidc(azure_ad_token)
+ azure_client_params["azure_ad_token"] = azure_ad_token
+ elif azure_ad_token_provider is not None:
+ azure_client_params["azure_ad_token_provider"] = azure_ad_token_provider
+
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ client=client,
+ _is_async=False,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="azure_client is not an instance of AzureOpenAI",
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["messages"],
+ api_key=azure_client.api_key,
+ additional_args={
+ "headers": {
+ "api_key": api_key,
+ "azure_ad_token": azure_ad_token,
+ },
+ "api_base": azure_client._base_url._uri_reference,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+ headers, response = self.make_sync_azure_openai_chat_completion_request(
+ azure_client=azure_client, data=data, timeout=timeout
+ )
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="azure",
+ logging_obj=logging_obj,
+ stream_options=data.get("stream_options", None),
+ _response_headers=process_azure_headers(headers),
+ )
+ return streamwrapper
+
+ async def async_streaming(
+ self,
+ logging_obj: LiteLLMLoggingObj,
+ api_base: str,
+ api_key: str,
+ api_version: str,
+ dynamic_params: bool,
+ data: dict,
+ model: str,
+ timeout: Any,
+ max_retries: int,
+ azure_ad_token: Optional[str] = None,
+ azure_ad_token_provider: Optional[Callable] = None,
+ client=None,
+ litellm_params: Optional[dict] = {},
+ ):
+ try:
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ client=client,
+ _is_async=True,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AsyncAzureOpenAI):
+ raise ValueError("Azure client is not an instance of AsyncAzureOpenAI")
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["messages"],
+ api_key=azure_client.api_key,
+ additional_args={
+ "headers": {
+ "api_key": api_key,
+ "azure_ad_token": azure_ad_token,
+ },
+ "api_base": azure_client._base_url._uri_reference,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+
+ headers, response = await self.make_azure_openai_chat_completion_request(
+ azure_client=azure_client,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ )
+ logging_obj.model_call_details["response_headers"] = headers
+
+ # return response
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="azure",
+ logging_obj=logging_obj,
+ stream_options=data.get("stream_options", None),
+ _response_headers=headers,
+ )
+ return streamwrapper ## DO NOT make this into an async for ... loop, it will yield an async generator, which won't raise errors if the response fails
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ message = getattr(e, "message", str(e))
+ error_body = getattr(e, "body", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise AzureOpenAIError(
+ status_code=status_code,
+ message=message,
+ headers=error_headers,
+ body=error_body,
+ )
+
+ async def aembedding(
+ self,
+ model: str,
+ data: dict,
+ model_response: EmbeddingResponse,
+ input: list,
+ logging_obj: LiteLLMLoggingObj,
+ api_base: str,
+ api_key: Optional[str] = None,
+ api_version: Optional[str] = None,
+ client: Optional[AsyncAzureOpenAI] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ max_retries: Optional[int] = None,
+ azure_ad_token: Optional[str] = None,
+ azure_ad_token_provider: Optional[Callable] = None,
+ litellm_params: Optional[dict] = {},
+ ) -> EmbeddingResponse:
+ response = None
+ try:
+
+ openai_aclient = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ _is_async=True,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(openai_aclient, AsyncAzureOpenAI):
+ raise ValueError("Azure client is not an instance of AsyncAzureOpenAI")
+
+ raw_response = await openai_aclient.embeddings.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+ stringified_response = response.model_dump()
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=stringified_response,
+ )
+ embedding_response = convert_to_model_response_object(
+ response_object=stringified_response,
+ model_response_object=model_response,
+ hidden_params={"headers": headers},
+ _response_headers=process_azure_headers(headers),
+ response_type="embedding",
+ )
+ if not isinstance(embedding_response, EmbeddingResponse):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="embedding_response is not an instance of EmbeddingResponse",
+ )
+ return embedding_response
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ raise e
+
+ def embedding(
+ self,
+ model: str,
+ input: list,
+ api_base: str,
+ api_version: str,
+ timeout: float,
+ logging_obj: LiteLLMLoggingObj,
+ model_response: EmbeddingResponse,
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ azure_ad_token: Optional[str] = None,
+ azure_ad_token_provider: Optional[Callable] = None,
+ max_retries: Optional[int] = None,
+ client=None,
+ aembedding=None,
+ headers: Optional[dict] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> Union[EmbeddingResponse, Coroutine[Any, Any, EmbeddingResponse]]:
+ if headers:
+ optional_params["extra_headers"] = headers
+ if self._client_session is None:
+ self._client_session = self.create_client_session()
+ try:
+ data = {"model": model, "input": input, **optional_params}
+ if max_retries is None:
+ max_retries = litellm.DEFAULT_MAX_RETRIES
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "headers": {"api_key": api_key, "azure_ad_token": azure_ad_token},
+ },
+ )
+
+ if aembedding is True:
+ return self.aembedding(
+ data=data,
+ input=input,
+ model=model,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ model_response=model_response,
+ timeout=timeout,
+ client=client,
+ litellm_params=litellm_params,
+ api_base=api_base,
+ )
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ _is_async=False,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="azure_client is not an instance of AzureOpenAI",
+ )
+
+ ## COMPLETION CALL
+ raw_response = azure_client.embeddings.with_raw_response.create(**data, timeout=timeout) # type: ignore
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data, "api_base": api_base},
+ original_response=response,
+ )
+
+ return convert_to_model_response_object(response_object=response.model_dump(), model_response_object=model_response, response_type="embedding", _response_headers=process_azure_headers(headers)) # type: ignore
+ except AzureOpenAIError as e:
+ raise e
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise AzureOpenAIError(
+ status_code=status_code, message=str(e), headers=error_headers
+ )
+
+ async def make_async_azure_httpx_request(
+ self,
+ client: Optional[AsyncHTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ api_base: str,
+ api_version: str,
+ api_key: str,
+ data: dict,
+ headers: dict,
+ ) -> httpx.Response:
+ """
+ Implemented for azure dall-e-2 image gen calls
+
+ Alternative to needing a custom transport implementation
+ """
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ _httpx_timeout = httpx.Timeout(timeout)
+ _params["timeout"] = _httpx_timeout
+ else:
+ _params["timeout"] = httpx.Timeout(timeout=600.0, connect=5.0)
+
+ async_handler = get_async_httpx_client(
+ llm_provider=LlmProviders.AZURE,
+ params=_params,
+ )
+ else:
+ async_handler = client # type: ignore
+
+ if (
+ "images/generations" in api_base
+ and api_version
+ in [ # dall-e-3 starts from `2023-12-01-preview` so we should be able to avoid conflict
+ "2023-06-01-preview",
+ "2023-07-01-preview",
+ "2023-08-01-preview",
+ "2023-09-01-preview",
+ "2023-10-01-preview",
+ ]
+ ): # CREATE + POLL for azure dall-e-2 calls
+
+ api_base = modify_url(
+ original_url=api_base, new_path="/openai/images/generations:submit"
+ )
+
+ data.pop(
+ "model", None
+ ) # REMOVE 'model' from dall-e-2 arg https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#request-a-generated-image-dall-e-2-preview
+ response = await async_handler.post(
+ url=api_base,
+ data=json.dumps(data),
+ headers=headers,
+ )
+ if "operation-location" in response.headers:
+ operation_location_url = response.headers["operation-location"]
+ else:
+ raise AzureOpenAIError(status_code=500, message=response.text)
+ response = await async_handler.get(
+ url=operation_location_url,
+ headers=headers,
+ )
+
+ await response.aread()
+
+ timeout_secs: int = 120
+ start_time = time.time()
+ if "status" not in response.json():
+ raise Exception(
+ "Expected 'status' in response. Got={}".format(response.json())
+ )
+ while response.json()["status"] not in ["succeeded", "failed"]:
+ if time.time() - start_time > timeout_secs:
+
+ raise AzureOpenAIError(
+ status_code=408, message="Operation polling timed out."
+ )
+
+ await asyncio.sleep(int(response.headers.get("retry-after") or 10))
+ response = await async_handler.get(
+ url=operation_location_url,
+ headers=headers,
+ )
+ await response.aread()
+
+ if response.json()["status"] == "failed":
+ error_data = response.json()
+ raise AzureOpenAIError(status_code=400, message=json.dumps(error_data))
+
+ result = response.json()["result"]
+ return httpx.Response(
+ status_code=200,
+ headers=response.headers,
+ content=json.dumps(result).encode("utf-8"),
+ request=httpx.Request(method="POST", url="https://api.openai.com/v1"),
+ )
+ return await async_handler.post(
+ url=api_base,
+ json=data,
+ headers=headers,
+ )
+
+ def make_sync_azure_httpx_request(
+ self,
+ client: Optional[HTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ api_base: str,
+ api_version: str,
+ api_key: str,
+ data: dict,
+ headers: dict,
+ ) -> httpx.Response:
+ """
+ Implemented for azure dall-e-2 image gen calls
+
+ Alternative to needing a custom transport implementation
+ """
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ _httpx_timeout = httpx.Timeout(timeout)
+ _params["timeout"] = _httpx_timeout
+ else:
+ _params["timeout"] = httpx.Timeout(timeout=600.0, connect=5.0)
+
+ sync_handler = HTTPHandler(**_params, client=litellm.client_session) # type: ignore
+ else:
+ sync_handler = client # type: ignore
+
+ if (
+ "images/generations" in api_base
+ and api_version
+ in [ # dall-e-3 starts from `2023-12-01-preview` so we should be able to avoid conflict
+ "2023-06-01-preview",
+ "2023-07-01-preview",
+ "2023-08-01-preview",
+ "2023-09-01-preview",
+ "2023-10-01-preview",
+ ]
+ ): # CREATE + POLL for azure dall-e-2 calls
+
+ api_base = modify_url(
+ original_url=api_base, new_path="/openai/images/generations:submit"
+ )
+
+ data.pop(
+ "model", None
+ ) # REMOVE 'model' from dall-e-2 arg https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#request-a-generated-image-dall-e-2-preview
+ response = sync_handler.post(
+ url=api_base,
+ data=json.dumps(data),
+ headers=headers,
+ )
+ if "operation-location" in response.headers:
+ operation_location_url = response.headers["operation-location"]
+ else:
+ raise AzureOpenAIError(status_code=500, message=response.text)
+ response = sync_handler.get(
+ url=operation_location_url,
+ headers=headers,
+ )
+
+ response.read()
+
+ timeout_secs: int = 120
+ start_time = time.time()
+ if "status" not in response.json():
+ raise Exception(
+ "Expected 'status' in response. Got={}".format(response.json())
+ )
+ while response.json()["status"] not in ["succeeded", "failed"]:
+ if time.time() - start_time > timeout_secs:
+ raise AzureOpenAIError(
+ status_code=408, message="Operation polling timed out."
+ )
+
+ time.sleep(int(response.headers.get("retry-after") or 10))
+ response = sync_handler.get(
+ url=operation_location_url,
+ headers=headers,
+ )
+ response.read()
+
+ if response.json()["status"] == "failed":
+ error_data = response.json()
+ raise AzureOpenAIError(status_code=400, message=json.dumps(error_data))
+
+ result = response.json()["result"]
+ return httpx.Response(
+ status_code=200,
+ headers=response.headers,
+ content=json.dumps(result).encode("utf-8"),
+ request=httpx.Request(method="POST", url="https://api.openai.com/v1"),
+ )
+ return sync_handler.post(
+ url=api_base,
+ json=data,
+ headers=headers,
+ )
+
+ def create_azure_base_url(
+ self, azure_client_params: dict, model: Optional[str]
+ ) -> str:
+ api_base: str = azure_client_params.get(
+ "azure_endpoint", ""
+ ) # "https://example-endpoint.openai.azure.com"
+ if api_base.endswith("/"):
+ api_base = api_base.rstrip("/")
+ api_version: str = azure_client_params.get("api_version", "")
+ if model is None:
+ model = ""
+
+ if "/openai/deployments/" in api_base:
+ base_url_with_deployment = api_base
+ else:
+ base_url_with_deployment = api_base + "/openai/deployments/" + model
+
+ base_url_with_deployment += "/images/generations"
+ base_url_with_deployment += "?api-version=" + api_version
+
+ return base_url_with_deployment
+
+ async def aimage_generation(
+ self,
+ data: dict,
+ model_response: ModelResponse,
+ azure_client_params: dict,
+ api_key: str,
+ input: list,
+ logging_obj: LiteLLMLoggingObj,
+ headers: dict,
+ client=None,
+ timeout=None,
+ ) -> litellm.ImageResponse:
+ response: Optional[dict] = None
+ try:
+ # response = await azure_client.images.generate(**data, timeout=timeout)
+ api_base: str = azure_client_params.get(
+ "api_base", ""
+ ) # "https://example-endpoint.openai.azure.com"
+ if api_base.endswith("/"):
+ api_base = api_base.rstrip("/")
+ api_version: str = azure_client_params.get("api_version", "")
+ img_gen_api_base = self.create_azure_base_url(
+ azure_client_params=azure_client_params, model=data.get("model", "")
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["prompt"],
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": img_gen_api_base,
+ "headers": headers,
+ },
+ )
+ httpx_response: httpx.Response = await self.make_async_azure_httpx_request(
+ client=None,
+ timeout=timeout,
+ api_base=img_gen_api_base,
+ api_version=api_version,
+ api_key=api_key,
+ data=data,
+ headers=headers,
+ )
+ response = httpx_response.json()
+
+ stringified_response = response
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=stringified_response,
+ )
+ return convert_to_model_response_object( # type: ignore
+ response_object=stringified_response,
+ model_response_object=model_response,
+ response_type="image_generation",
+ )
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ raise e
+
+ def image_generation(
+ self,
+ prompt: str,
+ timeout: float,
+ optional_params: dict,
+ logging_obj: LiteLLMLoggingObj,
+ headers: dict,
+ model: Optional[str] = None,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ api_version: Optional[str] = None,
+ model_response: Optional[ImageResponse] = None,
+ azure_ad_token: Optional[str] = None,
+ azure_ad_token_provider: Optional[Callable] = None,
+ client=None,
+ aimg_generation=None,
+ litellm_params: Optional[dict] = None,
+ ) -> ImageResponse:
+ try:
+ if model and len(model) > 0:
+ model = model
+ else:
+ model = None
+
+ ## BASE MODEL CHECK
+ if (
+ model_response is not None
+ and optional_params.get("base_model", None) is not None
+ ):
+ model_response._hidden_params["model"] = optional_params.pop(
+ "base_model"
+ )
+
+ data = {"model": model, "prompt": prompt, **optional_params}
+ max_retries = data.pop("max_retries", 2)
+ if not isinstance(max_retries, int):
+ raise AzureOpenAIError(
+ status_code=422, message="max retries must be an int"
+ )
+
+ # init AzureOpenAI Client
+ azure_client_params: Dict[str, Any] = self.initialize_azure_sdk_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ model_name=model or "",
+ api_version=api_version,
+ api_base=api_base,
+ is_async=False,
+ )
+ if aimg_generation is True:
+ return self.aimage_generation(data=data, input=input, logging_obj=logging_obj, model_response=model_response, api_key=api_key, client=client, azure_client_params=azure_client_params, timeout=timeout, headers=headers) # type: ignore
+
+ img_gen_api_base = self.create_azure_base_url(
+ azure_client_params=azure_client_params, model=data.get("model", "")
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["prompt"],
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": img_gen_api_base,
+ "headers": headers,
+ },
+ )
+ httpx_response: httpx.Response = self.make_sync_azure_httpx_request(
+ client=None,
+ timeout=timeout,
+ api_base=img_gen_api_base,
+ api_version=api_version or "",
+ api_key=api_key or "",
+ data=data,
+ headers=headers,
+ )
+ response = httpx_response.json()
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=response,
+ )
+ # return response
+ return convert_to_model_response_object(response_object=response, model_response_object=model_response, response_type="image_generation") # type: ignore
+ except AzureOpenAIError as e:
+ raise e
+ except Exception as e:
+ error_code = getattr(e, "status_code", None)
+ if error_code is not None:
+ raise AzureOpenAIError(status_code=error_code, message=str(e))
+ else:
+ raise AzureOpenAIError(status_code=500, message=str(e))
+
+ def audio_speech(
+ self,
+ model: str,
+ input: str,
+ voice: str,
+ optional_params: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ organization: Optional[str],
+ max_retries: int,
+ timeout: Union[float, httpx.Timeout],
+ azure_ad_token: Optional[str] = None,
+ azure_ad_token_provider: Optional[Callable] = None,
+ aspeech: Optional[bool] = None,
+ client=None,
+ litellm_params: Optional[dict] = None,
+ ) -> HttpxBinaryResponseContent:
+
+ max_retries = optional_params.pop("max_retries", 2)
+
+ if aspeech is not None and aspeech is True:
+ return self.async_audio_speech(
+ model=model,
+ input=input,
+ voice=voice,
+ optional_params=optional_params,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ azure_ad_token_provider=azure_ad_token_provider,
+ max_retries=max_retries,
+ timeout=timeout,
+ client=client,
+ litellm_params=litellm_params,
+ ) # type: ignore
+
+ azure_client: AzureOpenAI = self.get_azure_openai_client(
+ api_base=api_base,
+ api_version=api_version,
+ api_key=api_key,
+ model=model,
+ _is_async=False,
+ client=client,
+ litellm_params=litellm_params,
+ ) # type: ignore
+
+ response = azure_client.audio.speech.create(
+ model=model,
+ voice=voice, # type: ignore
+ input=input,
+ **optional_params,
+ )
+ return HttpxBinaryResponseContent(response=response.response)
+
+ async def async_audio_speech(
+ self,
+ model: str,
+ input: str,
+ voice: str,
+ optional_params: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ azure_ad_token: Optional[str],
+ azure_ad_token_provider: Optional[Callable],
+ max_retries: int,
+ timeout: Union[float, httpx.Timeout],
+ client=None,
+ litellm_params: Optional[dict] = None,
+ ) -> HttpxBinaryResponseContent:
+
+ azure_client: AsyncAzureOpenAI = self.get_azure_openai_client(
+ api_base=api_base,
+ api_version=api_version,
+ api_key=api_key,
+ model=model,
+ _is_async=True,
+ client=client,
+ litellm_params=litellm_params,
+ ) # type: ignore
+
+ azure_response = await azure_client.audio.speech.create(
+ model=model,
+ voice=voice, # type: ignore
+ input=input,
+ **optional_params,
+ )
+
+ return HttpxBinaryResponseContent(response=azure_response.response)
+
+ def get_headers(
+ self,
+ model: Optional[str],
+ api_key: str,
+ api_base: str,
+ api_version: str,
+ timeout: float,
+ mode: str,
+ messages: Optional[list] = None,
+ input: Optional[list] = None,
+ prompt: Optional[str] = None,
+ ) -> dict:
+ client_session = litellm.client_session or httpx.Client()
+ if "gateway.ai.cloudflare.com" in api_base:
+ ## build base url - assume api base includes resource name
+ if not api_base.endswith("/"):
+ api_base += "/"
+ api_base += f"{model}"
+ client = AzureOpenAI(
+ base_url=api_base,
+ api_version=api_version,
+ api_key=api_key,
+ timeout=timeout,
+ http_client=client_session,
+ )
+ model = None
+ # cloudflare ai gateway, needs model=None
+ else:
+ client = AzureOpenAI(
+ api_version=api_version,
+ azure_endpoint=api_base,
+ api_key=api_key,
+ timeout=timeout,
+ http_client=client_session,
+ )
+
+ # only run this check if it's not cloudflare ai gateway
+ if model is None and mode != "image_generation":
+ raise Exception("model is not set")
+
+ completion = None
+
+ if messages is None:
+ messages = [{"role": "user", "content": "Hey"}]
+ try:
+ completion = client.chat.completions.with_raw_response.create(
+ model=model, # type: ignore
+ messages=messages, # type: ignore
+ )
+ except Exception as e:
+ raise e
+ response = {}
+
+ if completion is None or not hasattr(completion, "headers"):
+ raise Exception("invalid completion response")
+
+ if (
+ completion.headers.get("x-ratelimit-remaining-requests", None) is not None
+ ): # not provided for dall-e requests
+ response["x-ratelimit-remaining-requests"] = completion.headers[
+ "x-ratelimit-remaining-requests"
+ ]
+
+ if completion.headers.get("x-ratelimit-remaining-tokens", None) is not None:
+ response["x-ratelimit-remaining-tokens"] = completion.headers[
+ "x-ratelimit-remaining-tokens"
+ ]
+
+ if completion.headers.get("x-ms-region", None) is not None:
+ response["x-ms-region"] = completion.headers["x-ms-region"]
+
+ return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/batches/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/batches/handler.py
new file mode 100644
index 00000000..1b93c526
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/batches/handler.py
@@ -0,0 +1,210 @@
+"""
+Azure Batches API Handler
+"""
+
+from typing import Any, Coroutine, Optional, Union, cast
+
+import httpx
+
+from litellm.llms.azure.azure import AsyncAzureOpenAI, AzureOpenAI
+from litellm.types.llms.openai import (
+ Batch,
+ CancelBatchRequest,
+ CreateBatchRequest,
+ RetrieveBatchRequest,
+)
+from litellm.types.utils import LiteLLMBatch
+
+from ..common_utils import BaseAzureLLM
+
+
+class AzureBatchesAPI(BaseAzureLLM):
+ """
+ Azure methods to support for batches
+ - create_batch()
+ - retrieve_batch()
+ - cancel_batch()
+ - list_batch()
+ """
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ async def acreate_batch(
+ self,
+ create_batch_data: CreateBatchRequest,
+ azure_client: AsyncAzureOpenAI,
+ ) -> LiteLLMBatch:
+ response = await azure_client.batches.create(**create_batch_data)
+ return LiteLLMBatch(**response.model_dump())
+
+ def create_batch(
+ self,
+ _is_async: bool,
+ create_batch_data: CreateBatchRequest,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> Union[LiteLLMBatch, Coroutine[Any, Any, LiteLLMBatch]]:
+ azure_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ litellm_params=litellm_params or {},
+ )
+ )
+ if azure_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(azure_client, AsyncAzureOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.acreate_batch( # type: ignore
+ create_batch_data=create_batch_data, azure_client=azure_client
+ )
+ response = cast(AzureOpenAI, azure_client).batches.create(**create_batch_data)
+ return LiteLLMBatch(**response.model_dump())
+
+ async def aretrieve_batch(
+ self,
+ retrieve_batch_data: RetrieveBatchRequest,
+ client: AsyncAzureOpenAI,
+ ) -> LiteLLMBatch:
+ response = await client.batches.retrieve(**retrieve_batch_data)
+ return LiteLLMBatch(**response.model_dump())
+
+ def retrieve_batch(
+ self,
+ _is_async: bool,
+ retrieve_batch_data: RetrieveBatchRequest,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AzureOpenAI] = None,
+ litellm_params: Optional[dict] = None,
+ ):
+ azure_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ litellm_params=litellm_params or {},
+ )
+ )
+ if azure_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(azure_client, AsyncAzureOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.aretrieve_batch( # type: ignore
+ retrieve_batch_data=retrieve_batch_data, client=azure_client
+ )
+ response = cast(AzureOpenAI, azure_client).batches.retrieve(
+ **retrieve_batch_data
+ )
+ return LiteLLMBatch(**response.model_dump())
+
+ async def acancel_batch(
+ self,
+ cancel_batch_data: CancelBatchRequest,
+ client: AsyncAzureOpenAI,
+ ) -> Batch:
+ response = await client.batches.cancel(**cancel_batch_data)
+ return response
+
+ def cancel_batch(
+ self,
+ _is_async: bool,
+ cancel_batch_data: CancelBatchRequest,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[AzureOpenAI] = None,
+ litellm_params: Optional[dict] = None,
+ ):
+ azure_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ litellm_params=litellm_params or {},
+ )
+ )
+ if azure_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+ response = azure_client.batches.cancel(**cancel_batch_data)
+ return response
+
+ async def alist_batches(
+ self,
+ client: AsyncAzureOpenAI,
+ after: Optional[str] = None,
+ limit: Optional[int] = None,
+ ):
+ response = await client.batches.list(after=after, limit=limit) # type: ignore
+ return response
+
+ def list_batches(
+ self,
+ _is_async: bool,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ after: Optional[str] = None,
+ limit: Optional[int] = None,
+ client: Optional[AzureOpenAI] = None,
+ litellm_params: Optional[dict] = None,
+ ):
+ azure_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ litellm_params=litellm_params or {},
+ )
+ )
+ if azure_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(azure_client, AsyncAzureOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.alist_batches( # type: ignore
+ client=azure_client, after=after, limit=limit
+ )
+ response = azure_client.batches.list(after=after, limit=limit) # type: ignore
+ return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/gpt_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/gpt_transformation.py
new file mode 100644
index 00000000..ee85517e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/gpt_transformation.py
@@ -0,0 +1,294 @@
+from typing import TYPE_CHECKING, Any, List, Optional, Union
+
+from httpx._models import Headers, Response
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ convert_to_azure_openai_messages,
+)
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.types.utils import ModelResponse
+from litellm.utils import supports_response_schema
+
+from ....exceptions import UnsupportedParamsError
+from ....types.llms.openai import AllMessageValues
+from ...base_llm.chat.transformation import BaseConfig
+from ..common_utils import AzureOpenAIError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+
+ LoggingClass = LiteLLMLoggingObj
+else:
+ LoggingClass = Any
+
+
+class AzureOpenAIConfig(BaseConfig):
+ """
+ Reference: https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions
+
+ The class `AzureOpenAIConfig` provides configuration for the OpenAI's Chat API interface, for use with Azure. Below are the parameters::
+
+ - `frequency_penalty` (number or null): Defaults to 0. Allows a value between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, thereby minimizing repetition.
+
+ - `function_call` (string or object): This optional parameter controls how the model calls functions.
+
+ - `functions` (array): An optional parameter. It is a list of functions for which the model may generate JSON inputs.
+
+ - `logit_bias` (map): This optional parameter modifies the likelihood of specified tokens appearing in the completion.
+
+ - `max_tokens` (integer or null): This optional parameter helps to set the maximum number of tokens to generate in the chat completion.
+
+ - `n` (integer or null): This optional parameter helps to set how many chat completion choices to generate for each input message.
+
+ - `presence_penalty` (number or null): Defaults to 0. It penalizes new tokens based on if they appear in the text so far, hence increasing the model's likelihood to talk about new topics.
+
+ - `stop` (string / array / null): Specifies up to 4 sequences where the API will stop generating further tokens.
+
+ - `temperature` (number or null): Defines the sampling temperature to use, varying between 0 and 2.
+
+ - `top_p` (number or null): An alternative to sampling with temperature, used for nucleus sampling.
+ """
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[int] = None,
+ function_call: Optional[Union[str, dict]] = None,
+ functions: Optional[list] = None,
+ logit_bias: Optional[dict] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return [
+ "temperature",
+ "n",
+ "stream",
+ "stream_options",
+ "stop",
+ "max_tokens",
+ "max_completion_tokens",
+ "tools",
+ "tool_choice",
+ "presence_penalty",
+ "frequency_penalty",
+ "logit_bias",
+ "user",
+ "function_call",
+ "functions",
+ "tools",
+ "tool_choice",
+ "top_p",
+ "logprobs",
+ "top_logprobs",
+ "response_format",
+ "seed",
+ "extra_headers",
+ "parallel_tool_calls",
+ "prediction",
+ "modalities",
+ "audio",
+ ]
+
+ def _is_response_format_supported_model(self, model: str) -> bool:
+ """
+ - all 4o models are supported
+ - check if 'supports_response_format' is True from get_model_info
+ - [TODO] support smart retries for 3.5 models (some supported, some not)
+ """
+ if "4o" in model:
+ return True
+ elif supports_response_schema(model):
+ return True
+
+ return False
+
+ def _is_response_format_supported_api_version(
+ self, api_version_year: str, api_version_month: str
+ ) -> bool:
+ """
+ - check if api_version is supported for response_format
+ """
+
+ is_supported = int(api_version_year) <= 2024 and int(api_version_month) >= 8
+
+ return is_supported
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ api_version: str = "",
+ ) -> dict:
+ supported_openai_params = self.get_supported_openai_params(model)
+
+ api_version_times = api_version.split("-")
+ api_version_year = api_version_times[0]
+ api_version_month = api_version_times[1]
+ api_version_day = api_version_times[2]
+ for param, value in non_default_params.items():
+ if param == "tool_choice":
+ """
+ This parameter requires API version 2023-12-01-preview or later
+
+ tool_choice='required' is not supported as of 2024-05-01-preview
+ """
+ ## check if api version supports this param ##
+ if (
+ api_version_year < "2023"
+ or (api_version_year == "2023" and api_version_month < "12")
+ or (
+ api_version_year == "2023"
+ and api_version_month == "12"
+ and api_version_day < "01"
+ )
+ ):
+ if litellm.drop_params is True or (
+ drop_params is not None and drop_params is True
+ ):
+ pass
+ else:
+ raise UnsupportedParamsError(
+ status_code=400,
+ message=f"""Azure does not support 'tool_choice', for api_version={api_version}. Bump your API version to '2023-12-01-preview' or later. This parameter requires 'api_version="2023-12-01-preview"' or later. Azure API Reference: https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions""",
+ )
+ elif value == "required" and (
+ api_version_year == "2024" and api_version_month <= "05"
+ ): ## check if tool_choice value is supported ##
+ if litellm.drop_params is True or (
+ drop_params is not None and drop_params is True
+ ):
+ pass
+ else:
+ raise UnsupportedParamsError(
+ status_code=400,
+ message=f"Azure does not support '{value}' as a {param} param, for api_version={api_version}. To drop 'tool_choice=required' for calls with this Azure API version, set `litellm.drop_params=True` or for proxy:\n\n`litellm_settings:\n drop_params: true`\nAzure API Reference: https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions",
+ )
+ else:
+ optional_params["tool_choice"] = value
+ elif param == "response_format" and isinstance(value, dict):
+ _is_response_format_supported_model = (
+ self._is_response_format_supported_model(model)
+ )
+
+ is_response_format_supported_api_version = (
+ self._is_response_format_supported_api_version(
+ api_version_year, api_version_month
+ )
+ )
+ is_response_format_supported = (
+ is_response_format_supported_api_version
+ and _is_response_format_supported_model
+ )
+ optional_params = self._add_response_format_to_tools(
+ optional_params=optional_params,
+ value=value,
+ is_response_format_supported=is_response_format_supported,
+ )
+ elif param == "tools" and isinstance(value, list):
+ optional_params.setdefault("tools", [])
+ optional_params["tools"].extend(value)
+ elif param in supported_openai_params:
+ optional_params[param] = value
+
+ return optional_params
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ messages = convert_to_azure_openai_messages(messages)
+ return {
+ "model": model,
+ "messages": messages,
+ **optional_params,
+ }
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LoggingClass,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ raise NotImplementedError(
+ "Azure OpenAI handler.py has custom logic for transforming response, as it uses the OpenAI SDK."
+ )
+
+ def get_mapped_special_auth_params(self) -> dict:
+ return {"token": "azure_ad_token"}
+
+ def map_special_auth_params(self, non_default_params: dict, optional_params: dict):
+ for param, value in non_default_params.items():
+ if param == "token":
+ optional_params["azure_ad_token"] = value
+ return optional_params
+
+ def get_eu_regions(self) -> List[str]:
+ """
+ Source: https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-4-and-gpt-4-turbo-model-availability
+ """
+ return ["europe", "sweden", "switzerland", "france", "uk"]
+
+ def get_us_regions(self) -> List[str]:
+ """
+ Source: https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-4-and-gpt-4-turbo-model-availability
+ """
+ return [
+ "us",
+ "eastus",
+ "eastus2",
+ "eastus2euap",
+ "eastus3",
+ "southcentralus",
+ "westus",
+ "westus2",
+ "westus3",
+ "westus4",
+ ]
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return AzureOpenAIError(
+ message=error_message, status_code=status_code, headers=headers
+ )
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ raise NotImplementedError(
+ "Azure OpenAI has custom logic for validating environment, as it uses the OpenAI SDK."
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/o_series_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/o_series_handler.py
new file mode 100644
index 00000000..2f3e9e63
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/o_series_handler.py
@@ -0,0 +1,72 @@
+"""
+Handler file for calls to Azure OpenAI's o1/o3 family of models
+
+Written separately to handle faking streaming for o1 and o3 models.
+"""
+
+from typing import Any, Callable, Optional, Union
+
+import httpx
+
+from litellm.types.utils import ModelResponse
+
+from ...openai.openai import OpenAIChatCompletion
+from ..common_utils import BaseAzureLLM
+
+
+class AzureOpenAIO1ChatCompletion(BaseAzureLLM, OpenAIChatCompletion):
+ def completion(
+ self,
+ model_response: ModelResponse,
+ timeout: Union[float, httpx.Timeout],
+ optional_params: dict,
+ litellm_params: dict,
+ logging_obj: Any,
+ model: Optional[str] = None,
+ messages: Optional[list] = None,
+ print_verbose: Optional[Callable] = None,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ api_version: Optional[str] = None,
+ dynamic_params: Optional[bool] = None,
+ azure_ad_token: Optional[str] = None,
+ acompletion: bool = False,
+ logger_fn=None,
+ headers: Optional[dict] = None,
+ custom_prompt_dict: dict = {},
+ client=None,
+ organization: Optional[str] = None,
+ custom_llm_provider: Optional[str] = None,
+ drop_params: Optional[bool] = None,
+ ):
+ client = self.get_azure_openai_client(
+ litellm_params=litellm_params,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=acompletion,
+ )
+ return super().completion(
+ model_response=model_response,
+ timeout=timeout,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ logging_obj=logging_obj,
+ model=model,
+ messages=messages,
+ print_verbose=print_verbose,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ dynamic_params=dynamic_params,
+ azure_ad_token=azure_ad_token,
+ acompletion=acompletion,
+ logger_fn=logger_fn,
+ headers=headers,
+ custom_prompt_dict=custom_prompt_dict,
+ client=client,
+ organization=organization,
+ custom_llm_provider=custom_llm_provider,
+ drop_params=drop_params,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/o_series_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/o_series_transformation.py
new file mode 100644
index 00000000..0ca3a28d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/chat/o_series_transformation.py
@@ -0,0 +1,75 @@
+"""
+Support for o1 and o3 model families
+
+https://platform.openai.com/docs/guides/reasoning
+
+Translations handled by LiteLLM:
+- modalities: image => drop param (if user opts in to dropping param)
+- role: system ==> translate to role 'user'
+- streaming => faked by LiteLLM
+- Tools, response_format => drop param (if user opts in to dropping param)
+- Logprobs => drop param (if user opts in to dropping param)
+- Temperature => drop param (if user opts in to dropping param)
+"""
+
+from typing import List, Optional
+
+from litellm import verbose_logger
+from litellm.types.llms.openai import AllMessageValues
+from litellm.utils import get_model_info
+
+from ...openai.chat.o_series_transformation import OpenAIOSeriesConfig
+
+
+class AzureOpenAIO1Config(OpenAIOSeriesConfig):
+ def should_fake_stream(
+ self,
+ model: Optional[str],
+ stream: Optional[bool],
+ custom_llm_provider: Optional[str] = None,
+ ) -> bool:
+ """
+ Currently no Azure O Series models support native streaming.
+ """
+
+ if stream is not True:
+ return False
+
+ if (
+ model and "o3" in model
+ ): # o3 models support streaming - https://github.com/BerriAI/litellm/issues/8274
+ return False
+
+ if model is not None:
+ try:
+ model_info = get_model_info(
+ model=model, custom_llm_provider=custom_llm_provider
+ ) # allow user to override default with model_info={"supports_native_streaming": true}
+
+ if (
+ model_info.get("supports_native_streaming") is True
+ ): # allow user to override default with model_info={"supports_native_streaming": true}
+ return False
+ except Exception as e:
+ verbose_logger.debug(
+ f"Error getting model info in AzureOpenAIO1Config: {e}"
+ )
+ return True
+
+ def is_o_series_model(self, model: str) -> bool:
+ return "o1" in model or "o3" in model or "o_series/" in model
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ model = model.replace(
+ "o_series/", ""
+ ) # handle o_series/my-random-deployment-name
+ return super().transform_request(
+ model, messages, optional_params, litellm_params, headers
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/common_utils.py
new file mode 100644
index 00000000..71092c8b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/common_utils.py
@@ -0,0 +1,426 @@
+import json
+import os
+from typing import Any, Callable, Dict, Optional, Union
+
+import httpx
+from openai import AsyncAzureOpenAI, AzureOpenAI
+
+import litellm
+from litellm._logging import verbose_logger
+from litellm.caching.caching import DualCache
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.llms.openai.common_utils import BaseOpenAILLM
+from litellm.secret_managers.get_azure_ad_token_provider import (
+ get_azure_ad_token_provider,
+)
+from litellm.secret_managers.main import get_secret_str
+
+azure_ad_cache = DualCache()
+
+
+class AzureOpenAIError(BaseLLMException):
+ def __init__(
+ self,
+ status_code,
+ message,
+ request: Optional[httpx.Request] = None,
+ response: Optional[httpx.Response] = None,
+ headers: Optional[Union[httpx.Headers, dict]] = None,
+ body: Optional[dict] = None,
+ ):
+ super().__init__(
+ status_code=status_code,
+ message=message,
+ request=request,
+ response=response,
+ headers=headers,
+ body=body,
+ )
+
+
+def process_azure_headers(headers: Union[httpx.Headers, dict]) -> dict:
+ openai_headers = {}
+ if "x-ratelimit-limit-requests" in headers:
+ openai_headers["x-ratelimit-limit-requests"] = headers[
+ "x-ratelimit-limit-requests"
+ ]
+ if "x-ratelimit-remaining-requests" in headers:
+ openai_headers["x-ratelimit-remaining-requests"] = headers[
+ "x-ratelimit-remaining-requests"
+ ]
+ if "x-ratelimit-limit-tokens" in headers:
+ openai_headers["x-ratelimit-limit-tokens"] = headers["x-ratelimit-limit-tokens"]
+ if "x-ratelimit-remaining-tokens" in headers:
+ openai_headers["x-ratelimit-remaining-tokens"] = headers[
+ "x-ratelimit-remaining-tokens"
+ ]
+ llm_response_headers = {
+ "{}-{}".format("llm_provider", k): v for k, v in headers.items()
+ }
+
+ return {**llm_response_headers, **openai_headers}
+
+
+def get_azure_ad_token_from_entrata_id(
+ tenant_id: str,
+ client_id: str,
+ client_secret: str,
+ scope: str = "https://cognitiveservices.azure.com/.default",
+) -> Callable[[], str]:
+ """
+ Get Azure AD token provider from `client_id`, `client_secret`, and `tenant_id`
+
+ Args:
+ tenant_id: str
+ client_id: str
+ client_secret: str
+ scope: str
+
+ Returns:
+ callable that returns a bearer token.
+ """
+ from azure.identity import ClientSecretCredential, get_bearer_token_provider
+
+ verbose_logger.debug("Getting Azure AD Token from Entrata ID")
+
+ if tenant_id.startswith("os.environ/"):
+ _tenant_id = get_secret_str(tenant_id)
+ else:
+ _tenant_id = tenant_id
+
+ if client_id.startswith("os.environ/"):
+ _client_id = get_secret_str(client_id)
+ else:
+ _client_id = client_id
+
+ if client_secret.startswith("os.environ/"):
+ _client_secret = get_secret_str(client_secret)
+ else:
+ _client_secret = client_secret
+
+ verbose_logger.debug(
+ "tenant_id %s, client_id %s, client_secret %s",
+ _tenant_id,
+ _client_id,
+ _client_secret,
+ )
+ if _tenant_id is None or _client_id is None or _client_secret is None:
+ raise ValueError("tenant_id, client_id, and client_secret must be provided")
+ credential = ClientSecretCredential(_tenant_id, _client_id, _client_secret)
+
+ verbose_logger.debug("credential %s", credential)
+
+ token_provider = get_bearer_token_provider(credential, scope)
+
+ verbose_logger.debug("token_provider %s", token_provider)
+
+ return token_provider
+
+
+def get_azure_ad_token_from_username_password(
+ client_id: str,
+ azure_username: str,
+ azure_password: str,
+ scope: str = "https://cognitiveservices.azure.com/.default",
+) -> Callable[[], str]:
+ """
+ Get Azure AD token provider from `client_id`, `azure_username`, and `azure_password`
+
+ Args:
+ client_id: str
+ azure_username: str
+ azure_password: str
+ scope: str
+
+ Returns:
+ callable that returns a bearer token.
+ """
+ from azure.identity import UsernamePasswordCredential, get_bearer_token_provider
+
+ verbose_logger.debug(
+ "client_id %s, azure_username %s, azure_password %s",
+ client_id,
+ azure_username,
+ azure_password,
+ )
+ credential = UsernamePasswordCredential(
+ client_id=client_id,
+ username=azure_username,
+ password=azure_password,
+ )
+
+ verbose_logger.debug("credential %s", credential)
+
+ token_provider = get_bearer_token_provider(credential, scope)
+
+ verbose_logger.debug("token_provider %s", token_provider)
+
+ return token_provider
+
+
+def get_azure_ad_token_from_oidc(azure_ad_token: str):
+ azure_client_id = os.getenv("AZURE_CLIENT_ID", None)
+ azure_tenant_id = os.getenv("AZURE_TENANT_ID", None)
+ azure_authority_host = os.getenv(
+ "AZURE_AUTHORITY_HOST", "https://login.microsoftonline.com"
+ )
+
+ if azure_client_id is None or azure_tenant_id is None:
+ raise AzureOpenAIError(
+ status_code=422,
+ message="AZURE_CLIENT_ID and AZURE_TENANT_ID must be set",
+ )
+
+ oidc_token = get_secret_str(azure_ad_token)
+
+ if oidc_token is None:
+ raise AzureOpenAIError(
+ status_code=401,
+ message="OIDC token could not be retrieved from secret manager.",
+ )
+
+ azure_ad_token_cache_key = json.dumps(
+ {
+ "azure_client_id": azure_client_id,
+ "azure_tenant_id": azure_tenant_id,
+ "azure_authority_host": azure_authority_host,
+ "oidc_token": oidc_token,
+ }
+ )
+
+ azure_ad_token_access_token = azure_ad_cache.get_cache(azure_ad_token_cache_key)
+ if azure_ad_token_access_token is not None:
+ return azure_ad_token_access_token
+
+ client = litellm.module_level_client
+ req_token = client.post(
+ f"{azure_authority_host}/{azure_tenant_id}/oauth2/v2.0/token",
+ data={
+ "client_id": azure_client_id,
+ "grant_type": "client_credentials",
+ "scope": "https://cognitiveservices.azure.com/.default",
+ "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
+ "client_assertion": oidc_token,
+ },
+ )
+
+ if req_token.status_code != 200:
+ raise AzureOpenAIError(
+ status_code=req_token.status_code,
+ message=req_token.text,
+ )
+
+ azure_ad_token_json = req_token.json()
+ azure_ad_token_access_token = azure_ad_token_json.get("access_token", None)
+ azure_ad_token_expires_in = azure_ad_token_json.get("expires_in", None)
+
+ if azure_ad_token_access_token is None:
+ raise AzureOpenAIError(
+ status_code=422, message="Azure AD Token access_token not returned"
+ )
+
+ if azure_ad_token_expires_in is None:
+ raise AzureOpenAIError(
+ status_code=422, message="Azure AD Token expires_in not returned"
+ )
+
+ azure_ad_cache.set_cache(
+ key=azure_ad_token_cache_key,
+ value=azure_ad_token_access_token,
+ ttl=azure_ad_token_expires_in,
+ )
+
+ return azure_ad_token_access_token
+
+
+def select_azure_base_url_or_endpoint(azure_client_params: dict):
+ azure_endpoint = azure_client_params.get("azure_endpoint", None)
+ if azure_endpoint is not None:
+ # see : https://github.com/openai/openai-python/blob/3d61ed42aba652b547029095a7eb269ad4e1e957/src/openai/lib/azure.py#L192
+ if "/openai/deployments" in azure_endpoint:
+ # this is base_url, not an azure_endpoint
+ azure_client_params["base_url"] = azure_endpoint
+ azure_client_params.pop("azure_endpoint")
+
+ return azure_client_params
+
+
+class BaseAzureLLM(BaseOpenAILLM):
+ def get_azure_openai_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str] = None,
+ client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None,
+ litellm_params: Optional[dict] = None,
+ _is_async: bool = False,
+ model: Optional[str] = None,
+ ) -> Optional[Union[AzureOpenAI, AsyncAzureOpenAI]]:
+ openai_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None
+ client_initialization_params: dict = locals()
+ if client is None:
+ cached_client = self.get_cached_openai_client(
+ client_initialization_params=client_initialization_params,
+ client_type="azure",
+ )
+ if cached_client:
+ if isinstance(cached_client, AzureOpenAI) or isinstance(
+ cached_client, AsyncAzureOpenAI
+ ):
+ return cached_client
+
+ azure_client_params = self.initialize_azure_sdk_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ model_name=model,
+ api_version=api_version,
+ is_async=_is_async,
+ )
+ if _is_async is True:
+ openai_client = AsyncAzureOpenAI(**azure_client_params)
+ else:
+ openai_client = AzureOpenAI(**azure_client_params) # type: ignore
+ else:
+ openai_client = client
+ if api_version is not None and isinstance(
+ openai_client._custom_query, dict
+ ):
+ # set api_version to version passed by user
+ openai_client._custom_query.setdefault("api-version", api_version)
+
+ # save client in-memory cache
+ self.set_cached_openai_client(
+ openai_client=openai_client,
+ client_initialization_params=client_initialization_params,
+ client_type="azure",
+ )
+ return openai_client
+
+ def initialize_azure_sdk_client(
+ self,
+ litellm_params: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ model_name: Optional[str],
+ api_version: Optional[str],
+ is_async: bool,
+ ) -> dict:
+
+ azure_ad_token_provider: Optional[Callable[[], str]] = None
+ # If we have api_key, then we have higher priority
+ azure_ad_token = litellm_params.get("azure_ad_token")
+ tenant_id = litellm_params.get("tenant_id")
+ client_id = litellm_params.get("client_id")
+ client_secret = litellm_params.get("client_secret")
+ azure_username = litellm_params.get("azure_username")
+ azure_password = litellm_params.get("azure_password")
+ max_retries = litellm_params.get("max_retries")
+ timeout = litellm_params.get("timeout")
+ if not api_key and tenant_id and client_id and client_secret:
+ verbose_logger.debug("Using Azure AD Token Provider for Azure Auth")
+ azure_ad_token_provider = get_azure_ad_token_from_entrata_id(
+ tenant_id=tenant_id,
+ client_id=client_id,
+ client_secret=client_secret,
+ )
+ if azure_username and azure_password and client_id:
+ azure_ad_token_provider = get_azure_ad_token_from_username_password(
+ azure_username=azure_username,
+ azure_password=azure_password,
+ client_id=client_id,
+ )
+
+ if azure_ad_token is not None and azure_ad_token.startswith("oidc/"):
+ azure_ad_token = get_azure_ad_token_from_oidc(azure_ad_token)
+ elif (
+ not api_key
+ and azure_ad_token_provider is None
+ and litellm.enable_azure_ad_token_refresh is True
+ ):
+ try:
+ azure_ad_token_provider = get_azure_ad_token_provider()
+ except ValueError:
+ verbose_logger.debug("Azure AD Token Provider could not be used.")
+ if api_version is None:
+ api_version = os.getenv(
+ "AZURE_API_VERSION", litellm.AZURE_DEFAULT_API_VERSION
+ )
+
+ _api_key = api_key
+ if _api_key is not None and isinstance(_api_key, str):
+ # only show first 5 chars of api_key
+ _api_key = _api_key[:8] + "*" * 15
+ verbose_logger.debug(
+ f"Initializing Azure OpenAI Client for {model_name}, Api Base: {str(api_base)}, Api Key:{_api_key}"
+ )
+ azure_client_params = {
+ "api_key": api_key,
+ "azure_endpoint": api_base,
+ "api_version": api_version,
+ "azure_ad_token": azure_ad_token,
+ "azure_ad_token_provider": azure_ad_token_provider,
+ }
+ # init http client + SSL Verification settings
+ if is_async is True:
+ azure_client_params["http_client"] = self._get_async_http_client()
+ else:
+ azure_client_params["http_client"] = self._get_sync_http_client()
+
+ if max_retries is not None:
+ azure_client_params["max_retries"] = max_retries
+ if timeout is not None:
+ azure_client_params["timeout"] = timeout
+
+ if azure_ad_token_provider is not None:
+ azure_client_params["azure_ad_token_provider"] = azure_ad_token_provider
+ # this decides if we should set azure_endpoint or base_url on Azure OpenAI Client
+ # required to support GPT-4 vision enhancements, since base_url needs to be set on Azure OpenAI Client
+
+ azure_client_params = select_azure_base_url_or_endpoint(
+ azure_client_params=azure_client_params
+ )
+
+ return azure_client_params
+
+ def _init_azure_client_for_cloudflare_ai_gateway(
+ self,
+ api_base: str,
+ model: str,
+ api_version: str,
+ max_retries: int,
+ timeout: Union[float, httpx.Timeout],
+ api_key: Optional[str],
+ azure_ad_token: Optional[str],
+ azure_ad_token_provider: Optional[Callable[[], str]],
+ acompletion: bool,
+ client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None,
+ ) -> Union[AzureOpenAI, AsyncAzureOpenAI]:
+ ## build base url - assume api base includes resource name
+ if client is None:
+ if not api_base.endswith("/"):
+ api_base += "/"
+ api_base += f"{model}"
+
+ azure_client_params: Dict[str, Any] = {
+ "api_version": api_version,
+ "base_url": f"{api_base}",
+ "http_client": litellm.client_session,
+ "max_retries": max_retries,
+ "timeout": timeout,
+ }
+ if api_key is not None:
+ azure_client_params["api_key"] = api_key
+ elif azure_ad_token is not None:
+ if azure_ad_token.startswith("oidc/"):
+ azure_ad_token = get_azure_ad_token_from_oidc(azure_ad_token)
+
+ azure_client_params["azure_ad_token"] = azure_ad_token
+ if azure_ad_token_provider is not None:
+ azure_client_params["azure_ad_token_provider"] = azure_ad_token_provider
+
+ if acompletion is True:
+ client = AsyncAzureOpenAI(**azure_client_params) # type: ignore
+ else:
+ client = AzureOpenAI(**azure_client_params) # type: ignore
+ return client
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/completion/handler.py
new file mode 100644
index 00000000..8301c4d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/completion/handler.py
@@ -0,0 +1,378 @@
+from typing import Any, Callable, Optional
+
+from openai import AsyncAzureOpenAI, AzureOpenAI
+
+from litellm.litellm_core_utils.prompt_templates.factory import prompt_factory
+from litellm.utils import CustomStreamWrapper, ModelResponse, TextCompletionResponse
+
+from ...openai.completion.transformation import OpenAITextCompletionConfig
+from ..common_utils import AzureOpenAIError, BaseAzureLLM
+
+openai_text_completion_config = OpenAITextCompletionConfig()
+
+
+class AzureTextCompletion(BaseAzureLLM):
+ def __init__(self) -> None:
+ super().__init__()
+
+ def validate_environment(self, api_key, azure_ad_token):
+ headers = {
+ "content-type": "application/json",
+ }
+ if api_key is not None:
+ headers["api-key"] = api_key
+ elif azure_ad_token is not None:
+ headers["Authorization"] = f"Bearer {azure_ad_token}"
+ return headers
+
+ def completion( # noqa: PLR0915
+ self,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ api_key: str,
+ api_base: str,
+ api_version: str,
+ api_type: str,
+ azure_ad_token: str,
+ azure_ad_token_provider: Optional[Callable],
+ print_verbose: Callable,
+ timeout,
+ logging_obj,
+ optional_params,
+ litellm_params,
+ logger_fn,
+ acompletion: bool = False,
+ headers: Optional[dict] = None,
+ client=None,
+ ):
+ try:
+ if model is None or messages is None:
+ raise AzureOpenAIError(
+ status_code=422, message="Missing model or messages"
+ )
+
+ max_retries = optional_params.pop("max_retries", 2)
+ prompt = prompt_factory(
+ messages=messages, model=model, custom_llm_provider="azure_text"
+ )
+
+ ### CHECK IF CLOUDFLARE AI GATEWAY ###
+ ### if so - set the model as part of the base url
+ if "gateway.ai.cloudflare.com" in api_base:
+ ## build base url - assume api base includes resource name
+ client = self._init_azure_client_for_cloudflare_ai_gateway(
+ api_key=api_key,
+ api_version=api_version,
+ api_base=api_base,
+ model=model,
+ client=client,
+ max_retries=max_retries,
+ timeout=timeout,
+ azure_ad_token=azure_ad_token,
+ azure_ad_token_provider=azure_ad_token_provider,
+ acompletion=acompletion,
+ )
+
+ data = {"model": None, "prompt": prompt, **optional_params}
+ else:
+ data = {
+ "model": model, # type: ignore
+ "prompt": prompt,
+ **optional_params,
+ }
+
+ if acompletion is True:
+ if optional_params.get("stream", False):
+ return self.async_streaming(
+ logging_obj=logging_obj,
+ api_base=api_base,
+ data=data,
+ model=model,
+ api_key=api_key,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ else:
+ return self.acompletion(
+ api_base=api_base,
+ data=data,
+ model_response=model_response,
+ api_key=api_key,
+ api_version=api_version,
+ model=model,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ client=client,
+ logging_obj=logging_obj,
+ max_retries=max_retries,
+ litellm_params=litellm_params,
+ )
+ elif "stream" in optional_params and optional_params["stream"] is True:
+ return self.streaming(
+ logging_obj=logging_obj,
+ api_base=api_base,
+ data=data,
+ model=model,
+ api_key=api_key,
+ api_version=api_version,
+ azure_ad_token=azure_ad_token,
+ timeout=timeout,
+ client=client,
+ )
+ else:
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=api_key,
+ additional_args={
+ "headers": {
+ "api_key": api_key,
+ "azure_ad_token": azure_ad_token,
+ },
+ "api_version": api_version,
+ "api_base": api_base,
+ "complete_input_dict": data,
+ },
+ )
+ if not isinstance(max_retries, int):
+ raise AzureOpenAIError(
+ status_code=422, message="max retries must be an int"
+ )
+ # init AzureOpenAI Client
+ azure_client = self.get_azure_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ litellm_params=litellm_params,
+ _is_async=False,
+ model=model,
+ )
+
+ if not isinstance(azure_client, AzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="azure_client is not an instance of AzureOpenAI",
+ )
+
+ raw_response = azure_client.completions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ response = raw_response.parse()
+ stringified_response = response.model_dump()
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ original_response=stringified_response,
+ additional_args={
+ "headers": headers,
+ "api_version": api_version,
+ "api_base": api_base,
+ },
+ )
+ return (
+ openai_text_completion_config.convert_to_chat_model_response_object(
+ response_object=TextCompletionResponse(**stringified_response),
+ model_response_object=model_response,
+ )
+ )
+ except AzureOpenAIError as e:
+ raise e
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise AzureOpenAIError(
+ status_code=status_code, message=str(e), headers=error_headers
+ )
+
+ async def acompletion(
+ self,
+ api_key: str,
+ api_version: str,
+ model: str,
+ api_base: str,
+ data: dict,
+ timeout: Any,
+ model_response: ModelResponse,
+ logging_obj: Any,
+ max_retries: int,
+ azure_ad_token: Optional[str] = None,
+ client=None, # this is the AsyncAzureOpenAI
+ litellm_params: dict = {},
+ ):
+ response = None
+ try:
+ # init AzureOpenAI Client
+ # setting Azure client
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ _is_async=True,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AsyncAzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="azure_client is not an instance of AsyncAzureOpenAI",
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["prompt"],
+ api_key=azure_client.api_key,
+ additional_args={
+ "headers": {"Authorization": f"Bearer {azure_client.api_key}"},
+ "api_base": azure_client._base_url._uri_reference,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+ raw_response = await azure_client.completions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ response = raw_response.parse()
+ return openai_text_completion_config.convert_to_chat_model_response_object(
+ response_object=response.model_dump(),
+ model_response_object=model_response,
+ )
+ except AzureOpenAIError as e:
+ raise e
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise AzureOpenAIError(
+ status_code=status_code, message=str(e), headers=error_headers
+ )
+
+ def streaming(
+ self,
+ logging_obj,
+ api_base: str,
+ api_key: str,
+ api_version: str,
+ data: dict,
+ model: str,
+ timeout: Any,
+ azure_ad_token: Optional[str] = None,
+ client=None,
+ litellm_params: dict = {},
+ ):
+ max_retries = data.pop("max_retries", 2)
+ if not isinstance(max_retries, int):
+ raise AzureOpenAIError(
+ status_code=422, message="max retries must be an int"
+ )
+ # init AzureOpenAI Client
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ _is_async=False,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="azure_client is not an instance of AzureOpenAI",
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["prompt"],
+ api_key=azure_client.api_key,
+ additional_args={
+ "headers": {"Authorization": f"Bearer {azure_client.api_key}"},
+ "api_base": azure_client._base_url._uri_reference,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+ raw_response = azure_client.completions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ response = raw_response.parse()
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="azure_text",
+ logging_obj=logging_obj,
+ )
+ return streamwrapper
+
+ async def async_streaming(
+ self,
+ logging_obj,
+ api_base: str,
+ api_key: str,
+ api_version: str,
+ data: dict,
+ model: str,
+ timeout: Any,
+ azure_ad_token: Optional[str] = None,
+ client=None,
+ litellm_params: dict = {},
+ ):
+ try:
+ # init AzureOpenAI Client
+ azure_client = self.get_azure_openai_client(
+ api_version=api_version,
+ api_base=api_base,
+ api_key=api_key,
+ model=model,
+ _is_async=True,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ if not isinstance(azure_client, AsyncAzureOpenAI):
+ raise AzureOpenAIError(
+ status_code=500,
+ message="azure_client is not an instance of AsyncAzureOpenAI",
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["prompt"],
+ api_key=azure_client.api_key,
+ additional_args={
+ "headers": {"Authorization": f"Bearer {azure_client.api_key}"},
+ "api_base": azure_client._base_url._uri_reference,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+ raw_response = await azure_client.completions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ response = raw_response.parse()
+ # return response
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="azure_text",
+ logging_obj=logging_obj,
+ )
+ return streamwrapper ## DO NOT make this into an async for ... loop, it will yield an async generator, which won't raise errors if the response fails
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise AzureOpenAIError(
+ status_code=status_code, message=str(e), headers=error_headers
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/completion/transformation.py
new file mode 100644
index 00000000..bc7b97c6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/completion/transformation.py
@@ -0,0 +1,53 @@
+from typing import Optional, Union
+
+from ...openai.completion.transformation import OpenAITextCompletionConfig
+
+
+class AzureOpenAITextConfig(OpenAITextCompletionConfig):
+ """
+ Reference: https://platform.openai.com/docs/api-reference/chat/create
+
+ The class `AzureOpenAIConfig` provides configuration for the OpenAI's Chat API interface, for use with Azure. It inherits from `OpenAIConfig`. Below are the parameters::
+
+ - `frequency_penalty` (number or null): Defaults to 0. Allows a value between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, thereby minimizing repetition.
+
+ - `function_call` (string or object): This optional parameter controls how the model calls functions.
+
+ - `functions` (array): An optional parameter. It is a list of functions for which the model may generate JSON inputs.
+
+ - `logit_bias` (map): This optional parameter modifies the likelihood of specified tokens appearing in the completion.
+
+ - `max_tokens` (integer or null): This optional parameter helps to set the maximum number of tokens to generate in the chat completion.
+
+ - `n` (integer or null): This optional parameter helps to set how many chat completion choices to generate for each input message.
+
+ - `presence_penalty` (number or null): Defaults to 0. It penalizes new tokens based on if they appear in the text so far, hence increasing the model's likelihood to talk about new topics.
+
+ - `stop` (string / array / null): Specifies up to 4 sequences where the API will stop generating further tokens.
+
+ - `temperature` (number or null): Defines the sampling temperature to use, varying between 0 and 2.
+
+ - `top_p` (number or null): An alternative to sampling with temperature, used for nucleus sampling.
+ """
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[int] = None,
+ logit_bias: Optional[dict] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ ) -> None:
+ super().__init__(
+ frequency_penalty=frequency_penalty,
+ logit_bias=logit_bias,
+ max_tokens=max_tokens,
+ n=n,
+ presence_penalty=presence_penalty,
+ stop=stop,
+ temperature=temperature,
+ top_p=top_p,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/cost_calculation.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/cost_calculation.py
new file mode 100644
index 00000000..96c58d95
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/cost_calculation.py
@@ -0,0 +1,61 @@
+"""
+Helper util for handling azure openai-specific cost calculation
+- e.g.: prompt caching
+"""
+
+from typing import Optional, Tuple
+
+from litellm._logging import verbose_logger
+from litellm.types.utils import Usage
+from litellm.utils import get_model_info
+
+
+def cost_per_token(
+ model: str, usage: Usage, response_time_ms: Optional[float] = 0.0
+) -> Tuple[float, float]:
+ """
+ Calculates the cost per token for a given model, prompt tokens, and completion tokens.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - usage: LiteLLM Usage block, containing anthropic caching information
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+ """
+ ## GET MODEL INFO
+ model_info = get_model_info(model=model, custom_llm_provider="azure")
+ cached_tokens: Optional[int] = None
+ ## CALCULATE INPUT COST
+ non_cached_text_tokens = usage.prompt_tokens
+ if usage.prompt_tokens_details and usage.prompt_tokens_details.cached_tokens:
+ cached_tokens = usage.prompt_tokens_details.cached_tokens
+ non_cached_text_tokens = non_cached_text_tokens - cached_tokens
+ prompt_cost: float = non_cached_text_tokens * model_info["input_cost_per_token"]
+
+ ## CALCULATE OUTPUT COST
+ completion_cost: float = (
+ usage["completion_tokens"] * model_info["output_cost_per_token"]
+ )
+
+ ## Prompt Caching cost calculation
+ if model_info.get("cache_read_input_token_cost") is not None and cached_tokens:
+ # Note: We read ._cache_read_input_tokens from the Usage - since cost_calculator.py standardizes the cache read tokens on usage._cache_read_input_tokens
+ prompt_cost += cached_tokens * (
+ model_info.get("cache_read_input_token_cost", 0) or 0
+ )
+
+ ## Speech / Audio cost calculation
+ if (
+ "output_cost_per_second" in model_info
+ and model_info["output_cost_per_second"] is not None
+ and response_time_ms is not None
+ ):
+ verbose_logger.debug(
+ f"For model={model} - output_cost_per_second: {model_info.get('output_cost_per_second')}; response time: {response_time_ms}"
+ )
+ ## COST PER SECOND ##
+ prompt_cost = 0
+ completion_cost = model_info["output_cost_per_second"] * response_time_ms / 1000
+
+ return prompt_cost, completion_cost
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/files/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/files/handler.py
new file mode 100644
index 00000000..d45ac9a3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/files/handler.py
@@ -0,0 +1,284 @@
+from typing import Any, Coroutine, Optional, Union, cast
+
+import httpx
+from openai import AsyncAzureOpenAI, AzureOpenAI
+from openai.types.file_deleted import FileDeleted
+
+from litellm._logging import verbose_logger
+from litellm.types.llms.openai import *
+
+from ..common_utils import BaseAzureLLM
+
+
+class AzureOpenAIFilesAPI(BaseAzureLLM):
+ """
+ AzureOpenAI methods to support for batches
+ - create_file()
+ - retrieve_file()
+ - list_files()
+ - delete_file()
+ - file_content()
+ - update_file()
+ """
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ async def acreate_file(
+ self,
+ create_file_data: CreateFileRequest,
+ openai_client: AsyncAzureOpenAI,
+ ) -> FileObject:
+ verbose_logger.debug("create_file_data=%s", create_file_data)
+ response = await openai_client.files.create(**create_file_data)
+ verbose_logger.debug("create_file_response=%s", response)
+ return response
+
+ def create_file(
+ self,
+ _is_async: bool,
+ create_file_data: CreateFileRequest,
+ api_base: Optional[str],
+ api_key: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> Union[FileObject, Coroutine[Any, Any, FileObject]]:
+
+ openai_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ )
+ )
+ if openai_client is None:
+ raise ValueError(
+ "AzureOpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncAzureOpenAI):
+ raise ValueError(
+ "AzureOpenAI client is not an instance of AsyncAzureOpenAI. Make sure you passed an AsyncAzureOpenAI client."
+ )
+ return self.acreate_file( # type: ignore
+ create_file_data=create_file_data, openai_client=openai_client
+ )
+ response = openai_client.files.create(**create_file_data)
+ return response
+
+ async def afile_content(
+ self,
+ file_content_request: FileContentRequest,
+ openai_client: AsyncAzureOpenAI,
+ ) -> HttpxBinaryResponseContent:
+ response = await openai_client.files.content(**file_content_request)
+ return HttpxBinaryResponseContent(response=response.response)
+
+ def file_content(
+ self,
+ _is_async: bool,
+ file_content_request: FileContentRequest,
+ api_base: Optional[str],
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ api_version: Optional[str] = None,
+ client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> Union[
+ HttpxBinaryResponseContent, Coroutine[Any, Any, HttpxBinaryResponseContent]
+ ]:
+ openai_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ )
+ )
+ if openai_client is None:
+ raise ValueError(
+ "AzureOpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncAzureOpenAI):
+ raise ValueError(
+ "AzureOpenAI client is not an instance of AsyncAzureOpenAI. Make sure you passed an AsyncAzureOpenAI client."
+ )
+ return self.afile_content( # type: ignore
+ file_content_request=file_content_request,
+ openai_client=openai_client,
+ )
+ response = cast(AzureOpenAI, openai_client).files.content(
+ **file_content_request
+ )
+
+ return HttpxBinaryResponseContent(response=response.response)
+
+ async def aretrieve_file(
+ self,
+ file_id: str,
+ openai_client: AsyncAzureOpenAI,
+ ) -> FileObject:
+ response = await openai_client.files.retrieve(file_id=file_id)
+ return response
+
+ def retrieve_file(
+ self,
+ _is_async: bool,
+ file_id: str,
+ api_base: Optional[str],
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ api_version: Optional[str] = None,
+ client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None,
+ litellm_params: Optional[dict] = None,
+ ):
+ openai_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ )
+ )
+ if openai_client is None:
+ raise ValueError(
+ "AzureOpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncAzureOpenAI):
+ raise ValueError(
+ "AzureOpenAI client is not an instance of AsyncAzureOpenAI. Make sure you passed an AsyncAzureOpenAI client."
+ )
+ return self.aretrieve_file( # type: ignore
+ file_id=file_id,
+ openai_client=openai_client,
+ )
+ response = openai_client.files.retrieve(file_id=file_id)
+
+ return response
+
+ async def adelete_file(
+ self,
+ file_id: str,
+ openai_client: AsyncAzureOpenAI,
+ ) -> FileDeleted:
+ response = await openai_client.files.delete(file_id=file_id)
+
+ if not isinstance(response, FileDeleted): # azure returns an empty string
+ return FileDeleted(id=file_id, deleted=True, object="file")
+ return response
+
+ def delete_file(
+ self,
+ _is_async: bool,
+ file_id: str,
+ api_base: Optional[str],
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str] = None,
+ api_version: Optional[str] = None,
+ client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None,
+ litellm_params: Optional[dict] = None,
+ ):
+ openai_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ )
+ )
+ if openai_client is None:
+ raise ValueError(
+ "AzureOpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncAzureOpenAI):
+ raise ValueError(
+ "AzureOpenAI client is not an instance of AsyncAzureOpenAI. Make sure you passed an AsyncAzureOpenAI client."
+ )
+ return self.adelete_file( # type: ignore
+ file_id=file_id,
+ openai_client=openai_client,
+ )
+ response = openai_client.files.delete(file_id=file_id)
+
+ if not isinstance(response, FileDeleted): # azure returns an empty string
+ return FileDeleted(id=file_id, deleted=True, object="file")
+
+ return response
+
+ async def alist_files(
+ self,
+ openai_client: AsyncAzureOpenAI,
+ purpose: Optional[str] = None,
+ ):
+ if isinstance(purpose, str):
+ response = await openai_client.files.list(purpose=purpose)
+ else:
+ response = await openai_client.files.list()
+ return response
+
+ def list_files(
+ self,
+ _is_async: bool,
+ api_base: Optional[str],
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ purpose: Optional[str] = None,
+ api_version: Optional[str] = None,
+ client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = None,
+ litellm_params: Optional[dict] = None,
+ ):
+ openai_client: Optional[Union[AzureOpenAI, AsyncAzureOpenAI]] = (
+ self.get_azure_openai_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ )
+ )
+ if openai_client is None:
+ raise ValueError(
+ "AzureOpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncAzureOpenAI):
+ raise ValueError(
+ "AzureOpenAI client is not an instance of AsyncAzureOpenAI. Make sure you passed an AsyncAzureOpenAI client."
+ )
+ return self.alist_files( # type: ignore
+ purpose=purpose,
+ openai_client=openai_client,
+ )
+
+ if isinstance(purpose, str):
+ response = openai_client.files.list(purpose=purpose)
+ else:
+ response = openai_client.files.list()
+
+ return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/fine_tuning/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/fine_tuning/handler.py
new file mode 100644
index 00000000..3d7cc336
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/fine_tuning/handler.py
@@ -0,0 +1,47 @@
+from typing import Optional, Union
+
+import httpx
+from openai import AsyncAzureOpenAI, AsyncOpenAI, AzureOpenAI, OpenAI
+
+from litellm.llms.azure.common_utils import BaseAzureLLM
+from litellm.llms.openai.fine_tuning.handler import OpenAIFineTuningAPI
+
+
+class AzureOpenAIFineTuningAPI(OpenAIFineTuningAPI, BaseAzureLLM):
+ """
+ AzureOpenAI methods to support fine tuning, inherits from OpenAIFineTuningAPI.
+ """
+
+ def get_openai_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = None,
+ _is_async: bool = False,
+ api_version: Optional[str] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> Optional[
+ Union[
+ OpenAI,
+ AsyncOpenAI,
+ AzureOpenAI,
+ AsyncAzureOpenAI,
+ ]
+ ]:
+ # Override to use Azure-specific client initialization
+ if isinstance(client, OpenAI) or isinstance(client, AsyncOpenAI):
+ client = None
+
+ return self.get_azure_openai_client(
+ litellm_params=litellm_params or {},
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ client=client,
+ _is_async=_is_async,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure/realtime/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure/realtime/handler.py
new file mode 100644
index 00000000..5a4865e7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure/realtime/handler.py
@@ -0,0 +1,75 @@
+"""
+This file contains the calling Azure OpenAI's `/openai/realtime` endpoint.
+
+This requires websockets, and is currently only supported on LiteLLM Proxy.
+"""
+
+from typing import Any, Optional
+
+from ....litellm_core_utils.litellm_logging import Logging as LiteLLMLogging
+from ....litellm_core_utils.realtime_streaming import RealTimeStreaming
+from ..azure import AzureChatCompletion
+
+# BACKEND_WS_URL = "ws://localhost:8080/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"
+
+
+async def forward_messages(client_ws: Any, backend_ws: Any):
+ import websockets
+
+ try:
+ while True:
+ message = await backend_ws.recv()
+ await client_ws.send_text(message)
+ except websockets.exceptions.ConnectionClosed: # type: ignore
+ pass
+
+
+class AzureOpenAIRealtime(AzureChatCompletion):
+ def _construct_url(self, api_base: str, model: str, api_version: str) -> str:
+ """
+ Example output:
+ "wss://my-endpoint-sweden-berri992.openai.azure.com/openai/realtime?api-version=2024-10-01-preview&deployment=gpt-4o-realtime-preview";
+
+ """
+ api_base = api_base.replace("https://", "wss://")
+ return (
+ f"{api_base}/openai/realtime?api-version={api_version}&deployment={model}"
+ )
+
+ async def async_realtime(
+ self,
+ model: str,
+ websocket: Any,
+ api_base: Optional[str] = None,
+ api_key: Optional[str] = None,
+ api_version: Optional[str] = None,
+ azure_ad_token: Optional[str] = None,
+ client: Optional[Any] = None,
+ logging_obj: Optional[LiteLLMLogging] = None,
+ timeout: Optional[float] = None,
+ ):
+ import websockets
+
+ if api_base is None:
+ raise ValueError("api_base is required for Azure OpenAI calls")
+ if api_version is None:
+ raise ValueError("api_version is required for Azure OpenAI calls")
+
+ url = self._construct_url(api_base, model, api_version)
+
+ try:
+ async with websockets.connect( # type: ignore
+ url,
+ extra_headers={
+ "api-key": api_key, # type: ignore
+ },
+ ) as backend_ws:
+ realtime_streaming = RealTimeStreaming(
+ websocket, backend_ws, logging_obj
+ )
+ await realtime_streaming.bidirectional_forward()
+
+ except websockets.exceptions.InvalidStatusCode as e: # type: ignore
+ await websocket.close(code=e.status_code, reason=str(e))
+ except Exception:
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/README.md b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/README.md
new file mode 100644
index 00000000..8c521519
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/README.md
@@ -0,0 +1 @@
+`/chat/completion` calls routed via `openai.py`. \ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/chat/handler.py
new file mode 100644
index 00000000..d141498c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/chat/handler.py
@@ -0,0 +1,3 @@
+"""
+LLM Calling done in `openai/openai.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/chat/transformation.py
new file mode 100644
index 00000000..154f3455
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/chat/transformation.py
@@ -0,0 +1,268 @@
+from typing import Any, List, Optional, Tuple, cast
+from urllib.parse import urlparse
+
+import httpx
+from httpx import Response
+
+import litellm
+from litellm._logging import verbose_logger
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ _audio_or_image_in_message_content,
+ convert_content_list_to_str,
+)
+from litellm.llms.base_llm.chat.transformation import LiteLLMLoggingObj
+from litellm.llms.openai.common_utils import drop_params_from_unprocessable_entity_error
+from litellm.llms.openai.openai import OpenAIConfig
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse, ProviderField
+from litellm.utils import _add_path_to_api_base, supports_tool_choice
+
+
+class AzureAIStudioConfig(OpenAIConfig):
+ def get_supported_openai_params(self, model: str) -> List:
+ model_supports_tool_choice = True # azure ai supports this by default
+ if not supports_tool_choice(model=f"azure_ai/{model}"):
+ model_supports_tool_choice = False
+ supported_params = super().get_supported_openai_params(model)
+ if not model_supports_tool_choice:
+ filtered_supported_params = []
+ for param in supported_params:
+ if param != "tool_choice":
+ filtered_supported_params.append(param)
+ return filtered_supported_params
+ return supported_params
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ if api_base and self._should_use_api_key_header(api_base):
+ headers["api-key"] = api_key
+ else:
+ headers["Authorization"] = f"Bearer {api_key}"
+
+ return headers
+
+ def _should_use_api_key_header(self, api_base: str) -> bool:
+ """
+ Returns True if the request should use `api-key` header for authentication.
+ """
+ parsed_url = urlparse(api_base)
+ host = parsed_url.hostname
+ if host and (
+ host.endswith(".services.ai.azure.com")
+ or host.endswith(".openai.azure.com")
+ ):
+ return True
+ return False
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ Constructs a complete URL for the API request.
+
+ Args:
+ - api_base: Base URL, e.g.,
+ "https://litellm8397336933.services.ai.azure.com"
+ OR
+ "https://litellm8397336933.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview"
+ - model: Model name.
+ - optional_params: Additional query parameters, including "api_version".
+ - stream: If streaming is required (optional).
+
+ Returns:
+ - A complete URL string, e.g.,
+ "https://litellm8397336933.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview"
+ """
+ if api_base is None:
+ raise ValueError(
+ f"api_base is required for Azure AI Studio. Please set the api_base parameter. Passed `api_base={api_base}`"
+ )
+ original_url = httpx.URL(api_base)
+
+ # Extract api_version or use default
+ api_version = cast(Optional[str], litellm_params.get("api_version"))
+
+ # Create a new dictionary with existing params
+ query_params = dict(original_url.params)
+
+ # Add api_version if needed
+ if "api-version" not in query_params and api_version:
+ query_params["api-version"] = api_version
+
+ # Add the path to the base URL
+ if "services.ai.azure.com" in api_base:
+ new_url = _add_path_to_api_base(
+ api_base=api_base, ending_path="/models/chat/completions"
+ )
+ else:
+ new_url = _add_path_to_api_base(
+ api_base=api_base, ending_path="/chat/completions"
+ )
+
+ # Use the new query_params dictionary
+ final_url = httpx.URL(new_url).copy_with(params=query_params)
+
+ return str(final_url)
+
+ def get_required_params(self) -> List[ProviderField]:
+ """For a given provider, return it's required fields with a description"""
+ return [
+ ProviderField(
+ field_name="api_key",
+ field_type="string",
+ field_description="Your Azure AI Studio API Key.",
+ field_value="zEJ...",
+ ),
+ ProviderField(
+ field_name="api_base",
+ field_type="string",
+ field_description="Your Azure AI Studio API Base.",
+ field_value="https://Mistral-serverless.",
+ ),
+ ]
+
+ def _transform_messages(
+ self,
+ messages: List[AllMessageValues],
+ model: str,
+ ) -> List:
+ """
+ - Azure AI Studio doesn't support content as a list. This handles:
+ 1. Transforms list content to a string.
+ 2. If message contains an image or audio, send as is (user-intended)
+ """
+ for message in messages:
+
+ # Do nothing if the message contains an image or audio
+ if _audio_or_image_in_message_content(message):
+ continue
+
+ texts = convert_content_list_to_str(message=message)
+ if texts:
+ message["content"] = texts
+ return messages
+
+ def _is_azure_openai_model(self, model: str, api_base: Optional[str]) -> bool:
+ try:
+ if "/" in model:
+ model = model.split("/", 1)[1]
+ if (
+ model in litellm.open_ai_chat_completion_models
+ or model in litellm.open_ai_text_completion_models
+ or model in litellm.open_ai_embedding_models
+ ):
+ return True
+
+ except Exception:
+ return False
+ return False
+
+ def _get_openai_compatible_provider_info(
+ self,
+ model: str,
+ api_base: Optional[str],
+ api_key: Optional[str],
+ custom_llm_provider: str,
+ ) -> Tuple[Optional[str], Optional[str], str]:
+ api_base = api_base or get_secret_str("AZURE_AI_API_BASE")
+ dynamic_api_key = api_key or get_secret_str("AZURE_AI_API_KEY")
+
+ if self._is_azure_openai_model(model=model, api_base=api_base):
+ verbose_logger.debug(
+ "Model={} is Azure OpenAI model. Setting custom_llm_provider='azure'.".format(
+ model
+ )
+ )
+ custom_llm_provider = "azure"
+ return api_base, dynamic_api_key, custom_llm_provider
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ extra_body = optional_params.pop("extra_body", {})
+ if extra_body and isinstance(extra_body, dict):
+ optional_params.update(extra_body)
+ optional_params.pop("max_retries", None)
+ return super().transform_request(
+ model, messages, optional_params, litellm_params, headers
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ model_response.model = f"azure_ai/{model}"
+ return super().transform_response(
+ model=model,
+ raw_response=raw_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data=request_data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ api_key=api_key,
+ json_mode=json_mode,
+ )
+
+ def should_retry_llm_api_inside_llm_translation_on_http_error(
+ self, e: httpx.HTTPStatusError, litellm_params: dict
+ ) -> bool:
+ should_drop_params = litellm_params.get("drop_params") or litellm.drop_params
+ error_text = e.response.text
+ if should_drop_params and "Extra inputs are not permitted" in error_text:
+ return True
+ elif (
+ "unknown field: parameter index is not a valid field" in error_text
+ ): # remove index from tool calls
+ return True
+ return super().should_retry_llm_api_inside_llm_translation_on_http_error(
+ e=e, litellm_params=litellm_params
+ )
+
+ @property
+ def max_retry_on_unprocessable_entity_error(self) -> int:
+ return 2
+
+ def transform_request_on_unprocessable_entity_error(
+ self, e: httpx.HTTPStatusError, request_data: dict
+ ) -> dict:
+ _messages = cast(Optional[List[AllMessageValues]], request_data.get("messages"))
+ if (
+ "unknown field: parameter index is not a valid field" in e.response.text
+ and _messages is not None
+ ):
+ litellm.remove_index_from_tool_calls(
+ messages=_messages,
+ )
+ data = drop_params_from_unprocessable_entity_error(e=e, data=request_data)
+ return data
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/__init__.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/__init__.py
new file mode 100644
index 00000000..e0d67acb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/__init__.py
@@ -0,0 +1 @@
+from .handler import AzureAIEmbedding
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/cohere_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/cohere_transformation.py
new file mode 100644
index 00000000..38b0dbbe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/cohere_transformation.py
@@ -0,0 +1,99 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to Azure AI Cohere's /v1/embed.
+
+Why separate file? Make it easy to see how transformation works
+
+Convers
+- Cohere request format
+
+Docs - https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html
+"""
+
+from typing import List, Optional, Tuple
+
+from litellm.types.llms.azure_ai import ImageEmbeddingInput, ImageEmbeddingRequest
+from litellm.types.llms.openai import EmbeddingCreateParams
+from litellm.types.utils import EmbeddingResponse, Usage
+from litellm.utils import is_base64_encoded
+
+
+class AzureAICohereConfig:
+ def __init__(self) -> None:
+ pass
+
+ def _map_azure_model_group(self, model: str) -> str:
+
+ if model == "offer-cohere-embed-multili-paygo":
+ return "Cohere-embed-v3-multilingual"
+ elif model == "offer-cohere-embed-english-paygo":
+ return "Cohere-embed-v3-english"
+
+ return model
+
+ def _transform_request_image_embeddings(
+ self, input: List[str], optional_params: dict
+ ) -> ImageEmbeddingRequest:
+ """
+ Assume all str in list is base64 encoded string
+ """
+ image_input: List[ImageEmbeddingInput] = []
+ for i in input:
+ embedding_input = ImageEmbeddingInput(image=i)
+ image_input.append(embedding_input)
+ return ImageEmbeddingRequest(input=image_input, **optional_params)
+
+ def _transform_request(
+ self, input: List[str], optional_params: dict, model: str
+ ) -> Tuple[ImageEmbeddingRequest, EmbeddingCreateParams, List[int]]:
+ """
+ Return the list of input to `/image/embeddings`, `/v1/embeddings`, list of image_embedding_idx for recombination
+ """
+ image_embeddings: List[str] = []
+ image_embedding_idx: List[int] = []
+ for idx, i in enumerate(input):
+ """
+ - is base64 -> route to image embeddings
+ - is ImageEmbeddingInput -> route to image embeddings
+ - else -> route to `/v1/embeddings`
+ """
+ if is_base64_encoded(i):
+ image_embeddings.append(i)
+ image_embedding_idx.append(idx)
+
+ ## REMOVE IMAGE EMBEDDINGS FROM input list
+ filtered_input = [
+ item for idx, item in enumerate(input) if idx not in image_embedding_idx
+ ]
+
+ v1_embeddings_request = EmbeddingCreateParams(
+ input=filtered_input, model=model, **optional_params
+ )
+ image_embeddings_request = self._transform_request_image_embeddings(
+ input=image_embeddings, optional_params=optional_params
+ )
+
+ return image_embeddings_request, v1_embeddings_request, image_embedding_idx
+
+ def _transform_response(self, response: EmbeddingResponse) -> EmbeddingResponse:
+ additional_headers: Optional[dict] = response._hidden_params.get(
+ "additional_headers"
+ )
+ if additional_headers:
+ # CALCULATE USAGE
+ input_tokens: Optional[str] = additional_headers.get(
+ "llm_provider-num_tokens"
+ )
+ if input_tokens:
+ if response.usage:
+ response.usage.prompt_tokens = int(input_tokens)
+ else:
+ response.usage = Usage(prompt_tokens=int(input_tokens))
+
+ # SET MODEL
+ base_model: Optional[str] = additional_headers.get(
+ "llm_provider-azureml-model-group"
+ )
+ if base_model:
+ response.model = self._map_azure_model_group(base_model)
+
+ return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/handler.py
new file mode 100644
index 00000000..f33c979c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/embed/handler.py
@@ -0,0 +1,292 @@
+from typing import List, Optional, Union
+
+from openai import OpenAI
+
+import litellm
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.llms.openai.openai import OpenAIChatCompletion
+from litellm.types.llms.azure_ai import ImageEmbeddingRequest
+from litellm.types.utils import EmbeddingResponse
+from litellm.utils import convert_to_model_response_object
+
+from .cohere_transformation import AzureAICohereConfig
+
+
+class AzureAIEmbedding(OpenAIChatCompletion):
+
+ def _process_response(
+ self,
+ image_embedding_responses: Optional[List],
+ text_embedding_responses: Optional[List],
+ image_embeddings_idx: List[int],
+ model_response: EmbeddingResponse,
+ input: List,
+ ):
+ combined_responses = []
+ if (
+ image_embedding_responses is not None
+ and text_embedding_responses is not None
+ ):
+ # Combine and order the results
+ text_idx = 0
+ image_idx = 0
+
+ for idx in range(len(input)):
+ if idx in image_embeddings_idx:
+ combined_responses.append(image_embedding_responses[image_idx])
+ image_idx += 1
+ else:
+ combined_responses.append(text_embedding_responses[text_idx])
+ text_idx += 1
+
+ model_response.data = combined_responses
+ elif image_embedding_responses is not None:
+ model_response.data = image_embedding_responses
+ elif text_embedding_responses is not None:
+ model_response.data = text_embedding_responses
+
+ response = AzureAICohereConfig()._transform_response(response=model_response) # type: ignore
+
+ return response
+
+ async def async_image_embedding(
+ self,
+ model: str,
+ data: ImageEmbeddingRequest,
+ timeout: float,
+ logging_obj,
+ model_response: litellm.EmbeddingResponse,
+ optional_params: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ) -> EmbeddingResponse:
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.AZURE_AI,
+ params={"timeout": timeout},
+ )
+
+ url = "{}/images/embeddings".format(api_base)
+
+ response = await client.post(
+ url=url,
+ json=data, # type: ignore
+ headers={"Authorization": "Bearer {}".format(api_key)},
+ )
+
+ embedding_response = response.json()
+ embedding_headers = dict(response.headers)
+ returned_response: EmbeddingResponse = convert_to_model_response_object( # type: ignore
+ response_object=embedding_response,
+ model_response_object=model_response,
+ response_type="embedding",
+ stream=False,
+ _response_headers=embedding_headers,
+ )
+ return returned_response
+
+ def image_embedding(
+ self,
+ model: str,
+ data: ImageEmbeddingRequest,
+ timeout: float,
+ logging_obj,
+ model_response: EmbeddingResponse,
+ optional_params: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ):
+ if api_base is None:
+ raise ValueError(
+ "api_base is None. Please set AZURE_AI_API_BASE or dynamically via `api_base` param, to make the request."
+ )
+ if api_key is None:
+ raise ValueError(
+ "api_key is None. Please set AZURE_AI_API_KEY or dynamically via `api_key` param, to make the request."
+ )
+
+ if client is None or not isinstance(client, HTTPHandler):
+ client = HTTPHandler(timeout=timeout, concurrent_limit=1)
+
+ url = "{}/images/embeddings".format(api_base)
+
+ response = client.post(
+ url=url,
+ json=data, # type: ignore
+ headers={"Authorization": "Bearer {}".format(api_key)},
+ )
+
+ embedding_response = response.json()
+ embedding_headers = dict(response.headers)
+ returned_response: EmbeddingResponse = convert_to_model_response_object( # type: ignore
+ response_object=embedding_response,
+ model_response_object=model_response,
+ response_type="embedding",
+ stream=False,
+ _response_headers=embedding_headers,
+ )
+ return returned_response
+
+ async def async_embedding(
+ self,
+ model: str,
+ input: List,
+ timeout: float,
+ logging_obj,
+ model_response: litellm.EmbeddingResponse,
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ client=None,
+ ) -> EmbeddingResponse:
+
+ (
+ image_embeddings_request,
+ v1_embeddings_request,
+ image_embeddings_idx,
+ ) = AzureAICohereConfig()._transform_request(
+ input=input, optional_params=optional_params, model=model
+ )
+
+ image_embedding_responses: Optional[List] = None
+ text_embedding_responses: Optional[List] = None
+
+ if image_embeddings_request["input"]:
+ image_response = await self.async_image_embedding(
+ model=model,
+ data=image_embeddings_request,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ model_response=model_response,
+ optional_params=optional_params,
+ api_key=api_key,
+ api_base=api_base,
+ client=client,
+ )
+
+ image_embedding_responses = image_response.data
+ if image_embedding_responses is None:
+ raise Exception("/image/embeddings route returned None Embeddings.")
+
+ if v1_embeddings_request["input"]:
+ response: EmbeddingResponse = await super().embedding( # type: ignore
+ model=model,
+ input=input,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ model_response=model_response,
+ optional_params=optional_params,
+ api_key=api_key,
+ api_base=api_base,
+ client=client,
+ aembedding=True,
+ )
+ text_embedding_responses = response.data
+ if text_embedding_responses is None:
+ raise Exception("/v1/embeddings route returned None Embeddings.")
+
+ return self._process_response(
+ image_embedding_responses=image_embedding_responses,
+ text_embedding_responses=text_embedding_responses,
+ image_embeddings_idx=image_embeddings_idx,
+ model_response=model_response,
+ input=input,
+ )
+
+ def embedding(
+ self,
+ model: str,
+ input: List,
+ timeout: float,
+ logging_obj,
+ model_response: EmbeddingResponse,
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ client=None,
+ aembedding=None,
+ max_retries: Optional[int] = None,
+ ) -> EmbeddingResponse:
+ """
+ - Separate image url from text
+ -> route image url call to `/image/embeddings`
+ -> route text call to `/v1/embeddings` (OpenAI route)
+
+ assemble result in-order, and return
+ """
+ if aembedding is True:
+ return self.async_embedding( # type: ignore
+ model,
+ input,
+ timeout,
+ logging_obj,
+ model_response,
+ optional_params,
+ api_key,
+ api_base,
+ client,
+ )
+
+ (
+ image_embeddings_request,
+ v1_embeddings_request,
+ image_embeddings_idx,
+ ) = AzureAICohereConfig()._transform_request(
+ input=input, optional_params=optional_params, model=model
+ )
+
+ image_embedding_responses: Optional[List] = None
+ text_embedding_responses: Optional[List] = None
+
+ if image_embeddings_request["input"]:
+ image_response = self.image_embedding(
+ model=model,
+ data=image_embeddings_request,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ model_response=model_response,
+ optional_params=optional_params,
+ api_key=api_key,
+ api_base=api_base,
+ client=client,
+ )
+
+ image_embedding_responses = image_response.data
+ if image_embedding_responses is None:
+ raise Exception("/image/embeddings route returned None Embeddings.")
+
+ if v1_embeddings_request["input"]:
+ response: EmbeddingResponse = super().embedding( # type: ignore
+ model,
+ input,
+ timeout,
+ logging_obj,
+ model_response,
+ optional_params,
+ api_key,
+ api_base,
+ client=(
+ client
+ if client is not None and isinstance(client, OpenAI)
+ else None
+ ),
+ aembedding=aembedding,
+ )
+
+ text_embedding_responses = response.data
+ if text_embedding_responses is None:
+ raise Exception("/v1/embeddings route returned None Embeddings.")
+
+ return self._process_response(
+ image_embedding_responses=image_embedding_responses,
+ text_embedding_responses=text_embedding_responses,
+ image_embeddings_idx=image_embeddings_idx,
+ model_response=model_response,
+ input=input,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/handler.py
new file mode 100644
index 00000000..57e7cefd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/handler.py
@@ -0,0 +1,5 @@
+"""
+Azure AI Rerank - uses `llm_http_handler.py` to make httpx requests
+
+Request/Response transformation is handled in `transformation.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/transformation.py
new file mode 100644
index 00000000..842511f3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/transformation.py
@@ -0,0 +1,90 @@
+"""
+Translate between Cohere's `/rerank` format and Azure AI's `/rerank` format.
+"""
+
+from typing import Optional
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.llms.cohere.rerank.transformation import CohereRerankConfig
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.utils import RerankResponse
+
+
+class AzureAIRerankConfig(CohereRerankConfig):
+ """
+ Azure AI Rerank - Follows the same Spec as Cohere Rerank
+ """
+ def get_complete_url(self, api_base: Optional[str], model: str) -> str:
+ if api_base is None:
+ raise ValueError(
+ "Azure AI API Base is required. api_base=None. Set in call or via `AZURE_AI_API_BASE` env var."
+ )
+ if not api_base.endswith("/v1/rerank"):
+ api_base = f"{api_base}/v1/rerank"
+ return api_base
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ ) -> dict:
+ if api_key is None:
+ api_key = get_secret_str("AZURE_AI_API_KEY") or litellm.azure_key
+
+ if api_key is None:
+ raise ValueError(
+ "Azure AI API key is required. Please set 'AZURE_AI_API_KEY' or 'litellm.azure_key'"
+ )
+
+ default_headers = {
+ "Authorization": f"Bearer {api_key}",
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+
+ # If 'Authorization' is provided in headers, it overrides the default.
+ if "Authorization" in headers:
+ default_headers["Authorization"] = headers["Authorization"]
+
+ # Merge other headers, overriding any default ones except Authorization
+ return {**default_headers, **headers}
+
+ def transform_rerank_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: RerankResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ request_data: dict = {},
+ optional_params: dict = {},
+ litellm_params: dict = {},
+ ) -> RerankResponse:
+ rerank_response = super().transform_rerank_response(
+ model=model,
+ raw_response=raw_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=request_data,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+ base_model = self._get_base_model(
+ rerank_response._hidden_params.get("llm_provider-azureml-model-group")
+ )
+ rerank_response._hidden_params["model"] = base_model
+ return rerank_response
+
+ def _get_base_model(self, azure_model_group: Optional[str]) -> Optional[str]:
+ if azure_model_group is None:
+ return None
+ if azure_model_group == "offer-cohere-rerank-mul-paygo":
+ return "azure_ai/cohere-rerank-v3-multilingual"
+ if azure_model_group == "offer-cohere-rerank-eng-paygo":
+ return "azure_ai/cohere-rerank-v3-english"
+ return azure_model_group
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base.py b/.venv/lib/python3.12/site-packages/litellm/llms/base.py
new file mode 100644
index 00000000..deced222
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base.py
@@ -0,0 +1,90 @@
+## This is a template base class to be used for adding new LLM providers via API calls
+from typing import Any, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.streaming_handler import CustomStreamWrapper
+from litellm.types.utils import ModelResponse, TextCompletionResponse
+
+
+class BaseLLM:
+
+ _client_session: Optional[httpx.Client] = None
+
+ def process_response(
+ self,
+ model: str,
+ response: httpx.Response,
+ model_response: ModelResponse,
+ stream: bool,
+ logging_obj: Any,
+ optional_params: dict,
+ api_key: str,
+ data: Union[dict, str],
+ messages: list,
+ print_verbose,
+ encoding,
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+ """
+ Helper function to process the response across sync + async completion calls
+ """
+ return model_response
+
+ def process_text_completion_response(
+ self,
+ model: str,
+ response: httpx.Response,
+ model_response: TextCompletionResponse,
+ stream: bool,
+ logging_obj: Any,
+ optional_params: dict,
+ api_key: str,
+ data: Union[dict, str],
+ messages: list,
+ print_verbose,
+ encoding,
+ ) -> Union[TextCompletionResponse, CustomStreamWrapper]:
+ """
+ Helper function to process the response across sync + async completion calls
+ """
+ return model_response
+
+ def create_client_session(self):
+ if litellm.client_session:
+ _client_session = litellm.client_session
+ else:
+ _client_session = httpx.Client()
+
+ return _client_session
+
+ def create_aclient_session(self):
+ if litellm.aclient_session:
+ _aclient_session = litellm.aclient_session
+ else:
+ _aclient_session = httpx.AsyncClient()
+
+ return _aclient_session
+
+ def __exit__(self):
+ if hasattr(self, "_client_session") and self._client_session is not None:
+ self._client_session.close()
+
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
+ if hasattr(self, "_aclient_session"):
+ await self._aclient_session.aclose() # type: ignore
+
+ def validate_environment(
+ self, *args, **kwargs
+ ) -> Optional[Any]: # set up the environment required to run the model
+ return None
+
+ def completion(
+ self, *args, **kwargs
+ ) -> Any: # logic for parsing in - calling - parsing out model completion calls
+ return None
+
+ def embedding(
+ self, *args, **kwargs
+ ) -> Any: # logic for parsing in - calling - parsing out model embedding calls
+ return None
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/anthropic_messages/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/anthropic_messages/transformation.py
new file mode 100644
index 00000000..7619ffbb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/anthropic_messages/transformation.py
@@ -0,0 +1,35 @@
+from abc import ABC, abstractmethod
+from typing import TYPE_CHECKING, Any, Optional
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class BaseAnthropicMessagesConfig(ABC):
+ @abstractmethod
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ ) -> dict:
+ pass
+
+ @abstractmethod
+ def get_complete_url(self, api_base: Optional[str], model: str) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ return api_base or ""
+
+ @abstractmethod
+ def get_supported_anthropic_messages_params(self, model: str) -> list:
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/audio_transcription/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/audio_transcription/transformation.py
new file mode 100644
index 00000000..e550c574
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/audio_transcription/transformation.py
@@ -0,0 +1,73 @@
+from abc import ABC, abstractmethod
+from typing import TYPE_CHECKING, Any, List, Optional
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ OpenAIAudioTranscriptionOptionalParams,
+)
+from litellm.types.utils import ModelResponse
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class BaseAudioTranscriptionConfig(BaseConfig, ABC):
+ @abstractmethod
+ def get_supported_openai_params(
+ self, model: str
+ ) -> List[OpenAIAudioTranscriptionOptionalParams]:
+ pass
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ return api_base or ""
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ raise NotImplementedError(
+ "AudioTranscriptionConfig does not need a request transformation for audio transcription models"
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ raise NotImplementedError(
+ "AudioTranscriptionConfig does not need a response transformation for audio transcription models"
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/base_model_iterator.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/base_model_iterator.py
new file mode 100644
index 00000000..67b1466c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/base_model_iterator.py
@@ -0,0 +1,137 @@
+import json
+from abc import abstractmethod
+from typing import Optional, Union
+
+from litellm.types.utils import GenericStreamingChunk, ModelResponseStream
+
+
+class BaseModelResponseIterator:
+ def __init__(
+ self, streaming_response, sync_stream: bool, json_mode: Optional[bool] = False
+ ):
+ self.streaming_response = streaming_response
+ self.response_iterator = self.streaming_response
+ self.json_mode = json_mode
+
+ def chunk_parser(
+ self, chunk: dict
+ ) -> Union[GenericStreamingChunk, ModelResponseStream]:
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+
+ # Sync iterator
+ def __iter__(self):
+ return self
+
+ def _handle_string_chunk(
+ self, str_line: str
+ ) -> Union[GenericStreamingChunk, ModelResponseStream]:
+ # chunk is a str at this point
+ if "[DONE]" in str_line:
+ return GenericStreamingChunk(
+ text="",
+ is_finished=True,
+ finish_reason="stop",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+ elif str_line.startswith("data:"):
+ data_json = json.loads(str_line[5:])
+ return self.chunk_parser(chunk=data_json)
+ else:
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+
+ def __next__(self):
+ try:
+ chunk = self.response_iterator.__next__()
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ str_line = chunk
+ if isinstance(chunk, bytes): # Handle binary data
+ str_line = chunk.decode("utf-8") # Convert bytes to string
+ index = str_line.find("data:")
+ if index != -1:
+ str_line = str_line[index:]
+ # chunk is a str at this point
+ return self._handle_string_chunk(str_line=str_line)
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error parsing chunk: {e},\nReceived chunk: {chunk}")
+
+ # Async iterator
+ def __aiter__(self):
+ self.async_response_iterator = self.streaming_response.__aiter__()
+ return self
+
+ async def __anext__(self):
+ try:
+ chunk = await self.async_response_iterator.__anext__()
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ str_line = chunk
+ if isinstance(chunk, bytes): # Handle binary data
+ str_line = chunk.decode("utf-8") # Convert bytes to string
+ index = str_line.find("data:")
+ if index != -1:
+ str_line = str_line[index:]
+
+ # chunk is a str at this point
+ return self._handle_string_chunk(str_line=str_line)
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error parsing chunk: {e},\nReceived chunk: {chunk}")
+
+
+class FakeStreamResponseIterator:
+ def __init__(self, model_response, json_mode: Optional[bool] = False):
+ self.model_response = model_response
+ self.json_mode = json_mode
+ self.is_done = False
+
+ # Sync iterator
+ def __iter__(self):
+ return self
+
+ @abstractmethod
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ pass
+
+ def __next__(self):
+ if self.is_done:
+ raise StopIteration
+ self.is_done = True
+ return self.chunk_parser(self.model_response)
+
+ # Async iterator
+ def __aiter__(self):
+ return self
+
+ async def __anext__(self):
+ if self.is_done:
+ raise StopAsyncIteration
+ self.is_done = True
+ return self.chunk_parser(self.model_response)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/base_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/base_utils.py
new file mode 100644
index 00000000..919cdbfd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/base_utils.py
@@ -0,0 +1,142 @@
+"""
+Utility functions for base LLM classes.
+"""
+
+import copy
+from abc import ABC, abstractmethod
+from typing import List, Optional, Type, Union
+
+from openai.lib import _parsing, _pydantic
+from pydantic import BaseModel
+
+from litellm._logging import verbose_logger
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ProviderSpecificModelInfo
+
+
+class BaseLLMModelInfo(ABC):
+ def get_provider_info(
+ self,
+ model: str,
+ ) -> Optional[ProviderSpecificModelInfo]:
+ return None
+
+ @abstractmethod
+ def get_models(self) -> List[str]:
+ pass
+
+ @staticmethod
+ @abstractmethod
+ def get_api_key(api_key: Optional[str] = None) -> Optional[str]:
+ pass
+
+ @staticmethod
+ @abstractmethod
+ def get_api_base(api_base: Optional[str] = None) -> Optional[str]:
+ pass
+
+ @staticmethod
+ @abstractmethod
+ def get_base_model(model: str) -> Optional[str]:
+ """
+ Returns the base model name from the given model name.
+
+ Some providers like bedrock - can receive model=`invoke/anthropic.claude-3-opus-20240229-v1:0` or `converse/anthropic.claude-3-opus-20240229-v1:0`
+ This function will return `anthropic.claude-3-opus-20240229-v1:0`
+ """
+ pass
+
+
+def _dict_to_response_format_helper(
+ response_format: dict, ref_template: Optional[str] = None
+) -> dict:
+ if ref_template is not None and response_format.get("type") == "json_schema":
+ # Deep copy to avoid modifying original
+ modified_format = copy.deepcopy(response_format)
+ schema = modified_format["json_schema"]["schema"]
+
+ # Update all $ref values in the schema
+ def update_refs(schema):
+ stack = [(schema, [])]
+ visited = set()
+
+ while stack:
+ obj, path = stack.pop()
+ obj_id = id(obj)
+
+ if obj_id in visited:
+ continue
+ visited.add(obj_id)
+
+ if isinstance(obj, dict):
+ if "$ref" in obj:
+ ref_path = obj["$ref"]
+ model_name = ref_path.split("/")[-1]
+ obj["$ref"] = ref_template.format(model=model_name)
+
+ for k, v in obj.items():
+ if isinstance(v, (dict, list)):
+ stack.append((v, path + [k]))
+
+ elif isinstance(obj, list):
+ for i, item in enumerate(obj):
+ if isinstance(item, (dict, list)):
+ stack.append((item, path + [i]))
+
+ update_refs(schema)
+ return modified_format
+ return response_format
+
+
+def type_to_response_format_param(
+ response_format: Optional[Union[Type[BaseModel], dict]],
+ ref_template: Optional[str] = None,
+) -> Optional[dict]:
+ """
+ Re-implementation of openai's 'type_to_response_format_param' function
+
+ Used for converting pydantic object to api schema.
+ """
+ if response_format is None:
+ return None
+
+ if isinstance(response_format, dict):
+ return _dict_to_response_format_helper(response_format, ref_template)
+
+ # type checkers don't narrow the negation of a `TypeGuard` as it isn't
+ # a safe default behaviour but we know that at this point the `response_format`
+ # can only be a `type`
+ if not _parsing._completions.is_basemodel_type(response_format):
+ raise TypeError(f"Unsupported response_format type - {response_format}")
+
+ if ref_template is not None:
+ schema = response_format.model_json_schema(ref_template=ref_template)
+ else:
+ schema = _pydantic.to_strict_json_schema(response_format)
+
+ return {
+ "type": "json_schema",
+ "json_schema": {
+ "schema": schema,
+ "name": response_format.__name__,
+ "strict": True,
+ },
+ }
+
+
+def map_developer_role_to_system_role(
+ messages: List[AllMessageValues],
+) -> List[AllMessageValues]:
+ """
+ Translate `developer` role to `system` role for non-OpenAI providers.
+ """
+ new_messages: List[AllMessageValues] = []
+ for m in messages:
+ if m["role"] == "developer":
+ verbose_logger.debug(
+ "Translating developer role to system role for non-OpenAI providers."
+ ) # ensure user knows what's happening with their input.
+ new_messages.append({"role": "system", "content": m["content"]})
+ else:
+ new_messages.append(m)
+ return new_messages
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/chat/transformation.py
new file mode 100644
index 00000000..1b5a6bc5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/chat/transformation.py
@@ -0,0 +1,372 @@
+"""
+Common base config for all LLM providers
+"""
+
+import types
+from abc import ABC, abstractmethod
+from typing import (
+ TYPE_CHECKING,
+ Any,
+ AsyncIterator,
+ Iterator,
+ List,
+ Optional,
+ Type,
+ Union,
+)
+
+import httpx
+from pydantic import BaseModel
+
+from litellm.constants import RESPONSE_FORMAT_TOOL_NAME
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ ChatCompletionToolChoiceFunctionParam,
+ ChatCompletionToolChoiceObjectParam,
+ ChatCompletionToolParam,
+ ChatCompletionToolParamFunctionChunk,
+)
+from litellm.types.utils import ModelResponse
+from litellm.utils import CustomStreamWrapper
+
+from ..base_utils import (
+ map_developer_role_to_system_role,
+ type_to_response_format_param,
+)
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class BaseLLMException(Exception):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[dict, httpx.Headers]] = None,
+ request: Optional[httpx.Request] = None,
+ response: Optional[httpx.Response] = None,
+ body: Optional[dict] = None,
+ ):
+ self.status_code = status_code
+ self.message: str = message
+ self.headers = headers
+ if request:
+ self.request = request
+ else:
+ self.request = httpx.Request(
+ method="POST", url="https://docs.litellm.ai/docs"
+ )
+ if response:
+ self.response = response
+ else:
+ self.response = httpx.Response(
+ status_code=status_code, request=self.request
+ )
+ self.body = body
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class BaseConfig(ABC):
+ def __init__(self):
+ pass
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not k.startswith("_abc")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_json_schema_from_pydantic_object(
+ self, response_format: Optional[Union[Type[BaseModel], dict]]
+ ) -> Optional[dict]:
+ return type_to_response_format_param(response_format=response_format)
+
+ def should_fake_stream(
+ self,
+ model: Optional[str],
+ stream: Optional[bool],
+ custom_llm_provider: Optional[str] = None,
+ ) -> bool:
+ """
+ Returns True if the model/provider should fake stream
+ """
+ return False
+
+ def _add_tools_to_optional_params(self, optional_params: dict, tools: List) -> dict:
+ """
+ Helper util to add tools to optional_params.
+ """
+ if "tools" not in optional_params:
+ optional_params["tools"] = tools
+ else:
+ optional_params["tools"] = [
+ *optional_params["tools"],
+ *tools,
+ ]
+ return optional_params
+
+ def translate_developer_role_to_system_role(
+ self,
+ messages: List[AllMessageValues],
+ ) -> List[AllMessageValues]:
+ """
+ Translate `developer` role to `system` role for non-OpenAI providers.
+
+ Overriden by OpenAI/Azure
+ """
+ return map_developer_role_to_system_role(messages=messages)
+
+ def should_retry_llm_api_inside_llm_translation_on_http_error(
+ self, e: httpx.HTTPStatusError, litellm_params: dict
+ ) -> bool:
+ """
+ Returns True if the model/provider should retry the LLM API on UnprocessableEntityError
+
+ Overriden by azure ai - where different models support different parameters
+ """
+ return False
+
+ def transform_request_on_unprocessable_entity_error(
+ self, e: httpx.HTTPStatusError, request_data: dict
+ ) -> dict:
+ """
+ Transform the request data on UnprocessableEntityError
+ """
+ return request_data
+
+ @property
+ def max_retry_on_unprocessable_entity_error(self) -> int:
+ """
+ Returns the max retry count for UnprocessableEntityError
+
+ Used if `should_retry_llm_api_inside_llm_translation_on_http_error` is True
+ """
+ return 0
+
+ @abstractmethod
+ def get_supported_openai_params(self, model: str) -> list:
+ pass
+
+ def _add_response_format_to_tools(
+ self,
+ optional_params: dict,
+ value: dict,
+ is_response_format_supported: bool,
+ enforce_tool_choice: bool = True,
+ ) -> dict:
+ """
+ Follow similar approach to anthropic - translate to a single tool call.
+
+ When using tools in this way: - https://docs.anthropic.com/en/docs/build-with-claude/tool-use#json-mode
+ - You usually want to provide a single tool
+ - You should set tool_choice (see Forcing tool use) to instruct the model to explicitly use that tool
+ - Remember that the model will pass the input to the tool, so the name of the tool and description should be from the model’s perspective.
+
+ Add response format to tools
+
+ This is used to translate response_format to a tool call, for models/APIs that don't support response_format directly.
+ """
+ json_schema: Optional[dict] = None
+ if "response_schema" in value:
+ json_schema = value["response_schema"]
+ elif "json_schema" in value:
+ json_schema = value["json_schema"]["schema"]
+
+ if json_schema and not is_response_format_supported:
+
+ _tool_choice = ChatCompletionToolChoiceObjectParam(
+ type="function",
+ function=ChatCompletionToolChoiceFunctionParam(
+ name=RESPONSE_FORMAT_TOOL_NAME
+ ),
+ )
+
+ _tool = ChatCompletionToolParam(
+ type="function",
+ function=ChatCompletionToolParamFunctionChunk(
+ name=RESPONSE_FORMAT_TOOL_NAME, parameters=json_schema
+ ),
+ )
+
+ optional_params.setdefault("tools", [])
+ optional_params["tools"].append(_tool)
+ if enforce_tool_choice:
+ optional_params["tool_choice"] = _tool_choice
+
+ optional_params["json_mode"] = True
+ elif is_response_format_supported:
+ optional_params["response_format"] = value
+ return optional_params
+
+ @abstractmethod
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ pass
+
+ @abstractmethod
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ pass
+
+ def sign_request(
+ self,
+ headers: dict,
+ optional_params: dict,
+ request_data: dict,
+ api_base: str,
+ model: Optional[str] = None,
+ stream: Optional[bool] = None,
+ fake_stream: Optional[bool] = None,
+ ) -> dict:
+ """
+ Some providers like Bedrock require signing the request. The sign request funtion needs access to `request_data` and `complete_url`
+ Args:
+ headers: dict
+ optional_params: dict
+ request_data: dict - the request body being sent in http request
+ api_base: str - the complete url being sent in http request
+ Returns:
+ dict - the signed headers
+
+ Update the headers with the signed headers in this function. The return values will be sent as headers in the http request.
+ """
+ return headers
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ if api_base is None:
+ raise ValueError("api_base is required")
+ return api_base
+
+ @abstractmethod
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ pass
+
+ @abstractmethod
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ pass
+
+ @abstractmethod
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ pass
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ) -> Any:
+ pass
+
+ def get_async_custom_stream_wrapper(
+ self,
+ model: str,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ messages: list,
+ client: Optional[AsyncHTTPHandler] = None,
+ json_mode: Optional[bool] = None,
+ ) -> CustomStreamWrapper:
+ raise NotImplementedError
+
+ def get_sync_custom_stream_wrapper(
+ self,
+ model: str,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ messages: list,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ json_mode: Optional[bool] = None,
+ ) -> CustomStreamWrapper:
+ raise NotImplementedError
+
+ @property
+ def custom_llm_provider(self) -> Optional[str]:
+ return None
+
+ @property
+ def has_custom_stream_wrapper(self) -> bool:
+ return False
+
+ @property
+ def supports_stream_param_in_request_body(self) -> bool:
+ """
+ Some providers like Bedrock invoke do not support the stream parameter in the request body.
+
+ By default, this is true for almost all providers.
+ """
+ return True
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/completion/transformation.py
new file mode 100644
index 00000000..9432f02d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/completion/transformation.py
@@ -0,0 +1,74 @@
+from abc import ABC, abstractmethod
+from typing import TYPE_CHECKING, Any, List, Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.types.llms.openai import AllMessageValues, OpenAITextCompletionUserMessage
+from litellm.types.utils import ModelResponse
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class BaseTextCompletionConfig(BaseConfig, ABC):
+ @abstractmethod
+ def transform_text_completion_request(
+ self,
+ model: str,
+ messages: Union[List[AllMessageValues], List[OpenAITextCompletionUserMessage]],
+ optional_params: dict,
+ headers: dict,
+ ) -> dict:
+ return {}
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ return api_base or ""
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ raise NotImplementedError(
+ "AudioTranscriptionConfig does not need a request transformation for audio transcription models"
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ raise NotImplementedError(
+ "AudioTranscriptionConfig does not need a response transformation for audio transcription models"
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/embedding/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/embedding/transformation.py
new file mode 100644
index 00000000..68c0a7c0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/embedding/transformation.py
@@ -0,0 +1,88 @@
+from abc import ABC, abstractmethod
+from typing import TYPE_CHECKING, Any, List, Optional
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.types.llms.openai import AllEmbeddingInputValues, AllMessageValues
+from litellm.types.utils import EmbeddingResponse, ModelResponse
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class BaseEmbeddingConfig(BaseConfig, ABC):
+ @abstractmethod
+ def transform_embedding_request(
+ self,
+ model: str,
+ input: AllEmbeddingInputValues,
+ optional_params: dict,
+ headers: dict,
+ ) -> dict:
+ return {}
+
+ @abstractmethod
+ def transform_embedding_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: EmbeddingResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str],
+ request_data: dict,
+ optional_params: dict,
+ litellm_params: dict,
+ ) -> EmbeddingResponse:
+ return model_response
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ return api_base or ""
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ raise NotImplementedError(
+ "EmbeddingConfig does not need a request transformation for chat models"
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ raise NotImplementedError(
+ "EmbeddingConfig does not need a response transformation for chat models"
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/image_variations/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/image_variations/transformation.py
new file mode 100644
index 00000000..4d1cd6ee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/image_variations/transformation.py
@@ -0,0 +1,132 @@
+from abc import ABC, abstractmethod
+from typing import TYPE_CHECKING, Any, List, Optional
+
+import httpx
+from aiohttp import ClientResponse
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ OpenAIImageVariationOptionalParams,
+)
+from litellm.types.utils import (
+ FileTypes,
+ HttpHandlerRequestFields,
+ ImageResponse,
+ ModelResponse,
+)
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class BaseImageVariationConfig(BaseConfig, ABC):
+ @abstractmethod
+ def get_supported_openai_params(
+ self, model: str
+ ) -> List[OpenAIImageVariationOptionalParams]:
+ pass
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ return api_base or ""
+
+ @abstractmethod
+ def transform_request_image_variation(
+ self,
+ model: Optional[str],
+ image: FileTypes,
+ optional_params: dict,
+ headers: dict,
+ ) -> HttpHandlerRequestFields:
+ pass
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return {}
+
+ @abstractmethod
+ async def async_transform_response_image_variation(
+ self,
+ model: Optional[str],
+ raw_response: ClientResponse,
+ model_response: ImageResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ image: FileTypes,
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ ) -> ImageResponse:
+ pass
+
+ @abstractmethod
+ def transform_response_image_variation(
+ self,
+ model: Optional[str],
+ raw_response: httpx.Response,
+ model_response: ImageResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ image: FileTypes,
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ ) -> ImageResponse:
+ pass
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ raise NotImplementedError(
+ "ImageVariationConfig implementa 'transform_request_image_variation' for image variation models"
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ raise NotImplementedError(
+ "ImageVariationConfig implements 'transform_response_image_variation' for image variation models"
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/rerank/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/rerank/transformation.py
new file mode 100644
index 00000000..8701fe57
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/rerank/transformation.py
@@ -0,0 +1,128 @@
+from abc import ABC, abstractmethod
+from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
+
+import httpx
+
+from litellm.types.rerank import OptionalRerankParams, RerankBilledUnits, RerankResponse
+from litellm.types.utils import ModelInfo
+
+from ..chat.transformation import BaseLLMException
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class BaseRerankConfig(ABC):
+ @abstractmethod
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ ) -> dict:
+ pass
+
+ @abstractmethod
+ def transform_rerank_request(
+ self,
+ model: str,
+ optional_rerank_params: OptionalRerankParams,
+ headers: dict,
+ ) -> dict:
+ return {}
+
+ @abstractmethod
+ def transform_rerank_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: RerankResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ request_data: dict = {},
+ optional_params: dict = {},
+ litellm_params: dict = {},
+ ) -> RerankResponse:
+ return model_response
+
+ @abstractmethod
+ def get_complete_url(self, api_base: Optional[str], model: str) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ return api_base or ""
+
+ @abstractmethod
+ def get_supported_cohere_rerank_params(self, model: str) -> list:
+ pass
+
+ @abstractmethod
+ def map_cohere_rerank_params(
+ self,
+ non_default_params: dict,
+ model: str,
+ drop_params: bool,
+ query: str,
+ documents: List[Union[str, Dict[str, Any]]],
+ custom_llm_provider: Optional[str] = None,
+ top_n: Optional[int] = None,
+ rank_fields: Optional[List[str]] = None,
+ return_documents: Optional[bool] = True,
+ max_chunks_per_doc: Optional[int] = None,
+ max_tokens_per_doc: Optional[int] = None,
+ ) -> OptionalRerankParams:
+ pass
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ raise BaseLLMException(
+ status_code=status_code,
+ message=error_message,
+ headers=headers,
+ )
+
+ def calculate_rerank_cost(
+ self,
+ model: str,
+ custom_llm_provider: Optional[str] = None,
+ billed_units: Optional[RerankBilledUnits] = None,
+ model_info: Optional[ModelInfo] = None,
+ ) -> Tuple[float, float]:
+ """
+ Calculates the cost per query for a given rerank model.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - custom_llm_provider: str, the provider used for the model. If provided, used to check if the litellm model info is for that provider.
+ - num_queries: int, the number of queries to calculate the cost for
+ - model_info: ModelInfo, the model info for the given model
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+ """
+
+ if (
+ model_info is None
+ or "input_cost_per_query" not in model_info
+ or model_info["input_cost_per_query"] is None
+ or billed_units is None
+ ):
+ return 0.0, 0.0
+
+ search_units = billed_units.get("search_units")
+
+ if search_units is None:
+ return 0.0, 0.0
+
+ prompt_cost = model_info["input_cost_per_query"] * search_units
+
+ return prompt_cost, 0.0
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/responses/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/responses/transformation.py
new file mode 100644
index 00000000..29555c55
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/responses/transformation.py
@@ -0,0 +1,141 @@
+import types
+from abc import ABC, abstractmethod
+from typing import TYPE_CHECKING, Any, Dict, Optional, Union
+
+import httpx
+
+from litellm.types.llms.openai import (
+ ResponseInputParam,
+ ResponsesAPIOptionalRequestParams,
+ ResponsesAPIResponse,
+ ResponsesAPIStreamingResponse,
+)
+from litellm.types.router import GenericLiteLLMParams
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ from ..chat.transformation import BaseLLMException as _BaseLLMException
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+ BaseLLMException = _BaseLLMException
+else:
+ LiteLLMLoggingObj = Any
+ BaseLLMException = Any
+
+
+class BaseResponsesAPIConfig(ABC):
+ def __init__(self):
+ pass
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not k.startswith("_abc")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ @abstractmethod
+ def get_supported_openai_params(self, model: str) -> list:
+ pass
+
+ @abstractmethod
+ def map_openai_params(
+ self,
+ response_api_optional_params: ResponsesAPIOptionalRequestParams,
+ model: str,
+ drop_params: bool,
+ ) -> Dict:
+
+ pass
+
+ @abstractmethod
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ ) -> dict:
+ return {}
+
+ @abstractmethod
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ if api_base is None:
+ raise ValueError("api_base is required")
+ return api_base
+
+ @abstractmethod
+ def transform_responses_api_request(
+ self,
+ model: str,
+ input: Union[str, ResponseInputParam],
+ response_api_optional_request_params: Dict,
+ litellm_params: GenericLiteLLMParams,
+ headers: dict,
+ ) -> Dict:
+ pass
+
+ @abstractmethod
+ def transform_response_api_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ logging_obj: LiteLLMLoggingObj,
+ ) -> ResponsesAPIResponse:
+ pass
+
+ @abstractmethod
+ def transform_streaming_response(
+ self,
+ model: str,
+ parsed_chunk: dict,
+ logging_obj: LiteLLMLoggingObj,
+ ) -> ResponsesAPIStreamingResponse:
+ """
+ Transform a parsed streaming response chunk into a ResponsesAPIStreamingResponse
+ """
+ pass
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ from ..chat.transformation import BaseLLMException
+
+ raise BaseLLMException(
+ status_code=status_code,
+ message=error_message,
+ headers=headers,
+ )
+
+ def should_fake_stream(
+ self,
+ model: Optional[str],
+ stream: Optional[bool],
+ custom_llm_provider: Optional[str] = None,
+ ) -> bool:
+ """Returns True if litellm should fake a stream for the given model and stream value"""
+ return False
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/baseten.py b/.venv/lib/python3.12/site-packages/litellm/llms/baseten.py
new file mode 100644
index 00000000..e1d513d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/baseten.py
@@ -0,0 +1,172 @@
+import json
+import time
+from typing import Callable
+
+import litellm
+from litellm.types.utils import ModelResponse, Usage
+
+
+class BasetenError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+def validate_environment(api_key):
+ headers = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+ if api_key:
+ headers["Authorization"] = f"Api-Key {api_key}"
+ return headers
+
+
+def completion(
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ litellm_params=None,
+ logger_fn=None,
+):
+ headers = validate_environment(api_key)
+ completion_url_fragment_1 = "https://app.baseten.co/models/"
+ completion_url_fragment_2 = "/predict"
+ model = model
+ prompt = ""
+ for message in messages:
+ if "role" in message:
+ if message["role"] == "user":
+ prompt += f"{message['content']}"
+ else:
+ prompt += f"{message['content']}"
+ else:
+ prompt += f"{message['content']}"
+ data = {
+ "inputs": prompt,
+ "prompt": prompt,
+ "parameters": optional_params,
+ "stream": (
+ True
+ if "stream" in optional_params and optional_params["stream"] is True
+ else False
+ ),
+ }
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ )
+ ## COMPLETION CALL
+ response = litellm.module_level_client.post(
+ completion_url_fragment_1 + model + completion_url_fragment_2,
+ headers=headers,
+ data=json.dumps(data),
+ stream=(
+ True
+ if "stream" in optional_params and optional_params["stream"] is True
+ else False
+ ),
+ )
+ if "text/event-stream" in response.headers["Content-Type"] or (
+ "stream" in optional_params and optional_params["stream"] is True
+ ):
+ return response.iter_lines()
+ else:
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ original_response=response.text,
+ additional_args={"complete_input_dict": data},
+ )
+ print_verbose(f"raw model_response: {response.text}")
+ ## RESPONSE OBJECT
+ completion_response = response.json()
+ if "error" in completion_response:
+ raise BasetenError(
+ message=completion_response["error"],
+ status_code=response.status_code,
+ )
+ else:
+ if "model_output" in completion_response:
+ if (
+ isinstance(completion_response["model_output"], dict)
+ and "data" in completion_response["model_output"]
+ and isinstance(completion_response["model_output"]["data"], list)
+ ):
+ model_response.choices[0].message.content = completion_response[ # type: ignore
+ "model_output"
+ ][
+ "data"
+ ][
+ 0
+ ]
+ elif isinstance(completion_response["model_output"], str):
+ model_response.choices[0].message.content = completion_response[ # type: ignore
+ "model_output"
+ ]
+ elif "completion" in completion_response and isinstance(
+ completion_response["completion"], str
+ ):
+ model_response.choices[0].message.content = completion_response[ # type: ignore
+ "completion"
+ ]
+ elif isinstance(completion_response, list) and len(completion_response) > 0:
+ if "generated_text" not in completion_response:
+ raise BasetenError(
+ message=f"Unable to parse response. Original response: {response.text}",
+ status_code=response.status_code,
+ )
+ model_response.choices[0].message.content = completion_response[0][ # type: ignore
+ "generated_text"
+ ]
+ ## GETTING LOGPROBS
+ if (
+ "details" in completion_response[0]
+ and "tokens" in completion_response[0]["details"]
+ ):
+ model_response.choices[0].finish_reason = completion_response[0][
+ "details"
+ ]["finish_reason"]
+ sum_logprob = 0
+ for token in completion_response[0]["details"]["tokens"]:
+ sum_logprob += token["logprob"]
+ model_response.choices[0].logprobs = sum_logprob # type: ignore
+ else:
+ raise BasetenError(
+ message=f"Unable to parse response. Original response: {response.text}",
+ status_code=response.status_code,
+ )
+
+ ## CALCULATING USAGE - baseten charges on time, not tokens - have some mapping of cost here.
+ prompt_tokens = len(encoding.encode(prompt))
+ completion_tokens = len(
+ encoding.encode(model_response["choices"][0]["message"]["content"])
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+
+ setattr(model_response, "usage", usage)
+ return model_response
+
+
+def embedding():
+ # logic for parsing in - calling - parsing out model embedding calls
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/base_aws_llm.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/base_aws_llm.py
new file mode 100644
index 00000000..5482d806
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/base_aws_llm.py
@@ -0,0 +1,627 @@
+import hashlib
+import json
+import os
+from datetime import datetime
+from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, cast, get_args
+
+import httpx
+from pydantic import BaseModel
+
+from litellm._logging import verbose_logger
+from litellm.caching.caching import DualCache
+from litellm.constants import BEDROCK_INVOKE_PROVIDERS_LITERAL
+from litellm.litellm_core_utils.dd_tracing import tracer
+from litellm.secret_managers.main import get_secret
+
+if TYPE_CHECKING:
+ from botocore.awsrequest import AWSPreparedRequest
+ from botocore.credentials import Credentials
+else:
+ Credentials = Any
+ AWSPreparedRequest = Any
+
+
+class Boto3CredentialsInfo(BaseModel):
+ credentials: Credentials
+ aws_region_name: str
+ aws_bedrock_runtime_endpoint: Optional[str]
+
+
+class AwsAuthError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url="https://us-west-2.console.aws.amazon.com/bedrock"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class BaseAWSLLM:
+ def __init__(self) -> None:
+ self.iam_cache = DualCache()
+ super().__init__()
+ self.aws_authentication_params = [
+ "aws_access_key_id",
+ "aws_secret_access_key",
+ "aws_session_token",
+ "aws_region_name",
+ "aws_session_name",
+ "aws_profile_name",
+ "aws_role_name",
+ "aws_web_identity_token",
+ "aws_sts_endpoint",
+ "aws_bedrock_runtime_endpoint",
+ ]
+
+ def get_cache_key(self, credential_args: Dict[str, Optional[str]]) -> str:
+ """
+ Generate a unique cache key based on the credential arguments.
+ """
+ # Convert credential arguments to a JSON string and hash it to create a unique key
+ credential_str = json.dumps(credential_args, sort_keys=True)
+ return hashlib.sha256(credential_str.encode()).hexdigest()
+
+ @tracer.wrap()
+ def get_credentials(
+ self,
+ aws_access_key_id: Optional[str] = None,
+ aws_secret_access_key: Optional[str] = None,
+ aws_session_token: Optional[str] = None,
+ aws_region_name: Optional[str] = None,
+ aws_session_name: Optional[str] = None,
+ aws_profile_name: Optional[str] = None,
+ aws_role_name: Optional[str] = None,
+ aws_web_identity_token: Optional[str] = None,
+ aws_sts_endpoint: Optional[str] = None,
+ ):
+ """
+ Return a boto3.Credentials object
+ """
+ ## CHECK IS 'os.environ/' passed in
+ params_to_check: List[Optional[str]] = [
+ aws_access_key_id,
+ aws_secret_access_key,
+ aws_session_token,
+ aws_region_name,
+ aws_session_name,
+ aws_profile_name,
+ aws_role_name,
+ aws_web_identity_token,
+ aws_sts_endpoint,
+ ]
+
+ # Iterate over parameters and update if needed
+ for i, param in enumerate(params_to_check):
+ if param and param.startswith("os.environ/"):
+ _v = get_secret(param)
+ if _v is not None and isinstance(_v, str):
+ params_to_check[i] = _v
+ elif param is None: # check if uppercase value in env
+ key = self.aws_authentication_params[i]
+ if key.upper() in os.environ:
+ params_to_check[i] = os.getenv(key)
+
+ # Assign updated values back to parameters
+ (
+ aws_access_key_id,
+ aws_secret_access_key,
+ aws_session_token,
+ aws_region_name,
+ aws_session_name,
+ aws_profile_name,
+ aws_role_name,
+ aws_web_identity_token,
+ aws_sts_endpoint,
+ ) = params_to_check
+
+ verbose_logger.debug(
+ "in get credentials\n"
+ "aws_access_key_id=%s\n"
+ "aws_secret_access_key=%s\n"
+ "aws_session_token=%s\n"
+ "aws_region_name=%s\n"
+ "aws_session_name=%s\n"
+ "aws_profile_name=%s\n"
+ "aws_role_name=%s\n"
+ "aws_web_identity_token=%s\n"
+ "aws_sts_endpoint=%s",
+ aws_access_key_id,
+ aws_secret_access_key,
+ aws_session_token,
+ aws_region_name,
+ aws_session_name,
+ aws_profile_name,
+ aws_role_name,
+ aws_web_identity_token,
+ aws_sts_endpoint,
+ )
+
+ # create cache key for non-expiring auth flows
+ args = {k: v for k, v in locals().items() if k.startswith("aws_")}
+
+ cache_key = self.get_cache_key(args)
+ _cached_credentials = self.iam_cache.get_cache(cache_key)
+ if _cached_credentials:
+ return _cached_credentials
+
+ #########################################################
+ # Handle diff boto3 auth flows
+ # for each helper
+ # Return:
+ # Credentials - boto3.Credentials
+ # cache ttl - Optional[int]. If None, the credentials are not cached. Some auth flows have no expiry time.
+ #########################################################
+ if (
+ aws_web_identity_token is not None
+ and aws_role_name is not None
+ and aws_session_name is not None
+ ):
+ credentials, _cache_ttl = self._auth_with_web_identity_token(
+ aws_web_identity_token=aws_web_identity_token,
+ aws_role_name=aws_role_name,
+ aws_session_name=aws_session_name,
+ aws_region_name=aws_region_name,
+ aws_sts_endpoint=aws_sts_endpoint,
+ )
+ elif aws_role_name is not None and aws_session_name is not None:
+ credentials, _cache_ttl = self._auth_with_aws_role(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_role_name=aws_role_name,
+ aws_session_name=aws_session_name,
+ )
+
+ elif aws_profile_name is not None: ### CHECK SESSION ###
+ credentials, _cache_ttl = self._auth_with_aws_profile(aws_profile_name)
+ elif (
+ aws_access_key_id is not None
+ and aws_secret_access_key is not None
+ and aws_session_token is not None
+ ):
+ credentials, _cache_ttl = self._auth_with_aws_session_token(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_session_token=aws_session_token,
+ )
+ elif (
+ aws_access_key_id is not None
+ and aws_secret_access_key is not None
+ and aws_region_name is not None
+ ):
+ credentials, _cache_ttl = self._auth_with_access_key_and_secret_key(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_region_name=aws_region_name,
+ )
+ else:
+ credentials, _cache_ttl = self._auth_with_env_vars()
+
+ self.iam_cache.set_cache(cache_key, credentials, ttl=_cache_ttl)
+ return credentials
+
+ def _get_aws_region_from_model_arn(self, model: Optional[str]) -> Optional[str]:
+ try:
+ # First check if the string contains the expected prefix
+ if not isinstance(model, str) or "arn:aws:bedrock" not in model:
+ return None
+
+ # Split the ARN and check if we have enough parts
+ parts = model.split(":")
+ if len(parts) < 4:
+ return None
+
+ # Get the region from the correct position
+ region = parts[3]
+ if not region: # Check if region is empty
+ return None
+
+ return region
+ except Exception:
+ # Catch any unexpected errors and return None
+ return None
+
+ @staticmethod
+ def _get_provider_from_model_path(
+ model_path: str,
+ ) -> Optional[BEDROCK_INVOKE_PROVIDERS_LITERAL]:
+ """
+ Helper function to get the provider from a model path with format: provider/model-name
+
+ Args:
+ model_path (str): The model path (e.g., 'llama/arn:aws:bedrock:us-east-1:086734376398:imported-model/r4c4kewx2s0n' or 'anthropic/model-name')
+
+ Returns:
+ Optional[str]: The provider name, or None if no valid provider found
+ """
+ parts = model_path.split("/")
+ if len(parts) >= 1:
+ provider = parts[0]
+ if provider in get_args(BEDROCK_INVOKE_PROVIDERS_LITERAL):
+ return cast(BEDROCK_INVOKE_PROVIDERS_LITERAL, provider)
+ return None
+
+ @staticmethod
+ def get_bedrock_invoke_provider(
+ model: str,
+ ) -> Optional[BEDROCK_INVOKE_PROVIDERS_LITERAL]:
+ """
+ Helper function to get the bedrock provider from the model
+
+ handles 3 scenarions:
+ 1. model=invoke/anthropic.claude-3-5-sonnet-20240620-v1:0 -> Returns `anthropic`
+ 2. model=anthropic.claude-3-5-sonnet-20240620-v1:0 -> Returns `anthropic`
+ 3. model=llama/arn:aws:bedrock:us-east-1:086734376398:imported-model/r4c4kewx2s0n -> Returns `llama`
+ 4. model=us.amazon.nova-pro-v1:0 -> Returns `nova`
+ """
+ if model.startswith("invoke/"):
+ model = model.replace("invoke/", "", 1)
+
+ _split_model = model.split(".")[0]
+ if _split_model in get_args(BEDROCK_INVOKE_PROVIDERS_LITERAL):
+ return cast(BEDROCK_INVOKE_PROVIDERS_LITERAL, _split_model)
+
+ # If not a known provider, check for pattern with two slashes
+ provider = BaseAWSLLM._get_provider_from_model_path(model)
+ if provider is not None:
+ return provider
+
+ # check if provider == "nova"
+ if "nova" in model:
+ return "nova"
+ else:
+ for provider in get_args(BEDROCK_INVOKE_PROVIDERS_LITERAL):
+ if provider in model:
+ return provider
+ return None
+
+ def _get_aws_region_name(
+ self,
+ optional_params: dict,
+ model: Optional[str] = None,
+ model_id: Optional[str] = None,
+ ) -> str:
+ """
+ Get the AWS region name from the environment variables.
+
+ Parameters:
+ optional_params (dict): Optional parameters for the model call
+ model (str): The model name
+ model_id (str): The model ID. This is the ARN of the model, if passed in as a separate param.
+
+ Returns:
+ str: The AWS region name
+ """
+ aws_region_name = optional_params.get("aws_region_name", None)
+ ### SET REGION NAME ###
+ if aws_region_name is None:
+ # check model arn #
+ if model_id is not None:
+ aws_region_name = self._get_aws_region_from_model_arn(model_id)
+ else:
+ aws_region_name = self._get_aws_region_from_model_arn(model)
+ # check env #
+ litellm_aws_region_name = get_secret("AWS_REGION_NAME", None)
+
+ if (
+ aws_region_name is None
+ and litellm_aws_region_name is not None
+ and isinstance(litellm_aws_region_name, str)
+ ):
+ aws_region_name = litellm_aws_region_name
+
+ standard_aws_region_name = get_secret("AWS_REGION", None)
+ if (
+ aws_region_name is None
+ and standard_aws_region_name is not None
+ and isinstance(standard_aws_region_name, str)
+ ):
+ aws_region_name = standard_aws_region_name
+
+ if aws_region_name is None:
+ aws_region_name = "us-west-2"
+
+ return aws_region_name
+
+ @tracer.wrap()
+ def _auth_with_web_identity_token(
+ self,
+ aws_web_identity_token: str,
+ aws_role_name: str,
+ aws_session_name: str,
+ aws_region_name: Optional[str],
+ aws_sts_endpoint: Optional[str],
+ ) -> Tuple[Credentials, Optional[int]]:
+ """
+ Authenticate with AWS Web Identity Token
+ """
+ import boto3
+
+ verbose_logger.debug(
+ f"IN Web Identity Token: {aws_web_identity_token} | Role Name: {aws_role_name} | Session Name: {aws_session_name}"
+ )
+
+ if aws_sts_endpoint is None:
+ sts_endpoint = f"https://sts.{aws_region_name}.amazonaws.com"
+ else:
+ sts_endpoint = aws_sts_endpoint
+
+ oidc_token = get_secret(aws_web_identity_token)
+
+ if oidc_token is None:
+ raise AwsAuthError(
+ message="OIDC token could not be retrieved from secret manager.",
+ status_code=401,
+ )
+
+ with tracer.trace("boto3.client(sts)"):
+ sts_client = boto3.client(
+ "sts",
+ region_name=aws_region_name,
+ endpoint_url=sts_endpoint,
+ )
+
+ # https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html
+ # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts/client/assume_role_with_web_identity.html
+ sts_response = sts_client.assume_role_with_web_identity(
+ RoleArn=aws_role_name,
+ RoleSessionName=aws_session_name,
+ WebIdentityToken=oidc_token,
+ DurationSeconds=3600,
+ Policy='{"Version":"2012-10-17","Statement":[{"Sid":"BedrockLiteLLM","Effect":"Allow","Action":["bedrock:InvokeModel","bedrock:InvokeModelWithResponseStream"],"Resource":"*","Condition":{"Bool":{"aws:SecureTransport":"true"},"StringLike":{"aws:UserAgent":"litellm/*"}}}]}',
+ )
+
+ iam_creds_dict = {
+ "aws_access_key_id": sts_response["Credentials"]["AccessKeyId"],
+ "aws_secret_access_key": sts_response["Credentials"]["SecretAccessKey"],
+ "aws_session_token": sts_response["Credentials"]["SessionToken"],
+ "region_name": aws_region_name,
+ }
+
+ if sts_response["PackedPolicySize"] > 75:
+ verbose_logger.warning(
+ f"The policy size is greater than 75% of the allowed size, PackedPolicySize: {sts_response['PackedPolicySize']}"
+ )
+
+ with tracer.trace("boto3.Session(**iam_creds_dict)"):
+ session = boto3.Session(**iam_creds_dict)
+
+ iam_creds = session.get_credentials()
+ return iam_creds, self._get_default_ttl_for_boto3_credentials()
+
+ @tracer.wrap()
+ def _auth_with_aws_role(
+ self,
+ aws_access_key_id: Optional[str],
+ aws_secret_access_key: Optional[str],
+ aws_role_name: str,
+ aws_session_name: str,
+ ) -> Tuple[Credentials, Optional[int]]:
+ """
+ Authenticate with AWS Role
+ """
+ import boto3
+ from botocore.credentials import Credentials
+
+ with tracer.trace("boto3.client(sts)"):
+ sts_client = boto3.client(
+ "sts",
+ aws_access_key_id=aws_access_key_id, # [OPTIONAL]
+ aws_secret_access_key=aws_secret_access_key, # [OPTIONAL]
+ )
+
+ sts_response = sts_client.assume_role(
+ RoleArn=aws_role_name, RoleSessionName=aws_session_name
+ )
+
+ # Extract the credentials from the response and convert to Session Credentials
+ sts_credentials = sts_response["Credentials"]
+ credentials = Credentials(
+ access_key=sts_credentials["AccessKeyId"],
+ secret_key=sts_credentials["SecretAccessKey"],
+ token=sts_credentials["SessionToken"],
+ )
+
+ sts_expiry = sts_credentials["Expiration"]
+ # Convert to timezone-aware datetime for comparison
+ current_time = datetime.now(sts_expiry.tzinfo)
+ sts_ttl = (sts_expiry - current_time).total_seconds() - 60
+ return credentials, sts_ttl
+
+ @tracer.wrap()
+ def _auth_with_aws_profile(
+ self, aws_profile_name: str
+ ) -> Tuple[Credentials, Optional[int]]:
+ """
+ Authenticate with AWS profile
+ """
+ import boto3
+
+ # uses auth values from AWS profile usually stored in ~/.aws/credentials
+ with tracer.trace("boto3.Session(profile_name=aws_profile_name)"):
+ client = boto3.Session(profile_name=aws_profile_name)
+ return client.get_credentials(), None
+
+ @tracer.wrap()
+ def _auth_with_aws_session_token(
+ self,
+ aws_access_key_id: str,
+ aws_secret_access_key: str,
+ aws_session_token: str,
+ ) -> Tuple[Credentials, Optional[int]]:
+ """
+ Authenticate with AWS Session Token
+ """
+ ### CHECK FOR AWS SESSION TOKEN ###
+ from botocore.credentials import Credentials
+
+ credentials = Credentials(
+ access_key=aws_access_key_id,
+ secret_key=aws_secret_access_key,
+ token=aws_session_token,
+ )
+
+ return credentials, None
+
+ @tracer.wrap()
+ def _auth_with_access_key_and_secret_key(
+ self,
+ aws_access_key_id: str,
+ aws_secret_access_key: str,
+ aws_region_name: Optional[str],
+ ) -> Tuple[Credentials, Optional[int]]:
+ """
+ Authenticate with AWS Access Key and Secret Key
+ """
+ import boto3
+
+ # Check if credentials are already in cache. These credentials have no expiry time.
+ with tracer.trace(
+ "boto3.Session(aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, region_name=aws_region_name)"
+ ):
+ session = boto3.Session(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ region_name=aws_region_name,
+ )
+
+ credentials = session.get_credentials()
+ return credentials, self._get_default_ttl_for_boto3_credentials()
+
+ @tracer.wrap()
+ def _auth_with_env_vars(self) -> Tuple[Credentials, Optional[int]]:
+ """
+ Authenticate with AWS Environment Variables
+ """
+ import boto3
+
+ with tracer.trace("boto3.Session()"):
+ session = boto3.Session()
+ credentials = session.get_credentials()
+ return credentials, None
+
+ @tracer.wrap()
+ def _get_default_ttl_for_boto3_credentials(self) -> int:
+ """
+ Get the default TTL for boto3 credentials
+
+ Returns `3600-60` which is 59 minutes
+ """
+ return 3600 - 60
+
+ def get_runtime_endpoint(
+ self,
+ api_base: Optional[str],
+ aws_bedrock_runtime_endpoint: Optional[str],
+ aws_region_name: str,
+ ) -> Tuple[str, str]:
+ env_aws_bedrock_runtime_endpoint = get_secret("AWS_BEDROCK_RUNTIME_ENDPOINT")
+ if api_base is not None:
+ endpoint_url = api_base
+ elif aws_bedrock_runtime_endpoint is not None and isinstance(
+ aws_bedrock_runtime_endpoint, str
+ ):
+ endpoint_url = aws_bedrock_runtime_endpoint
+ elif env_aws_bedrock_runtime_endpoint and isinstance(
+ env_aws_bedrock_runtime_endpoint, str
+ ):
+ endpoint_url = env_aws_bedrock_runtime_endpoint
+ else:
+ endpoint_url = f"https://bedrock-runtime.{aws_region_name}.amazonaws.com"
+
+ # Determine proxy_endpoint_url
+ if env_aws_bedrock_runtime_endpoint and isinstance(
+ env_aws_bedrock_runtime_endpoint, str
+ ):
+ proxy_endpoint_url = env_aws_bedrock_runtime_endpoint
+ elif aws_bedrock_runtime_endpoint is not None and isinstance(
+ aws_bedrock_runtime_endpoint, str
+ ):
+ proxy_endpoint_url = aws_bedrock_runtime_endpoint
+ else:
+ proxy_endpoint_url = endpoint_url
+
+ return endpoint_url, proxy_endpoint_url
+
+ def _get_boto_credentials_from_optional_params(
+ self, optional_params: dict, model: Optional[str] = None
+ ) -> Boto3CredentialsInfo:
+ """
+ Get boto3 credentials from optional params
+
+ Args:
+ optional_params (dict): Optional parameters for the model call
+
+ Returns:
+ Credentials: Boto3 credentials object
+ """
+ try:
+ from botocore.credentials import Credentials
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+ ## CREDENTIALS ##
+ # pop aws_secret_access_key, aws_access_key_id, aws_region_name from kwargs, since completion calls fail with them
+ aws_secret_access_key = optional_params.pop("aws_secret_access_key", None)
+ aws_access_key_id = optional_params.pop("aws_access_key_id", None)
+ aws_session_token = optional_params.pop("aws_session_token", None)
+ aws_region_name = self._get_aws_region_name(optional_params, model)
+ optional_params.pop("aws_region_name", None)
+ aws_role_name = optional_params.pop("aws_role_name", None)
+ aws_session_name = optional_params.pop("aws_session_name", None)
+ aws_profile_name = optional_params.pop("aws_profile_name", None)
+ aws_web_identity_token = optional_params.pop("aws_web_identity_token", None)
+ aws_sts_endpoint = optional_params.pop("aws_sts_endpoint", None)
+ aws_bedrock_runtime_endpoint = optional_params.pop(
+ "aws_bedrock_runtime_endpoint", None
+ ) # https://bedrock-runtime.{region_name}.amazonaws.com
+
+ credentials: Credentials = self.get_credentials(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_session_token=aws_session_token,
+ aws_region_name=aws_region_name,
+ aws_session_name=aws_session_name,
+ aws_profile_name=aws_profile_name,
+ aws_role_name=aws_role_name,
+ aws_web_identity_token=aws_web_identity_token,
+ aws_sts_endpoint=aws_sts_endpoint,
+ )
+
+ return Boto3CredentialsInfo(
+ credentials=credentials,
+ aws_region_name=aws_region_name,
+ aws_bedrock_runtime_endpoint=aws_bedrock_runtime_endpoint,
+ )
+
+ @tracer.wrap()
+ def get_request_headers(
+ self,
+ credentials: Credentials,
+ aws_region_name: str,
+ extra_headers: Optional[dict],
+ endpoint_url: str,
+ data: str,
+ headers: dict,
+ ) -> AWSPreparedRequest:
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+
+ sigv4 = SigV4Auth(credentials, "bedrock", aws_region_name)
+
+ request = AWSRequest(
+ method="POST", url=endpoint_url, data=data, headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+ prepped = request.prepare()
+
+ return prepped
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/__init__.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/__init__.py
new file mode 100644
index 00000000..c3f6aef6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/__init__.py
@@ -0,0 +1,2 @@
+from .converse_handler import BedrockConverseLLM
+from .invoke_handler import BedrockLLM
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_handler.py
new file mode 100644
index 00000000..a4230177
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_handler.py
@@ -0,0 +1,470 @@
+import json
+import urllib
+from typing import Any, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObject
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.types.utils import ModelResponse
+from litellm.utils import CustomStreamWrapper
+
+from ..base_aws_llm import BaseAWSLLM, Credentials
+from ..common_utils import BedrockError
+from .invoke_handler import AWSEventStreamDecoder, MockResponseIterator, make_call
+
+
+def make_sync_call(
+ client: Optional[HTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj: LiteLLMLoggingObject,
+ json_mode: Optional[bool] = False,
+ fake_stream: bool = False,
+):
+ if client is None:
+ client = _get_httpx_client() # Create a new client if none provided
+
+ response = client.post(
+ api_base,
+ headers=headers,
+ data=data,
+ stream=not fake_stream,
+ logging_obj=logging_obj,
+ )
+
+ if response.status_code != 200:
+ raise BedrockError(
+ status_code=response.status_code, message=str(response.read())
+ )
+
+ if fake_stream:
+ model_response: (
+ ModelResponse
+ ) = litellm.AmazonConverseConfig()._transform_response(
+ model=model,
+ response=response,
+ model_response=litellm.ModelResponse(),
+ stream=True,
+ logging_obj=logging_obj,
+ optional_params={},
+ api_key="",
+ data=data,
+ messages=messages,
+ encoding=litellm.encoding,
+ ) # type: ignore
+ completion_stream: Any = MockResponseIterator(
+ model_response=model_response, json_mode=json_mode
+ )
+ else:
+ decoder = AWSEventStreamDecoder(model=model)
+ completion_stream = decoder.iter_bytes(response.iter_bytes(chunk_size=1024))
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+
+
+class BedrockConverseLLM(BaseAWSLLM):
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def encode_model_id(self, model_id: str) -> str:
+ """
+ Double encode the model ID to ensure it matches the expected double-encoded format.
+ Args:
+ model_id (str): The model ID to encode.
+ Returns:
+ str: The double-encoded model ID.
+ """
+ return urllib.parse.quote(model_id, safe="") # type: ignore
+
+ async def async_streaming(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ encoding,
+ logging_obj,
+ stream,
+ optional_params: dict,
+ litellm_params: dict,
+ credentials: Credentials,
+ logger_fn=None,
+ headers={},
+ client: Optional[AsyncHTTPHandler] = None,
+ fake_stream: bool = False,
+ json_mode: Optional[bool] = False,
+ ) -> CustomStreamWrapper:
+
+ request_data = await litellm.AmazonConverseConfig()._async_transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+ data = json.dumps(request_data)
+
+ prepped = self.get_request_headers(
+ credentials=credentials,
+ aws_region_name=litellm_params.get("aws_region_name") or "us-west-2",
+ extra_headers=headers,
+ endpoint_url=api_base,
+ data=data,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": dict(prepped.headers),
+ },
+ )
+
+ completion_stream = await make_call(
+ client=client,
+ api_base=api_base,
+ headers=dict(prepped.headers),
+ data=data,
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ fake_stream=fake_stream,
+ json_mode=json_mode,
+ )
+ streaming_response = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="bedrock",
+ logging_obj=logging_obj,
+ )
+ return streaming_response
+
+ async def async_completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ encoding,
+ logging_obj: LiteLLMLoggingObject,
+ stream,
+ optional_params: dict,
+ litellm_params: dict,
+ credentials: Credentials,
+ logger_fn=None,
+ headers: dict = {},
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+
+ request_data = await litellm.AmazonConverseConfig()._async_transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+ data = json.dumps(request_data)
+
+ prepped = self.get_request_headers(
+ credentials=credentials,
+ aws_region_name=litellm_params.get("aws_region_name") or "us-west-2",
+ extra_headers=headers,
+ endpoint_url=api_base,
+ data=data,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": prepped.headers,
+ },
+ )
+
+ headers = dict(prepped.headers)
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ client = get_async_httpx_client(
+ params=_params, llm_provider=litellm.LlmProviders.BEDROCK
+ )
+ else:
+ client = client # type: ignore
+
+ try:
+ response = await client.post(
+ url=api_base,
+ headers=headers,
+ data=data,
+ logging_obj=logging_obj,
+ ) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ return litellm.AmazonConverseConfig()._transform_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=stream if isinstance(stream, bool) else False,
+ logging_obj=logging_obj,
+ api_key="",
+ data=data,
+ messages=messages,
+ optional_params=optional_params,
+ encoding=encoding,
+ )
+
+ def completion( # noqa: PLR0915
+ self,
+ model: str,
+ messages: list,
+ api_base: Optional[str],
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ encoding,
+ logging_obj: LiteLLMLoggingObject,
+ optional_params: dict,
+ acompletion: bool,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ litellm_params: dict,
+ logger_fn=None,
+ extra_headers: Optional[dict] = None,
+ client: Optional[Union[AsyncHTTPHandler, HTTPHandler]] = None,
+ ):
+
+ ## SETUP ##
+ stream = optional_params.pop("stream", None)
+ unencoded_model_id = optional_params.pop("model_id", None)
+ fake_stream = optional_params.pop("fake_stream", False)
+ json_mode = optional_params.get("json_mode", False)
+ if unencoded_model_id is not None:
+ modelId = self.encode_model_id(model_id=unencoded_model_id)
+ else:
+ modelId = self.encode_model_id(model_id=model)
+
+ if stream is True and "ai21" in modelId:
+ fake_stream = True
+
+ ### SET REGION NAME ###
+ aws_region_name = self._get_aws_region_name(
+ optional_params=optional_params,
+ model=model,
+ model_id=unencoded_model_id,
+ )
+
+ ## CREDENTIALS ##
+ # pop aws_secret_access_key, aws_access_key_id, aws_region_name from kwargs, since completion calls fail with them
+ aws_secret_access_key = optional_params.pop("aws_secret_access_key", None)
+ aws_access_key_id = optional_params.pop("aws_access_key_id", None)
+ aws_session_token = optional_params.pop("aws_session_token", None)
+ aws_role_name = optional_params.pop("aws_role_name", None)
+ aws_session_name = optional_params.pop("aws_session_name", None)
+ aws_profile_name = optional_params.pop("aws_profile_name", None)
+ aws_bedrock_runtime_endpoint = optional_params.pop(
+ "aws_bedrock_runtime_endpoint", None
+ ) # https://bedrock-runtime.{region_name}.amazonaws.com
+ aws_web_identity_token = optional_params.pop("aws_web_identity_token", None)
+ aws_sts_endpoint = optional_params.pop("aws_sts_endpoint", None)
+ optional_params.pop("aws_region_name", None)
+
+ litellm_params["aws_region_name"] = (
+ aws_region_name # [DO NOT DELETE] important for async calls
+ )
+
+ credentials: Credentials = self.get_credentials(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_session_token=aws_session_token,
+ aws_region_name=aws_region_name,
+ aws_session_name=aws_session_name,
+ aws_profile_name=aws_profile_name,
+ aws_role_name=aws_role_name,
+ aws_web_identity_token=aws_web_identity_token,
+ aws_sts_endpoint=aws_sts_endpoint,
+ )
+
+ ### SET RUNTIME ENDPOINT ###
+ endpoint_url, proxy_endpoint_url = self.get_runtime_endpoint(
+ api_base=api_base,
+ aws_bedrock_runtime_endpoint=aws_bedrock_runtime_endpoint,
+ aws_region_name=aws_region_name,
+ )
+ if (stream is not None and stream is True) and not fake_stream:
+ endpoint_url = f"{endpoint_url}/model/{modelId}/converse-stream"
+ proxy_endpoint_url = f"{proxy_endpoint_url}/model/{modelId}/converse-stream"
+ else:
+ endpoint_url = f"{endpoint_url}/model/{modelId}/converse"
+ proxy_endpoint_url = f"{proxy_endpoint_url}/model/{modelId}/converse"
+
+ ## COMPLETION CALL
+ headers = {"Content-Type": "application/json"}
+ if extra_headers is not None:
+ headers = {"Content-Type": "application/json", **extra_headers}
+
+ ### ROUTING (ASYNC, STREAMING, SYNC)
+ if acompletion:
+ if isinstance(client, HTTPHandler):
+ client = None
+ if stream is True:
+ return self.async_streaming(
+ model=model,
+ messages=messages,
+ api_base=proxy_endpoint_url,
+ model_response=model_response,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=True,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ client=client,
+ json_mode=json_mode,
+ fake_stream=fake_stream,
+ credentials=credentials,
+ ) # type: ignore
+ ### ASYNC COMPLETION
+ return self.async_completion(
+ model=model,
+ messages=messages,
+ api_base=proxy_endpoint_url,
+ model_response=model_response,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=stream, # type: ignore
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ client=client,
+ credentials=credentials,
+ ) # type: ignore
+
+ ## TRANSFORMATION ##
+
+ _data = litellm.AmazonConverseConfig()._transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+ data = json.dumps(_data)
+
+ prepped = self.get_request_headers(
+ credentials=credentials,
+ aws_region_name=aws_region_name,
+ extra_headers=extra_headers,
+ endpoint_url=proxy_endpoint_url,
+ data=data,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": proxy_endpoint_url,
+ "headers": prepped.headers,
+ },
+ )
+ if client is None or isinstance(client, AsyncHTTPHandler):
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ client = _get_httpx_client(_params) # type: ignore
+ else:
+ client = client
+
+ if stream is not None and stream is True:
+ completion_stream = make_sync_call(
+ client=(
+ client
+ if client is not None and isinstance(client, HTTPHandler)
+ else None
+ ),
+ api_base=proxy_endpoint_url,
+ headers=prepped.headers, # type: ignore
+ data=data,
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ json_mode=json_mode,
+ fake_stream=fake_stream,
+ )
+ streaming_response = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="bedrock",
+ logging_obj=logging_obj,
+ )
+
+ return streaming_response
+
+ ### COMPLETION
+
+ try:
+ response = client.post(
+ url=proxy_endpoint_url,
+ headers=prepped.headers,
+ data=data,
+ logging_obj=logging_obj,
+ ) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ return litellm.AmazonConverseConfig()._transform_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=stream if isinstance(stream, bool) else False,
+ logging_obj=logging_obj,
+ api_key="",
+ data=data,
+ messages=messages,
+ optional_params=optional_params,
+ encoding=encoding,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_like/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_like/handler.py
new file mode 100644
index 00000000..c26886b7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_like/handler.py
@@ -0,0 +1,5 @@
+"""
+Uses base_llm_http_handler to call the 'converse like' endpoint.
+
+Relevant issue: https://github.com/BerriAI/litellm/issues/8085
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_like/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_like/transformation.py
new file mode 100644
index 00000000..78332022
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_like/transformation.py
@@ -0,0 +1,3 @@
+"""
+Uses `converse_transformation.py` to transform the messages to the format required by Bedrock Converse.
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_transformation.py
new file mode 100644
index 00000000..bb874cfe
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_transformation.py
@@ -0,0 +1,800 @@
+"""
+Translating between OpenAI's `/chat/completion` format and Amazon's `/converse` format
+"""
+
+import copy
+import time
+import types
+from typing import List, Literal, Optional, Tuple, Union, cast, overload
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.core_helpers import map_finish_reason
+from litellm.litellm_core_utils.litellm_logging import Logging
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ BedrockConverseMessagesProcessor,
+ _bedrock_converse_messages_pt,
+ _bedrock_tools_pt,
+)
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.bedrock import *
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ ChatCompletionResponseMessage,
+ ChatCompletionSystemMessage,
+ ChatCompletionThinkingBlock,
+ ChatCompletionToolCallChunk,
+ ChatCompletionToolCallFunctionChunk,
+ ChatCompletionToolParam,
+ ChatCompletionToolParamFunctionChunk,
+ ChatCompletionUserMessage,
+ OpenAIMessageContentListBlock,
+)
+from litellm.types.utils import ModelResponse, PromptTokensDetailsWrapper, Usage
+from litellm.utils import add_dummy_tool, has_tool_call_blocks
+
+from ..common_utils import BedrockError, BedrockModelInfo, get_bedrock_tool_name
+
+
+class AmazonConverseConfig(BaseConfig):
+ """
+ Reference - https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html
+ #2 - https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html#conversation-inference-supported-models-features
+ """
+
+ maxTokens: Optional[int]
+ stopSequences: Optional[List[str]]
+ temperature: Optional[int]
+ topP: Optional[int]
+ topK: Optional[int]
+
+ def __init__(
+ self,
+ maxTokens: Optional[int] = None,
+ stopSequences: Optional[List[str]] = None,
+ temperature: Optional[int] = None,
+ topP: Optional[int] = None,
+ topK: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @property
+ def custom_llm_provider(self) -> Optional[str]:
+ return "bedrock_converse"
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ supported_params = [
+ "max_tokens",
+ "max_completion_tokens",
+ "stream",
+ "stream_options",
+ "stop",
+ "temperature",
+ "top_p",
+ "extra_headers",
+ "response_format",
+ ]
+
+ ## Filter out 'cross-region' from model name
+ base_model = BedrockModelInfo.get_base_model(model)
+
+ if (
+ base_model.startswith("anthropic")
+ or base_model.startswith("mistral")
+ or base_model.startswith("cohere")
+ or base_model.startswith("meta.llama3-1")
+ or base_model.startswith("meta.llama3-2")
+ or base_model.startswith("meta.llama3-3")
+ or base_model.startswith("amazon.nova")
+ ):
+ supported_params.append("tools")
+
+ if litellm.utils.supports_tool_choice(
+ model=model, custom_llm_provider=self.custom_llm_provider
+ ):
+ # only anthropic and mistral support tool choice config. otherwise (E.g. cohere) will fail the call - https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ToolChoice.html
+ supported_params.append("tool_choice")
+
+ if (
+ "claude-3-7" in model
+ ): # [TODO]: move to a 'supports_reasoning_content' param from model cost map
+ supported_params.append("thinking")
+ return supported_params
+
+ def map_tool_choice_values(
+ self, model: str, tool_choice: Union[str, dict], drop_params: bool
+ ) -> Optional[ToolChoiceValuesBlock]:
+ if tool_choice == "none":
+ if litellm.drop_params is True or drop_params is True:
+ return None
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="Bedrock doesn't support tool_choice={}. To drop it from the call, set `litellm.drop_params = True.".format(
+ tool_choice
+ ),
+ status_code=400,
+ )
+ elif tool_choice == "required":
+ return ToolChoiceValuesBlock(any={})
+ elif tool_choice == "auto":
+ return ToolChoiceValuesBlock(auto={})
+ elif isinstance(tool_choice, dict):
+ # only supported for anthropic + mistral models - https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ToolChoice.html
+ specific_tool = SpecificToolChoiceBlock(
+ name=tool_choice.get("function", {}).get("name", "")
+ )
+ return ToolChoiceValuesBlock(tool=specific_tool)
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="Bedrock doesn't support tool_choice={}. Supported tool_choice values=['auto', 'required', json object]. To drop it from the call, set `litellm.drop_params = True.".format(
+ tool_choice
+ ),
+ status_code=400,
+ )
+
+ def get_supported_image_types(self) -> List[str]:
+ return ["png", "jpeg", "gif", "webp"]
+
+ def get_supported_document_types(self) -> List[str]:
+ return ["pdf", "csv", "doc", "docx", "xls", "xlsx", "html", "txt", "md"]
+
+ def get_all_supported_content_types(self) -> List[str]:
+ return self.get_supported_image_types() + self.get_supported_document_types()
+
+ def _create_json_tool_call_for_response_format(
+ self,
+ json_schema: Optional[dict] = None,
+ schema_name: str = "json_tool_call",
+ description: Optional[str] = None,
+ ) -> ChatCompletionToolParam:
+ """
+ Handles creating a tool call for getting responses in JSON format.
+
+ Args:
+ json_schema (Optional[dict]): The JSON schema the response should be in
+
+ Returns:
+ AnthropicMessagesTool: The tool call to send to Anthropic API to get responses in JSON format
+ """
+
+ if json_schema is None:
+ # Anthropic raises a 400 BadRequest error if properties is passed as None
+ # see usage with additionalProperties (Example 5) https://github.com/anthropics/anthropic-cookbook/blob/main/tool_use/extracting_structured_json.ipynb
+ _input_schema = {
+ "type": "object",
+ "additionalProperties": True,
+ "properties": {},
+ }
+ else:
+ _input_schema = json_schema
+
+ tool_param_function_chunk = ChatCompletionToolParamFunctionChunk(
+ name=schema_name, parameters=_input_schema
+ )
+ if description:
+ tool_param_function_chunk["description"] = description
+
+ _tool = ChatCompletionToolParam(
+ type="function",
+ function=tool_param_function_chunk,
+ )
+ return _tool
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ messages: Optional[List[AllMessageValues]] = None,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "response_format" and isinstance(value, dict):
+
+ ignore_response_format_types = ["text"]
+ if value["type"] in ignore_response_format_types: # value is a no-op
+ continue
+
+ json_schema: Optional[dict] = None
+ schema_name: str = ""
+ description: Optional[str] = None
+ if "response_schema" in value:
+ json_schema = value["response_schema"]
+ schema_name = "json_tool_call"
+ elif "json_schema" in value:
+ json_schema = value["json_schema"]["schema"]
+ schema_name = value["json_schema"]["name"]
+ description = value["json_schema"].get("description")
+
+ if "type" in value and value["type"] == "text":
+ continue
+
+ """
+ Follow similar approach to anthropic - translate to a single tool call.
+
+ When using tools in this way: - https://docs.anthropic.com/en/docs/build-with-claude/tool-use#json-mode
+ - You usually want to provide a single tool
+ - You should set tool_choice (see Forcing tool use) to instruct the model to explicitly use that tool
+ - Remember that the model will pass the input to the tool, so the name of the tool and description should be from the model’s perspective.
+ """
+ _tool = self._create_json_tool_call_for_response_format(
+ json_schema=json_schema,
+ schema_name=schema_name if schema_name != "" else "json_tool_call",
+ description=description,
+ )
+ optional_params = self._add_tools_to_optional_params(
+ optional_params=optional_params, tools=[_tool]
+ )
+ if litellm.utils.supports_tool_choice(
+ model=model, custom_llm_provider=self.custom_llm_provider
+ ):
+ optional_params["tool_choice"] = ToolChoiceValuesBlock(
+ tool=SpecificToolChoiceBlock(
+ name=schema_name if schema_name != "" else "json_tool_call"
+ )
+ )
+ optional_params["json_mode"] = True
+ if non_default_params.get("stream", False) is True:
+ optional_params["fake_stream"] = True
+ if param == "max_tokens" or param == "max_completion_tokens":
+ optional_params["maxTokens"] = value
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "stop":
+ if isinstance(value, str):
+ if len(value) == 0: # converse raises error for empty strings
+ continue
+ value = [value]
+ optional_params["stopSequences"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["topP"] = value
+ if param == "tools" and isinstance(value, list):
+ optional_params = self._add_tools_to_optional_params(
+ optional_params=optional_params, tools=value
+ )
+ if param == "tool_choice":
+ _tool_choice_value = self.map_tool_choice_values(
+ model=model, tool_choice=value, drop_params=drop_params # type: ignore
+ )
+ if _tool_choice_value is not None:
+ optional_params["tool_choice"] = _tool_choice_value
+ if param == "thinking":
+ optional_params["thinking"] = value
+ return optional_params
+
+ @overload
+ def _get_cache_point_block(
+ self,
+ message_block: Union[
+ OpenAIMessageContentListBlock,
+ ChatCompletionUserMessage,
+ ChatCompletionSystemMessage,
+ ],
+ block_type: Literal["system"],
+ ) -> Optional[SystemContentBlock]:
+ pass
+
+ @overload
+ def _get_cache_point_block(
+ self,
+ message_block: Union[
+ OpenAIMessageContentListBlock,
+ ChatCompletionUserMessage,
+ ChatCompletionSystemMessage,
+ ],
+ block_type: Literal["content_block"],
+ ) -> Optional[ContentBlock]:
+ pass
+
+ def _get_cache_point_block(
+ self,
+ message_block: Union[
+ OpenAIMessageContentListBlock,
+ ChatCompletionUserMessage,
+ ChatCompletionSystemMessage,
+ ],
+ block_type: Literal["system", "content_block"],
+ ) -> Optional[Union[SystemContentBlock, ContentBlock]]:
+ if message_block.get("cache_control", None) is None:
+ return None
+ if block_type == "system":
+ return SystemContentBlock(cachePoint=CachePointBlock(type="default"))
+ else:
+ return ContentBlock(cachePoint=CachePointBlock(type="default"))
+
+ def _transform_system_message(
+ self, messages: List[AllMessageValues]
+ ) -> Tuple[List[AllMessageValues], List[SystemContentBlock]]:
+ system_prompt_indices = []
+ system_content_blocks: List[SystemContentBlock] = []
+ for idx, message in enumerate(messages):
+ if message["role"] == "system":
+ _system_content_block: Optional[SystemContentBlock] = None
+ _cache_point_block: Optional[SystemContentBlock] = None
+ if isinstance(message["content"], str) and len(message["content"]) > 0:
+ _system_content_block = SystemContentBlock(text=message["content"])
+ _cache_point_block = self._get_cache_point_block(
+ message, block_type="system"
+ )
+ elif isinstance(message["content"], list):
+ for m in message["content"]:
+ if m.get("type", "") == "text" and len(m["text"]) > 0:
+ _system_content_block = SystemContentBlock(text=m["text"])
+ _cache_point_block = self._get_cache_point_block(
+ m, block_type="system"
+ )
+ if _system_content_block is not None:
+ system_content_blocks.append(_system_content_block)
+ if _cache_point_block is not None:
+ system_content_blocks.append(_cache_point_block)
+ system_prompt_indices.append(idx)
+ if len(system_prompt_indices) > 0:
+ for idx in reversed(system_prompt_indices):
+ messages.pop(idx)
+ return messages, system_content_blocks
+
+ def _transform_inference_params(self, inference_params: dict) -> InferenceConfig:
+ if "top_k" in inference_params:
+ inference_params["topK"] = inference_params.pop("top_k")
+ return InferenceConfig(**inference_params)
+
+ def _handle_top_k_value(self, model: str, inference_params: dict) -> dict:
+ base_model = BedrockModelInfo.get_base_model(model)
+
+ val_top_k = None
+ if "topK" in inference_params:
+ val_top_k = inference_params.pop("topK")
+ elif "top_k" in inference_params:
+ val_top_k = inference_params.pop("top_k")
+
+ if val_top_k:
+ if base_model.startswith("anthropic"):
+ return {"top_k": val_top_k}
+ if base_model.startswith("amazon.nova"):
+ return {"inferenceConfig": {"topK": val_top_k}}
+
+ return {}
+
+ def _transform_request_helper(
+ self,
+ model: str,
+ system_content_blocks: List[SystemContentBlock],
+ optional_params: dict,
+ messages: Optional[List[AllMessageValues]] = None,
+ ) -> CommonRequestObject:
+
+ ## VALIDATE REQUEST
+ """
+ Bedrock doesn't support tool calling without `tools=` param specified.
+ """
+ if (
+ "tools" not in optional_params
+ and messages is not None
+ and has_tool_call_blocks(messages)
+ ):
+ if litellm.modify_params:
+ optional_params["tools"] = add_dummy_tool(
+ custom_llm_provider="bedrock_converse"
+ )
+ else:
+ raise litellm.UnsupportedParamsError(
+ message="Bedrock doesn't support tool calling without `tools=` param specified. Pass `tools=` param OR set `litellm.modify_params = True` // `litellm_settings::modify_params: True` to add dummy tool to the request.",
+ model="",
+ llm_provider="bedrock",
+ )
+
+ inference_params = copy.deepcopy(optional_params)
+ supported_converse_params = list(
+ AmazonConverseConfig.__annotations__.keys()
+ ) + ["top_k"]
+ supported_tool_call_params = ["tools", "tool_choice"]
+ supported_guardrail_params = ["guardrailConfig"]
+ total_supported_params = (
+ supported_converse_params
+ + supported_tool_call_params
+ + supported_guardrail_params
+ )
+ inference_params.pop("json_mode", None) # used for handling json_schema
+
+ # keep supported params in 'inference_params', and set all model-specific params in 'additional_request_params'
+ additional_request_params = {
+ k: v for k, v in inference_params.items() if k not in total_supported_params
+ }
+ inference_params = {
+ k: v for k, v in inference_params.items() if k in total_supported_params
+ }
+
+ # Only set the topK value in for models that support it
+ additional_request_params.update(
+ self._handle_top_k_value(model, inference_params)
+ )
+
+ bedrock_tools: List[ToolBlock] = _bedrock_tools_pt(
+ inference_params.pop("tools", [])
+ )
+ bedrock_tool_config: Optional[ToolConfigBlock] = None
+ if len(bedrock_tools) > 0:
+ tool_choice_values: ToolChoiceValuesBlock = inference_params.pop(
+ "tool_choice", None
+ )
+ bedrock_tool_config = ToolConfigBlock(
+ tools=bedrock_tools,
+ )
+ if tool_choice_values is not None:
+ bedrock_tool_config["toolChoice"] = tool_choice_values
+
+ data: CommonRequestObject = {
+ "additionalModelRequestFields": additional_request_params,
+ "system": system_content_blocks,
+ "inferenceConfig": self._transform_inference_params(
+ inference_params=inference_params
+ ),
+ }
+
+ # Guardrail Config
+ guardrail_config: Optional[GuardrailConfigBlock] = None
+ request_guardrails_config = inference_params.pop("guardrailConfig", None)
+ if request_guardrails_config is not None:
+ guardrail_config = GuardrailConfigBlock(**request_guardrails_config)
+ data["guardrailConfig"] = guardrail_config
+
+ # Tool Config
+ if bedrock_tool_config is not None:
+ data["toolConfig"] = bedrock_tool_config
+
+ return data
+
+ async def _async_transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ ) -> RequestObject:
+ messages, system_content_blocks = self._transform_system_message(messages)
+ ## TRANSFORMATION ##
+
+ _data: CommonRequestObject = self._transform_request_helper(
+ model=model,
+ system_content_blocks=system_content_blocks,
+ optional_params=optional_params,
+ messages=messages,
+ )
+
+ bedrock_messages = (
+ await BedrockConverseMessagesProcessor._bedrock_converse_messages_pt_async(
+ messages=messages,
+ model=model,
+ llm_provider="bedrock_converse",
+ user_continue_message=litellm_params.pop("user_continue_message", None),
+ )
+ )
+
+ data: RequestObject = {"messages": bedrock_messages, **_data}
+
+ return data
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ return cast(
+ dict,
+ self._transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ ),
+ )
+
+ def _transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ ) -> RequestObject:
+ messages, system_content_blocks = self._transform_system_message(messages)
+
+ _data: CommonRequestObject = self._transform_request_helper(
+ model=model,
+ system_content_blocks=system_content_blocks,
+ optional_params=optional_params,
+ messages=messages,
+ )
+
+ ## TRANSFORMATION ##
+ bedrock_messages: List[MessageBlock] = _bedrock_converse_messages_pt(
+ messages=messages,
+ model=model,
+ llm_provider="bedrock_converse",
+ user_continue_message=litellm_params.pop("user_continue_message", None),
+ )
+
+ data: RequestObject = {"messages": bedrock_messages, **_data}
+
+ return data
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: Logging,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ return self._transform_response(
+ model=model,
+ response=raw_response,
+ model_response=model_response,
+ stream=optional_params.get("stream", False),
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ api_key=api_key,
+ data=request_data,
+ messages=messages,
+ encoding=encoding,
+ )
+
+ def _transform_reasoning_content(
+ self, reasoning_content_blocks: List[BedrockConverseReasoningContentBlock]
+ ) -> str:
+ """
+ Extract the reasoning text from the reasoning content blocks
+
+ Ensures deepseek reasoning content compatible output.
+ """
+ reasoning_content_str = ""
+ for block in reasoning_content_blocks:
+ if "reasoningText" in block:
+ reasoning_content_str += block["reasoningText"]["text"]
+ return reasoning_content_str
+
+ def _transform_thinking_blocks(
+ self, thinking_blocks: List[BedrockConverseReasoningContentBlock]
+ ) -> List[ChatCompletionThinkingBlock]:
+ """Return a consistent format for thinking blocks between Anthropic and Bedrock."""
+ thinking_blocks_list: List[ChatCompletionThinkingBlock] = []
+ for block in thinking_blocks:
+ if "reasoningText" in block:
+ _thinking_block = ChatCompletionThinkingBlock(type="thinking")
+ _text = block["reasoningText"].get("text")
+ _signature = block["reasoningText"].get("signature")
+ if _text is not None:
+ _thinking_block["thinking"] = _text
+ if _signature is not None:
+ _thinking_block["signature"] = _signature
+ thinking_blocks_list.append(_thinking_block)
+ return thinking_blocks_list
+
+ def _transform_usage(self, usage: ConverseTokenUsageBlock) -> Usage:
+ input_tokens = usage["inputTokens"]
+ output_tokens = usage["outputTokens"]
+ total_tokens = usage["totalTokens"]
+ cache_creation_input_tokens: int = 0
+ cache_read_input_tokens: int = 0
+
+ if "cacheReadInputTokens" in usage:
+ cache_read_input_tokens = usage["cacheReadInputTokens"]
+ input_tokens += cache_read_input_tokens
+ if "cacheWriteInputTokens" in usage:
+ cache_creation_input_tokens = usage["cacheWriteInputTokens"]
+ input_tokens += cache_creation_input_tokens
+
+ prompt_tokens_details = PromptTokensDetailsWrapper(
+ cached_tokens=cache_read_input_tokens
+ )
+ openai_usage = Usage(
+ prompt_tokens=input_tokens,
+ completion_tokens=output_tokens,
+ total_tokens=total_tokens,
+ prompt_tokens_details=prompt_tokens_details,
+ cache_creation_input_tokens=cache_creation_input_tokens,
+ cache_read_input_tokens=cache_read_input_tokens,
+ )
+ return openai_usage
+
+ def _transform_response(
+ self,
+ model: str,
+ response: httpx.Response,
+ model_response: ModelResponse,
+ stream: bool,
+ logging_obj: Optional[Logging],
+ optional_params: dict,
+ api_key: Optional[str],
+ data: Union[dict, str],
+ messages: List,
+ encoding,
+ ) -> ModelResponse:
+ ## LOGGING
+ if logging_obj is not None:
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=response.text,
+ additional_args={"complete_input_dict": data},
+ )
+
+ json_mode: Optional[bool] = optional_params.pop("json_mode", None)
+ ## RESPONSE OBJECT
+ try:
+ completion_response = ConverseResponseBlock(**response.json()) # type: ignore
+ except Exception as e:
+ raise BedrockError(
+ message="Received={}, Error converting to valid response block={}. File an issue if litellm error - https://github.com/BerriAI/litellm/issues".format(
+ response.text, str(e)
+ ),
+ status_code=422,
+ )
+
+ """
+ Bedrock Response Object has optional message block
+
+ completion_response["output"].get("message", None)
+
+ A message block looks like this (Example 1):
+ "output": {
+ "message": {
+ "role": "assistant",
+ "content": [
+ {
+ "text": "Is there anything else you'd like to talk about? Perhaps I can help with some economic questions or provide some information about economic concepts?"
+ }
+ ]
+ }
+ },
+ (Example 2):
+ "output": {
+ "message": {
+ "role": "assistant",
+ "content": [
+ {
+ "toolUse": {
+ "toolUseId": "tooluse_hbTgdi0CSLq_hM4P8csZJA",
+ "name": "top_song",
+ "input": {
+ "sign": "WZPZ"
+ }
+ }
+ }
+ ]
+ }
+ }
+
+ """
+ message: Optional[MessageBlock] = completion_response["output"]["message"]
+ chat_completion_message: ChatCompletionResponseMessage = {"role": "assistant"}
+ content_str = ""
+ tools: List[ChatCompletionToolCallChunk] = []
+ reasoningContentBlocks: Optional[List[BedrockConverseReasoningContentBlock]] = (
+ None
+ )
+
+ if message is not None:
+ for idx, content in enumerate(message["content"]):
+ """
+ - Content is either a tool response or text
+ """
+ if "text" in content:
+ content_str += content["text"]
+ if "toolUse" in content:
+
+ ## check tool name was formatted by litellm
+ _response_tool_name = content["toolUse"]["name"]
+ response_tool_name = get_bedrock_tool_name(
+ response_tool_name=_response_tool_name
+ )
+ _function_chunk = ChatCompletionToolCallFunctionChunk(
+ name=response_tool_name,
+ arguments=json.dumps(content["toolUse"]["input"]),
+ )
+
+ _tool_response_chunk = ChatCompletionToolCallChunk(
+ id=content["toolUse"]["toolUseId"],
+ type="function",
+ function=_function_chunk,
+ index=idx,
+ )
+ tools.append(_tool_response_chunk)
+ if "reasoningContent" in content:
+ if reasoningContentBlocks is None:
+ reasoningContentBlocks = []
+ reasoningContentBlocks.append(content["reasoningContent"])
+
+ if reasoningContentBlocks is not None:
+ chat_completion_message["provider_specific_fields"] = {
+ "reasoningContentBlocks": reasoningContentBlocks,
+ }
+ chat_completion_message["reasoning_content"] = (
+ self._transform_reasoning_content(reasoningContentBlocks)
+ )
+ chat_completion_message["thinking_blocks"] = (
+ self._transform_thinking_blocks(reasoningContentBlocks)
+ )
+ chat_completion_message["content"] = content_str
+ if json_mode is True and tools is not None and len(tools) == 1:
+ # to support 'json_schema' logic on bedrock models
+ json_mode_content_str: Optional[str] = tools[0]["function"].get("arguments")
+ if json_mode_content_str is not None:
+ chat_completion_message["content"] = json_mode_content_str
+ else:
+ chat_completion_message["tool_calls"] = tools
+
+ ## CALCULATING USAGE - bedrock returns usage in the headers
+ usage = self._transform_usage(completion_response["usage"])
+
+ model_response.choices = [
+ litellm.Choices(
+ finish_reason=map_finish_reason(completion_response["stopReason"]),
+ index=0,
+ message=litellm.Message(**chat_completion_message),
+ )
+ ]
+ model_response.created = int(time.time())
+ model_response.model = model
+
+ setattr(model_response, "usage", usage)
+
+ # Add "trace" from Bedrock guardrails - if user has opted in to returning it
+ if "trace" in completion_response:
+ setattr(model_response, "trace", completion_response["trace"])
+
+ return model_response
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return BedrockError(
+ message=error_message,
+ status_code=status_code,
+ headers=headers,
+ )
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ if api_key:
+ headers["Authorization"] = f"Bearer {api_key}"
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_handler.py
new file mode 100644
index 00000000..84ac592c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_handler.py
@@ -0,0 +1,1660 @@
+"""
+TODO: DELETE FILE. Bedrock LLM is no longer used. Goto `litellm/llms/bedrock/chat/invoke_transformations/base_invoke_transformation.py`
+"""
+
+import copy
+import json
+import time
+import types
+import urllib.parse
+import uuid
+from functools import partial
+from typing import (
+ Any,
+ AsyncIterator,
+ Callable,
+ Iterator,
+ List,
+ Optional,
+ Tuple,
+ Union,
+ cast,
+ get_args,
+)
+
+import httpx # type: ignore
+
+import litellm
+from litellm import verbose_logger
+from litellm.caching.caching import InMemoryCache
+from litellm.litellm_core_utils.core_helpers import map_finish_reason
+from litellm.litellm_core_utils.litellm_logging import Logging
+from litellm.litellm_core_utils.logging_utils import track_llm_api_timing
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ cohere_message_pt,
+ construct_tool_use_system_prompt,
+ contains_tag,
+ custom_prompt,
+ extract_between_tags,
+ parse_xml_params,
+ prompt_factory,
+)
+from litellm.llms.anthropic.chat.handler import (
+ ModelResponseIterator as AnthropicModelResponseIterator,
+)
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.types.llms.bedrock import *
+from litellm.types.llms.openai import (
+ ChatCompletionThinkingBlock,
+ ChatCompletionToolCallChunk,
+ ChatCompletionToolCallFunctionChunk,
+ ChatCompletionUsageBlock,
+)
+from litellm.types.utils import ChatCompletionMessageToolCall, Choices, Delta
+from litellm.types.utils import GenericStreamingChunk as GChunk
+from litellm.types.utils import (
+ ModelResponse,
+ ModelResponseStream,
+ StreamingChoices,
+ Usage,
+)
+from litellm.utils import CustomStreamWrapper, get_secret
+
+from ..base_aws_llm import BaseAWSLLM
+from ..common_utils import BedrockError, ModelResponseIterator, get_bedrock_tool_name
+
+_response_stream_shape_cache = None
+bedrock_tool_name_mappings: InMemoryCache = InMemoryCache(
+ max_size_in_memory=50, default_ttl=600
+)
+from litellm.llms.bedrock.chat.converse_transformation import AmazonConverseConfig
+
+converse_config = AmazonConverseConfig()
+
+
+class AmazonCohereChatConfig:
+ """
+ Reference - https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-cohere-command-r-plus.html
+ """
+
+ documents: Optional[List[Document]] = None
+ search_queries_only: Optional[bool] = None
+ preamble: Optional[str] = None
+ max_tokens: Optional[int] = None
+ temperature: Optional[float] = None
+ p: Optional[float] = None
+ k: Optional[float] = None
+ prompt_truncation: Optional[str] = None
+ frequency_penalty: Optional[float] = None
+ presence_penalty: Optional[float] = None
+ seed: Optional[int] = None
+ return_prompt: Optional[bool] = None
+ stop_sequences: Optional[List[str]] = None
+ raw_prompting: Optional[bool] = None
+
+ def __init__(
+ self,
+ documents: Optional[List[Document]] = None,
+ search_queries_only: Optional[bool] = None,
+ preamble: Optional[str] = None,
+ max_tokens: Optional[int] = None,
+ temperature: Optional[float] = None,
+ p: Optional[float] = None,
+ k: Optional[float] = None,
+ prompt_truncation: Optional[str] = None,
+ frequency_penalty: Optional[float] = None,
+ presence_penalty: Optional[float] = None,
+ seed: Optional[int] = None,
+ return_prompt: Optional[bool] = None,
+ stop_sequences: Optional[str] = None,
+ raw_prompting: Optional[bool] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self) -> List[str]:
+ return [
+ "max_tokens",
+ "max_completion_tokens",
+ "stream",
+ "stop",
+ "temperature",
+ "top_p",
+ "frequency_penalty",
+ "presence_penalty",
+ "seed",
+ "stop",
+ "tools",
+ "tool_choice",
+ ]
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "max_tokens" or param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "stop":
+ if isinstance(value, str):
+ value = [value]
+ optional_params["stop_sequences"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["p"] = value
+ if param == "frequency_penalty":
+ optional_params["frequency_penalty"] = value
+ if param == "presence_penalty":
+ optional_params["presence_penalty"] = value
+ if "seed":
+ optional_params["seed"] = value
+ return optional_params
+
+
+async def make_call(
+ client: Optional[AsyncHTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj: Logging,
+ fake_stream: bool = False,
+ json_mode: Optional[bool] = False,
+ bedrock_invoke_provider: Optional[litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL] = None,
+):
+ try:
+ if client is None:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.BEDROCK
+ ) # Create a new client if none provided
+
+ response = await client.post(
+ api_base,
+ headers=headers,
+ data=data,
+ stream=not fake_stream,
+ logging_obj=logging_obj,
+ )
+
+ if response.status_code != 200:
+ raise BedrockError(status_code=response.status_code, message=response.text)
+
+ if fake_stream:
+ model_response: (
+ ModelResponse
+ ) = litellm.AmazonConverseConfig()._transform_response(
+ model=model,
+ response=response,
+ model_response=litellm.ModelResponse(),
+ stream=True,
+ logging_obj=logging_obj,
+ optional_params={},
+ api_key="",
+ data=data,
+ messages=messages,
+ encoding=litellm.encoding,
+ ) # type: ignore
+ completion_stream: Any = MockResponseIterator(
+ model_response=model_response, json_mode=json_mode
+ )
+ elif bedrock_invoke_provider == "anthropic":
+ decoder: AWSEventStreamDecoder = AmazonAnthropicClaudeStreamDecoder(
+ model=model,
+ sync_stream=False,
+ json_mode=json_mode,
+ )
+ completion_stream = decoder.aiter_bytes(
+ response.aiter_bytes(chunk_size=1024)
+ )
+ elif bedrock_invoke_provider == "deepseek_r1":
+ decoder = AmazonDeepSeekR1StreamDecoder(
+ model=model,
+ sync_stream=False,
+ )
+ completion_stream = decoder.aiter_bytes(
+ response.aiter_bytes(chunk_size=1024)
+ )
+ else:
+ decoder = AWSEventStreamDecoder(model=model)
+ completion_stream = decoder.aiter_bytes(
+ response.aiter_bytes(chunk_size=1024)
+ )
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+ except Exception as e:
+ raise BedrockError(status_code=500, message=str(e))
+
+
+def make_sync_call(
+ client: Optional[HTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj: Logging,
+ fake_stream: bool = False,
+ json_mode: Optional[bool] = False,
+ bedrock_invoke_provider: Optional[litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL] = None,
+):
+ try:
+ if client is None:
+ client = _get_httpx_client(params={})
+
+ response = client.post(
+ api_base,
+ headers=headers,
+ data=data,
+ stream=not fake_stream,
+ logging_obj=logging_obj,
+ )
+
+ if response.status_code != 200:
+ raise BedrockError(status_code=response.status_code, message=response.text)
+
+ if fake_stream:
+ model_response: (
+ ModelResponse
+ ) = litellm.AmazonConverseConfig()._transform_response(
+ model=model,
+ response=response,
+ model_response=litellm.ModelResponse(),
+ stream=True,
+ logging_obj=logging_obj,
+ optional_params={},
+ api_key="",
+ data=data,
+ messages=messages,
+ encoding=litellm.encoding,
+ ) # type: ignore
+ completion_stream: Any = MockResponseIterator(
+ model_response=model_response, json_mode=json_mode
+ )
+ elif bedrock_invoke_provider == "anthropic":
+ decoder: AWSEventStreamDecoder = AmazonAnthropicClaudeStreamDecoder(
+ model=model,
+ sync_stream=True,
+ json_mode=json_mode,
+ )
+ completion_stream = decoder.iter_bytes(response.iter_bytes(chunk_size=1024))
+ elif bedrock_invoke_provider == "deepseek_r1":
+ decoder = AmazonDeepSeekR1StreamDecoder(
+ model=model,
+ sync_stream=True,
+ )
+ completion_stream = decoder.iter_bytes(response.iter_bytes(chunk_size=1024))
+ else:
+ decoder = AWSEventStreamDecoder(model=model)
+ completion_stream = decoder.iter_bytes(response.iter_bytes(chunk_size=1024))
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+ except Exception as e:
+ raise BedrockError(status_code=500, message=str(e))
+
+
+class BedrockLLM(BaseAWSLLM):
+ """
+ Example call
+
+ ```
+ curl --location --request POST 'https://bedrock-runtime.{aws_region_name}.amazonaws.com/model/{bedrock_model_name}/invoke' \
+ --header 'Content-Type: application/json' \
+ --header 'Accept: application/json' \
+ --user "$AWS_ACCESS_KEY_ID":"$AWS_SECRET_ACCESS_KEY" \
+ --aws-sigv4 "aws:amz:us-east-1:bedrock" \
+ --data-raw '{
+ "prompt": "Hi",
+ "temperature": 0,
+ "p": 0.9,
+ "max_tokens": 4096
+ }'
+ ```
+ """
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def convert_messages_to_prompt(
+ self, model, messages, provider, custom_prompt_dict
+ ) -> Tuple[str, Optional[list]]:
+ # handle anthropic prompts and amazon titan prompts
+ prompt = ""
+ chat_history: Optional[list] = None
+ ## CUSTOM PROMPT
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details.get(
+ "initial_prompt_value", ""
+ ),
+ final_prompt_value=model_prompt_details.get("final_prompt_value", ""),
+ messages=messages,
+ )
+ return prompt, None
+ ## ELSE
+ if provider == "anthropic" or provider == "amazon":
+ prompt = prompt_factory(
+ model=model, messages=messages, custom_llm_provider="bedrock"
+ )
+ elif provider == "mistral":
+ prompt = prompt_factory(
+ model=model, messages=messages, custom_llm_provider="bedrock"
+ )
+ elif provider == "meta" or provider == "llama":
+ prompt = prompt_factory(
+ model=model, messages=messages, custom_llm_provider="bedrock"
+ )
+ elif provider == "cohere":
+ prompt, chat_history = cohere_message_pt(messages=messages)
+ else:
+ prompt = ""
+ for message in messages:
+ if "role" in message:
+ if message["role"] == "user":
+ prompt += f"{message['content']}"
+ else:
+ prompt += f"{message['content']}"
+ else:
+ prompt += f"{message['content']}"
+ return prompt, chat_history # type: ignore
+
+ def process_response( # noqa: PLR0915
+ self,
+ model: str,
+ response: httpx.Response,
+ model_response: ModelResponse,
+ stream: Optional[bool],
+ logging_obj: Logging,
+ optional_params: dict,
+ api_key: str,
+ data: Union[dict, str],
+ messages: List,
+ print_verbose,
+ encoding,
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+ provider = self.get_bedrock_invoke_provider(model)
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=response.text,
+ additional_args={"complete_input_dict": data},
+ )
+ print_verbose(f"raw model_response: {response.text}")
+
+ ## RESPONSE OBJECT
+ try:
+ completion_response = response.json()
+ except Exception:
+ raise BedrockError(message=response.text, status_code=422)
+
+ outputText: Optional[str] = None
+ try:
+ if provider == "cohere":
+ if "text" in completion_response:
+ outputText = completion_response["text"] # type: ignore
+ elif "generations" in completion_response:
+ outputText = completion_response["generations"][0]["text"]
+ model_response.choices[0].finish_reason = map_finish_reason(
+ completion_response["generations"][0]["finish_reason"]
+ )
+ elif provider == "anthropic":
+ if model.startswith("anthropic.claude-3"):
+ json_schemas: dict = {}
+ _is_function_call = False
+ ## Handle Tool Calling
+ if "tools" in optional_params:
+ _is_function_call = True
+ for tool in optional_params["tools"]:
+ json_schemas[tool["function"]["name"]] = tool[
+ "function"
+ ].get("parameters", None)
+ outputText = completion_response.get("content")[0].get("text", None)
+ if outputText is not None and contains_tag(
+ "invoke", outputText
+ ): # OUTPUT PARSE FUNCTION CALL
+ function_name = extract_between_tags("tool_name", outputText)[0]
+ function_arguments_str = extract_between_tags(
+ "invoke", outputText
+ )[0].strip()
+ function_arguments_str = (
+ f"<invoke>{function_arguments_str}</invoke>"
+ )
+ function_arguments = parse_xml_params(
+ function_arguments_str,
+ json_schema=json_schemas.get(
+ function_name, None
+ ), # check if we have a json schema for this function name)
+ )
+ _message = litellm.Message(
+ tool_calls=[
+ {
+ "id": f"call_{uuid.uuid4()}",
+ "type": "function",
+ "function": {
+ "name": function_name,
+ "arguments": json.dumps(function_arguments),
+ },
+ }
+ ],
+ content=None,
+ )
+ model_response.choices[0].message = _message # type: ignore
+ model_response._hidden_params["original_response"] = (
+ outputText # allow user to access raw anthropic tool calling response
+ )
+ if (
+ _is_function_call is True
+ and stream is not None
+ and stream is True
+ ):
+ print_verbose(
+ "INSIDE BEDROCK STREAMING TOOL CALLING CONDITION BLOCK"
+ )
+ # return an iterator
+ streaming_model_response = ModelResponse(stream=True)
+ streaming_model_response.choices[0].finish_reason = getattr(
+ model_response.choices[0], "finish_reason", "stop"
+ )
+ # streaming_model_response.choices = [litellm.utils.StreamingChoices()]
+ streaming_choice = litellm.utils.StreamingChoices()
+ streaming_choice.index = model_response.choices[0].index
+ _tool_calls = []
+ print_verbose(
+ f"type of model_response.choices[0]: {type(model_response.choices[0])}"
+ )
+ print_verbose(
+ f"type of streaming_choice: {type(streaming_choice)}"
+ )
+ if isinstance(model_response.choices[0], litellm.Choices):
+ if getattr(
+ model_response.choices[0].message, "tool_calls", None
+ ) is not None and isinstance(
+ model_response.choices[0].message.tool_calls, list
+ ):
+ for tool_call in model_response.choices[
+ 0
+ ].message.tool_calls:
+ _tool_call = {**tool_call.dict(), "index": 0}
+ _tool_calls.append(_tool_call)
+ delta_obj = Delta(
+ content=getattr(
+ model_response.choices[0].message, "content", None
+ ),
+ role=model_response.choices[0].message.role,
+ tool_calls=_tool_calls,
+ )
+ streaming_choice.delta = delta_obj
+ streaming_model_response.choices = [streaming_choice]
+ completion_stream = ModelResponseIterator(
+ model_response=streaming_model_response
+ )
+ print_verbose(
+ "Returns anthropic CustomStreamWrapper with 'cached_response' streaming object"
+ )
+ return litellm.CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="cached_response",
+ logging_obj=logging_obj,
+ )
+
+ model_response.choices[0].finish_reason = map_finish_reason(
+ completion_response.get("stop_reason", "")
+ )
+ _usage = litellm.Usage(
+ prompt_tokens=completion_response["usage"]["input_tokens"],
+ completion_tokens=completion_response["usage"]["output_tokens"],
+ total_tokens=completion_response["usage"]["input_tokens"]
+ + completion_response["usage"]["output_tokens"],
+ )
+ setattr(model_response, "usage", _usage)
+ else:
+ outputText = completion_response["completion"]
+
+ model_response.choices[0].finish_reason = completion_response[
+ "stop_reason"
+ ]
+ elif provider == "ai21":
+ outputText = (
+ completion_response.get("completions")[0].get("data").get("text")
+ )
+ elif provider == "meta" or provider == "llama":
+ outputText = completion_response["generation"]
+ elif provider == "mistral":
+ outputText = completion_response["outputs"][0]["text"]
+ model_response.choices[0].finish_reason = completion_response[
+ "outputs"
+ ][0]["stop_reason"]
+ else: # amazon titan
+ outputText = completion_response.get("results")[0].get("outputText")
+ except Exception as e:
+ raise BedrockError(
+ message="Error processing={}, Received error={}".format(
+ response.text, str(e)
+ ),
+ status_code=422,
+ )
+
+ try:
+ if (
+ outputText is not None
+ and len(outputText) > 0
+ and hasattr(model_response.choices[0], "message")
+ and getattr(model_response.choices[0].message, "tool_calls", None) # type: ignore
+ is None
+ ):
+ model_response.choices[0].message.content = outputText # type: ignore
+ elif (
+ hasattr(model_response.choices[0], "message")
+ and getattr(model_response.choices[0].message, "tool_calls", None) # type: ignore
+ is not None
+ ):
+ pass
+ else:
+ raise Exception()
+ except Exception as e:
+ raise BedrockError(
+ message="Error parsing received text={}.\nError-{}".format(
+ outputText, str(e)
+ ),
+ status_code=response.status_code,
+ )
+
+ if stream and provider == "ai21":
+ streaming_model_response = ModelResponse(stream=True)
+ streaming_model_response.choices[0].finish_reason = model_response.choices[ # type: ignore
+ 0
+ ].finish_reason
+ # streaming_model_response.choices = [litellm.utils.StreamingChoices()]
+ streaming_choice = litellm.utils.StreamingChoices()
+ streaming_choice.index = model_response.choices[0].index
+ delta_obj = litellm.utils.Delta(
+ content=getattr(model_response.choices[0].message, "content", None), # type: ignore
+ role=model_response.choices[0].message.role, # type: ignore
+ )
+ streaming_choice.delta = delta_obj
+ streaming_model_response.choices = [streaming_choice]
+ mri = ModelResponseIterator(model_response=streaming_model_response)
+ return CustomStreamWrapper(
+ completion_stream=mri,
+ model=model,
+ custom_llm_provider="cached_response",
+ logging_obj=logging_obj,
+ )
+
+ ## CALCULATING USAGE - bedrock returns usage in the headers
+ bedrock_input_tokens = response.headers.get(
+ "x-amzn-bedrock-input-token-count", None
+ )
+ bedrock_output_tokens = response.headers.get(
+ "x-amzn-bedrock-output-token-count", None
+ )
+
+ prompt_tokens = int(
+ bedrock_input_tokens or litellm.token_counter(messages=messages)
+ )
+
+ completion_tokens = int(
+ bedrock_output_tokens
+ or litellm.token_counter(
+ text=model_response.choices[0].message.content, # type: ignore
+ count_response_tokens=True,
+ )
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+
+ return model_response
+
+ def encode_model_id(self, model_id: str) -> str:
+ """
+ Double encode the model ID to ensure it matches the expected double-encoded format.
+ Args:
+ model_id (str): The model ID to encode.
+ Returns:
+ str: The double-encoded model ID.
+ """
+ return urllib.parse.quote(model_id, safe="")
+
+ def completion( # noqa: PLR0915
+ self,
+ model: str,
+ messages: list,
+ api_base: Optional[str],
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj: Logging,
+ optional_params: dict,
+ acompletion: bool,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ litellm_params=None,
+ logger_fn=None,
+ extra_headers: Optional[dict] = None,
+ client: Optional[Union[AsyncHTTPHandler, HTTPHandler]] = None,
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ from botocore.credentials import Credentials
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+
+ ## SETUP ##
+ stream = optional_params.pop("stream", None)
+
+ provider = self.get_bedrock_invoke_provider(model)
+ modelId = self.get_bedrock_model_id(
+ model=model,
+ provider=provider,
+ optional_params=optional_params,
+ )
+
+ ## CREDENTIALS ##
+ # pop aws_secret_access_key, aws_access_key_id, aws_session_token, aws_region_name from kwargs, since completion calls fail with them
+ aws_secret_access_key = optional_params.pop("aws_secret_access_key", None)
+ aws_access_key_id = optional_params.pop("aws_access_key_id", None)
+ aws_session_token = optional_params.pop("aws_session_token", None)
+ aws_region_name = optional_params.pop("aws_region_name", None)
+ aws_role_name = optional_params.pop("aws_role_name", None)
+ aws_session_name = optional_params.pop("aws_session_name", None)
+ aws_profile_name = optional_params.pop("aws_profile_name", None)
+ aws_bedrock_runtime_endpoint = optional_params.pop(
+ "aws_bedrock_runtime_endpoint", None
+ ) # https://bedrock-runtime.{region_name}.amazonaws.com
+ aws_web_identity_token = optional_params.pop("aws_web_identity_token", None)
+ aws_sts_endpoint = optional_params.pop("aws_sts_endpoint", None)
+
+ ### SET REGION NAME ###
+ if aws_region_name is None:
+ # check env #
+ litellm_aws_region_name = get_secret("AWS_REGION_NAME", None)
+
+ if litellm_aws_region_name is not None and isinstance(
+ litellm_aws_region_name, str
+ ):
+ aws_region_name = litellm_aws_region_name
+
+ standard_aws_region_name = get_secret("AWS_REGION", None)
+ if standard_aws_region_name is not None and isinstance(
+ standard_aws_region_name, str
+ ):
+ aws_region_name = standard_aws_region_name
+
+ if aws_region_name is None:
+ aws_region_name = "us-west-2"
+
+ credentials: Credentials = self.get_credentials(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_session_token=aws_session_token,
+ aws_region_name=aws_region_name,
+ aws_session_name=aws_session_name,
+ aws_profile_name=aws_profile_name,
+ aws_role_name=aws_role_name,
+ aws_web_identity_token=aws_web_identity_token,
+ aws_sts_endpoint=aws_sts_endpoint,
+ )
+
+ ### SET RUNTIME ENDPOINT ###
+ endpoint_url, proxy_endpoint_url = self.get_runtime_endpoint(
+ api_base=api_base,
+ aws_bedrock_runtime_endpoint=aws_bedrock_runtime_endpoint,
+ aws_region_name=aws_region_name,
+ )
+
+ if (stream is not None and stream is True) and provider != "ai21":
+ endpoint_url = f"{endpoint_url}/model/{modelId}/invoke-with-response-stream"
+ proxy_endpoint_url = (
+ f"{proxy_endpoint_url}/model/{modelId}/invoke-with-response-stream"
+ )
+ else:
+ endpoint_url = f"{endpoint_url}/model/{modelId}/invoke"
+ proxy_endpoint_url = f"{proxy_endpoint_url}/model/{modelId}/invoke"
+
+ sigv4 = SigV4Auth(credentials, "bedrock", aws_region_name)
+
+ prompt, chat_history = self.convert_messages_to_prompt(
+ model, messages, provider, custom_prompt_dict
+ )
+ inference_params = copy.deepcopy(optional_params)
+ json_schemas: dict = {}
+ if provider == "cohere":
+ if model.startswith("cohere.command-r"):
+ ## LOAD CONFIG
+ config = litellm.AmazonCohereChatConfig().get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ _data = {"message": prompt, **inference_params}
+ if chat_history is not None:
+ _data["chat_history"] = chat_history
+ data = json.dumps(_data)
+ else:
+ ## LOAD CONFIG
+ config = litellm.AmazonCohereConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ if stream is True:
+ inference_params["stream"] = (
+ True # cohere requires stream = True in inference params
+ )
+ data = json.dumps({"prompt": prompt, **inference_params})
+ elif provider == "anthropic":
+ if model.startswith("anthropic.claude-3"):
+ # Separate system prompt from rest of message
+ system_prompt_idx: list[int] = []
+ system_messages: list[str] = []
+ for idx, message in enumerate(messages):
+ if message["role"] == "system":
+ system_messages.append(message["content"])
+ system_prompt_idx.append(idx)
+ if len(system_prompt_idx) > 0:
+ inference_params["system"] = "\n".join(system_messages)
+ messages = [
+ i for j, i in enumerate(messages) if j not in system_prompt_idx
+ ]
+ # Format rest of message according to anthropic guidelines
+ messages = prompt_factory(
+ model=model, messages=messages, custom_llm_provider="anthropic_xml"
+ ) # type: ignore
+ ## LOAD CONFIG
+ config = litellm.AmazonAnthropicClaude3Config.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ ## Handle Tool Calling
+ if "tools" in inference_params:
+ _is_function_call = True
+ for tool in inference_params["tools"]:
+ json_schemas[tool["function"]["name"]] = tool["function"].get(
+ "parameters", None
+ )
+ tool_calling_system_prompt = construct_tool_use_system_prompt(
+ tools=inference_params["tools"]
+ )
+ inference_params["system"] = (
+ inference_params.get("system", "\n")
+ + tool_calling_system_prompt
+ ) # add the anthropic tool calling prompt to the system prompt
+ inference_params.pop("tools")
+ data = json.dumps({"messages": messages, **inference_params})
+ else:
+ ## LOAD CONFIG
+ config = litellm.AmazonAnthropicConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ data = json.dumps({"prompt": prompt, **inference_params})
+ elif provider == "ai21":
+ ## LOAD CONFIG
+ config = litellm.AmazonAI21Config.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ data = json.dumps({"prompt": prompt, **inference_params})
+ elif provider == "mistral":
+ ## LOAD CONFIG
+ config = litellm.AmazonMistralConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > amazon_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ data = json.dumps({"prompt": prompt, **inference_params})
+ elif provider == "amazon": # amazon titan
+ ## LOAD CONFIG
+ config = litellm.AmazonTitanConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > amazon_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ data = json.dumps(
+ {
+ "inputText": prompt,
+ "textGenerationConfig": inference_params,
+ }
+ )
+ elif provider == "meta" or provider == "llama":
+ ## LOAD CONFIG
+ config = litellm.AmazonLlamaConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ data = json.dumps({"prompt": prompt, **inference_params})
+ else:
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": inference_params,
+ },
+ )
+ raise BedrockError(
+ status_code=404,
+ message="Bedrock Invoke HTTPX: Unknown provider={}, model={}. Try calling via converse route - `bedrock/converse/<model>`.".format(
+ provider, model
+ ),
+ )
+
+ ## COMPLETION CALL
+
+ headers = {"Content-Type": "application/json"}
+ if extra_headers is not None:
+ headers = {"Content-Type": "application/json", **extra_headers}
+ request = AWSRequest(
+ method="POST", url=endpoint_url, data=data, headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+ prepped = request.prepare()
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": proxy_endpoint_url,
+ "headers": prepped.headers,
+ },
+ )
+
+ ### ROUTING (ASYNC, STREAMING, SYNC)
+ if acompletion:
+ if isinstance(client, HTTPHandler):
+ client = None
+ if stream is True and provider != "ai21":
+ return self.async_streaming(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=proxy_endpoint_url,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=True,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=prepped.headers,
+ timeout=timeout,
+ client=client,
+ ) # type: ignore
+ ### ASYNC COMPLETION
+ return self.async_completion(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=proxy_endpoint_url,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=stream, # type: ignore
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=prepped.headers,
+ timeout=timeout,
+ client=client,
+ ) # type: ignore
+
+ if client is None or isinstance(client, AsyncHTTPHandler):
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ self.client = _get_httpx_client(_params) # type: ignore
+ else:
+ self.client = client
+ if (stream is not None and stream is True) and provider != "ai21":
+ response = self.client.post(
+ url=proxy_endpoint_url,
+ headers=prepped.headers, # type: ignore
+ data=data,
+ stream=stream,
+ logging_obj=logging_obj,
+ )
+
+ if response.status_code != 200:
+ raise BedrockError(
+ status_code=response.status_code, message=str(response.read())
+ )
+
+ decoder = AWSEventStreamDecoder(model=model)
+
+ completion_stream = decoder.iter_bytes(response.iter_bytes(chunk_size=1024))
+ streaming_response = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="bedrock",
+ logging_obj=logging_obj,
+ )
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=streaming_response,
+ additional_args={"complete_input_dict": data},
+ )
+ return streaming_response
+
+ try:
+ response = self.client.post(
+ url=proxy_endpoint_url,
+ headers=dict(prepped.headers),
+ data=data,
+ logging_obj=logging_obj,
+ )
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ return self.process_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=stream,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ api_key="",
+ data=data,
+ messages=messages,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ )
+
+ async def async_completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ data: str,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ encoding,
+ logging_obj: Logging,
+ stream,
+ optional_params: dict,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ client = get_async_httpx_client(params=_params, llm_provider=litellm.LlmProviders.BEDROCK) # type: ignore
+ else:
+ client = client # type: ignore
+
+ try:
+ response = await client.post(
+ api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ )
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ return self.process_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=stream if isinstance(stream, bool) else False,
+ logging_obj=logging_obj,
+ api_key="",
+ data=data,
+ messages=messages,
+ print_verbose=print_verbose,
+ optional_params=optional_params,
+ encoding=encoding,
+ )
+
+ @track_llm_api_timing() # for streaming, we need to instrument the function calling the wrapper
+ async def async_streaming(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ data: str,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ encoding,
+ logging_obj: Logging,
+ stream,
+ optional_params: dict,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> CustomStreamWrapper:
+ # The call is not made here; instead, we prepare the necessary objects for the stream.
+
+ streaming_response = CustomStreamWrapper(
+ completion_stream=None,
+ make_call=partial(
+ make_call,
+ client=client,
+ api_base=api_base,
+ headers=headers,
+ data=data, # type: ignore
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ fake_stream=True if "ai21" in api_base else False,
+ ),
+ model=model,
+ custom_llm_provider="bedrock",
+ logging_obj=logging_obj,
+ )
+ return streaming_response
+
+ @staticmethod
+ def _get_provider_from_model_path(
+ model_path: str,
+ ) -> Optional[litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL]:
+ """
+ Helper function to get the provider from a model path with format: provider/model-name
+
+ Args:
+ model_path (str): The model path (e.g., 'llama/arn:aws:bedrock:us-east-1:086734376398:imported-model/r4c4kewx2s0n' or 'anthropic/model-name')
+
+ Returns:
+ Optional[str]: The provider name, or None if no valid provider found
+ """
+ parts = model_path.split("/")
+ if len(parts) >= 1:
+ provider = parts[0]
+ if provider in get_args(litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL):
+ return cast(litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL, provider)
+ return None
+
+ def get_bedrock_model_id(
+ self,
+ optional_params: dict,
+ provider: Optional[litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL],
+ model: str,
+ ) -> str:
+ modelId = optional_params.pop("model_id", None)
+ if modelId is not None:
+ modelId = self.encode_model_id(model_id=modelId)
+ else:
+ modelId = model
+
+ if provider == "llama" and "llama/" in modelId:
+ modelId = self._get_model_id_for_llama_like_model(modelId)
+
+ return modelId
+
+ def _get_model_id_for_llama_like_model(
+ self,
+ model: str,
+ ) -> str:
+ """
+ Remove `llama` from modelID since `llama` is simply a spec to follow for custom bedrock models
+ """
+ model_id = model.replace("llama/", "")
+ return self.encode_model_id(model_id=model_id)
+
+
+def get_response_stream_shape():
+ global _response_stream_shape_cache
+ if _response_stream_shape_cache is None:
+
+ from botocore.loaders import Loader
+ from botocore.model import ServiceModel
+
+ loader = Loader()
+ bedrock_service_dict = loader.load_service_model("bedrock-runtime", "service-2")
+ bedrock_service_model = ServiceModel(bedrock_service_dict)
+ _response_stream_shape_cache = bedrock_service_model.shape_for("ResponseStream")
+
+ return _response_stream_shape_cache
+
+
+class AWSEventStreamDecoder:
+ def __init__(self, model: str) -> None:
+ from botocore.parsers import EventStreamJSONParser
+
+ self.model = model
+ self.parser = EventStreamJSONParser()
+ self.content_blocks: List[ContentBlockDeltaEvent] = []
+
+ def check_empty_tool_call_args(self) -> bool:
+ """
+ Check if the tool call block so far has been an empty string
+ """
+ args = ""
+ # if text content block -> skip
+ if len(self.content_blocks) == 0:
+ return False
+
+ if (
+ "toolUse" not in self.content_blocks[0]
+ ): # be explicit - only do this if tool use block, as this is to prevent json decoding errors
+ return False
+
+ for block in self.content_blocks:
+ if "toolUse" in block:
+ args += block["toolUse"]["input"]
+
+ if len(args) == 0:
+ return True
+ return False
+
+ def extract_reasoning_content_str(
+ self, reasoning_content_block: BedrockConverseReasoningContentBlockDelta
+ ) -> Optional[str]:
+ if "text" in reasoning_content_block:
+ return reasoning_content_block["text"]
+ return None
+
+ def translate_thinking_blocks(
+ self, thinking_block: BedrockConverseReasoningContentBlockDelta
+ ) -> Optional[List[ChatCompletionThinkingBlock]]:
+ """
+ Translate the thinking blocks to a string
+ """
+
+ thinking_blocks_list: List[ChatCompletionThinkingBlock] = []
+ _thinking_block = ChatCompletionThinkingBlock(type="thinking")
+ if "text" in thinking_block:
+ _thinking_block["thinking"] = thinking_block["text"]
+ elif "signature" in thinking_block:
+ _thinking_block["signature"] = thinking_block["signature"]
+ _thinking_block["thinking"] = "" # consistent with anthropic response
+ thinking_blocks_list.append(_thinking_block)
+ return thinking_blocks_list
+
+ def converse_chunk_parser(self, chunk_data: dict) -> ModelResponseStream:
+ try:
+ verbose_logger.debug("\n\nRaw Chunk: {}\n\n".format(chunk_data))
+ chunk_data["usage"] = {
+ "inputTokens": 3,
+ "outputTokens": 392,
+ "totalTokens": 2191,
+ "cacheReadInputTokens": 1796,
+ "cacheWriteInputTokens": 0,
+ }
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ finish_reason = ""
+ usage: Optional[Usage] = None
+ provider_specific_fields: dict = {}
+ reasoning_content: Optional[str] = None
+ thinking_blocks: Optional[List[ChatCompletionThinkingBlock]] = None
+
+ index = int(chunk_data.get("contentBlockIndex", 0))
+ if "start" in chunk_data:
+ start_obj = ContentBlockStartEvent(**chunk_data["start"])
+ self.content_blocks = [] # reset
+ if (
+ start_obj is not None
+ and "toolUse" in start_obj
+ and start_obj["toolUse"] is not None
+ ):
+ ## check tool name was formatted by litellm
+ _response_tool_name = start_obj["toolUse"]["name"]
+ response_tool_name = get_bedrock_tool_name(
+ response_tool_name=_response_tool_name
+ )
+ tool_use = {
+ "id": start_obj["toolUse"]["toolUseId"],
+ "type": "function",
+ "function": {
+ "name": response_tool_name,
+ "arguments": "",
+ },
+ "index": index,
+ }
+ elif "delta" in chunk_data:
+ delta_obj = ContentBlockDeltaEvent(**chunk_data["delta"])
+ self.content_blocks.append(delta_obj)
+ if "text" in delta_obj:
+ text = delta_obj["text"]
+ elif "toolUse" in delta_obj:
+ tool_use = {
+ "id": None,
+ "type": "function",
+ "function": {
+ "name": None,
+ "arguments": delta_obj["toolUse"]["input"],
+ },
+ "index": index,
+ }
+ elif "reasoningContent" in delta_obj:
+ provider_specific_fields = {
+ "reasoningContent": delta_obj["reasoningContent"],
+ }
+ reasoning_content = self.extract_reasoning_content_str(
+ delta_obj["reasoningContent"]
+ )
+ thinking_blocks = self.translate_thinking_blocks(
+ delta_obj["reasoningContent"]
+ )
+ if (
+ thinking_blocks
+ and len(thinking_blocks) > 0
+ and reasoning_content is None
+ ):
+ reasoning_content = "" # set to non-empty string to ensure consistency with Anthropic
+ elif (
+ "contentBlockIndex" in chunk_data
+ ): # stop block, no 'start' or 'delta' object
+ is_empty = self.check_empty_tool_call_args()
+ if is_empty:
+ tool_use = {
+ "id": None,
+ "type": "function",
+ "function": {
+ "name": None,
+ "arguments": "{}",
+ },
+ "index": chunk_data["contentBlockIndex"],
+ }
+ elif "stopReason" in chunk_data:
+ finish_reason = map_finish_reason(chunk_data.get("stopReason", "stop"))
+ elif "usage" in chunk_data:
+ usage = converse_config._transform_usage(chunk_data.get("usage", {}))
+
+ model_response_provider_specific_fields = {}
+ if "trace" in chunk_data:
+ trace = chunk_data.get("trace")
+ model_response_provider_specific_fields["trace"] = trace
+ response = ModelResponseStream(
+ choices=[
+ StreamingChoices(
+ finish_reason=finish_reason,
+ index=index,
+ delta=Delta(
+ content=text,
+ role="assistant",
+ tool_calls=[tool_use] if tool_use else None,
+ provider_specific_fields=(
+ provider_specific_fields
+ if provider_specific_fields
+ else None
+ ),
+ thinking_blocks=thinking_blocks,
+ reasoning_content=reasoning_content,
+ ),
+ )
+ ],
+ usage=usage,
+ provider_specific_fields=model_response_provider_specific_fields,
+ )
+
+ return response
+ except Exception as e:
+ raise Exception("Received streaming error - {}".format(str(e)))
+
+ def _chunk_parser(self, chunk_data: dict) -> Union[GChunk, ModelResponseStream]:
+ text = ""
+ is_finished = False
+ finish_reason = ""
+ if "outputText" in chunk_data:
+ text = chunk_data["outputText"]
+ # ai21 mapping
+ elif "ai21" in self.model: # fake ai21 streaming
+ text = chunk_data.get("completions")[0].get("data").get("text") # type: ignore
+ is_finished = True
+ finish_reason = "stop"
+ ######## /bedrock/converse mappings ###############
+ elif (
+ "contentBlockIndex" in chunk_data
+ or "stopReason" in chunk_data
+ or "metrics" in chunk_data
+ or "trace" in chunk_data
+ ):
+ return self.converse_chunk_parser(chunk_data=chunk_data)
+ ######### /bedrock/invoke nova mappings ###############
+ elif "contentBlockDelta" in chunk_data:
+ # when using /bedrock/invoke/nova, the chunk_data is nested under "contentBlockDelta"
+ _chunk_data = chunk_data.get("contentBlockDelta", None)
+ return self.converse_chunk_parser(chunk_data=_chunk_data)
+ ######## bedrock.mistral mappings ###############
+ elif "outputs" in chunk_data:
+ if (
+ len(chunk_data["outputs"]) == 1
+ and chunk_data["outputs"][0].get("text", None) is not None
+ ):
+ text = chunk_data["outputs"][0]["text"]
+ stop_reason = chunk_data.get("stop_reason", None)
+ if stop_reason is not None:
+ is_finished = True
+ finish_reason = stop_reason
+ ######## bedrock.cohere mappings ###############
+ # meta mapping
+ elif "generation" in chunk_data:
+ text = chunk_data["generation"] # bedrock.meta
+ # cohere mapping
+ elif "text" in chunk_data:
+ text = chunk_data["text"] # bedrock.cohere
+ # cohere mapping for finish reason
+ elif "finish_reason" in chunk_data:
+ finish_reason = chunk_data["finish_reason"]
+ is_finished = True
+ elif chunk_data.get("completionReason", None):
+ is_finished = True
+ finish_reason = chunk_data["completionReason"]
+ return GChunk(
+ text=text,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+
+ def iter_bytes(
+ self, iterator: Iterator[bytes]
+ ) -> Iterator[Union[GChunk, ModelResponseStream]]:
+ """Given an iterator that yields lines, iterate over it & yield every event encountered"""
+ from botocore.eventstream import EventStreamBuffer
+
+ event_stream_buffer = EventStreamBuffer()
+ for chunk in iterator:
+ event_stream_buffer.add_data(chunk)
+ for event in event_stream_buffer:
+ message = self._parse_message_from_event(event)
+ if message:
+ # sse_event = ServerSentEvent(data=message, event="completion")
+ _data = json.loads(message)
+ yield self._chunk_parser(chunk_data=_data)
+
+ async def aiter_bytes(
+ self, iterator: AsyncIterator[bytes]
+ ) -> AsyncIterator[Union[GChunk, ModelResponseStream]]:
+ """Given an async iterator that yields lines, iterate over it & yield every event encountered"""
+ from botocore.eventstream import EventStreamBuffer
+
+ event_stream_buffer = EventStreamBuffer()
+ async for chunk in iterator:
+ event_stream_buffer.add_data(chunk)
+ for event in event_stream_buffer:
+ message = self._parse_message_from_event(event)
+ if message:
+ _data = json.loads(message)
+ yield self._chunk_parser(chunk_data=_data)
+
+ def _parse_message_from_event(self, event) -> Optional[str]:
+ response_dict = event.to_response_dict()
+ parsed_response = self.parser.parse(response_dict, get_response_stream_shape())
+
+ if response_dict["status_code"] != 200:
+ decoded_body = response_dict["body"].decode()
+ if isinstance(decoded_body, dict):
+ error_message = decoded_body.get("message")
+ elif isinstance(decoded_body, str):
+ error_message = decoded_body
+ else:
+ error_message = ""
+ exception_status = response_dict["headers"].get(":exception-type")
+ error_message = exception_status + " " + error_message
+ raise BedrockError(
+ status_code=response_dict["status_code"],
+ message=(
+ json.dumps(error_message)
+ if isinstance(error_message, dict)
+ else error_message
+ ),
+ )
+ if "chunk" in parsed_response:
+ chunk = parsed_response.get("chunk")
+ if not chunk:
+ return None
+ return chunk.get("bytes").decode() # type: ignore[no-any-return]
+ else:
+ chunk = response_dict.get("body")
+ if not chunk:
+ return None
+
+ return chunk.decode() # type: ignore[no-any-return]
+
+
+class AmazonAnthropicClaudeStreamDecoder(AWSEventStreamDecoder):
+ def __init__(
+ self,
+ model: str,
+ sync_stream: bool,
+ json_mode: Optional[bool] = None,
+ ) -> None:
+ """
+ Child class of AWSEventStreamDecoder that handles the streaming response from the Anthropic family of models
+
+ The only difference between AWSEventStreamDecoder and AmazonAnthropicClaudeStreamDecoder is the `chunk_parser` method
+ """
+ super().__init__(model=model)
+ self.anthropic_model_response_iterator = AnthropicModelResponseIterator(
+ streaming_response=None,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+ def _chunk_parser(self, chunk_data: dict) -> ModelResponseStream:
+ return self.anthropic_model_response_iterator.chunk_parser(chunk=chunk_data)
+
+
+class AmazonDeepSeekR1StreamDecoder(AWSEventStreamDecoder):
+ def __init__(
+ self,
+ model: str,
+ sync_stream: bool,
+ ) -> None:
+
+ super().__init__(model=model)
+ from litellm.llms.bedrock.chat.invoke_transformations.amazon_deepseek_transformation import (
+ AmazonDeepseekR1ResponseIterator,
+ )
+
+ self.deepseek_model_response_iterator = AmazonDeepseekR1ResponseIterator(
+ streaming_response=None,
+ sync_stream=sync_stream,
+ )
+
+ def _chunk_parser(self, chunk_data: dict) -> Union[GChunk, ModelResponseStream]:
+ return self.deepseek_model_response_iterator.chunk_parser(chunk=chunk_data)
+
+
+class MockResponseIterator: # for returning ai21 streaming responses
+ def __init__(self, model_response, json_mode: Optional[bool] = False):
+ self.model_response = model_response
+ self.json_mode = json_mode
+ self.is_done = False
+
+ # Sync iterator
+ def __iter__(self):
+ return self
+
+ def _handle_json_mode_chunk(
+ self, text: str, tool_calls: Optional[List[ChatCompletionToolCallChunk]]
+ ) -> Tuple[str, Optional[ChatCompletionToolCallChunk]]:
+ """
+ If JSON mode is enabled, convert the tool call to a message.
+
+ Bedrock returns the JSON schema as part of the tool call
+ OpenAI returns the JSON schema as part of the content, this handles placing it in the content
+
+ Args:
+ text: str
+ tool_use: Optional[ChatCompletionToolCallChunk]
+ Returns:
+ Tuple[str, Optional[ChatCompletionToolCallChunk]]
+
+ text: The text to use in the content
+ tool_use: The ChatCompletionToolCallChunk to use in the chunk response
+ """
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ if self.json_mode is True and tool_calls is not None:
+ message = litellm.AnthropicConfig()._convert_tool_response_to_message(
+ tool_calls=tool_calls
+ )
+ if message is not None:
+ text = message.content or ""
+ tool_use = None
+ elif tool_calls is not None and len(tool_calls) > 0:
+ tool_use = tool_calls[0]
+ return text, tool_use
+
+ def _chunk_parser(self, chunk_data: ModelResponse) -> GChunk:
+ try:
+ chunk_usage: Usage = getattr(chunk_data, "usage")
+ text = chunk_data.choices[0].message.content or "" # type: ignore
+ tool_use = None
+ _model_response_tool_call = cast(
+ Optional[List[ChatCompletionMessageToolCall]],
+ cast(Choices, chunk_data.choices[0]).message.tool_calls,
+ )
+ if self.json_mode is True:
+ text, tool_use = self._handle_json_mode_chunk(
+ text=text,
+ tool_calls=chunk_data.choices[0].message.tool_calls, # type: ignore
+ )
+ elif _model_response_tool_call is not None:
+ tool_use = ChatCompletionToolCallChunk(
+ id=_model_response_tool_call[0].id,
+ type="function",
+ function=ChatCompletionToolCallFunctionChunk(
+ name=_model_response_tool_call[0].function.name,
+ arguments=_model_response_tool_call[0].function.arguments,
+ ),
+ index=0,
+ )
+ processed_chunk = GChunk(
+ text=text,
+ tool_use=tool_use,
+ is_finished=True,
+ finish_reason=map_finish_reason(
+ finish_reason=chunk_data.choices[0].finish_reason or ""
+ ),
+ usage=ChatCompletionUsageBlock(
+ prompt_tokens=chunk_usage.prompt_tokens,
+ completion_tokens=chunk_usage.completion_tokens,
+ total_tokens=chunk_usage.total_tokens,
+ ),
+ index=0,
+ )
+ return processed_chunk
+ except Exception as e:
+ raise ValueError(f"Failed to decode chunk: {chunk_data}. Error: {e}")
+
+ def __next__(self):
+ if self.is_done:
+ raise StopIteration
+ self.is_done = True
+ return self._chunk_parser(self.model_response)
+
+ # Async iterator
+ def __aiter__(self):
+ return self
+
+ async def __anext__(self):
+ if self.is_done:
+ raise StopAsyncIteration
+ self.is_done = True
+ return self._chunk_parser(self.model_response)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_ai21_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_ai21_transformation.py
new file mode 100644
index 00000000..50fa6f17
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_ai21_transformation.py
@@ -0,0 +1,99 @@
+import types
+from typing import List, Optional
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.llms.bedrock.chat.invoke_transformations.base_invoke_transformation import (
+ AmazonInvokeConfig,
+)
+
+
+class AmazonAI21Config(AmazonInvokeConfig, BaseConfig):
+ """
+ Reference: https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=j2-ultra
+
+ Supported Params for the Amazon / AI21 models:
+
+ - `maxTokens` (int32): The maximum number of tokens to generate per result. Optional, default is 16. If no `stopSequences` are given, generation stops after producing `maxTokens`.
+
+ - `temperature` (float): Modifies the distribution from which tokens are sampled. Optional, default is 0.7. A value of 0 essentially disables sampling and results in greedy decoding.
+
+ - `topP` (float): Used for sampling tokens from the corresponding top percentile of probability mass. Optional, default is 1. For instance, a value of 0.9 considers only tokens comprising the top 90% probability mass.
+
+ - `stopSequences` (array of strings): Stops decoding if any of the input strings is generated. Optional.
+
+ - `frequencyPenalty` (object): Placeholder for frequency penalty object.
+
+ - `presencePenalty` (object): Placeholder for presence penalty object.
+
+ - `countPenalty` (object): Placeholder for count penalty object.
+ """
+
+ maxTokens: Optional[int] = None
+ temperature: Optional[float] = None
+ topP: Optional[float] = None
+ stopSequences: Optional[list] = None
+ frequencePenalty: Optional[dict] = None
+ presencePenalty: Optional[dict] = None
+ countPenalty: Optional[dict] = None
+
+ def __init__(
+ self,
+ maxTokens: Optional[int] = None,
+ temperature: Optional[float] = None,
+ topP: Optional[float] = None,
+ stopSequences: Optional[list] = None,
+ frequencePenalty: Optional[dict] = None,
+ presencePenalty: Optional[dict] = None,
+ countPenalty: Optional[dict] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ AmazonInvokeConfig.__init__(self)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not k.startswith("_abc")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return [
+ "max_tokens",
+ "temperature",
+ "top_p",
+ "stream",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "max_tokens":
+ optional_params["maxTokens"] = v
+ if k == "temperature":
+ optional_params["temperature"] = v
+ if k == "top_p":
+ optional_params["topP"] = v
+ if k == "stream":
+ optional_params["stream"] = v
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_cohere_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_cohere_transformation.py
new file mode 100644
index 00000000..e9479c8f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_cohere_transformation.py
@@ -0,0 +1,78 @@
+import types
+from typing import List, Optional
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.llms.bedrock.chat.invoke_transformations.base_invoke_transformation import (
+ AmazonInvokeConfig,
+)
+
+
+class AmazonCohereConfig(AmazonInvokeConfig, BaseConfig):
+ """
+ Reference: https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=command
+
+ Supported Params for the Amazon / Cohere models:
+
+ - `max_tokens` (integer) max tokens,
+ - `temperature` (float) model temperature,
+ - `return_likelihood` (string) n/a
+ """
+
+ max_tokens: Optional[int] = None
+ temperature: Optional[float] = None
+ return_likelihood: Optional[str] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ temperature: Optional[float] = None,
+ return_likelihood: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ AmazonInvokeConfig.__init__(self)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not k.startswith("_abc")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return [
+ "max_tokens",
+ "temperature",
+ "stream",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "stream":
+ optional_params["stream"] = v
+ if k == "temperature":
+ optional_params["temperature"] = v
+ if k == "max_tokens":
+ optional_params["max_tokens"] = v
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_deepseek_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_deepseek_transformation.py
new file mode 100644
index 00000000..d7ceec1f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_deepseek_transformation.py
@@ -0,0 +1,135 @@
+from typing import Any, List, Optional, cast
+
+from httpx import Response
+
+from litellm import verbose_logger
+from litellm.litellm_core_utils.llm_response_utils.convert_dict_to_response import (
+ _parse_content_for_reasoning,
+)
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.llms.bedrock.chat.invoke_transformations.base_invoke_transformation import (
+ LiteLLMLoggingObj,
+)
+from litellm.types.llms.bedrock import AmazonDeepSeekR1StreamingResponse
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import (
+ ChatCompletionUsageBlock,
+ Choices,
+ Delta,
+ Message,
+ ModelResponse,
+ ModelResponseStream,
+ StreamingChoices,
+)
+
+from .amazon_llama_transformation import AmazonLlamaConfig
+
+
+class AmazonDeepSeekR1Config(AmazonLlamaConfig):
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ """
+ Extract the reasoning content, and return it as a separate field in the response.
+ """
+ response = super().transform_response(
+ model,
+ raw_response,
+ model_response,
+ logging_obj,
+ request_data,
+ messages,
+ optional_params,
+ litellm_params,
+ encoding,
+ api_key,
+ json_mode,
+ )
+ prompt = cast(Optional[str], request_data.get("prompt"))
+ message_content = cast(
+ Optional[str], cast(Choices, response.choices[0]).message.get("content")
+ )
+ if prompt and prompt.strip().endswith("<think>") and message_content:
+ message_content_with_reasoning_token = "<think>" + message_content
+ reasoning, content = _parse_content_for_reasoning(
+ message_content_with_reasoning_token
+ )
+ provider_specific_fields = (
+ cast(Choices, response.choices[0]).message.provider_specific_fields
+ or {}
+ )
+ if reasoning:
+ provider_specific_fields["reasoning_content"] = reasoning
+
+ message = Message(
+ **{
+ **cast(Choices, response.choices[0]).message.model_dump(),
+ "content": content,
+ "provider_specific_fields": provider_specific_fields,
+ }
+ )
+ cast(Choices, response.choices[0]).message = message
+ return response
+
+
+class AmazonDeepseekR1ResponseIterator(BaseModelResponseIterator):
+ def __init__(self, streaming_response: Any, sync_stream: bool) -> None:
+ super().__init__(streaming_response=streaming_response, sync_stream=sync_stream)
+ self.has_finished_thinking = False
+
+ def chunk_parser(self, chunk: dict) -> ModelResponseStream:
+ """
+ Deepseek r1 starts by thinking, then it generates the response.
+ """
+ try:
+ typed_chunk = AmazonDeepSeekR1StreamingResponse(**chunk) # type: ignore
+ generated_content = typed_chunk["generation"]
+ if generated_content == "</think>" and not self.has_finished_thinking:
+ verbose_logger.debug(
+ "Deepseek r1: </think> received, setting has_finished_thinking to True"
+ )
+ generated_content = ""
+ self.has_finished_thinking = True
+
+ prompt_token_count = typed_chunk.get("prompt_token_count") or 0
+ generation_token_count = typed_chunk.get("generation_token_count") or 0
+ usage = ChatCompletionUsageBlock(
+ prompt_tokens=prompt_token_count,
+ completion_tokens=generation_token_count,
+ total_tokens=prompt_token_count + generation_token_count,
+ )
+
+ return ModelResponseStream(
+ choices=[
+ StreamingChoices(
+ finish_reason=typed_chunk["stop_reason"],
+ delta=Delta(
+ content=(
+ generated_content
+ if self.has_finished_thinking
+ else None
+ ),
+ reasoning_content=(
+ generated_content
+ if not self.has_finished_thinking
+ else None
+ ),
+ ),
+ )
+ ],
+ usage=usage,
+ )
+
+ except Exception as e:
+ raise e
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_llama_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_llama_transformation.py
new file mode 100644
index 00000000..9f84844f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_llama_transformation.py
@@ -0,0 +1,80 @@
+import types
+from typing import List, Optional
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.llms.bedrock.chat.invoke_transformations.base_invoke_transformation import (
+ AmazonInvokeConfig,
+)
+
+
+class AmazonLlamaConfig(AmazonInvokeConfig, BaseConfig):
+ """
+ Reference: https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=meta.llama2-13b-chat-v1
+
+ Supported Params for the Amazon / Meta Llama models:
+
+ - `max_gen_len` (integer) max tokens,
+ - `temperature` (float) temperature for model,
+ - `top_p` (float) top p for model
+ """
+
+ max_gen_len: Optional[int] = None
+ temperature: Optional[float] = None
+ topP: Optional[float] = None
+
+ def __init__(
+ self,
+ maxTokenCount: Optional[int] = None,
+ temperature: Optional[float] = None,
+ topP: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+ AmazonInvokeConfig.__init__(self)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not k.startswith("_abc")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return [
+ "max_tokens",
+ "temperature",
+ "top_p",
+ "stream",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "max_tokens":
+ optional_params["max_gen_len"] = v
+ if k == "temperature":
+ optional_params["temperature"] = v
+ if k == "top_p":
+ optional_params["top_p"] = v
+ if k == "stream":
+ optional_params["stream"] = v
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py
new file mode 100644
index 00000000..ef3c237f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_mistral_transformation.py
@@ -0,0 +1,83 @@
+import types
+from typing import List, Optional
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.llms.bedrock.chat.invoke_transformations.base_invoke_transformation import (
+ AmazonInvokeConfig,
+)
+
+
+class AmazonMistralConfig(AmazonInvokeConfig, BaseConfig):
+ """
+ Reference: https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-mistral.html
+ Supported Params for the Amazon / Mistral models:
+
+ - `max_tokens` (integer) max tokens,
+ - `temperature` (float) temperature for model,
+ - `top_p` (float) top p for model
+ - `stop` [string] A list of stop sequences that if generated by the model, stops the model from generating further output.
+ - `top_k` (float) top k for model
+ """
+
+ max_tokens: Optional[int] = None
+ temperature: Optional[float] = None
+ top_p: Optional[float] = None
+ top_k: Optional[float] = None
+ stop: Optional[List[str]] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ temperature: Optional[float] = None,
+ top_p: Optional[int] = None,
+ top_k: Optional[float] = None,
+ stop: Optional[List[str]] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ AmazonInvokeConfig.__init__(self)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not k.startswith("_abc")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return ["max_tokens", "temperature", "top_p", "stop", "stream"]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "max_tokens":
+ optional_params["max_tokens"] = v
+ if k == "temperature":
+ optional_params["temperature"] = v
+ if k == "top_p":
+ optional_params["top_p"] = v
+ if k == "stop":
+ optional_params["stop"] = v
+ if k == "stream":
+ optional_params["stream"] = v
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_nova_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_nova_transformation.py
new file mode 100644
index 00000000..9d41bece
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_nova_transformation.py
@@ -0,0 +1,70 @@
+"""
+Handles transforming requests for `bedrock/invoke/{nova} models`
+
+Inherits from `AmazonConverseConfig`
+
+Nova + Invoke API Tutorial: https://docs.aws.amazon.com/nova/latest/userguide/using-invoke-api.html
+"""
+
+from typing import List
+
+import litellm
+from litellm.types.llms.bedrock import BedrockInvokeNovaRequest
+from litellm.types.llms.openai import AllMessageValues
+
+
+class AmazonInvokeNovaConfig(litellm.AmazonConverseConfig):
+ """
+ Config for sending `nova` requests to `/bedrock/invoke/`
+ """
+
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ _transformed_nova_request = super().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ _bedrock_invoke_nova_request = BedrockInvokeNovaRequest(
+ **_transformed_nova_request
+ )
+ self._remove_empty_system_messages(_bedrock_invoke_nova_request)
+ bedrock_invoke_nova_request = self._filter_allowed_fields(
+ _bedrock_invoke_nova_request
+ )
+ return bedrock_invoke_nova_request
+
+ def _filter_allowed_fields(
+ self, bedrock_invoke_nova_request: BedrockInvokeNovaRequest
+ ) -> dict:
+ """
+ Filter out fields that are not allowed in the `BedrockInvokeNovaRequest` dataclass.
+ """
+ allowed_fields = set(BedrockInvokeNovaRequest.__annotations__.keys())
+ return {
+ k: v for k, v in bedrock_invoke_nova_request.items() if k in allowed_fields
+ }
+
+ def _remove_empty_system_messages(
+ self, bedrock_invoke_nova_request: BedrockInvokeNovaRequest
+ ) -> None:
+ """
+ In-place remove empty `system` messages from the request.
+
+ /bedrock/invoke/ does not allow empty `system` messages.
+ """
+ _system_message = bedrock_invoke_nova_request.get("system", None)
+ if isinstance(_system_message, list) and len(_system_message) == 0:
+ bedrock_invoke_nova_request.pop("system", None)
+ return
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_titan_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_titan_transformation.py
new file mode 100644
index 00000000..367fb84d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/amazon_titan_transformation.py
@@ -0,0 +1,116 @@
+import re
+import types
+from typing import List, Optional, Union
+
+import litellm
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.llms.bedrock.chat.invoke_transformations.base_invoke_transformation import (
+ AmazonInvokeConfig,
+)
+
+
+class AmazonTitanConfig(AmazonInvokeConfig, BaseConfig):
+ """
+ Reference: https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=titan-text-express-v1
+
+ Supported Params for the Amazon Titan models:
+
+ - `maxTokenCount` (integer) max tokens,
+ - `stopSequences` (string[]) list of stop sequence strings
+ - `temperature` (float) temperature for model,
+ - `topP` (int) top p for model
+ """
+
+ maxTokenCount: Optional[int] = None
+ stopSequences: Optional[list] = None
+ temperature: Optional[float] = None
+ topP: Optional[int] = None
+
+ def __init__(
+ self,
+ maxTokenCount: Optional[int] = None,
+ stopSequences: Optional[list] = None,
+ temperature: Optional[float] = None,
+ topP: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ AmazonInvokeConfig.__init__(self)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not k.startswith("_abc")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def _map_and_modify_arg(
+ self,
+ supported_params: dict,
+ provider: str,
+ model: str,
+ stop: Union[List[str], str],
+ ):
+ """
+ filter params to fit the required provider format, drop those that don't fit if user sets `litellm.drop_params = True`.
+ """
+ filtered_stop = None
+ if "stop" in supported_params and litellm.drop_params:
+ if provider == "bedrock" and "amazon" in model:
+ filtered_stop = []
+ if isinstance(stop, list):
+ for s in stop:
+ if re.match(r"^(\|+|User:)$", s):
+ filtered_stop.append(s)
+ if filtered_stop is not None:
+ supported_params["stop"] = filtered_stop
+
+ return supported_params
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return [
+ "max_tokens",
+ "max_completion_tokens",
+ "stop",
+ "temperature",
+ "top_p",
+ "stream",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "max_tokens" or k == "max_completion_tokens":
+ optional_params["maxTokenCount"] = v
+ if k == "temperature":
+ optional_params["temperature"] = v
+ if k == "stop":
+ filtered_stop = self._map_and_modify_arg(
+ {"stop": v}, provider="bedrock", model=model, stop=v
+ )
+ optional_params["stopSequences"] = filtered_stop["stop"]
+ if k == "top_p":
+ optional_params["topP"] = v
+ if k == "stream":
+ optional_params["stream"] = v
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude2_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude2_transformation.py
new file mode 100644
index 00000000..d0d06ef2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude2_transformation.py
@@ -0,0 +1,90 @@
+import types
+from typing import Optional
+
+import litellm
+
+from .base_invoke_transformation import AmazonInvokeConfig
+
+
+class AmazonAnthropicConfig(AmazonInvokeConfig):
+ """
+ Reference: https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=claude
+
+ Supported Params for the Amazon / Anthropic models:
+
+ - `max_tokens_to_sample` (integer) max tokens,
+ - `temperature` (float) model temperature,
+ - `top_k` (integer) top k,
+ - `top_p` (integer) top p,
+ - `stop_sequences` (string[]) list of stop sequences - e.g. ["\\n\\nHuman:"],
+ - `anthropic_version` (string) version of anthropic for bedrock - e.g. "bedrock-2023-05-31"
+ """
+
+ max_tokens_to_sample: Optional[int] = litellm.max_tokens
+ stop_sequences: Optional[list] = None
+ temperature: Optional[float] = None
+ top_k: Optional[int] = None
+ top_p: Optional[int] = None
+ anthropic_version: Optional[str] = None
+
+ def __init__(
+ self,
+ max_tokens_to_sample: Optional[int] = None,
+ stop_sequences: Optional[list] = None,
+ temperature: Optional[float] = None,
+ top_k: Optional[int] = None,
+ top_p: Optional[int] = None,
+ anthropic_version: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "max_tokens",
+ "max_completion_tokens",
+ "temperature",
+ "stop",
+ "top_p",
+ "stream",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ):
+ for param, value in non_default_params.items():
+ if param == "max_tokens" or param == "max_completion_tokens":
+ optional_params["max_tokens_to_sample"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "stop":
+ optional_params["stop_sequences"] = value
+ if param == "stream" and value is True:
+ optional_params["stream"] = value
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py
new file mode 100644
index 00000000..0cac339a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py
@@ -0,0 +1,100 @@
+from typing import TYPE_CHECKING, Any, List, Optional
+
+import httpx
+
+from litellm.llms.anthropic.chat.transformation import AnthropicConfig
+from litellm.llms.bedrock.chat.invoke_transformations.base_invoke_transformation import (
+ AmazonInvokeConfig,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class AmazonAnthropicClaude3Config(AmazonInvokeConfig, AnthropicConfig):
+ """
+ Reference:
+ https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=claude
+ https://docs.anthropic.com/claude/docs/models-overview#model-comparison
+
+ Supported Params for the Amazon / Anthropic Claude 3 models:
+ """
+
+ anthropic_version: str = "bedrock-2023-05-31"
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return AnthropicConfig.get_supported_openai_params(self, model)
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ return AnthropicConfig.map_openai_params(
+ self,
+ non_default_params,
+ optional_params,
+ model,
+ drop_params,
+ )
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ _anthropic_request = AnthropicConfig.transform_request(
+ self,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ _anthropic_request.pop("model", None)
+ _anthropic_request.pop("stream", None)
+ if "anthropic_version" not in _anthropic_request:
+ _anthropic_request["anthropic_version"] = self.anthropic_version
+
+ return _anthropic_request
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ return AnthropicConfig.transform_response(
+ self,
+ model=model,
+ raw_response=raw_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data=request_data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ api_key=api_key,
+ json_mode=json_mode,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/base_invoke_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/base_invoke_transformation.py
new file mode 100644
index 00000000..133eb659
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/invoke_transformations/base_invoke_transformation.py
@@ -0,0 +1,678 @@
+import copy
+import json
+import time
+import urllib.parse
+from functools import partial
+from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Union, cast, get_args
+
+import httpx
+
+import litellm
+from litellm._logging import verbose_logger
+from litellm.litellm_core_utils.core_helpers import map_finish_reason
+from litellm.litellm_core_utils.logging_utils import track_llm_api_timing
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ cohere_message_pt,
+ custom_prompt,
+ deepseek_r1_pt,
+ prompt_factory,
+)
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.llms.bedrock.chat.invoke_handler import make_call, make_sync_call
+from litellm.llms.bedrock.common_utils import BedrockError
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse, Usage
+from litellm.utils import CustomStreamWrapper
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM
+
+
+class AmazonInvokeConfig(BaseConfig, BaseAWSLLM):
+ def __init__(self, **kwargs):
+ BaseConfig.__init__(self, **kwargs)
+ BaseAWSLLM.__init__(self, **kwargs)
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ """
+ This is a base invoke model mapping. For Invoke - define a bedrock provider specific config that extends this class.
+ """
+ return [
+ "max_tokens",
+ "max_completion_tokens",
+ "stream",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ """
+ This is a base invoke model mapping. For Invoke - define a bedrock provider specific config that extends this class.
+ """
+ for param, value in non_default_params.items():
+ if param == "max_tokens" or param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ if param == "stream":
+ optional_params["stream"] = value
+ return optional_params
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ Get the complete url for the request
+ """
+ provider = self.get_bedrock_invoke_provider(model)
+ modelId = self.get_bedrock_model_id(
+ model=model,
+ provider=provider,
+ optional_params=optional_params,
+ )
+ ### SET RUNTIME ENDPOINT ###
+ aws_bedrock_runtime_endpoint = optional_params.get(
+ "aws_bedrock_runtime_endpoint", None
+ ) # https://bedrock-runtime.{region_name}.amazonaws.com
+ endpoint_url, proxy_endpoint_url = self.get_runtime_endpoint(
+ api_base=api_base,
+ aws_bedrock_runtime_endpoint=aws_bedrock_runtime_endpoint,
+ aws_region_name=self._get_aws_region_name(
+ optional_params=optional_params, model=model
+ ),
+ )
+
+ if (stream is not None and stream is True) and provider != "ai21":
+ endpoint_url = f"{endpoint_url}/model/{modelId}/invoke-with-response-stream"
+ proxy_endpoint_url = (
+ f"{proxy_endpoint_url}/model/{modelId}/invoke-with-response-stream"
+ )
+ else:
+ endpoint_url = f"{endpoint_url}/model/{modelId}/invoke"
+ proxy_endpoint_url = f"{proxy_endpoint_url}/model/{modelId}/invoke"
+
+ return endpoint_url
+
+ def sign_request(
+ self,
+ headers: dict,
+ optional_params: dict,
+ request_data: dict,
+ api_base: str,
+ model: Optional[str] = None,
+ stream: Optional[bool] = None,
+ fake_stream: Optional[bool] = None,
+ ) -> dict:
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ from botocore.credentials import Credentials
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+
+ ## CREDENTIALS ##
+ # pop aws_secret_access_key, aws_access_key_id, aws_session_token, aws_region_name from kwargs, since completion calls fail with them
+ aws_secret_access_key = optional_params.get("aws_secret_access_key", None)
+ aws_access_key_id = optional_params.get("aws_access_key_id", None)
+ aws_session_token = optional_params.get("aws_session_token", None)
+ aws_role_name = optional_params.get("aws_role_name", None)
+ aws_session_name = optional_params.get("aws_session_name", None)
+ aws_profile_name = optional_params.get("aws_profile_name", None)
+ aws_web_identity_token = optional_params.get("aws_web_identity_token", None)
+ aws_sts_endpoint = optional_params.get("aws_sts_endpoint", None)
+ aws_region_name = self._get_aws_region_name(
+ optional_params=optional_params, model=model
+ )
+
+ credentials: Credentials = self.get_credentials(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_session_token=aws_session_token,
+ aws_region_name=aws_region_name,
+ aws_session_name=aws_session_name,
+ aws_profile_name=aws_profile_name,
+ aws_role_name=aws_role_name,
+ aws_web_identity_token=aws_web_identity_token,
+ aws_sts_endpoint=aws_sts_endpoint,
+ )
+
+ sigv4 = SigV4Auth(credentials, "bedrock", aws_region_name)
+ if headers is not None:
+ headers = {"Content-Type": "application/json", **headers}
+ else:
+ headers = {"Content-Type": "application/json"}
+
+ request = AWSRequest(
+ method="POST",
+ url=api_base,
+ data=json.dumps(request_data),
+ headers=headers,
+ )
+ sigv4.add_auth(request)
+
+ request_headers_dict = dict(request.headers)
+ if (
+ headers is not None and "Authorization" in headers
+ ): # prevent sigv4 from overwriting the auth header
+ request_headers_dict["Authorization"] = headers["Authorization"]
+ return request_headers_dict
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ ## SETUP ##
+ stream = optional_params.pop("stream", None)
+ custom_prompt_dict: dict = litellm_params.pop("custom_prompt_dict", None) or {}
+ hf_model_name = litellm_params.get("hf_model_name", None)
+
+ provider = self.get_bedrock_invoke_provider(model)
+
+ prompt, chat_history = self.convert_messages_to_prompt(
+ model=hf_model_name or model,
+ messages=messages,
+ provider=provider,
+ custom_prompt_dict=custom_prompt_dict,
+ )
+ inference_params = copy.deepcopy(optional_params)
+ inference_params = {
+ k: v
+ for k, v in inference_params.items()
+ if k not in self.aws_authentication_params
+ }
+ request_data: dict = {}
+ if provider == "cohere":
+ if model.startswith("cohere.command-r"):
+ ## LOAD CONFIG
+ config = litellm.AmazonCohereChatConfig().get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ _data = {"message": prompt, **inference_params}
+ if chat_history is not None:
+ _data["chat_history"] = chat_history
+ request_data = _data
+ else:
+ ## LOAD CONFIG
+ config = litellm.AmazonCohereConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ if stream is True:
+ inference_params["stream"] = (
+ True # cohere requires stream = True in inference params
+ )
+ request_data = {"prompt": prompt, **inference_params}
+ elif provider == "anthropic":
+ return litellm.AmazonAnthropicClaude3Config().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ elif provider == "nova":
+ return litellm.AmazonInvokeNovaConfig().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ elif provider == "ai21":
+ ## LOAD CONFIG
+ config = litellm.AmazonAI21Config.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ request_data = {"prompt": prompt, **inference_params}
+ elif provider == "mistral":
+ ## LOAD CONFIG
+ config = litellm.AmazonMistralConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > amazon_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ request_data = {"prompt": prompt, **inference_params}
+ elif provider == "amazon": # amazon titan
+ ## LOAD CONFIG
+ config = litellm.AmazonTitanConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > amazon_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ request_data = {
+ "inputText": prompt,
+ "textGenerationConfig": inference_params,
+ }
+ elif provider == "meta" or provider == "llama" or provider == "deepseek_r1":
+ ## LOAD CONFIG
+ config = litellm.AmazonLlamaConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ request_data = {"prompt": prompt, **inference_params}
+ else:
+ raise BedrockError(
+ status_code=404,
+ message="Bedrock Invoke HTTPX: Unknown provider={}, model={}. Try calling via converse route - `bedrock/converse/<model>`.".format(
+ provider, model
+ ),
+ )
+
+ return request_data
+
+ def transform_response( # noqa: PLR0915
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+
+ try:
+ completion_response = raw_response.json()
+ except Exception:
+ raise BedrockError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+ verbose_logger.debug(
+ "bedrock invoke response % s",
+ json.dumps(completion_response, indent=4, default=str),
+ )
+ provider = self.get_bedrock_invoke_provider(model)
+ outputText: Optional[str] = None
+ try:
+ if provider == "cohere":
+ if "text" in completion_response:
+ outputText = completion_response["text"] # type: ignore
+ elif "generations" in completion_response:
+ outputText = completion_response["generations"][0]["text"]
+ model_response.choices[0].finish_reason = map_finish_reason(
+ completion_response["generations"][0]["finish_reason"]
+ )
+ elif provider == "anthropic":
+ return litellm.AmazonAnthropicClaude3Config().transform_response(
+ model=model,
+ raw_response=raw_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data=request_data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ api_key=api_key,
+ json_mode=json_mode,
+ )
+ elif provider == "nova":
+ return litellm.AmazonInvokeNovaConfig().transform_response(
+ model=model,
+ raw_response=raw_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data=request_data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ )
+ elif provider == "ai21":
+ outputText = (
+ completion_response.get("completions")[0].get("data").get("text")
+ )
+ elif provider == "meta" or provider == "llama" or provider == "deepseek_r1":
+ outputText = completion_response["generation"]
+ elif provider == "mistral":
+ outputText = completion_response["outputs"][0]["text"]
+ model_response.choices[0].finish_reason = completion_response[
+ "outputs"
+ ][0]["stop_reason"]
+ else: # amazon titan
+ outputText = completion_response.get("results")[0].get("outputText")
+ except Exception as e:
+ raise BedrockError(
+ message="Error processing={}, Received error={}".format(
+ raw_response.text, str(e)
+ ),
+ status_code=422,
+ )
+
+ try:
+ if (
+ outputText is not None
+ and len(outputText) > 0
+ and hasattr(model_response.choices[0], "message")
+ and getattr(model_response.choices[0].message, "tool_calls", None) # type: ignore
+ is None
+ ):
+ model_response.choices[0].message.content = outputText # type: ignore
+ elif (
+ hasattr(model_response.choices[0], "message")
+ and getattr(model_response.choices[0].message, "tool_calls", None) # type: ignore
+ is not None
+ ):
+ pass
+ else:
+ raise Exception()
+ except Exception as e:
+ raise BedrockError(
+ message="Error parsing received text={}.\nError-{}".format(
+ outputText, str(e)
+ ),
+ status_code=raw_response.status_code,
+ )
+
+ ## CALCULATING USAGE - bedrock returns usage in the headers
+ bedrock_input_tokens = raw_response.headers.get(
+ "x-amzn-bedrock-input-token-count", None
+ )
+ bedrock_output_tokens = raw_response.headers.get(
+ "x-amzn-bedrock-output-token-count", None
+ )
+
+ prompt_tokens = int(
+ bedrock_input_tokens or litellm.token_counter(messages=messages)
+ )
+
+ completion_tokens = int(
+ bedrock_output_tokens
+ or litellm.token_counter(
+ text=model_response.choices[0].message.content, # type: ignore
+ count_response_tokens=True,
+ )
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+
+ return model_response
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return headers
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return BedrockError(status_code=status_code, message=error_message)
+
+ @track_llm_api_timing()
+ def get_async_custom_stream_wrapper(
+ self,
+ model: str,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ messages: list,
+ client: Optional[AsyncHTTPHandler] = None,
+ json_mode: Optional[bool] = None,
+ ) -> CustomStreamWrapper:
+ streaming_response = CustomStreamWrapper(
+ completion_stream=None,
+ make_call=partial(
+ make_call,
+ client=client,
+ api_base=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ fake_stream=True if "ai21" in api_base else False,
+ bedrock_invoke_provider=self.get_bedrock_invoke_provider(model),
+ json_mode=json_mode,
+ ),
+ model=model,
+ custom_llm_provider="bedrock",
+ logging_obj=logging_obj,
+ )
+ return streaming_response
+
+ @track_llm_api_timing()
+ def get_sync_custom_stream_wrapper(
+ self,
+ model: str,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ messages: list,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ json_mode: Optional[bool] = None,
+ ) -> CustomStreamWrapper:
+ if client is None or isinstance(client, AsyncHTTPHandler):
+ client = _get_httpx_client(params={})
+ streaming_response = CustomStreamWrapper(
+ completion_stream=None,
+ make_call=partial(
+ make_sync_call,
+ client=client,
+ api_base=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ fake_stream=True if "ai21" in api_base else False,
+ bedrock_invoke_provider=self.get_bedrock_invoke_provider(model),
+ json_mode=json_mode,
+ ),
+ model=model,
+ custom_llm_provider="bedrock",
+ logging_obj=logging_obj,
+ )
+ return streaming_response
+
+ @property
+ def has_custom_stream_wrapper(self) -> bool:
+ return True
+
+ @property
+ def supports_stream_param_in_request_body(self) -> bool:
+ """
+ Bedrock invoke does not allow passing `stream` in the request body.
+ """
+ return False
+
+ @staticmethod
+ def get_bedrock_invoke_provider(
+ model: str,
+ ) -> Optional[litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL]:
+ """
+ Helper function to get the bedrock provider from the model
+
+ handles 4 scenarios:
+ 1. model=invoke/anthropic.claude-3-5-sonnet-20240620-v1:0 -> Returns `anthropic`
+ 2. model=anthropic.claude-3-5-sonnet-20240620-v1:0 -> Returns `anthropic`
+ 3. model=llama/arn:aws:bedrock:us-east-1:086734376398:imported-model/r4c4kewx2s0n -> Returns `llama`
+ 4. model=us.amazon.nova-pro-v1:0 -> Returns `nova`
+ """
+ if model.startswith("invoke/"):
+ model = model.replace("invoke/", "", 1)
+
+ _split_model = model.split(".")[0]
+ if _split_model in get_args(litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL):
+ return cast(litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL, _split_model)
+
+ # If not a known provider, check for pattern with two slashes
+ provider = AmazonInvokeConfig._get_provider_from_model_path(model)
+ if provider is not None:
+ return provider
+
+ # check if provider == "nova"
+ if "nova" in model:
+ return "nova"
+
+ for provider in get_args(litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL):
+ if provider in model:
+ return provider
+ return None
+
+ @staticmethod
+ def _get_provider_from_model_path(
+ model_path: str,
+ ) -> Optional[litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL]:
+ """
+ Helper function to get the provider from a model path with format: provider/model-name
+
+ Args:
+ model_path (str): The model path (e.g., 'llama/arn:aws:bedrock:us-east-1:086734376398:imported-model/r4c4kewx2s0n' or 'anthropic/model-name')
+
+ Returns:
+ Optional[str]: The provider name, or None if no valid provider found
+ """
+ parts = model_path.split("/")
+ if len(parts) >= 1:
+ provider = parts[0]
+ if provider in get_args(litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL):
+ return cast(litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL, provider)
+ return None
+
+ def get_bedrock_model_id(
+ self,
+ optional_params: dict,
+ provider: Optional[litellm.BEDROCK_INVOKE_PROVIDERS_LITERAL],
+ model: str,
+ ) -> str:
+ modelId = optional_params.pop("model_id", None)
+ if modelId is not None:
+ modelId = self.encode_model_id(model_id=modelId)
+ else:
+ modelId = model
+
+ modelId = modelId.replace("invoke/", "", 1)
+ if provider == "llama" and "llama/" in modelId:
+ modelId = self._get_model_id_from_model_with_spec(modelId, spec="llama")
+ elif provider == "deepseek_r1" and "deepseek_r1/" in modelId:
+ modelId = self._get_model_id_from_model_with_spec(
+ modelId, spec="deepseek_r1"
+ )
+ return modelId
+
+ def _get_model_id_from_model_with_spec(
+ self,
+ model: str,
+ spec: str,
+ ) -> str:
+ """
+ Remove `llama` from modelID since `llama` is simply a spec to follow for custom bedrock models
+ """
+ model_id = model.replace(spec + "/", "")
+ return self.encode_model_id(model_id=model_id)
+
+ def encode_model_id(self, model_id: str) -> str:
+ """
+ Double encode the model ID to ensure it matches the expected double-encoded format.
+ Args:
+ model_id (str): The model ID to encode.
+ Returns:
+ str: The double-encoded model ID.
+ """
+ return urllib.parse.quote(model_id, safe="")
+
+ def convert_messages_to_prompt(
+ self, model, messages, provider, custom_prompt_dict
+ ) -> Tuple[str, Optional[list]]:
+ # handle anthropic prompts and amazon titan prompts
+ prompt = ""
+ chat_history: Optional[list] = None
+ ## CUSTOM PROMPT
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details.get(
+ "initial_prompt_value", ""
+ ),
+ final_prompt_value=model_prompt_details.get("final_prompt_value", ""),
+ messages=messages,
+ )
+ return prompt, None
+ ## ELSE
+ if provider == "anthropic" or provider == "amazon":
+ prompt = prompt_factory(
+ model=model, messages=messages, custom_llm_provider="bedrock"
+ )
+ elif provider == "mistral":
+ prompt = prompt_factory(
+ model=model, messages=messages, custom_llm_provider="bedrock"
+ )
+ elif provider == "meta" or provider == "llama":
+ prompt = prompt_factory(
+ model=model, messages=messages, custom_llm_provider="bedrock"
+ )
+ elif provider == "cohere":
+ prompt, chat_history = cohere_message_pt(messages=messages)
+ elif provider == "deepseek_r1":
+ prompt = deepseek_r1_pt(messages=messages)
+ else:
+ prompt = ""
+ for message in messages:
+ if "role" in message:
+ if message["role"] == "user":
+ prompt += f"{message['content']}"
+ else:
+ prompt += f"{message['content']}"
+ else:
+ prompt += f"{message['content']}"
+ return prompt, chat_history # type: ignore
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/common_utils.py
new file mode 100644
index 00000000..4677a579
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/common_utils.py
@@ -0,0 +1,407 @@
+"""
+Common utilities used across bedrock chat/embedding/image generation
+"""
+
+import os
+from typing import List, Literal, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.llms.base_llm.base_utils import BaseLLMModelInfo
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.secret_managers.main import get_secret
+
+
+class BedrockError(BaseLLMException):
+ pass
+
+
+class AmazonBedrockGlobalConfig:
+ def __init__(self):
+ pass
+
+ def get_mapped_special_auth_params(self) -> dict:
+ """
+ Mapping of common auth params across bedrock/vertex/azure/watsonx
+ """
+ return {"region_name": "aws_region_name"}
+
+ def map_special_auth_params(self, non_default_params: dict, optional_params: dict):
+ mapped_params = self.get_mapped_special_auth_params()
+ for param, value in non_default_params.items():
+ if param in mapped_params:
+ optional_params[mapped_params[param]] = value
+ return optional_params
+
+ def get_all_regions(self) -> List[str]:
+ return (
+ self.get_us_regions()
+ + self.get_eu_regions()
+ + self.get_ap_regions()
+ + self.get_ca_regions()
+ + self.get_sa_regions()
+ )
+
+ def get_ap_regions(self) -> List[str]:
+ return ["ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-south-1"]
+
+ def get_sa_regions(self) -> List[str]:
+ return ["sa-east-1"]
+
+ def get_eu_regions(self) -> List[str]:
+ """
+ Source: https://www.aws-services.info/bedrock.html
+ """
+ return [
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "eu-central-1",
+ ]
+
+ def get_ca_regions(self) -> List[str]:
+ return ["ca-central-1"]
+
+ def get_us_regions(self) -> List[str]:
+ """
+ Source: https://www.aws-services.info/bedrock.html
+ """
+ return [
+ "us-east-2",
+ "us-east-1",
+ "us-west-1",
+ "us-west-2",
+ "us-gov-west-1",
+ ]
+
+
+def add_custom_header(headers):
+ """Closure to capture the headers and add them."""
+
+ def callback(request, **kwargs):
+ """Actual callback function that Boto3 will call."""
+ for header_name, header_value in headers.items():
+ request.headers.add_header(header_name, header_value)
+
+ return callback
+
+
+def init_bedrock_client(
+ region_name=None,
+ aws_access_key_id: Optional[str] = None,
+ aws_secret_access_key: Optional[str] = None,
+ aws_region_name: Optional[str] = None,
+ aws_bedrock_runtime_endpoint: Optional[str] = None,
+ aws_session_name: Optional[str] = None,
+ aws_profile_name: Optional[str] = None,
+ aws_role_name: Optional[str] = None,
+ aws_web_identity_token: Optional[str] = None,
+ extra_headers: Optional[dict] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+):
+ # check for custom AWS_REGION_NAME and use it if not passed to init_bedrock_client
+ litellm_aws_region_name = get_secret("AWS_REGION_NAME", None)
+ standard_aws_region_name = get_secret("AWS_REGION", None)
+ ## CHECK IS 'os.environ/' passed in
+ # Define the list of parameters to check
+ params_to_check = [
+ aws_access_key_id,
+ aws_secret_access_key,
+ aws_region_name,
+ aws_bedrock_runtime_endpoint,
+ aws_session_name,
+ aws_profile_name,
+ aws_role_name,
+ aws_web_identity_token,
+ ]
+
+ # Iterate over parameters and update if needed
+ for i, param in enumerate(params_to_check):
+ if param and param.startswith("os.environ/"):
+ params_to_check[i] = get_secret(param) # type: ignore
+ # Assign updated values back to parameters
+ (
+ aws_access_key_id,
+ aws_secret_access_key,
+ aws_region_name,
+ aws_bedrock_runtime_endpoint,
+ aws_session_name,
+ aws_profile_name,
+ aws_role_name,
+ aws_web_identity_token,
+ ) = params_to_check
+
+ # SSL certificates (a.k.a CA bundle) used to verify the identity of requested hosts.
+ ssl_verify = os.getenv("SSL_VERIFY", litellm.ssl_verify)
+
+ ### SET REGION NAME
+ if region_name:
+ pass
+ elif aws_region_name:
+ region_name = aws_region_name
+ elif litellm_aws_region_name:
+ region_name = litellm_aws_region_name
+ elif standard_aws_region_name:
+ region_name = standard_aws_region_name
+ else:
+ raise BedrockError(
+ message="AWS region not set: set AWS_REGION_NAME or AWS_REGION env variable or in .env file",
+ status_code=401,
+ )
+
+ # check for custom AWS_BEDROCK_RUNTIME_ENDPOINT and use it if not passed to init_bedrock_client
+ env_aws_bedrock_runtime_endpoint = get_secret("AWS_BEDROCK_RUNTIME_ENDPOINT")
+ if aws_bedrock_runtime_endpoint:
+ endpoint_url = aws_bedrock_runtime_endpoint
+ elif env_aws_bedrock_runtime_endpoint:
+ endpoint_url = env_aws_bedrock_runtime_endpoint
+ else:
+ endpoint_url = f"https://bedrock-runtime.{region_name}.amazonaws.com"
+
+ import boto3
+
+ if isinstance(timeout, float):
+ config = boto3.session.Config(connect_timeout=timeout, read_timeout=timeout) # type: ignore
+ elif isinstance(timeout, httpx.Timeout):
+ config = boto3.session.Config( # type: ignore
+ connect_timeout=timeout.connect, read_timeout=timeout.read
+ )
+ else:
+ config = boto3.session.Config() # type: ignore
+
+ ### CHECK STS ###
+ if (
+ aws_web_identity_token is not None
+ and aws_role_name is not None
+ and aws_session_name is not None
+ ):
+ oidc_token = get_secret(aws_web_identity_token)
+
+ if oidc_token is None:
+ raise BedrockError(
+ message="OIDC token could not be retrieved from secret manager.",
+ status_code=401,
+ )
+
+ sts_client = boto3.client("sts")
+
+ # https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html
+ # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts/client/assume_role_with_web_identity.html
+ sts_response = sts_client.assume_role_with_web_identity(
+ RoleArn=aws_role_name,
+ RoleSessionName=aws_session_name,
+ WebIdentityToken=oidc_token,
+ DurationSeconds=3600,
+ )
+
+ client = boto3.client(
+ service_name="bedrock-runtime",
+ aws_access_key_id=sts_response["Credentials"]["AccessKeyId"],
+ aws_secret_access_key=sts_response["Credentials"]["SecretAccessKey"],
+ aws_session_token=sts_response["Credentials"]["SessionToken"],
+ region_name=region_name,
+ endpoint_url=endpoint_url,
+ config=config,
+ verify=ssl_verify,
+ )
+ elif aws_role_name is not None and aws_session_name is not None:
+ # use sts if role name passed in
+ sts_client = boto3.client(
+ "sts",
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ )
+
+ sts_response = sts_client.assume_role(
+ RoleArn=aws_role_name, RoleSessionName=aws_session_name
+ )
+
+ client = boto3.client(
+ service_name="bedrock-runtime",
+ aws_access_key_id=sts_response["Credentials"]["AccessKeyId"],
+ aws_secret_access_key=sts_response["Credentials"]["SecretAccessKey"],
+ aws_session_token=sts_response["Credentials"]["SessionToken"],
+ region_name=region_name,
+ endpoint_url=endpoint_url,
+ config=config,
+ verify=ssl_verify,
+ )
+ elif aws_access_key_id is not None:
+ # uses auth params passed to completion
+ # aws_access_key_id is not None, assume user is trying to auth using litellm.completion
+
+ client = boto3.client(
+ service_name="bedrock-runtime",
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ region_name=region_name,
+ endpoint_url=endpoint_url,
+ config=config,
+ verify=ssl_verify,
+ )
+ elif aws_profile_name is not None:
+ # uses auth values from AWS profile usually stored in ~/.aws/credentials
+
+ client = boto3.Session(profile_name=aws_profile_name).client(
+ service_name="bedrock-runtime",
+ region_name=region_name,
+ endpoint_url=endpoint_url,
+ config=config,
+ verify=ssl_verify,
+ )
+ else:
+ # aws_access_key_id is None, assume user is trying to auth using env variables
+ # boto3 automatically reads env variables
+
+ client = boto3.client(
+ service_name="bedrock-runtime",
+ region_name=region_name,
+ endpoint_url=endpoint_url,
+ config=config,
+ verify=ssl_verify,
+ )
+ if extra_headers:
+ client.meta.events.register(
+ "before-sign.bedrock-runtime.*", add_custom_header(extra_headers)
+ )
+
+ return client
+
+
+class ModelResponseIterator:
+ def __init__(self, model_response):
+ self.model_response = model_response
+ self.is_done = False
+
+ # Sync iterator
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ if self.is_done:
+ raise StopIteration
+ self.is_done = True
+ return self.model_response
+
+ # Async iterator
+ def __aiter__(self):
+ return self
+
+ async def __anext__(self):
+ if self.is_done:
+ raise StopAsyncIteration
+ self.is_done = True
+ return self.model_response
+
+
+def get_bedrock_tool_name(response_tool_name: str) -> str:
+ """
+ If litellm formatted the input tool name, we need to convert it back to the original name.
+
+ Args:
+ response_tool_name (str): The name of the tool as received from the response.
+
+ Returns:
+ str: The original name of the tool.
+ """
+
+ if response_tool_name in litellm.bedrock_tool_name_mappings.cache_dict:
+ response_tool_name = litellm.bedrock_tool_name_mappings.cache_dict[
+ response_tool_name
+ ]
+ return response_tool_name
+
+
+class BedrockModelInfo(BaseLLMModelInfo):
+
+ global_config = AmazonBedrockGlobalConfig()
+ all_global_regions = global_config.get_all_regions()
+
+ @staticmethod
+ def extract_model_name_from_arn(model: str) -> str:
+ """
+ Extract the model name from an AWS Bedrock ARN.
+ Returns the string after the last '/' if 'arn' is in the input string.
+
+ Args:
+ arn (str): The ARN string to parse
+
+ Returns:
+ str: The extracted model name if 'arn' is in the string,
+ otherwise returns the original string
+ """
+ if "arn" in model.lower():
+ return model.split("/")[-1]
+ return model
+
+ @staticmethod
+ def get_non_litellm_routing_model_name(model: str) -> str:
+ if model.startswith("bedrock/"):
+ model = model.split("/", 1)[1]
+
+ if model.startswith("converse/"):
+ model = model.split("/", 1)[1]
+
+ if model.startswith("invoke/"):
+ model = model.split("/", 1)[1]
+
+ return model
+
+ @staticmethod
+ def get_base_model(model: str) -> str:
+ """
+ Get the base model from the given model name.
+
+ Handle model names like - "us.meta.llama3-2-11b-instruct-v1:0" -> "meta.llama3-2-11b-instruct-v1"
+ AND "meta.llama3-2-11b-instruct-v1:0" -> "meta.llama3-2-11b-instruct-v1"
+ """
+
+ model = BedrockModelInfo.get_non_litellm_routing_model_name(model=model)
+ model = BedrockModelInfo.extract_model_name_from_arn(model)
+
+ potential_region = model.split(".", 1)[0]
+
+ alt_potential_region = model.split("/", 1)[
+ 0
+ ] # in model cost map we store regional information like `/us-west-2/bedrock-model`
+
+ if (
+ potential_region
+ in BedrockModelInfo._supported_cross_region_inference_region()
+ ):
+ return model.split(".", 1)[1]
+ elif (
+ alt_potential_region in BedrockModelInfo.all_global_regions
+ and len(model.split("/", 1)) > 1
+ ):
+ return model.split("/", 1)[1]
+
+ return model
+
+ @staticmethod
+ def _supported_cross_region_inference_region() -> List[str]:
+ """
+ Abbreviations of regions AWS Bedrock supports for cross region inference
+ """
+ return ["us", "eu", "apac"]
+
+ @staticmethod
+ def get_bedrock_route(model: str) -> Literal["converse", "invoke", "converse_like"]:
+ """
+ Get the bedrock route for the given model.
+ """
+ base_model = BedrockModelInfo.get_base_model(model)
+ alt_model = BedrockModelInfo.get_non_litellm_routing_model_name(model=model)
+ if "invoke/" in model:
+ return "invoke"
+ elif "converse_like" in model:
+ return "converse_like"
+ elif "converse/" in model:
+ return "converse"
+ elif (
+ base_model in litellm.bedrock_converse_models
+ or alt_model in litellm.bedrock_converse_models
+ ):
+ return "converse"
+ return "invoke"
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py
new file mode 100644
index 00000000..2747551a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py
@@ -0,0 +1,88 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to Bedrock Amazon Titan G1 /invoke format.
+
+Why separate file? Make it easy to see how transformation works
+
+Convers
+- G1 request format
+
+Docs - https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html
+"""
+
+import types
+from typing import List
+
+from litellm.types.llms.bedrock import (
+ AmazonTitanG1EmbeddingRequest,
+ AmazonTitanG1EmbeddingResponse,
+)
+from litellm.types.utils import Embedding, EmbeddingResponse, Usage
+
+
+class AmazonTitanG1Config:
+ """
+ Reference: https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html
+ """
+
+ def __init__(
+ self,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self) -> List[str]:
+ return []
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict
+ ) -> dict:
+ return optional_params
+
+ def _transform_request(
+ self, input: str, inference_params: dict
+ ) -> AmazonTitanG1EmbeddingRequest:
+ return AmazonTitanG1EmbeddingRequest(inputText=input)
+
+ def _transform_response(
+ self, response_list: List[dict], model: str
+ ) -> EmbeddingResponse:
+ total_prompt_tokens = 0
+
+ transformed_responses: List[Embedding] = []
+ for index, response in enumerate(response_list):
+ _parsed_response = AmazonTitanG1EmbeddingResponse(**response) # type: ignore
+ transformed_responses.append(
+ Embedding(
+ embedding=_parsed_response["embedding"],
+ index=index,
+ object="embedding",
+ )
+ )
+ total_prompt_tokens += _parsed_response["inputTextTokenCount"]
+
+ usage = Usage(
+ prompt_tokens=total_prompt_tokens,
+ completion_tokens=0,
+ total_tokens=total_prompt_tokens,
+ )
+ return EmbeddingResponse(model=model, usage=usage, data=transformed_responses)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_multimodal_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_multimodal_transformation.py
new file mode 100644
index 00000000..6c1147f2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_multimodal_transformation.py
@@ -0,0 +1,80 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to Bedrock Amazon Titan multimodal /invoke format.
+
+Why separate file? Make it easy to see how transformation works
+
+Docs - https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-mm.html
+"""
+
+from typing import List
+
+from litellm.types.llms.bedrock import (
+ AmazonTitanMultimodalEmbeddingConfig,
+ AmazonTitanMultimodalEmbeddingRequest,
+ AmazonTitanMultimodalEmbeddingResponse,
+)
+from litellm.types.utils import Embedding, EmbeddingResponse, Usage
+from litellm.utils import get_base64_str, is_base64_encoded
+
+
+class AmazonTitanMultimodalEmbeddingG1Config:
+ """
+ Reference - https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-mm.html
+ """
+
+ def __init__(self) -> None:
+ pass
+
+ def get_supported_openai_params(self) -> List[str]:
+ return ["dimensions"]
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "dimensions":
+ optional_params["embeddingConfig"] = (
+ AmazonTitanMultimodalEmbeddingConfig(outputEmbeddingLength=v)
+ )
+ return optional_params
+
+ def _transform_request(
+ self, input: str, inference_params: dict
+ ) -> AmazonTitanMultimodalEmbeddingRequest:
+ ## check if b64 encoded str or not ##
+ is_encoded = is_base64_encoded(input)
+ if is_encoded: # check if string is b64 encoded image or not
+ b64_str = get_base64_str(input)
+ transformed_request = AmazonTitanMultimodalEmbeddingRequest(
+ inputImage=b64_str
+ )
+ else:
+ transformed_request = AmazonTitanMultimodalEmbeddingRequest(inputText=input)
+
+ for k, v in inference_params.items():
+ transformed_request[k] = v # type: ignore
+ return transformed_request
+
+ def _transform_response(
+ self, response_list: List[dict], model: str
+ ) -> EmbeddingResponse:
+
+ total_prompt_tokens = 0
+ transformed_responses: List[Embedding] = []
+ for index, response in enumerate(response_list):
+ _parsed_response = AmazonTitanMultimodalEmbeddingResponse(**response) # type: ignore
+ transformed_responses.append(
+ Embedding(
+ embedding=_parsed_response["embedding"],
+ index=index,
+ object="embedding",
+ )
+ )
+ total_prompt_tokens += _parsed_response["inputTextTokenCount"]
+
+ usage = Usage(
+ prompt_tokens=total_prompt_tokens,
+ completion_tokens=0,
+ total_tokens=total_prompt_tokens,
+ )
+ return EmbeddingResponse(model=model, usage=usage, data=transformed_responses)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_v2_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_v2_transformation.py
new file mode 100644
index 00000000..8056e9e9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/amazon_titan_v2_transformation.py
@@ -0,0 +1,97 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to Bedrock Amazon Titan V2 /invoke format.
+
+Why separate file? Make it easy to see how transformation works
+
+Convers
+- v2 request format
+
+Docs - https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html
+"""
+
+import types
+from typing import List, Optional
+
+from litellm.types.llms.bedrock import (
+ AmazonTitanV2EmbeddingRequest,
+ AmazonTitanV2EmbeddingResponse,
+)
+from litellm.types.utils import Embedding, EmbeddingResponse, Usage
+
+
+class AmazonTitanV2Config:
+ """
+ Reference: https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html
+
+ normalize: boolean - flag indicating whether or not to normalize the output embeddings. Defaults to true
+ dimensions: int - The number of dimensions the output embeddings should have. The following values are accepted: 1024 (default), 512, 256.
+ """
+
+ normalize: Optional[bool] = None
+ dimensions: Optional[int] = None
+
+ def __init__(
+ self, normalize: Optional[bool] = None, dimensions: Optional[int] = None
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self) -> List[str]:
+ return ["dimensions"]
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "dimensions":
+ optional_params["dimensions"] = v
+ return optional_params
+
+ def _transform_request(
+ self, input: str, inference_params: dict
+ ) -> AmazonTitanV2EmbeddingRequest:
+ return AmazonTitanV2EmbeddingRequest(inputText=input, **inference_params) # type: ignore
+
+ def _transform_response(
+ self, response_list: List[dict], model: str
+ ) -> EmbeddingResponse:
+ total_prompt_tokens = 0
+
+ transformed_responses: List[Embedding] = []
+ for index, response in enumerate(response_list):
+ _parsed_response = AmazonTitanV2EmbeddingResponse(**response) # type: ignore
+ transformed_responses.append(
+ Embedding(
+ embedding=_parsed_response["embedding"],
+ index=index,
+ object="embedding",
+ )
+ )
+ total_prompt_tokens += _parsed_response["inputTextTokenCount"]
+
+ usage = Usage(
+ prompt_tokens=total_prompt_tokens,
+ completion_tokens=0,
+ total_tokens=total_prompt_tokens,
+ )
+ return EmbeddingResponse(model=model, usage=usage, data=transformed_responses)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/cohere_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/cohere_transformation.py
new file mode 100644
index 00000000..490cd71b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/cohere_transformation.py
@@ -0,0 +1,45 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to Bedrock Cohere /invoke format.
+
+Why separate file? Make it easy to see how transformation works
+"""
+
+from typing import List
+
+from litellm.llms.cohere.embed.transformation import CohereEmbeddingConfig
+from litellm.types.llms.bedrock import CohereEmbeddingRequest
+
+
+class BedrockCohereEmbeddingConfig:
+ def __init__(self) -> None:
+ pass
+
+ def get_supported_openai_params(self) -> List[str]:
+ return ["encoding_format"]
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "encoding_format":
+ optional_params["embedding_types"] = v
+ return optional_params
+
+ def _is_v3_model(self, model: str) -> bool:
+ return "3" in model
+
+ def _transform_request(
+ self, model: str, input: List[str], inference_params: dict
+ ) -> CohereEmbeddingRequest:
+ transformed_request = CohereEmbeddingConfig()._transform_request(
+ model, input, inference_params
+ )
+
+ new_transformed_request = CohereEmbeddingRequest(
+ input_type=transformed_request["input_type"],
+ )
+ for k in CohereEmbeddingRequest.__annotations__.keys():
+ if k in transformed_request:
+ new_transformed_request[k] = transformed_request[k] # type: ignore
+
+ return new_transformed_request
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/embedding.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/embedding.py
new file mode 100644
index 00000000..9e4e4e22
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/embedding.py
@@ -0,0 +1,480 @@
+"""
+Handles embedding calls to Bedrock's `/invoke` endpoint
+"""
+
+import copy
+import json
+from typing import Any, Callable, List, Optional, Tuple, Union
+
+import httpx
+
+import litellm
+from litellm.llms.cohere.embed.handler import embedding as cohere_embedding
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.secret_managers.main import get_secret
+from litellm.types.llms.bedrock import AmazonEmbeddingRequest, CohereEmbeddingRequest
+from litellm.types.utils import EmbeddingResponse
+
+from ..base_aws_llm import BaseAWSLLM
+from ..common_utils import BedrockError
+from .amazon_titan_g1_transformation import AmazonTitanG1Config
+from .amazon_titan_multimodal_transformation import (
+ AmazonTitanMultimodalEmbeddingG1Config,
+)
+from .amazon_titan_v2_transformation import AmazonTitanV2Config
+from .cohere_transformation import BedrockCohereEmbeddingConfig
+
+
+class BedrockEmbedding(BaseAWSLLM):
+ def _load_credentials(
+ self,
+ optional_params: dict,
+ ) -> Tuple[Any, str]:
+ try:
+ from botocore.credentials import Credentials
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+ ## CREDENTIALS ##
+ # pop aws_secret_access_key, aws_access_key_id, aws_session_token, aws_region_name from kwargs, since completion calls fail with them
+ aws_secret_access_key = optional_params.pop("aws_secret_access_key", None)
+ aws_access_key_id = optional_params.pop("aws_access_key_id", None)
+ aws_session_token = optional_params.pop("aws_session_token", None)
+ aws_region_name = optional_params.pop("aws_region_name", None)
+ aws_role_name = optional_params.pop("aws_role_name", None)
+ aws_session_name = optional_params.pop("aws_session_name", None)
+ aws_profile_name = optional_params.pop("aws_profile_name", None)
+ aws_web_identity_token = optional_params.pop("aws_web_identity_token", None)
+ aws_sts_endpoint = optional_params.pop("aws_sts_endpoint", None)
+
+ ### SET REGION NAME ###
+ if aws_region_name is None:
+ # check env #
+ litellm_aws_region_name = get_secret("AWS_REGION_NAME", None)
+
+ if litellm_aws_region_name is not None and isinstance(
+ litellm_aws_region_name, str
+ ):
+ aws_region_name = litellm_aws_region_name
+
+ standard_aws_region_name = get_secret("AWS_REGION", None)
+ if standard_aws_region_name is not None and isinstance(
+ standard_aws_region_name, str
+ ):
+ aws_region_name = standard_aws_region_name
+
+ if aws_region_name is None:
+ aws_region_name = "us-west-2"
+
+ credentials: Credentials = self.get_credentials(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_session_token=aws_session_token,
+ aws_region_name=aws_region_name,
+ aws_session_name=aws_session_name,
+ aws_profile_name=aws_profile_name,
+ aws_role_name=aws_role_name,
+ aws_web_identity_token=aws_web_identity_token,
+ aws_sts_endpoint=aws_sts_endpoint,
+ )
+ return credentials, aws_region_name
+
+ async def async_embeddings(self):
+ pass
+
+ def _make_sync_call(
+ self,
+ client: Optional[HTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ api_base: str,
+ headers: dict,
+ data: dict,
+ ) -> dict:
+ if client is None or not isinstance(client, HTTPHandler):
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ client = _get_httpx_client(_params) # type: ignore
+ else:
+ client = client
+ try:
+ response = client.post(url=api_base, headers=headers, data=json.dumps(data)) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ return response.json()
+
+ async def _make_async_call(
+ self,
+ client: Optional[AsyncHTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ api_base: str,
+ headers: dict,
+ data: dict,
+ ) -> dict:
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ client = get_async_httpx_client(
+ params=_params, llm_provider=litellm.LlmProviders.BEDROCK
+ )
+ else:
+ client = client
+
+ try:
+ response = await client.post(url=api_base, headers=headers, data=json.dumps(data)) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ return response.json()
+
+ def _single_func_embeddings(
+ self,
+ client: Optional[HTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ batch_data: List[dict],
+ credentials: Any,
+ extra_headers: Optional[dict],
+ endpoint_url: str,
+ aws_region_name: str,
+ model: str,
+ logging_obj: Any,
+ ):
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+
+ responses: List[dict] = []
+ for data in batch_data:
+ sigv4 = SigV4Auth(credentials, "bedrock", aws_region_name)
+ headers = {"Content-Type": "application/json"}
+ if extra_headers is not None:
+ headers = {"Content-Type": "application/json", **extra_headers}
+ request = AWSRequest(
+ method="POST", url=endpoint_url, data=json.dumps(data), headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+ prepped = request.prepare()
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": prepped.url,
+ "headers": prepped.headers,
+ },
+ )
+ response = self._make_sync_call(
+ client=client,
+ timeout=timeout,
+ api_base=prepped.url,
+ headers=prepped.headers, # type: ignore
+ data=data,
+ )
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=data,
+ api_key="",
+ original_response=response,
+ additional_args={"complete_input_dict": data},
+ )
+
+ responses.append(response)
+
+ returned_response: Optional[EmbeddingResponse] = None
+
+ ## TRANSFORM RESPONSE ##
+ if model == "amazon.titan-embed-image-v1":
+ returned_response = (
+ AmazonTitanMultimodalEmbeddingG1Config()._transform_response(
+ response_list=responses, model=model
+ )
+ )
+ elif model == "amazon.titan-embed-text-v1":
+ returned_response = AmazonTitanG1Config()._transform_response(
+ response_list=responses, model=model
+ )
+ elif model == "amazon.titan-embed-text-v2:0":
+ returned_response = AmazonTitanV2Config()._transform_response(
+ response_list=responses, model=model
+ )
+
+ if returned_response is None:
+ raise Exception(
+ "Unable to map model response to known provider format. model={}".format(
+ model
+ )
+ )
+
+ return returned_response
+
+ async def _async_single_func_embeddings(
+ self,
+ client: Optional[AsyncHTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ batch_data: List[dict],
+ credentials: Any,
+ extra_headers: Optional[dict],
+ endpoint_url: str,
+ aws_region_name: str,
+ model: str,
+ logging_obj: Any,
+ ):
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+
+ responses: List[dict] = []
+ for data in batch_data:
+ sigv4 = SigV4Auth(credentials, "bedrock", aws_region_name)
+ headers = {"Content-Type": "application/json"}
+ if extra_headers is not None:
+ headers = {"Content-Type": "application/json", **extra_headers}
+ request = AWSRequest(
+ method="POST", url=endpoint_url, data=json.dumps(data), headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+ prepped = request.prepare()
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": prepped.url,
+ "headers": prepped.headers,
+ },
+ )
+ response = await self._make_async_call(
+ client=client,
+ timeout=timeout,
+ api_base=prepped.url,
+ headers=prepped.headers, # type: ignore
+ data=data,
+ )
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=data,
+ api_key="",
+ original_response=response,
+ additional_args={"complete_input_dict": data},
+ )
+
+ responses.append(response)
+
+ returned_response: Optional[EmbeddingResponse] = None
+
+ ## TRANSFORM RESPONSE ##
+ if model == "amazon.titan-embed-image-v1":
+ returned_response = (
+ AmazonTitanMultimodalEmbeddingG1Config()._transform_response(
+ response_list=responses, model=model
+ )
+ )
+ elif model == "amazon.titan-embed-text-v1":
+ returned_response = AmazonTitanG1Config()._transform_response(
+ response_list=responses, model=model
+ )
+ elif model == "amazon.titan-embed-text-v2:0":
+ returned_response = AmazonTitanV2Config()._transform_response(
+ response_list=responses, model=model
+ )
+
+ if returned_response is None:
+ raise Exception(
+ "Unable to map model response to known provider format. model={}".format(
+ model
+ )
+ )
+
+ return returned_response
+
+ def embeddings(
+ self,
+ model: str,
+ input: List[str],
+ api_base: Optional[str],
+ model_response: EmbeddingResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ aembedding: Optional[bool],
+ extra_headers: Optional[dict],
+ optional_params: dict,
+ litellm_params: dict,
+ ) -> EmbeddingResponse:
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+
+ credentials, aws_region_name = self._load_credentials(optional_params)
+
+ ### TRANSFORMATION ###
+ provider = model.split(".")[0]
+ inference_params = copy.deepcopy(optional_params)
+ inference_params = {
+ k: v
+ for k, v in inference_params.items()
+ if k.lower() not in self.aws_authentication_params
+ }
+ inference_params.pop(
+ "user", None
+ ) # make sure user is not passed in for bedrock call
+ modelId = (
+ optional_params.pop("model_id", None) or model
+ ) # default to model if not passed
+
+ data: Optional[CohereEmbeddingRequest] = None
+ batch_data: Optional[List] = None
+ if provider == "cohere":
+ data = BedrockCohereEmbeddingConfig()._transform_request(
+ model=model, input=input, inference_params=inference_params
+ )
+ elif provider == "amazon" and model in [
+ "amazon.titan-embed-image-v1",
+ "amazon.titan-embed-text-v1",
+ "amazon.titan-embed-text-v2:0",
+ ]:
+ batch_data = []
+ for i in input:
+ if model == "amazon.titan-embed-image-v1":
+ transformed_request: (
+ AmazonEmbeddingRequest
+ ) = AmazonTitanMultimodalEmbeddingG1Config()._transform_request(
+ input=i, inference_params=inference_params
+ )
+ elif model == "amazon.titan-embed-text-v1":
+ transformed_request = AmazonTitanG1Config()._transform_request(
+ input=i, inference_params=inference_params
+ )
+ elif model == "amazon.titan-embed-text-v2:0":
+ transformed_request = AmazonTitanV2Config()._transform_request(
+ input=i, inference_params=inference_params
+ )
+ else:
+ raise Exception(
+ "Unmapped model. Received={}. Expected={}".format(
+ model,
+ [
+ "amazon.titan-embed-image-v1",
+ "amazon.titan-embed-text-v1",
+ "amazon.titan-embed-text-v2:0",
+ ],
+ )
+ )
+ batch_data.append(transformed_request)
+
+ ### SET RUNTIME ENDPOINT ###
+ endpoint_url, proxy_endpoint_url = self.get_runtime_endpoint(
+ api_base=api_base,
+ aws_bedrock_runtime_endpoint=optional_params.pop(
+ "aws_bedrock_runtime_endpoint", None
+ ),
+ aws_region_name=aws_region_name,
+ )
+ endpoint_url = f"{endpoint_url}/model/{modelId}/invoke"
+
+ if batch_data is not None:
+ if aembedding:
+ return self._async_single_func_embeddings( # type: ignore
+ client=(
+ client
+ if client is not None and isinstance(client, AsyncHTTPHandler)
+ else None
+ ),
+ timeout=timeout,
+ batch_data=batch_data,
+ credentials=credentials,
+ extra_headers=extra_headers,
+ endpoint_url=endpoint_url,
+ aws_region_name=aws_region_name,
+ model=model,
+ logging_obj=logging_obj,
+ )
+ return self._single_func_embeddings(
+ client=(
+ client
+ if client is not None and isinstance(client, HTTPHandler)
+ else None
+ ),
+ timeout=timeout,
+ batch_data=batch_data,
+ credentials=credentials,
+ extra_headers=extra_headers,
+ endpoint_url=endpoint_url,
+ aws_region_name=aws_region_name,
+ model=model,
+ logging_obj=logging_obj,
+ )
+ elif data is None:
+ raise Exception("Unable to map Bedrock request to provider")
+
+ sigv4 = SigV4Auth(credentials, "bedrock", aws_region_name)
+ headers = {"Content-Type": "application/json"}
+ if extra_headers is not None:
+ headers = {"Content-Type": "application/json", **extra_headers}
+
+ request = AWSRequest(
+ method="POST", url=endpoint_url, data=json.dumps(data), headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+ prepped = request.prepare()
+
+ ## ROUTING ##
+ return cohere_embedding(
+ model=model,
+ input=input,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ encoding=encoding,
+ data=data, # type: ignore
+ complete_api_base=prepped.url,
+ api_key=None,
+ aembedding=aembedding,
+ timeout=timeout,
+ client=client,
+ headers=prepped.headers, # type: ignore
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_nova_canvas_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_nova_canvas_transformation.py
new file mode 100644
index 00000000..de46edb9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_nova_canvas_transformation.py
@@ -0,0 +1,106 @@
+import types
+from typing import List, Optional
+
+from openai.types.image import Image
+
+from litellm.types.llms.bedrock import (
+ AmazonNovaCanvasTextToImageRequest, AmazonNovaCanvasTextToImageResponse,
+ AmazonNovaCanvasTextToImageParams, AmazonNovaCanvasRequestBase,
+)
+from litellm.types.utils import ImageResponse
+
+
+class AmazonNovaCanvasConfig:
+ """
+ Reference: https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/model-catalog/serverless/amazon.nova-canvas-v1:0
+
+ """
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ @classmethod
+ def get_supported_openai_params(cls, model: Optional[str] = None) -> List:
+ """
+ """
+ return ["n", "size", "quality"]
+
+ @classmethod
+ def _is_nova_model(cls, model: Optional[str] = None) -> bool:
+ """
+ Returns True if the model is a Nova Canvas model
+
+ Nova models follow this pattern:
+
+ """
+ if model:
+ if "amazon.nova-canvas" in model:
+ return True
+ return False
+
+ @classmethod
+ def transform_request_body(
+ cls, text: str, optional_params: dict
+ ) -> AmazonNovaCanvasRequestBase:
+ """
+ Transform the request body for Amazon Nova Canvas model
+ """
+ task_type = optional_params.pop("taskType", "TEXT_IMAGE")
+ image_generation_config = optional_params.pop("imageGenerationConfig", {})
+ image_generation_config = {**image_generation_config, **optional_params}
+ if task_type == "TEXT_IMAGE":
+ text_to_image_params = image_generation_config.pop("textToImageParams", {})
+ text_to_image_params = {"text" :text, **text_to_image_params}
+ text_to_image_params = AmazonNovaCanvasTextToImageParams(**text_to_image_params)
+ return AmazonNovaCanvasTextToImageRequest(textToImageParams=text_to_image_params, taskType=task_type,
+ imageGenerationConfig=image_generation_config)
+ raise NotImplementedError(f"Task type {task_type} is not supported")
+
+ @classmethod
+ def map_openai_params(cls, non_default_params: dict, optional_params: dict) -> dict:
+ """
+ Map the OpenAI params to the Bedrock params
+ """
+ _size = non_default_params.get("size")
+ if _size is not None:
+ width, height = _size.split("x")
+ optional_params["width"], optional_params["height"] = int(width), int(height)
+ if non_default_params.get("n") is not None:
+ optional_params["numberOfImages"] = non_default_params.get("n")
+ if non_default_params.get("quality") is not None:
+ if non_default_params.get("quality") in ("hd", "premium"):
+ optional_params["quality"] = "premium"
+ if non_default_params.get("quality") == "standard":
+ optional_params["quality"] = "standard"
+ return optional_params
+
+ @classmethod
+ def transform_response_dict_to_openai_response(
+ cls, model_response: ImageResponse, response_dict: dict
+ ) -> ImageResponse:
+ """
+ Transform the response dict to the OpenAI response
+ """
+
+ nova_response = AmazonNovaCanvasTextToImageResponse(**response_dict)
+ openai_images: List[Image] = []
+ for _img in nova_response.get("images", []):
+ openai_images.append(Image(b64_json=_img))
+
+ model_response.data = openai_images
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability1_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability1_transformation.py
new file mode 100644
index 00000000..698ecca9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability1_transformation.py
@@ -0,0 +1,104 @@
+import types
+from typing import List, Optional
+
+from openai.types.image import Image
+
+from litellm.types.utils import ImageResponse
+
+
+class AmazonStabilityConfig:
+ """
+ Reference: https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=stability.stable-diffusion-xl-v0
+
+ Supported Params for the Amazon / Stable Diffusion models:
+
+ - `cfg_scale` (integer): Default `7`. Between [ 0 .. 35 ]. How strictly the diffusion process adheres to the prompt text (higher values keep your image closer to your prompt)
+
+ - `seed` (float): Default: `0`. Between [ 0 .. 4294967295 ]. Random noise seed (omit this option or use 0 for a random seed)
+
+ - `steps` (array of strings): Default `30`. Between [ 10 .. 50 ]. Number of diffusion steps to run.
+
+ - `width` (integer): Default: `512`. multiple of 64 >= 128. Width of the image to generate, in pixels, in an increment divible by 64.
+ Engine-specific dimension validation:
+
+ - SDXL Beta: must be between 128x128 and 512x896 (or 896x512); only one dimension can be greater than 512.
+ - SDXL v0.9: must be one of 1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, or 896x1152
+ - SDXL v1.0: same as SDXL v0.9
+ - SD v1.6: must be between 320x320 and 1536x1536
+
+ - `height` (integer): Default: `512`. multiple of 64 >= 128. Height of the image to generate, in pixels, in an increment divible by 64.
+ Engine-specific dimension validation:
+
+ - SDXL Beta: must be between 128x128 and 512x896 (or 896x512); only one dimension can be greater than 512.
+ - SDXL v0.9: must be one of 1024x1024, 1152x896, 1216x832, 1344x768, 1536x640, 640x1536, 768x1344, 832x1216, or 896x1152
+ - SDXL v1.0: same as SDXL v0.9
+ - SD v1.6: must be between 320x320 and 1536x1536
+ """
+
+ cfg_scale: Optional[int] = None
+ seed: Optional[float] = None
+ steps: Optional[List[str]] = None
+ width: Optional[int] = None
+ height: Optional[int] = None
+
+ def __init__(
+ self,
+ cfg_scale: Optional[int] = None,
+ seed: Optional[float] = None,
+ steps: Optional[List[str]] = None,
+ width: Optional[int] = None,
+ height: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ @classmethod
+ def get_supported_openai_params(cls, model: Optional[str] = None) -> List:
+ return ["size"]
+
+ @classmethod
+ def map_openai_params(
+ cls,
+ non_default_params: dict,
+ optional_params: dict,
+ ):
+ _size = non_default_params.get("size")
+ if _size is not None:
+ width, height = _size.split("x")
+ optional_params["width"] = int(width)
+ optional_params["height"] = int(height)
+
+ return optional_params
+
+ @classmethod
+ def transform_response_dict_to_openai_response(
+ cls, model_response: ImageResponse, response_dict: dict
+ ) -> ImageResponse:
+ image_list: List[Image] = []
+ for artifact in response_dict["artifacts"]:
+ _image = Image(b64_json=artifact["base64"])
+ image_list.append(_image)
+
+ model_response.data = image_list
+
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py
new file mode 100644
index 00000000..2c90b3a1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py
@@ -0,0 +1,100 @@
+import types
+from typing import List, Optional
+
+from openai.types.image import Image
+
+from litellm.types.llms.bedrock import (
+ AmazonStability3TextToImageRequest,
+ AmazonStability3TextToImageResponse,
+)
+from litellm.types.utils import ImageResponse
+
+
+class AmazonStability3Config:
+ """
+ Reference: https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=stability.stable-diffusion-xl-v0
+
+ Stability API Ref: https://platform.stability.ai/docs/api-reference#tag/Generate/paths/~1v2beta~1stable-image~1generate~1sd3/post
+ """
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ @classmethod
+ def get_supported_openai_params(cls, model: Optional[str] = None) -> List:
+ """
+ No additional OpenAI params are mapped for stability 3
+ """
+ return []
+
+ @classmethod
+ def _is_stability_3_model(cls, model: Optional[str] = None) -> bool:
+ """
+ Returns True if the model is a Stability 3 model
+
+ Stability 3 models follow this pattern:
+ sd3-large
+ sd3-large-turbo
+ sd3-medium
+ sd3.5-large
+ sd3.5-large-turbo
+
+ Stability ultra models
+ stable-image-ultra-v1
+ """
+ if model:
+ if "sd3" in model or "sd3.5" in model:
+ return True
+ if "stable-image-ultra-v1" in model:
+ return True
+ return False
+
+ @classmethod
+ def transform_request_body(
+ cls, prompt: str, optional_params: dict
+ ) -> AmazonStability3TextToImageRequest:
+ """
+ Transform the request body for the Stability 3 models
+ """
+ data = AmazonStability3TextToImageRequest(prompt=prompt, **optional_params)
+ return data
+
+ @classmethod
+ def map_openai_params(cls, non_default_params: dict, optional_params: dict) -> dict:
+ """
+ Map the OpenAI params to the Bedrock params
+
+ No OpenAI params are mapped for Stability 3, so directly return the optional_params
+ """
+ return optional_params
+
+ @classmethod
+ def transform_response_dict_to_openai_response(
+ cls, model_response: ImageResponse, response_dict: dict
+ ) -> ImageResponse:
+ """
+ Transform the response dict to the OpenAI response
+ """
+
+ stability_3_response = AmazonStability3TextToImageResponse(**response_dict)
+ openai_images: List[Image] = []
+ for _img in stability_3_response.get("images", []):
+ openai_images.append(Image(b64_json=_img))
+
+ model_response.data = openai_images
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/cost_calculator.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/cost_calculator.py
new file mode 100644
index 00000000..0a20b44c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/cost_calculator.py
@@ -0,0 +1,41 @@
+from typing import Optional
+
+import litellm
+from litellm.types.utils import ImageResponse
+
+
+def cost_calculator(
+ model: str,
+ image_response: ImageResponse,
+ size: Optional[str] = None,
+ optional_params: Optional[dict] = None,
+) -> float:
+ """
+ Bedrock image generation cost calculator
+
+ Handles both Stability 1 and Stability 3 models
+ """
+ if litellm.AmazonStability3Config()._is_stability_3_model(model=model):
+ pass
+ else:
+ # Stability 1 models
+ optional_params = optional_params or {}
+
+ # see model_prices_and_context_window.json for details on how steps is used
+ # Reference pricing by steps for stability 1: https://aws.amazon.com/bedrock/pricing/
+ _steps = optional_params.get("steps", 50)
+ steps = "max-steps" if _steps > 50 else "50-steps"
+
+ # size is stored in model_prices_and_context_window.json as 1024-x-1024
+ # current size has 1024x1024
+ size = size or "1024-x-1024"
+ model = f"{size}/{steps}/{model}"
+
+ _model_info = litellm.get_model_info(
+ model=model,
+ custom_llm_provider="bedrock",
+ )
+
+ output_cost_per_image: float = _model_info.get("output_cost_per_image") or 0.0
+ num_images: int = len(image_response.data)
+ return output_cost_per_image * num_images
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/image_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/image_handler.py
new file mode 100644
index 00000000..8f7762e5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/image_handler.py
@@ -0,0 +1,314 @@
+import copy
+import json
+import os
+from typing import TYPE_CHECKING, Any, Optional, Union
+
+import httpx
+from pydantic import BaseModel
+
+import litellm
+from litellm._logging import verbose_logger
+from litellm.litellm_core_utils.litellm_logging import Logging as LitellmLogging
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.types.utils import ImageResponse
+
+from ..base_aws_llm import BaseAWSLLM
+from ..common_utils import BedrockError
+
+if TYPE_CHECKING:
+ from botocore.awsrequest import AWSPreparedRequest
+else:
+ AWSPreparedRequest = Any
+
+
+class BedrockImagePreparedRequest(BaseModel):
+ """
+ Internal/Helper class for preparing the request for bedrock image generation
+ """
+
+ endpoint_url: str
+ prepped: AWSPreparedRequest
+ body: bytes
+ data: dict
+
+
+class BedrockImageGeneration(BaseAWSLLM):
+ """
+ Bedrock Image Generation handler
+ """
+
+ def image_generation(
+ self,
+ model: str,
+ prompt: str,
+ model_response: ImageResponse,
+ optional_params: dict,
+ logging_obj: LitellmLogging,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ aimg_generation: bool = False,
+ api_base: Optional[str] = None,
+ extra_headers: Optional[dict] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ):
+ prepared_request = self._prepare_request(
+ model=model,
+ optional_params=optional_params,
+ api_base=api_base,
+ extra_headers=extra_headers,
+ logging_obj=logging_obj,
+ prompt=prompt,
+ )
+
+ if aimg_generation is True:
+ return self.async_image_generation(
+ prepared_request=prepared_request,
+ timeout=timeout,
+ model=model,
+ logging_obj=logging_obj,
+ prompt=prompt,
+ model_response=model_response,
+ client=(
+ client
+ if client is not None and isinstance(client, AsyncHTTPHandler)
+ else None
+ ),
+ )
+
+ if client is None or not isinstance(client, HTTPHandler):
+ client = _get_httpx_client()
+ try:
+ response = client.post(url=prepared_request.endpoint_url, headers=prepared_request.prepped.headers, data=prepared_request.body) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+ ### FORMAT RESPONSE TO OPENAI FORMAT ###
+ model_response = self._transform_response_dict_to_openai_response(
+ model_response=model_response,
+ model=model,
+ logging_obj=logging_obj,
+ prompt=prompt,
+ response=response,
+ data=prepared_request.data,
+ )
+ return model_response
+
+ async def async_image_generation(
+ self,
+ prepared_request: BedrockImagePreparedRequest,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ model: str,
+ logging_obj: LitellmLogging,
+ prompt: str,
+ model_response: ImageResponse,
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> ImageResponse:
+ """
+ Asynchronous handler for bedrock image generation
+
+ Awaits the response from the bedrock image generation endpoint
+ """
+ async_client = client or get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.BEDROCK,
+ params={"timeout": timeout},
+ )
+
+ try:
+ response = await async_client.post(url=prepared_request.endpoint_url, headers=prepared_request.prepped.headers, data=prepared_request.body) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ ### FORMAT RESPONSE TO OPENAI FORMAT ###
+ model_response = self._transform_response_dict_to_openai_response(
+ model=model,
+ logging_obj=logging_obj,
+ prompt=prompt,
+ response=response,
+ data=prepared_request.data,
+ model_response=model_response,
+ )
+ return model_response
+
+ def _prepare_request(
+ self,
+ model: str,
+ optional_params: dict,
+ api_base: Optional[str],
+ extra_headers: Optional[dict],
+ logging_obj: LitellmLogging,
+ prompt: str,
+ ) -> BedrockImagePreparedRequest:
+ """
+ Prepare the request body, headers, and endpoint URL for the Bedrock Image Generation API
+
+ Args:
+ model (str): The model to use for the image generation
+ optional_params (dict): The optional parameters for the image generation
+ api_base (Optional[str]): The base URL for the Bedrock API
+ extra_headers (Optional[dict]): The extra headers to include in the request
+ logging_obj (LitellmLogging): The logging object to use for logging
+ prompt (str): The prompt to use for the image generation
+ Returns:
+ BedrockImagePreparedRequest: The prepared request object
+
+ The BedrockImagePreparedRequest contains:
+ endpoint_url (str): The endpoint URL for the Bedrock Image Generation API
+ prepped (httpx.Request): The prepared request object
+ body (bytes): The request body
+ """
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+ boto3_credentials_info = self._get_boto_credentials_from_optional_params(
+ optional_params, model
+ )
+
+ ### SET RUNTIME ENDPOINT ###
+ modelId = model
+ _, proxy_endpoint_url = self.get_runtime_endpoint(
+ api_base=api_base,
+ aws_bedrock_runtime_endpoint=boto3_credentials_info.aws_bedrock_runtime_endpoint,
+ aws_region_name=boto3_credentials_info.aws_region_name,
+ )
+ proxy_endpoint_url = f"{proxy_endpoint_url}/model/{modelId}/invoke"
+ sigv4 = SigV4Auth(
+ boto3_credentials_info.credentials,
+ "bedrock",
+ boto3_credentials_info.aws_region_name,
+ )
+
+ data = self._get_request_body(
+ model=model, prompt=prompt, optional_params=optional_params
+ )
+
+ # Make POST Request
+ body = json.dumps(data).encode("utf-8")
+
+ headers = {"Content-Type": "application/json"}
+ if extra_headers is not None:
+ headers = {"Content-Type": "application/json", **extra_headers}
+ request = AWSRequest(
+ method="POST", url=proxy_endpoint_url, data=body, headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+ prepped = request.prepare()
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": proxy_endpoint_url,
+ "headers": prepped.headers,
+ },
+ )
+ return BedrockImagePreparedRequest(
+ endpoint_url=proxy_endpoint_url,
+ prepped=prepped,
+ body=body,
+ data=data,
+ )
+
+ def _get_request_body(
+ self,
+ model: str,
+ prompt: str,
+ optional_params: dict,
+ ) -> dict:
+ """
+ Get the request body for the Bedrock Image Generation API
+
+ Checks the model/provider and transforms the request body accordingly
+
+ Returns:
+ dict: The request body to use for the Bedrock Image Generation API
+ """
+ provider = model.split(".")[0]
+ inference_params = copy.deepcopy(optional_params)
+ inference_params.pop(
+ "user", None
+ ) # make sure user is not passed in for bedrock call
+ data = {}
+ if provider == "stability":
+ if litellm.AmazonStability3Config._is_stability_3_model(model):
+ request_body = litellm.AmazonStability3Config.transform_request_body(
+ prompt=prompt, optional_params=optional_params
+ )
+ return dict(request_body)
+ else:
+ prompt = prompt.replace(os.linesep, " ")
+ ## LOAD CONFIG
+ config = litellm.AmazonStabilityConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+ data = {
+ "text_prompts": [{"text": prompt, "weight": 1}],
+ **inference_params,
+ }
+ elif provider == "amazon":
+ return dict(litellm.AmazonNovaCanvasConfig.transform_request_body(text=prompt, optional_params=optional_params))
+ else:
+ raise BedrockError(
+ status_code=422, message=f"Unsupported model={model}, passed in"
+ )
+ return data
+
+ def _transform_response_dict_to_openai_response(
+ self,
+ model_response: ImageResponse,
+ model: str,
+ logging_obj: LitellmLogging,
+ prompt: str,
+ response: httpx.Response,
+ data: dict,
+ ) -> ImageResponse:
+ """
+ Transforms the Image Generation response from Bedrock to OpenAI format
+ """
+
+ ## LOGGING
+ if logging_obj is not None:
+ logging_obj.post_call(
+ input=prompt,
+ api_key="",
+ original_response=response.text,
+ additional_args={"complete_input_dict": data},
+ )
+ verbose_logger.debug("raw model_response: %s", response.text)
+ response_dict = response.json()
+ if response_dict is None:
+ raise ValueError("Error in response object format, got None")
+
+ config_class = (
+ litellm.AmazonStability3Config
+ if litellm.AmazonStability3Config._is_stability_3_model(model=model)
+ else litellm.AmazonNovaCanvasConfig if litellm.AmazonNovaCanvasConfig._is_nova_model(model=model)
+ else litellm.AmazonStabilityConfig
+ )
+ config_class.transform_response_dict_to_openai_response(
+ model_response=model_response,
+ response_dict=response_dict,
+ )
+
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/handler.py
new file mode 100644
index 00000000..cd8be691
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/handler.py
@@ -0,0 +1,168 @@
+import json
+from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union, cast
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LitellmLogging
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.types.llms.bedrock import BedrockPreparedRequest
+from litellm.types.rerank import RerankRequest
+from litellm.types.utils import RerankResponse
+
+from ..base_aws_llm import BaseAWSLLM
+from ..common_utils import BedrockError
+from .transformation import BedrockRerankConfig
+
+if TYPE_CHECKING:
+ from botocore.awsrequest import AWSPreparedRequest
+else:
+ AWSPreparedRequest = Any
+
+
+class BedrockRerankHandler(BaseAWSLLM):
+ async def arerank(
+ self,
+ prepared_request: BedrockPreparedRequest,
+ client: Optional[AsyncHTTPHandler] = None,
+ ):
+ if client is None:
+ client = get_async_httpx_client(llm_provider=litellm.LlmProviders.BEDROCK)
+ try:
+ response = await client.post(url=prepared_request["endpoint_url"], headers=prepared_request["prepped"].headers, data=prepared_request["body"]) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ return BedrockRerankConfig()._transform_response(response.json())
+
+ def rerank(
+ self,
+ model: str,
+ query: str,
+ documents: List[Union[str, Dict[str, Any]]],
+ optional_params: dict,
+ logging_obj: LitellmLogging,
+ top_n: Optional[int] = None,
+ rank_fields: Optional[List[str]] = None,
+ return_documents: Optional[bool] = True,
+ max_chunks_per_doc: Optional[int] = None,
+ _is_async: Optional[bool] = False,
+ api_base: Optional[str] = None,
+ extra_headers: Optional[dict] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ) -> RerankResponse:
+
+ request_data = RerankRequest(
+ model=model,
+ query=query,
+ documents=documents,
+ top_n=top_n,
+ rank_fields=rank_fields,
+ return_documents=return_documents,
+ )
+ data = BedrockRerankConfig()._transform_request(request_data)
+
+ prepared_request = self._prepare_request(
+ model=model,
+ optional_params=optional_params,
+ api_base=api_base,
+ extra_headers=extra_headers,
+ data=cast(dict, data),
+ )
+
+ logging_obj.pre_call(
+ input=data,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": prepared_request["endpoint_url"],
+ "headers": prepared_request["prepped"].headers,
+ },
+ )
+
+ if _is_async:
+ return self.arerank(prepared_request, client=client if client is not None and isinstance(client, AsyncHTTPHandler) else None) # type: ignore
+
+ if client is None or not isinstance(client, HTTPHandler):
+ client = _get_httpx_client()
+ try:
+ response = client.post(url=prepared_request["endpoint_url"], headers=prepared_request["prepped"].headers, data=prepared_request["body"]) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise BedrockError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise BedrockError(status_code=408, message="Timeout error occurred.")
+
+ logging_obj.post_call(
+ original_response=response.text,
+ api_key="",
+ )
+
+ response_json = response.json()
+
+ return BedrockRerankConfig()._transform_response(response_json)
+
+ def _prepare_request(
+ self,
+ model: str,
+ api_base: Optional[str],
+ extra_headers: Optional[dict],
+ data: dict,
+ optional_params: dict,
+ ) -> BedrockPreparedRequest:
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+ boto3_credentials_info = self._get_boto_credentials_from_optional_params(
+ optional_params, model
+ )
+
+ ### SET RUNTIME ENDPOINT ###
+ _, proxy_endpoint_url = self.get_runtime_endpoint(
+ api_base=api_base,
+ aws_bedrock_runtime_endpoint=boto3_credentials_info.aws_bedrock_runtime_endpoint,
+ aws_region_name=boto3_credentials_info.aws_region_name,
+ )
+ proxy_endpoint_url = proxy_endpoint_url.replace(
+ "bedrock-runtime", "bedrock-agent-runtime"
+ )
+ proxy_endpoint_url = f"{proxy_endpoint_url}/rerank"
+ sigv4 = SigV4Auth(
+ boto3_credentials_info.credentials,
+ "bedrock",
+ boto3_credentials_info.aws_region_name,
+ )
+ # Make POST Request
+ body = json.dumps(data).encode("utf-8")
+
+ headers = {"Content-Type": "application/json"}
+ if extra_headers is not None:
+ headers = {"Content-Type": "application/json", **extra_headers}
+ request = AWSRequest(
+ method="POST", url=proxy_endpoint_url, data=body, headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+ prepped = request.prepare()
+
+ return BedrockPreparedRequest(
+ endpoint_url=proxy_endpoint_url,
+ prepped=prepped,
+ body=body,
+ data=data,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/transformation.py
new file mode 100644
index 00000000..a5380feb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/transformation.py
@@ -0,0 +1,119 @@
+"""
+Translates from Cohere's `/v1/rerank` input format to Bedrock's `/rerank` input format.
+
+Why separate file? Make it easy to see how transformation works
+"""
+
+import uuid
+from typing import List, Optional, Union
+
+from litellm.types.llms.bedrock import (
+ BedrockRerankBedrockRerankingConfiguration,
+ BedrockRerankConfiguration,
+ BedrockRerankInlineDocumentSource,
+ BedrockRerankModelConfiguration,
+ BedrockRerankQuery,
+ BedrockRerankRequest,
+ BedrockRerankSource,
+ BedrockRerankTextDocument,
+ BedrockRerankTextQuery,
+)
+from litellm.types.rerank import (
+ RerankBilledUnits,
+ RerankRequest,
+ RerankResponse,
+ RerankResponseMeta,
+ RerankResponseResult,
+ RerankTokens,
+)
+
+
+class BedrockRerankConfig:
+
+ def _transform_sources(
+ self, documents: List[Union[str, dict]]
+ ) -> List[BedrockRerankSource]:
+ """
+ Transform the sources from RerankRequest format to Bedrock format.
+ """
+ _sources = []
+ for document in documents:
+ if isinstance(document, str):
+ _sources.append(
+ BedrockRerankSource(
+ inlineDocumentSource=BedrockRerankInlineDocumentSource(
+ textDocument=BedrockRerankTextDocument(text=document),
+ type="TEXT",
+ ),
+ type="INLINE",
+ )
+ )
+ else:
+ _sources.append(
+ BedrockRerankSource(
+ inlineDocumentSource=BedrockRerankInlineDocumentSource(
+ jsonDocument=document, type="JSON"
+ ),
+ type="INLINE",
+ )
+ )
+ return _sources
+
+ def _transform_request(self, request_data: RerankRequest) -> BedrockRerankRequest:
+ """
+ Transform the request from RerankRequest format to Bedrock format.
+ """
+ _sources = self._transform_sources(request_data.documents)
+
+ return BedrockRerankRequest(
+ queries=[
+ BedrockRerankQuery(
+ textQuery=BedrockRerankTextQuery(text=request_data.query),
+ type="TEXT",
+ )
+ ],
+ rerankingConfiguration=BedrockRerankConfiguration(
+ bedrockRerankingConfiguration=BedrockRerankBedrockRerankingConfiguration(
+ modelConfiguration=BedrockRerankModelConfiguration(
+ modelArn=request_data.model
+ ),
+ numberOfResults=request_data.top_n or len(request_data.documents),
+ ),
+ type="BEDROCK_RERANKING_MODEL",
+ ),
+ sources=_sources,
+ )
+
+ def _transform_response(self, response: dict) -> RerankResponse:
+ """
+ Transform the response from Bedrock into the RerankResponse format.
+
+ example input:
+ {"results":[{"index":0,"relevanceScore":0.6847912669181824},{"index":1,"relevanceScore":0.5980774760246277}]}
+ """
+ _billed_units = RerankBilledUnits(
+ **response.get("usage", {"search_units": 1})
+ ) # by default 1 search unit
+ _tokens = RerankTokens(**response.get("usage", {}))
+ rerank_meta = RerankResponseMeta(billed_units=_billed_units, tokens=_tokens)
+
+ _results: Optional[List[RerankResponseResult]] = None
+
+ bedrock_results = response.get("results")
+ if bedrock_results:
+ _results = [
+ RerankResponseResult(
+ index=result.get("index"),
+ relevance_score=result.get("relevanceScore"),
+ )
+ for result in bedrock_results
+ ]
+
+ if _results is None:
+ raise ValueError(f"No results found in the response={response}")
+
+ return RerankResponse(
+ id=response.get("id") or str(uuid.uuid4()),
+ results=_results,
+ meta=rerank_meta,
+ ) # Return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cerebras/chat.py b/.venv/lib/python3.12/site-packages/litellm/llms/cerebras/chat.py
new file mode 100644
index 00000000..4e9c6811
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cerebras/chat.py
@@ -0,0 +1,83 @@
+"""
+Cerebras Chat Completions API
+
+this is OpenAI compatible - no translation needed / occurs
+"""
+
+from typing import Optional
+
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class CerebrasConfig(OpenAIGPTConfig):
+ """
+ Reference: https://inference-docs.cerebras.ai/api-reference/chat-completions
+
+ Below are the parameters:
+ """
+
+ max_tokens: Optional[int] = None
+ response_format: Optional[dict] = None
+ seed: Optional[int] = None
+ stream: Optional[bool] = None
+ top_p: Optional[int] = None
+ tool_choice: Optional[str] = None
+ tools: Optional[list] = None
+ user: Optional[str] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ response_format: Optional[dict] = None,
+ seed: Optional[int] = None,
+ stop: Optional[str] = None,
+ stream: Optional[bool] = None,
+ temperature: Optional[float] = None,
+ top_p: Optional[int] = None,
+ tool_choice: Optional[str] = None,
+ tools: Optional[list] = None,
+ user: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ Get the supported OpenAI params for the given model
+
+ """
+
+ return [
+ "max_tokens",
+ "max_completion_tokens",
+ "response_format",
+ "seed",
+ "stop",
+ "stream",
+ "temperature",
+ "top_p",
+ "tool_choice",
+ "tools",
+ "user",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ supported_openai_params = self.get_supported_openai_params(model=model)
+ for param, value in non_default_params.items():
+ if param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ elif param in supported_openai_params:
+ optional_params[param] = value
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/clarifai/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/clarifai/chat/transformation.py
new file mode 100644
index 00000000..916da738
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/clarifai/chat/transformation.py
@@ -0,0 +1,261 @@
+import json
+from typing import TYPE_CHECKING, Any, AsyncIterator, Iterator, List, Optional, Union
+
+import httpx
+
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ convert_content_list_to_str,
+)
+from litellm.llms.base_llm.base_model_iterator import FakeStreamResponseIterator
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import (
+ ChatCompletionToolCallChunk,
+ ChatCompletionUsageBlock,
+ Choices,
+ GenericStreamingChunk,
+ Message,
+ ModelResponse,
+ Usage,
+)
+from litellm.utils import token_counter
+
+from ..common_utils import ClarifaiError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+
+ LoggingClass = LiteLLMLoggingObj
+else:
+ LoggingClass = Any
+
+
+class ClarifaiConfig(BaseConfig):
+ """
+ Reference: https://clarifai.com/meta/Llama-2/models/llama2-70b-chat
+ """
+
+ max_tokens: Optional[int] = None
+ temperature: Optional[int] = None
+ top_k: Optional[int] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ temperature: Optional[int] = None,
+ top_k: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ return [
+ "temperature",
+ "max_tokens",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "temperature":
+ optional_params["temperature"] = value
+ elif param == "max_tokens":
+ optional_params["max_tokens"] = value
+
+ return optional_params
+
+ def _completions_to_model(self, prompt: str, optional_params: dict) -> dict:
+ params = {}
+ if temperature := optional_params.get("temperature"):
+ params["temperature"] = temperature
+ if max_tokens := optional_params.get("max_tokens"):
+ params["max_tokens"] = max_tokens
+ return {
+ "inputs": [{"data": {"text": {"raw": prompt}}}],
+ "model": {"output_info": {"params": params}},
+ }
+
+ def _convert_model_to_url(self, model: str, api_base: str):
+ user_id, app_id, model_id = model.split(".")
+ return f"{api_base}/users/{user_id}/apps/{app_id}/models/{model_id}/outputs"
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ prompt = " ".join(convert_content_list_to_str(message) for message in messages)
+
+ ## Load Config
+ config = self.get_config()
+ for k, v in config.items():
+ if k not in optional_params:
+ optional_params[k] = v
+
+ data = self._completions_to_model(
+ prompt=prompt, optional_params=optional_params
+ )
+
+ return data
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ headers = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+
+ if api_key:
+ headers["Authorization"] = f"Bearer {api_key}"
+ return headers
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return ClarifaiError(message=error_message, status_code=status_code)
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LoggingClass,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: str,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=raw_response.text,
+ additional_args={"complete_input_dict": request_data},
+ )
+ ## RESPONSE OBJECT
+ try:
+ completion_response = raw_response.json()
+ except httpx.HTTPStatusError as e:
+ raise ClarifaiError(
+ message=str(e),
+ status_code=raw_response.status_code,
+ )
+ except Exception as e:
+ raise ClarifaiError(
+ message=str(e),
+ status_code=422,
+ )
+ # print(completion_response)
+ try:
+ choices_list = []
+ for idx, item in enumerate(completion_response["outputs"]):
+ if len(item["data"]["text"]["raw"]) > 0:
+ message_obj = Message(content=item["data"]["text"]["raw"])
+ else:
+ message_obj = Message(content=None)
+ choice_obj = Choices(
+ finish_reason="stop",
+ index=idx + 1, # check
+ message=message_obj,
+ )
+ choices_list.append(choice_obj)
+ model_response.choices = choices_list # type: ignore
+
+ except Exception as e:
+ raise ClarifaiError(
+ message=str(e),
+ status_code=422,
+ )
+
+ # Calculate Usage
+ prompt_tokens = token_counter(model=model, messages=messages)
+ completion_tokens = len(
+ encoding.encode(model_response["choices"][0]["message"].get("content"))
+ )
+ model_response.model = model
+ setattr(
+ model_response,
+ "usage",
+ Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ ),
+ )
+ return model_response
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ) -> Any:
+ return ClarifaiModelResponseIterator(
+ model_response=streaming_response,
+ json_mode=json_mode,
+ )
+
+
+class ClarifaiModelResponseIterator(FakeStreamResponseIterator):
+ def __init__(
+ self,
+ model_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ json_mode: Optional[bool] = False,
+ ):
+ super().__init__(
+ model_response=model_response,
+ json_mode=json_mode,
+ )
+
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ is_finished = False
+ finish_reason = ""
+ usage: Optional[ChatCompletionUsageBlock] = None
+ provider_specific_fields = None
+
+ text = (
+ chunk.get("outputs", "")[0]
+ .get("data", "")
+ .get("text", "")
+ .get("raw", "")
+ )
+
+ index: int = 0
+
+ return GenericStreamingChunk(
+ text=text,
+ tool_use=tool_use,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=usage,
+ index=index,
+ provider_specific_fields=provider_specific_fields,
+ )
+ except json.JSONDecodeError:
+ raise ValueError(f"Failed to decode JSON from chunk: {chunk}")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/clarifai/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/clarifai/common_utils.py
new file mode 100644
index 00000000..611d2ccf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/clarifai/common_utils.py
@@ -0,0 +1,6 @@
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class ClarifaiError(BaseLLMException):
+ def __init__(self, status_code: int, message: str):
+ super().__init__(status_code=status_code, message=message)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cloudflare/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/cloudflare/chat/handler.py
new file mode 100644
index 00000000..57f07215
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cloudflare/chat/handler.py
@@ -0,0 +1,5 @@
+"""
+Cloudflare - uses `llm_http_handler.py` to make httpx requests
+
+Request/Response transformation is handled in `transformation.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cloudflare/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/cloudflare/chat/transformation.py
new file mode 100644
index 00000000..83c7483d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cloudflare/chat/transformation.py
@@ -0,0 +1,216 @@
+import json
+import time
+from typing import AsyncIterator, Iterator, List, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.llms.base_llm.chat.transformation import (
+ BaseConfig,
+ BaseLLMException,
+ LiteLLMLoggingObj,
+)
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import (
+ ChatCompletionToolCallChunk,
+ ChatCompletionUsageBlock,
+ GenericStreamingChunk,
+ ModelResponse,
+ Usage,
+)
+
+
+class CloudflareError(BaseLLMException):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(method="POST", url="https://api.cloudflare.com")
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ status_code=status_code,
+ message=message,
+ request=self.request,
+ response=self.response,
+ ) # Call the base class constructor with the parameters it needs
+
+
+class CloudflareChatConfig(BaseConfig):
+ max_tokens: Optional[int] = None
+ stream: Optional[bool] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ stream: Optional[bool] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ if api_key is None:
+ raise ValueError(
+ "Missing CloudflareError API Key - A call is being made to cloudflare but no key is set either in the environment variables or via params"
+ )
+ headers = {
+ "accept": "application/json",
+ "content-type": "apbplication/json",
+ "Authorization": "Bearer " + api_key,
+ }
+ return headers
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ if api_base is None:
+ account_id = get_secret_str("CLOUDFLARE_ACCOUNT_ID")
+ api_base = (
+ f"https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/"
+ )
+ return api_base + model
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return [
+ "stream",
+ "max_tokens",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ supported_openai_params = self.get_supported_openai_params(model=model)
+ for param, value in non_default_params.items():
+ if param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ elif param in supported_openai_params:
+ optional_params[param] = value
+ return optional_params
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ config = litellm.CloudflareChatConfig.get_config()
+ for k, v in config.items():
+ if k not in optional_params:
+ optional_params[k] = v
+
+ data = {
+ "messages": messages,
+ **optional_params,
+ }
+ return data
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: str,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ completion_response = raw_response.json()
+
+ model_response.choices[0].message.content = completion_response["result"][ # type: ignore
+ "response"
+ ]
+
+ prompt_tokens = litellm.utils.get_token_count(messages=messages, model=model)
+ completion_tokens = len(
+ encoding.encode(model_response["choices"][0]["message"].get("content", ""))
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = "cloudflare/" + model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return CloudflareError(
+ status_code=status_code,
+ message=error_message,
+ )
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ):
+ return CloudflareChatResponseIterator(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+
+class CloudflareChatResponseIterator(BaseModelResponseIterator):
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ is_finished = False
+ finish_reason = ""
+ usage: Optional[ChatCompletionUsageBlock] = None
+ provider_specific_fields = None
+
+ index = int(chunk.get("index", 0))
+
+ if "response" in chunk:
+ text = chunk["response"]
+
+ returned_chunk = GenericStreamingChunk(
+ text=text,
+ tool_use=tool_use,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=usage,
+ index=index,
+ provider_specific_fields=provider_specific_fields,
+ )
+
+ return returned_chunk
+
+ except json.JSONDecodeError:
+ raise ValueError(f"Failed to decode JSON from chunk: {chunk}")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/codestral/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/codestral/completion/handler.py
new file mode 100644
index 00000000..fc6d2886
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/codestral/completion/handler.py
@@ -0,0 +1,425 @@
+# What is this?
+## handler file for TextCompletionCodestral Integration - https://codestral.com/
+
+import json
+from functools import partial
+from typing import Callable, List, Optional, Union
+
+import httpx # type: ignore
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLogging
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ custom_prompt,
+ prompt_factory,
+)
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.utils import TextChoices
+from litellm.utils import CustomStreamWrapper, TextCompletionResponse
+
+
+class TextCompletionCodestralError(Exception):
+ def __init__(
+ self,
+ status_code,
+ message,
+ request: Optional[httpx.Request] = None,
+ response: Optional[httpx.Response] = None,
+ ):
+ self.status_code = status_code
+ self.message = message
+ if request is not None:
+ self.request = request
+ else:
+ self.request = httpx.Request(
+ method="POST",
+ url="https://docs.codestral.com/user-guide/inference/rest_api",
+ )
+ if response is not None:
+ self.response = response
+ else:
+ self.response = httpx.Response(
+ status_code=status_code, request=self.request
+ )
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+async def make_call(
+ client: AsyncHTTPHandler,
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+):
+ response = await client.post(api_base, headers=headers, data=data, stream=True)
+
+ if response.status_code != 200:
+ raise TextCompletionCodestralError(
+ status_code=response.status_code, message=response.text
+ )
+
+ completion_stream = response.aiter_lines()
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=completion_stream, # Pass the completion stream for logging
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+
+
+class CodestralTextCompletion:
+ def __init__(self) -> None:
+ super().__init__()
+
+ def _validate_environment(
+ self,
+ api_key: Optional[str],
+ user_headers: dict,
+ ) -> dict:
+ if api_key is None:
+ raise ValueError(
+ "Missing CODESTRAL_API_Key - Please add CODESTRAL_API_Key to your environment variables"
+ )
+ headers = {
+ "content-type": "application/json",
+ "Authorization": "Bearer {}".format(api_key),
+ }
+ if user_headers is not None and isinstance(user_headers, dict):
+ headers = {**headers, **user_headers}
+ return headers
+
+ def output_parser(self, generated_text: str):
+ """
+ Parse the output text to remove any special characters. In our current approach we just check for ChatML tokens.
+
+ Initial issue that prompted this - https://github.com/BerriAI/litellm/issues/763
+ """
+ chat_template_tokens = [
+ "<|assistant|>",
+ "<|system|>",
+ "<|user|>",
+ "<s>",
+ "</s>",
+ ]
+ for token in chat_template_tokens:
+ if generated_text.strip().startswith(token):
+ generated_text = generated_text.replace(token, "", 1)
+ if generated_text.endswith(token):
+ generated_text = generated_text[::-1].replace(token[::-1], "", 1)[::-1]
+ return generated_text
+
+ def process_text_completion_response(
+ self,
+ model: str,
+ response: httpx.Response,
+ model_response: TextCompletionResponse,
+ stream: bool,
+ logging_obj: LiteLLMLogging,
+ optional_params: dict,
+ api_key: str,
+ data: Union[dict, str],
+ messages: list,
+ print_verbose,
+ encoding,
+ ) -> TextCompletionResponse:
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=response.text,
+ additional_args={"complete_input_dict": data},
+ )
+ print_verbose(f"codestral api: raw model_response: {response.text}")
+ ## RESPONSE OBJECT
+ if response.status_code != 200:
+ raise TextCompletionCodestralError(
+ message=str(response.text),
+ status_code=response.status_code,
+ )
+ try:
+ completion_response = response.json()
+ except Exception:
+ raise TextCompletionCodestralError(message=response.text, status_code=422)
+
+ _original_choices = completion_response.get("choices", [])
+ _choices: List[TextChoices] = []
+ for choice in _original_choices:
+ # This is what 1 choice looks like from codestral API
+ # {
+ # "index": 0,
+ # "message": {
+ # "role": "assistant",
+ # "content": "\n assert is_odd(1)\n assert",
+ # "tool_calls": null
+ # },
+ # "finish_reason": "length",
+ # "logprobs": null
+ # }
+ _finish_reason = None
+ _index = 0
+ _text = None
+ _logprobs = None
+
+ _choice_message = choice.get("message", {})
+ _choice = litellm.utils.TextChoices(
+ finish_reason=choice.get("finish_reason"),
+ index=choice.get("index"),
+ text=_choice_message.get("content"),
+ logprobs=choice.get("logprobs"),
+ )
+
+ _choices.append(_choice)
+
+ _response = litellm.TextCompletionResponse(
+ id=completion_response.get("id"),
+ choices=_choices,
+ created=completion_response.get("created"),
+ model=completion_response.get("model"),
+ usage=completion_response.get("usage"),
+ stream=False,
+ object=completion_response.get("object"),
+ )
+ return _response
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: TextCompletionResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key: str,
+ logging_obj,
+ optional_params: dict,
+ timeout: Union[float, httpx.Timeout],
+ acompletion=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers: dict = {},
+ ) -> Union[TextCompletionResponse, CustomStreamWrapper]:
+ headers = self._validate_environment(api_key, headers)
+
+ if optional_params.pop("custom_endpoint", None) is True:
+ completion_url = api_base
+ else:
+ completion_url = (
+ api_base or "https://codestral.mistral.ai/v1/fim/completions"
+ )
+
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details["initial_prompt_value"],
+ final_prompt_value=model_prompt_details["final_prompt_value"],
+ messages=messages,
+ )
+ else:
+ prompt = prompt_factory(model=model, messages=messages)
+
+ ## Load Config
+ config = litellm.CodestralTextCompletionConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ stream = optional_params.pop("stream", False)
+
+ data = {
+ "model": model,
+ "prompt": prompt,
+ **optional_params,
+ }
+ input_text = prompt
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input_text,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "headers": headers,
+ "api_base": completion_url,
+ "acompletion": acompletion,
+ },
+ )
+ ## COMPLETION CALL
+ if acompletion is True:
+ ### ASYNC STREAMING
+ if stream is True:
+ return self.async_streaming(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=completion_url,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ ) # type: ignore
+ else:
+ ### ASYNC COMPLETION
+ return self.async_completion(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=completion_url,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=False,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ ) # type: ignore
+
+ ### SYNC STREAMING
+ if stream is True:
+ response = litellm.module_level_client.post(
+ completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ stream=stream,
+ )
+ _response = CustomStreamWrapper(
+ response.iter_lines(),
+ model,
+ custom_llm_provider="codestral",
+ logging_obj=logging_obj,
+ )
+ return _response
+ ### SYNC COMPLETION
+ else:
+
+ response = litellm.module_level_client.post(
+ url=completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ )
+ return self.process_text_completion_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=optional_params.get("stream", False),
+ logging_obj=logging_obj, # type: ignore
+ optional_params=optional_params,
+ api_key=api_key,
+ data=data,
+ messages=messages,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ )
+
+ async def async_completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: TextCompletionResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ stream,
+ data: dict,
+ optional_params: dict,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ ) -> TextCompletionResponse:
+
+ async_handler = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.TEXT_COMPLETION_CODESTRAL,
+ params={"timeout": timeout},
+ )
+ try:
+
+ response = await async_handler.post(
+ api_base, headers=headers, data=json.dumps(data)
+ )
+ except httpx.HTTPStatusError as e:
+ raise TextCompletionCodestralError(
+ status_code=e.response.status_code,
+ message="HTTPStatusError - {}".format(e.response.text),
+ )
+ except Exception as e:
+ raise TextCompletionCodestralError(
+ status_code=500, message="{}".format(str(e))
+ ) # don't use verbose_logger.exception, if exception is raised
+ return self.process_text_completion_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=stream,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ data=data,
+ messages=messages,
+ print_verbose=print_verbose,
+ optional_params=optional_params,
+ encoding=encoding,
+ )
+
+ async def async_streaming(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: TextCompletionResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ optional_params=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ ) -> CustomStreamWrapper:
+ data["stream"] = True
+
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=None,
+ make_call=partial(
+ make_call,
+ api_base=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ ),
+ model=model,
+ custom_llm_provider="text-completion-codestral",
+ logging_obj=logging_obj,
+ )
+ return streamwrapper
+
+ def embedding(self, *args, **kwargs):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/codestral/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/codestral/completion/transformation.py
new file mode 100644
index 00000000..5955e91d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/codestral/completion/transformation.py
@@ -0,0 +1,122 @@
+import json
+from typing import Optional
+
+import litellm
+from litellm.llms.openai.completion.transformation import OpenAITextCompletionConfig
+from litellm.types.llms.databricks import GenericStreamingChunk
+
+
+class CodestralTextCompletionConfig(OpenAITextCompletionConfig):
+ """
+ Reference: https://docs.mistral.ai/api/#operation/createFIMCompletion
+ """
+
+ suffix: Optional[str] = None
+ temperature: Optional[int] = None
+ max_tokens: Optional[int] = None
+ min_tokens: Optional[int] = None
+ stream: Optional[bool] = None
+ random_seed: Optional[int] = None
+
+ def __init__(
+ self,
+ suffix: Optional[str] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[float] = None,
+ max_tokens: Optional[int] = None,
+ min_tokens: Optional[int] = None,
+ stream: Optional[bool] = None,
+ random_seed: Optional[int] = None,
+ stop: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "suffix",
+ "temperature",
+ "top_p",
+ "max_tokens",
+ "max_completion_tokens",
+ "stream",
+ "seed",
+ "stop",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "suffix":
+ optional_params["suffix"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "max_tokens" or param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ if param == "stream" and value is True:
+ optional_params["stream"] = value
+ if param == "stop":
+ optional_params["stop"] = value
+ if param == "seed":
+ optional_params["random_seed"] = value
+ if param == "min_tokens":
+ optional_params["min_tokens"] = value
+
+ return optional_params
+
+ def _chunk_parser(self, chunk_data: str) -> GenericStreamingChunk:
+
+ text = ""
+ is_finished = False
+ finish_reason = None
+ logprobs = None
+
+ chunk_data = (
+ litellm.CustomStreamWrapper._strip_sse_data_from_chunk(chunk_data) or ""
+ )
+ chunk_data = chunk_data.strip()
+ if len(chunk_data) == 0 or chunk_data == "[DONE]":
+ return {
+ "text": "",
+ "is_finished": is_finished,
+ "finish_reason": finish_reason,
+ }
+ try:
+ chunk_data_dict = json.loads(chunk_data)
+ except json.JSONDecodeError:
+ return {
+ "text": "",
+ "is_finished": is_finished,
+ "finish_reason": finish_reason,
+ }
+
+ original_chunk = litellm.ModelResponse(**chunk_data_dict, stream=True)
+ _choices = chunk_data_dict.get("choices", []) or []
+ _choice = _choices[0]
+ text = _choice.get("delta", {}).get("content", "")
+
+ if _choice.get("finish_reason") is not None:
+ is_finished = True
+ finish_reason = _choice.get("finish_reason")
+ logprobs = _choice.get("logprobs")
+
+ return GenericStreamingChunk(
+ text=text,
+ original_chunk=original_chunk,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ logprobs=logprobs,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/chat/transformation.py
new file mode 100644
index 00000000..3ceec2db
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/chat/transformation.py
@@ -0,0 +1,368 @@
+import json
+import time
+from typing import TYPE_CHECKING, Any, AsyncIterator, Iterator, List, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.factory import cohere_messages_pt_v2
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse, Usage
+
+from ..common_utils import ModelResponseIterator as CohereModelResponseIterator
+from ..common_utils import validate_environment as cohere_validate_environment
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class CohereError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[httpx.Headers] = None,
+ ):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(method="POST", url="https://api.cohere.ai/v1/chat")
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ status_code=status_code,
+ message=message,
+ headers=headers,
+ )
+
+
+class CohereChatConfig(BaseConfig):
+ """
+ Configuration class for Cohere's API interface.
+
+ Args:
+ preamble (str, optional): When specified, the default Cohere preamble will be replaced with the provided one.
+ chat_history (List[Dict[str, str]], optional): A list of previous messages between the user and the model.
+ generation_id (str, optional): Unique identifier for the generated reply.
+ response_id (str, optional): Unique identifier for the response.
+ conversation_id (str, optional): An alternative to chat_history, creates or resumes a persisted conversation.
+ prompt_truncation (str, optional): Dictates how the prompt will be constructed. Options: 'AUTO', 'AUTO_PRESERVE_ORDER', 'OFF'.
+ connectors (List[Dict[str, str]], optional): List of connectors (e.g., web-search) to enrich the model's reply.
+ search_queries_only (bool, optional): When true, the response will only contain a list of generated search queries.
+ documents (List[Dict[str, str]], optional): A list of relevant documents that the model can cite.
+ temperature (float, optional): A non-negative float that tunes the degree of randomness in generation.
+ max_tokens (int, optional): The maximum number of tokens the model will generate as part of the response.
+ k (int, optional): Ensures only the top k most likely tokens are considered for generation at each step.
+ p (float, optional): Ensures that only the most likely tokens, with total probability mass of p, are considered for generation.
+ frequency_penalty (float, optional): Used to reduce repetitiveness of generated tokens.
+ presence_penalty (float, optional): Used to reduce repetitiveness of generated tokens.
+ tools (List[Dict[str, str]], optional): A list of available tools (functions) that the model may suggest invoking.
+ tool_results (List[Dict[str, Any]], optional): A list of results from invoking tools.
+ seed (int, optional): A seed to assist reproducibility of the model's response.
+ """
+
+ preamble: Optional[str] = None
+ chat_history: Optional[list] = None
+ generation_id: Optional[str] = None
+ response_id: Optional[str] = None
+ conversation_id: Optional[str] = None
+ prompt_truncation: Optional[str] = None
+ connectors: Optional[list] = None
+ search_queries_only: Optional[bool] = None
+ documents: Optional[list] = None
+ temperature: Optional[int] = None
+ max_tokens: Optional[int] = None
+ k: Optional[int] = None
+ p: Optional[int] = None
+ frequency_penalty: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ tools: Optional[list] = None
+ tool_results: Optional[list] = None
+ seed: Optional[int] = None
+
+ def __init__(
+ self,
+ preamble: Optional[str] = None,
+ chat_history: Optional[list] = None,
+ generation_id: Optional[str] = None,
+ response_id: Optional[str] = None,
+ conversation_id: Optional[str] = None,
+ prompt_truncation: Optional[str] = None,
+ connectors: Optional[list] = None,
+ search_queries_only: Optional[bool] = None,
+ documents: Optional[list] = None,
+ temperature: Optional[int] = None,
+ max_tokens: Optional[int] = None,
+ k: Optional[int] = None,
+ p: Optional[int] = None,
+ frequency_penalty: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ tools: Optional[list] = None,
+ tool_results: Optional[list] = None,
+ seed: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return cohere_validate_environment(
+ headers=headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ api_key=api_key,
+ )
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return [
+ "stream",
+ "temperature",
+ "max_tokens",
+ "top_p",
+ "frequency_penalty",
+ "presence_penalty",
+ "stop",
+ "n",
+ "tools",
+ "tool_choice",
+ "seed",
+ "extra_headers",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "max_tokens":
+ optional_params["max_tokens"] = value
+ if param == "n":
+ optional_params["num_generations"] = value
+ if param == "top_p":
+ optional_params["p"] = value
+ if param == "frequency_penalty":
+ optional_params["frequency_penalty"] = value
+ if param == "presence_penalty":
+ optional_params["presence_penalty"] = value
+ if param == "stop":
+ optional_params["stop_sequences"] = value
+ if param == "tools":
+ optional_params["tools"] = value
+ if param == "seed":
+ optional_params["seed"] = value
+ return optional_params
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+
+ ## Load Config
+ for k, v in litellm.CohereChatConfig.get_config().items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > cohere_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ most_recent_message, chat_history = cohere_messages_pt_v2(
+ messages=messages, model=model, llm_provider="cohere_chat"
+ )
+
+ ## Handle Tool Calling
+ if "tools" in optional_params:
+ _is_function_call = True
+ cohere_tools = self._construct_cohere_tool(tools=optional_params["tools"])
+ optional_params["tools"] = cohere_tools
+ if isinstance(most_recent_message, dict):
+ optional_params["tool_results"] = [most_recent_message]
+ elif isinstance(most_recent_message, str):
+ optional_params["message"] = most_recent_message
+
+ ## check if chat history message is 'user' and 'tool_results' is given -> force_single_step=True, else cohere api fails
+ if len(chat_history) > 0 and chat_history[-1]["role"] == "USER":
+ optional_params["force_single_step"] = True
+
+ return optional_params
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+
+ try:
+ raw_response_json = raw_response.json()
+ model_response.choices[0].message.content = raw_response_json["text"] # type: ignore
+ except Exception:
+ raise CohereError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+
+ ## ADD CITATIONS
+ if "citations" in raw_response_json:
+ setattr(model_response, "citations", raw_response_json["citations"])
+
+ ## Tool calling response
+ cohere_tools_response = raw_response_json.get("tool_calls", None)
+ if cohere_tools_response is not None and cohere_tools_response != []:
+ # convert cohere_tools_response to OpenAI response format
+ tool_calls = []
+ for tool in cohere_tools_response:
+ function_name = tool.get("name", "")
+ generation_id = tool.get("generation_id", "")
+ parameters = tool.get("parameters", {})
+ tool_call = {
+ "id": f"call_{generation_id}",
+ "type": "function",
+ "function": {
+ "name": function_name,
+ "arguments": json.dumps(parameters),
+ },
+ }
+ tool_calls.append(tool_call)
+ _message = litellm.Message(
+ tool_calls=tool_calls,
+ content=None,
+ )
+ model_response.choices[0].message = _message # type: ignore
+
+ ## CALCULATING USAGE - use cohere `billed_units` for returning usage
+ billed_units = raw_response_json.get("meta", {}).get("billed_units", {})
+
+ prompt_tokens = billed_units.get("input_tokens", 0)
+ completion_tokens = billed_units.get("output_tokens", 0)
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+ def _construct_cohere_tool(
+ self,
+ tools: Optional[list] = None,
+ ):
+ if tools is None:
+ tools = []
+ cohere_tools = []
+ for tool in tools:
+ cohere_tool = self._translate_openai_tool_to_cohere(tool)
+ cohere_tools.append(cohere_tool)
+ return cohere_tools
+
+ def _translate_openai_tool_to_cohere(
+ self,
+ openai_tool: dict,
+ ):
+ # cohere tools look like this
+ """
+ {
+ "name": "query_daily_sales_report",
+ "description": "Connects to a database to retrieve overall sales volumes and sales information for a given day.",
+ "parameter_definitions": {
+ "day": {
+ "description": "Retrieves sales data for this day, formatted as YYYY-MM-DD.",
+ "type": "str",
+ "required": True
+ }
+ }
+ }
+ """
+
+ # OpenAI tools look like this
+ """
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "description": "Get the current weather in a given location",
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The city and state, e.g. San Francisco, CA",
+ },
+ "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
+ },
+ "required": ["location"],
+ },
+ },
+ }
+ """
+ cohere_tool = {
+ "name": openai_tool["function"]["name"],
+ "description": openai_tool["function"]["description"],
+ "parameter_definitions": {},
+ }
+
+ for param_name, param_def in openai_tool["function"]["parameters"][
+ "properties"
+ ].items():
+ required_params = (
+ openai_tool.get("function", {})
+ .get("parameters", {})
+ .get("required", [])
+ )
+ cohere_param_def = {
+ "description": param_def.get("description", ""),
+ "type": param_def.get("type", ""),
+ "required": param_name in required_params,
+ }
+ cohere_tool["parameter_definitions"][param_name] = cohere_param_def
+
+ return cohere_tool
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ):
+ return CohereModelResponseIterator(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return CohereError(status_code=status_code, message=error_message)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/common_utils.py
new file mode 100644
index 00000000..11ff73ef
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/common_utils.py
@@ -0,0 +1,146 @@
+import json
+from typing import List, Optional
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import (
+ ChatCompletionToolCallChunk,
+ ChatCompletionUsageBlock,
+ GenericStreamingChunk,
+)
+
+
+class CohereError(BaseLLMException):
+ def __init__(self, status_code, message):
+ super().__init__(status_code=status_code, message=message)
+
+
+def validate_environment(
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+) -> dict:
+ """
+ Return headers to use for cohere chat completion request
+
+ Cohere API Ref: https://docs.cohere.com/reference/chat
+ Expected headers:
+ {
+ "Request-Source": "unspecified:litellm",
+ "accept": "application/json",
+ "content-type": "application/json",
+ "Authorization": "bearer $CO_API_KEY"
+ }
+ """
+ headers.update(
+ {
+ "Request-Source": "unspecified:litellm",
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+ )
+ if api_key:
+ headers["Authorization"] = f"bearer {api_key}"
+ return headers
+
+
+class ModelResponseIterator:
+ def __init__(
+ self, streaming_response, sync_stream: bool, json_mode: Optional[bool] = False
+ ):
+ self.streaming_response = streaming_response
+ self.response_iterator = self.streaming_response
+ self.content_blocks: List = []
+ self.tool_index = -1
+ self.json_mode = json_mode
+
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ is_finished = False
+ finish_reason = ""
+ usage: Optional[ChatCompletionUsageBlock] = None
+ provider_specific_fields = None
+
+ index = int(chunk.get("index", 0))
+
+ if "text" in chunk:
+ text = chunk["text"]
+ elif "is_finished" in chunk and chunk["is_finished"] is True:
+ is_finished = chunk["is_finished"]
+ finish_reason = chunk["finish_reason"]
+
+ if "citations" in chunk:
+ provider_specific_fields = {"citations": chunk["citations"]}
+
+ returned_chunk = GenericStreamingChunk(
+ text=text,
+ tool_use=tool_use,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=usage,
+ index=index,
+ provider_specific_fields=provider_specific_fields,
+ )
+
+ return returned_chunk
+
+ except json.JSONDecodeError:
+ raise ValueError(f"Failed to decode JSON from chunk: {chunk}")
+
+ # Sync iterator
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ try:
+ chunk = self.response_iterator.__next__()
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ str_line = chunk
+ if isinstance(chunk, bytes): # Handle binary data
+ str_line = chunk.decode("utf-8") # Convert bytes to string
+ index = str_line.find("data:")
+ if index != -1:
+ str_line = str_line[index:]
+ data_json = json.loads(str_line)
+ return self.chunk_parser(chunk=data_json)
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error parsing chunk: {e},\nReceived chunk: {chunk}")
+
+ # Async iterator
+ def __aiter__(self):
+ self.async_response_iterator = self.streaming_response.__aiter__()
+ return self
+
+ async def __anext__(self):
+ try:
+ chunk = await self.async_response_iterator.__anext__()
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ str_line = chunk
+ if isinstance(chunk, bytes): # Handle binary data
+ str_line = chunk.decode("utf-8") # Convert bytes to string
+ index = str_line.find("data:")
+ if index != -1:
+ str_line = str_line[index:]
+
+ data_json = json.loads(str_line)
+ return self.chunk_parser(chunk=data_json)
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error parsing chunk: {e},\nReceived chunk: {chunk}")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/completion/handler.py
new file mode 100644
index 00000000..6a779511
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/completion/handler.py
@@ -0,0 +1,5 @@
+"""
+Cohere /generate API - uses `llm_http_handler.py` to make httpx requests
+
+Request/Response transformation is handled in `transformation.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/completion/transformation.py
new file mode 100644
index 00000000..bdfcda02
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/completion/transformation.py
@@ -0,0 +1,264 @@
+import time
+from typing import TYPE_CHECKING, Any, AsyncIterator, Iterator, List, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ convert_content_list_to_str,
+)
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import Choices, Message, ModelResponse, Usage
+
+from ..common_utils import CohereError
+from ..common_utils import ModelResponseIterator as CohereModelResponseIterator
+from ..common_utils import validate_environment as cohere_validate_environment
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class CohereTextConfig(BaseConfig):
+ """
+ Reference: https://docs.cohere.com/reference/generate
+
+ The class `CohereConfig` provides configuration for the Cohere's API interface. Below are the parameters:
+
+ - `num_generations` (integer): Maximum number of generations returned. Default is 1, with a minimum value of 1 and a maximum value of 5.
+
+ - `max_tokens` (integer): Maximum number of tokens the model will generate as part of the response. Default value is 20.
+
+ - `truncate` (string): Specifies how the API handles inputs longer than maximum token length. Options include NONE, START, END. Default is END.
+
+ - `temperature` (number): A non-negative float controlling the randomness in generation. Lower temperatures result in less random generations. Default is 0.75.
+
+ - `preset` (string): Identifier of a custom preset, a combination of parameters such as prompt, temperature etc.
+
+ - `end_sequences` (array of strings): The generated text gets cut at the beginning of the earliest occurrence of an end sequence, which will be excluded from the text.
+
+ - `stop_sequences` (array of strings): The generated text gets cut at the end of the earliest occurrence of a stop sequence, which will be included in the text.
+
+ - `k` (integer): Limits generation at each step to top `k` most likely tokens. Default is 0.
+
+ - `p` (number): Limits generation at each step to most likely tokens with total probability mass of `p`. Default is 0.
+
+ - `frequency_penalty` (number): Reduces repetitiveness of generated tokens. Higher values apply stronger penalties to previously occurred tokens.
+
+ - `presence_penalty` (number): Reduces repetitiveness of generated tokens. Similar to frequency_penalty, but this penalty applies equally to all tokens that have already appeared.
+
+ - `return_likelihoods` (string): Specifies how and if token likelihoods are returned with the response. Options include GENERATION, ALL and NONE.
+
+ - `logit_bias` (object): Used to prevent the model from generating unwanted tokens or to incentivize it to include desired tokens. e.g. {"hello_world": 1233}
+ """
+
+ num_generations: Optional[int] = None
+ max_tokens: Optional[int] = None
+ truncate: Optional[str] = None
+ temperature: Optional[int] = None
+ preset: Optional[str] = None
+ end_sequences: Optional[list] = None
+ stop_sequences: Optional[list] = None
+ k: Optional[int] = None
+ p: Optional[int] = None
+ frequency_penalty: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ return_likelihoods: Optional[str] = None
+ logit_bias: Optional[dict] = None
+
+ def __init__(
+ self,
+ num_generations: Optional[int] = None,
+ max_tokens: Optional[int] = None,
+ truncate: Optional[str] = None,
+ temperature: Optional[int] = None,
+ preset: Optional[str] = None,
+ end_sequences: Optional[list] = None,
+ stop_sequences: Optional[list] = None,
+ k: Optional[int] = None,
+ p: Optional[int] = None,
+ frequency_penalty: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ return_likelihoods: Optional[str] = None,
+ logit_bias: Optional[dict] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return cohere_validate_environment(
+ headers=headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ api_key=api_key,
+ )
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return CohereError(status_code=status_code, message=error_message)
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return [
+ "stream",
+ "temperature",
+ "max_tokens",
+ "logit_bias",
+ "top_p",
+ "frequency_penalty",
+ "presence_penalty",
+ "stop",
+ "n",
+ "extra_headers",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "stream":
+ optional_params["stream"] = value
+ elif param == "temperature":
+ optional_params["temperature"] = value
+ elif param == "max_tokens":
+ optional_params["max_tokens"] = value
+ elif param == "n":
+ optional_params["num_generations"] = value
+ elif param == "logit_bias":
+ optional_params["logit_bias"] = value
+ elif param == "top_p":
+ optional_params["p"] = value
+ elif param == "frequency_penalty":
+ optional_params["frequency_penalty"] = value
+ elif param == "presence_penalty":
+ optional_params["presence_penalty"] = value
+ elif param == "stop":
+ optional_params["stop_sequences"] = value
+ return optional_params
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ prompt = " ".join(
+ convert_content_list_to_str(message=message) for message in messages
+ )
+
+ ## Load Config
+ config = litellm.CohereConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > cohere_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ ## Handle Tool Calling
+ if "tools" in optional_params:
+ _is_function_call = True
+ tool_calling_system_prompt = self._construct_cohere_tool_for_completion_api(
+ tools=optional_params["tools"]
+ )
+ optional_params["tools"] = tool_calling_system_prompt
+
+ data = {
+ "model": model,
+ "prompt": prompt,
+ **optional_params,
+ }
+
+ return data
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ prompt = " ".join(
+ convert_content_list_to_str(message=message) for message in messages
+ )
+ completion_response = raw_response.json()
+ choices_list = []
+ for idx, item in enumerate(completion_response["generations"]):
+ if len(item["text"]) > 0:
+ message_obj = Message(content=item["text"])
+ else:
+ message_obj = Message(content=None)
+ choice_obj = Choices(
+ finish_reason=item["finish_reason"],
+ index=idx + 1,
+ message=message_obj,
+ )
+ choices_list.append(choice_obj)
+ model_response.choices = choices_list # type: ignore
+
+ ## CALCULATING USAGE
+ prompt_tokens = len(encoding.encode(prompt))
+ completion_tokens = len(
+ encoding.encode(model_response["choices"][0]["message"].get("content", ""))
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+ def _construct_cohere_tool_for_completion_api(
+ self,
+ tools: Optional[List] = None,
+ ) -> dict:
+ if tools is None:
+ tools = []
+ return {"tools": tools}
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ):
+ return CohereModelResponseIterator(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/embed/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/embed/handler.py
new file mode 100644
index 00000000..e7f22ea7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/embed/handler.py
@@ -0,0 +1,178 @@
+import json
+from typing import Any, Callable, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.llms.bedrock import CohereEmbeddingRequest
+from litellm.types.utils import EmbeddingResponse
+
+from .transformation import CohereEmbeddingConfig
+
+
+def validate_environment(api_key, headers: dict):
+ headers.update(
+ {
+ "Request-Source": "unspecified:litellm",
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+ )
+ if api_key:
+ headers["Authorization"] = f"Bearer {api_key}"
+ return headers
+
+
+class CohereError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url="https://api.cohere.ai/v1/generate"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+async def async_embedding(
+ model: str,
+ data: Union[dict, CohereEmbeddingRequest],
+ input: list,
+ model_response: litellm.utils.EmbeddingResponse,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ api_base: str,
+ api_key: Optional[str],
+ headers: dict,
+ encoding: Callable,
+ client: Optional[AsyncHTTPHandler] = None,
+):
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "headers": headers,
+ "api_base": api_base,
+ },
+ )
+ ## COMPLETION CALL
+
+ if client is None:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.COHERE,
+ params={"timeout": timeout},
+ )
+
+ try:
+ response = await client.post(api_base, headers=headers, data=json.dumps(data))
+ except httpx.HTTPStatusError as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=e.response.text,
+ )
+ raise e
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ raise e
+
+ ## PROCESS RESPONSE ##
+ return CohereEmbeddingConfig()._transform_response(
+ response=response,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ data=data,
+ model_response=model_response,
+ model=model,
+ encoding=encoding,
+ input=input,
+ )
+
+
+def embedding(
+ model: str,
+ input: list,
+ model_response: EmbeddingResponse,
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ headers: dict,
+ encoding: Any,
+ data: Optional[Union[dict, CohereEmbeddingRequest]] = None,
+ complete_api_base: Optional[str] = None,
+ api_key: Optional[str] = None,
+ aembedding: Optional[bool] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = httpx.Timeout(None),
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+):
+ headers = validate_environment(api_key, headers=headers)
+ embed_url = complete_api_base or "https://api.cohere.ai/v1/embed"
+ model = model
+
+ data = data or CohereEmbeddingConfig()._transform_request(
+ model=model, input=input, inference_params=optional_params
+ )
+
+ ## ROUTING
+ if aembedding is True:
+ return async_embedding(
+ model=model,
+ data=data,
+ input=input,
+ model_response=model_response,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ api_base=embed_url,
+ api_key=api_key,
+ headers=headers,
+ encoding=encoding,
+ client=(
+ client
+ if client is not None and isinstance(client, AsyncHTTPHandler)
+ else None
+ ),
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ )
+
+ ## COMPLETION CALL
+ if client is None or not isinstance(client, HTTPHandler):
+ client = HTTPHandler(concurrent_limit=1)
+
+ response = client.post(embed_url, headers=headers, data=json.dumps(data))
+
+ return CohereEmbeddingConfig()._transform_response(
+ response=response,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ data=data,
+ model_response=model_response,
+ model=model,
+ encoding=encoding,
+ input=input,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/embed/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/embed/transformation.py
new file mode 100644
index 00000000..22e157a0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/embed/transformation.py
@@ -0,0 +1,153 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to Cohere's /v1/embed format.
+
+Why separate file? Make it easy to see how transformation works
+
+Convers
+- v3 embedding models
+- v2 embedding models
+
+Docs - https://docs.cohere.com/v2/reference/embed
+"""
+
+from typing import Any, List, Optional, Union
+
+import httpx
+
+from litellm import COHERE_DEFAULT_EMBEDDING_INPUT_TYPE
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.types.llms.bedrock import (
+ CohereEmbeddingRequest,
+ CohereEmbeddingRequestWithModel,
+)
+from litellm.types.utils import EmbeddingResponse, PromptTokensDetailsWrapper, Usage
+from litellm.utils import is_base64_encoded
+
+
+class CohereEmbeddingConfig:
+ """
+ Reference: https://docs.cohere.com/v2/reference/embed
+ """
+
+ def __init__(self) -> None:
+ pass
+
+ def get_supported_openai_params(self) -> List[str]:
+ return ["encoding_format"]
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "encoding_format":
+ optional_params["embedding_types"] = v
+ return optional_params
+
+ def _is_v3_model(self, model: str) -> bool:
+ return "3" in model
+
+ def _transform_request(
+ self, model: str, input: List[str], inference_params: dict
+ ) -> CohereEmbeddingRequestWithModel:
+ is_encoded = False
+ for input_str in input:
+ is_encoded = is_base64_encoded(input_str)
+
+ if is_encoded: # check if string is b64 encoded image or not
+ transformed_request = CohereEmbeddingRequestWithModel(
+ model=model,
+ images=input,
+ input_type="image",
+ )
+ else:
+ transformed_request = CohereEmbeddingRequestWithModel(
+ model=model,
+ texts=input,
+ input_type=COHERE_DEFAULT_EMBEDDING_INPUT_TYPE,
+ )
+
+ for k, v in inference_params.items():
+ transformed_request[k] = v # type: ignore
+
+ return transformed_request
+
+ def _calculate_usage(self, input: List[str], encoding: Any, meta: dict) -> Usage:
+
+ input_tokens = 0
+
+ text_tokens: Optional[int] = meta.get("billed_units", {}).get("input_tokens")
+
+ image_tokens: Optional[int] = meta.get("billed_units", {}).get("images")
+
+ prompt_tokens_details: Optional[PromptTokensDetailsWrapper] = None
+ if image_tokens is None and text_tokens is None:
+ for text in input:
+ input_tokens += len(encoding.encode(text))
+ else:
+ prompt_tokens_details = PromptTokensDetailsWrapper(
+ image_tokens=image_tokens,
+ text_tokens=text_tokens,
+ )
+ if image_tokens:
+ input_tokens += image_tokens
+ if text_tokens:
+ input_tokens += text_tokens
+
+ return Usage(
+ prompt_tokens=input_tokens,
+ completion_tokens=0,
+ total_tokens=input_tokens,
+ prompt_tokens_details=prompt_tokens_details,
+ )
+
+ def _transform_response(
+ self,
+ response: httpx.Response,
+ api_key: Optional[str],
+ logging_obj: LiteLLMLoggingObj,
+ data: Union[dict, CohereEmbeddingRequest],
+ model_response: EmbeddingResponse,
+ model: str,
+ encoding: Any,
+ input: list,
+ ) -> EmbeddingResponse:
+
+ response_json = response.json()
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=response_json,
+ )
+ """
+ response
+ {
+ 'object': "list",
+ 'data': [
+
+ ]
+ 'model',
+ 'usage'
+ }
+ """
+ embeddings = response_json["embeddings"]
+ output_data = []
+ for idx, embedding in enumerate(embeddings):
+ output_data.append(
+ {"object": "embedding", "index": idx, "embedding": embedding}
+ )
+ model_response.object = "list"
+ model_response.data = output_data
+ model_response.model = model
+ input_tokens = 0
+ for text in input:
+ input_tokens += len(encoding.encode(text))
+
+ setattr(
+ model_response,
+ "usage",
+ self._calculate_usage(input, encoding, response_json.get("meta", {})),
+ )
+
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank/handler.py
new file mode 100644
index 00000000..e94f1859
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank/handler.py
@@ -0,0 +1,5 @@
+"""
+Cohere Rerank - uses `llm_http_handler.py` to make httpx requests
+
+Request/Response transformation is handled in `transformation.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank/transformation.py
new file mode 100644
index 00000000..f3624d92
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank/transformation.py
@@ -0,0 +1,151 @@
+from typing import Any, Dict, List, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.llms.base_llm.rerank.transformation import BaseRerankConfig
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.rerank import OptionalRerankParams, RerankRequest
+from litellm.types.utils import RerankResponse
+
+from ..common_utils import CohereError
+
+
+class CohereRerankConfig(BaseRerankConfig):
+ """
+ Reference: https://docs.cohere.com/v2/reference/rerank
+ """
+
+ def __init__(self) -> None:
+ pass
+
+ def get_complete_url(self, api_base: Optional[str], model: str) -> str:
+ if api_base:
+ # Remove trailing slashes and ensure clean base URL
+ api_base = api_base.rstrip("/")
+ if not api_base.endswith("/v1/rerank"):
+ api_base = f"{api_base}/v1/rerank"
+ return api_base
+ return "https://api.cohere.ai/v1/rerank"
+
+ def get_supported_cohere_rerank_params(self, model: str) -> list:
+ return [
+ "query",
+ "documents",
+ "top_n",
+ "max_chunks_per_doc",
+ "rank_fields",
+ "return_documents",
+ ]
+
+ def map_cohere_rerank_params(
+ self,
+ non_default_params: Optional[dict],
+ model: str,
+ drop_params: bool,
+ query: str,
+ documents: List[Union[str, Dict[str, Any]]],
+ custom_llm_provider: Optional[str] = None,
+ top_n: Optional[int] = None,
+ rank_fields: Optional[List[str]] = None,
+ return_documents: Optional[bool] = True,
+ max_chunks_per_doc: Optional[int] = None,
+ max_tokens_per_doc: Optional[int] = None,
+ ) -> OptionalRerankParams:
+ """
+ Map Cohere rerank params
+
+ No mapping required - returns all supported params
+ """
+ return OptionalRerankParams(
+ query=query,
+ documents=documents,
+ top_n=top_n,
+ rank_fields=rank_fields,
+ return_documents=return_documents,
+ max_chunks_per_doc=max_chunks_per_doc,
+ )
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ ) -> dict:
+ if api_key is None:
+ api_key = (
+ get_secret_str("COHERE_API_KEY")
+ or get_secret_str("CO_API_KEY")
+ or litellm.cohere_key
+ )
+
+ if api_key is None:
+ raise ValueError(
+ "Cohere API key is required. Please set 'COHERE_API_KEY' or 'CO_API_KEY' or 'litellm.cohere_key'"
+ )
+
+ default_headers = {
+ "Authorization": f"bearer {api_key}",
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+
+ # If 'Authorization' is provided in headers, it overrides the default.
+ if "Authorization" in headers:
+ default_headers["Authorization"] = headers["Authorization"]
+
+ # Merge other headers, overriding any default ones except Authorization
+ return {**default_headers, **headers}
+
+ def transform_rerank_request(
+ self,
+ model: str,
+ optional_rerank_params: OptionalRerankParams,
+ headers: dict,
+ ) -> dict:
+ if "query" not in optional_rerank_params:
+ raise ValueError("query is required for Cohere rerank")
+ if "documents" not in optional_rerank_params:
+ raise ValueError("documents is required for Cohere rerank")
+ rerank_request = RerankRequest(
+ model=model,
+ query=optional_rerank_params["query"],
+ documents=optional_rerank_params["documents"],
+ top_n=optional_rerank_params.get("top_n", None),
+ rank_fields=optional_rerank_params.get("rank_fields", None),
+ return_documents=optional_rerank_params.get("return_documents", None),
+ max_chunks_per_doc=optional_rerank_params.get("max_chunks_per_doc", None),
+ )
+ return rerank_request.model_dump(exclude_none=True)
+
+ def transform_rerank_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: RerankResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ request_data: dict = {},
+ optional_params: dict = {},
+ litellm_params: dict = {},
+ ) -> RerankResponse:
+ """
+ Transform Cohere rerank response
+
+ No transformation required, litellm follows cohere API response format
+ """
+ try:
+ raw_response_json = raw_response.json()
+ except Exception:
+ raise CohereError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+
+ return RerankResponse(**raw_response_json)
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return CohereError(message=error_message, status_code=status_code) \ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank_v2/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank_v2/transformation.py
new file mode 100644
index 00000000..a93cb982
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/cohere/rerank_v2/transformation.py
@@ -0,0 +1,80 @@
+from typing import Any, Dict, List, Optional, Union
+
+from litellm.llms.cohere.rerank.transformation import CohereRerankConfig
+from litellm.types.rerank import OptionalRerankParams, RerankRequest
+
+class CohereRerankV2Config(CohereRerankConfig):
+ """
+ Reference: https://docs.cohere.com/v2/reference/rerank
+ """
+
+ def __init__(self) -> None:
+ pass
+
+ def get_complete_url(self, api_base: Optional[str], model: str) -> str:
+ if api_base:
+ # Remove trailing slashes and ensure clean base URL
+ api_base = api_base.rstrip("/")
+ if not api_base.endswith("/v2/rerank"):
+ api_base = f"{api_base}/v2/rerank"
+ return api_base
+ return "https://api.cohere.ai/v2/rerank"
+
+ def get_supported_cohere_rerank_params(self, model: str) -> list:
+ return [
+ "query",
+ "documents",
+ "top_n",
+ "max_tokens_per_doc",
+ "rank_fields",
+ "return_documents",
+ ]
+
+ def map_cohere_rerank_params(
+ self,
+ non_default_params: Optional[dict],
+ model: str,
+ drop_params: bool,
+ query: str,
+ documents: List[Union[str, Dict[str, Any]]],
+ custom_llm_provider: Optional[str] = None,
+ top_n: Optional[int] = None,
+ rank_fields: Optional[List[str]] = None,
+ return_documents: Optional[bool] = True,
+ max_chunks_per_doc: Optional[int] = None,
+ max_tokens_per_doc: Optional[int] = None,
+ ) -> OptionalRerankParams:
+ """
+ Map Cohere rerank params
+
+ No mapping required - returns all supported params
+ """
+ return OptionalRerankParams(
+ query=query,
+ documents=documents,
+ top_n=top_n,
+ rank_fields=rank_fields,
+ return_documents=return_documents,
+ max_tokens_per_doc=max_tokens_per_doc,
+ )
+
+ def transform_rerank_request(
+ self,
+ model: str,
+ optional_rerank_params: OptionalRerankParams,
+ headers: dict,
+ ) -> dict:
+ if "query" not in optional_rerank_params:
+ raise ValueError("query is required for Cohere rerank")
+ if "documents" not in optional_rerank_params:
+ raise ValueError("documents is required for Cohere rerank")
+ rerank_request = RerankRequest(
+ model=model,
+ query=optional_rerank_params["query"],
+ documents=optional_rerank_params["documents"],
+ top_n=optional_rerank_params.get("top_n", None),
+ rank_fields=optional_rerank_params.get("rank_fields", None),
+ return_documents=optional_rerank_params.get("return_documents", None),
+ max_tokens_per_doc=optional_rerank_params.get("max_tokens_per_doc", None),
+ )
+ return rerank_request.model_dump(exclude_none=True) \ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/aiohttp_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/aiohttp_handler.py
new file mode 100644
index 00000000..c865fee1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/aiohttp_handler.py
@@ -0,0 +1,595 @@
+from typing import TYPE_CHECKING, Any, Callable, Optional, Tuple, Union, cast
+
+import aiohttp
+import httpx # type: ignore
+from aiohttp import ClientSession, FormData
+
+import litellm
+import litellm.litellm_core_utils
+import litellm.types
+import litellm.types.utils
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.llms.base_llm.image_variations.transformation import (
+ BaseImageVariationConfig,
+)
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+)
+from litellm.types.llms.openai import FileTypes
+from litellm.types.utils import HttpHandlerRequestFields, ImageResponse, LlmProviders
+from litellm.utils import CustomStreamWrapper, ModelResponse, ProviderConfigManager
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+DEFAULT_TIMEOUT = 600
+
+
+class BaseLLMAIOHTTPHandler:
+
+ def __init__(self):
+ self.client_session: Optional[aiohttp.ClientSession] = None
+
+ def _get_async_client_session(
+ self, dynamic_client_session: Optional[ClientSession] = None
+ ) -> ClientSession:
+ if dynamic_client_session:
+ return dynamic_client_session
+ elif self.client_session:
+ return self.client_session
+ else:
+ # init client session, and then return new session
+ self.client_session = aiohttp.ClientSession()
+ return self.client_session
+
+ async def _make_common_async_call(
+ self,
+ async_client_session: Optional[ClientSession],
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: Optional[dict],
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ form_data: Optional[FormData] = None,
+ stream: bool = False,
+ ) -> aiohttp.ClientResponse:
+ """Common implementation across stream + non-stream calls. Meant to ensure consistent error-handling."""
+ max_retry_on_unprocessable_entity_error = (
+ provider_config.max_retry_on_unprocessable_entity_error
+ )
+
+ response: Optional[aiohttp.ClientResponse] = None
+ async_client_session = self._get_async_client_session(
+ dynamic_client_session=async_client_session
+ )
+
+ for i in range(max(max_retry_on_unprocessable_entity_error, 1)):
+ try:
+ response = await async_client_session.post(
+ url=api_base,
+ headers=headers,
+ json=data,
+ data=form_data,
+ )
+ if not response.ok:
+ response.raise_for_status()
+ except aiohttp.ClientResponseError as e:
+ setattr(e, "text", e.message)
+ raise self._handle_error(e=e, provider_config=provider_config)
+ except Exception as e:
+ raise self._handle_error(e=e, provider_config=provider_config)
+ break
+
+ if response is None:
+ raise provider_config.get_error_class(
+ error_message="No response from the API",
+ status_code=422,
+ headers={},
+ )
+
+ return response
+
+ def _make_common_sync_call(
+ self,
+ sync_httpx_client: HTTPHandler,
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ stream: bool = False,
+ files: Optional[dict] = None,
+ content: Any = None,
+ params: Optional[dict] = None,
+ ) -> httpx.Response:
+
+ max_retry_on_unprocessable_entity_error = (
+ provider_config.max_retry_on_unprocessable_entity_error
+ )
+
+ response: Optional[httpx.Response] = None
+
+ for i in range(max(max_retry_on_unprocessable_entity_error, 1)):
+ try:
+ response = sync_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=data, # do not json dump the data here. let the individual endpoint handle this.
+ timeout=timeout,
+ stream=stream,
+ files=files,
+ content=content,
+ params=params,
+ )
+ except httpx.HTTPStatusError as e:
+ hit_max_retry = i + 1 == max_retry_on_unprocessable_entity_error
+ should_retry = provider_config.should_retry_llm_api_inside_llm_translation_on_http_error(
+ e=e, litellm_params=litellm_params
+ )
+ if should_retry and not hit_max_retry:
+ data = (
+ provider_config.transform_request_on_unprocessable_entity_error(
+ e=e, request_data=data
+ )
+ )
+ continue
+ else:
+ raise self._handle_error(e=e, provider_config=provider_config)
+ except Exception as e:
+ raise self._handle_error(e=e, provider_config=provider_config)
+ break
+
+ if response is None:
+ raise provider_config.get_error_class(
+ error_message="No response from the API",
+ status_code=422, # don't retry on this error
+ headers={},
+ )
+
+ return response
+
+ async def async_completion(
+ self,
+ custom_llm_provider: str,
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ model: str,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ messages: list,
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ client: Optional[ClientSession] = None,
+ ):
+ _response = await self._make_common_async_call(
+ async_client_session=client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ stream=False,
+ )
+ _transformed_response = await provider_config.transform_response( # type: ignore
+ model=model,
+ raw_response=_response, # type: ignore
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ )
+ return _transformed_response
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_llm_provider: str,
+ model_response: ModelResponse,
+ encoding,
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ acompletion: bool,
+ stream: Optional[bool] = False,
+ fake_stream: bool = False,
+ api_key: Optional[str] = None,
+ headers: Optional[dict] = {},
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler, ClientSession]] = None,
+ ):
+ provider_config = ProviderConfigManager.get_provider_chat_config(
+ model=model, provider=litellm.LlmProviders(custom_llm_provider)
+ )
+ # get config from model, custom llm provider
+ headers = provider_config.validate_environment(
+ api_key=api_key,
+ headers=headers or {},
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ api_base=api_base,
+ )
+
+ api_base = provider_config.get_complete_url(
+ api_base=api_base,
+ model=model,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ stream=stream,
+ )
+
+ data = provider_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ if acompletion is True:
+ return self.async_completion(
+ custom_llm_provider=custom_llm_provider,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ model=model,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ client=(
+ client
+ if client is not None and isinstance(client, ClientSession)
+ else None
+ ),
+ )
+
+ if stream is True:
+ if fake_stream is not True:
+ data["stream"] = stream
+ completion_stream, headers = self.make_sync_call(
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers, # type: ignore
+ data=data,
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ timeout=timeout,
+ fake_stream=fake_stream,
+ client=(
+ client
+ if client is not None and isinstance(client, HTTPHandler)
+ else None
+ ),
+ litellm_params=litellm_params,
+ )
+ return CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ logging_obj=logging_obj,
+ )
+
+ if client is None or not isinstance(client, HTTPHandler):
+ sync_httpx_client = _get_httpx_client()
+ else:
+ sync_httpx_client = client
+
+ response = self._make_common_sync_call(
+ sync_httpx_client=sync_httpx_client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ data=data,
+ )
+ return provider_config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ )
+
+ def make_sync_call(
+ self,
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ model: str,
+ messages: list,
+ logging_obj,
+ litellm_params: dict,
+ timeout: Union[float, httpx.Timeout],
+ fake_stream: bool = False,
+ client: Optional[HTTPHandler] = None,
+ ) -> Tuple[Any, dict]:
+ if client is None or not isinstance(client, HTTPHandler):
+ sync_httpx_client = _get_httpx_client()
+ else:
+ sync_httpx_client = client
+ stream = True
+ if fake_stream is True:
+ stream = False
+
+ response = self._make_common_sync_call(
+ sync_httpx_client=sync_httpx_client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ stream=stream,
+ )
+
+ if fake_stream is True:
+ completion_stream = provider_config.get_model_response_iterator(
+ streaming_response=response.json(), sync_stream=True
+ )
+ else:
+ completion_stream = provider_config.get_model_response_iterator(
+ streaming_response=response.iter_lines(), sync_stream=True
+ )
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream, dict(response.headers)
+
+ async def async_image_variations(
+ self,
+ client: Optional[ClientSession],
+ provider_config: BaseImageVariationConfig,
+ api_base: str,
+ headers: dict,
+ data: HttpHandlerRequestFields,
+ timeout: float,
+ litellm_params: dict,
+ model_response: ImageResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: str,
+ model: Optional[str],
+ image: FileTypes,
+ optional_params: dict,
+ ) -> ImageResponse:
+ # create aiohttp form data if files in data
+ form_data: Optional[FormData] = None
+ if "files" in data and "data" in data:
+ form_data = FormData()
+ for k, v in data["files"].items():
+ form_data.add_field(k, v[1], filename=v[0], content_type=v[2])
+
+ for key, value in data["data"].items():
+ form_data.add_field(key, value)
+
+ _response = await self._make_common_async_call(
+ async_client_session=client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=None if form_data is not None else cast(dict, data),
+ form_data=form_data,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ stream=False,
+ )
+
+ ## LOGGING
+ logging_obj.post_call(
+ api_key=api_key,
+ original_response=_response.text,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ },
+ )
+
+ ## RESPONSE OBJECT
+ return await provider_config.async_transform_response_image_variation(
+ model=model,
+ model_response=model_response,
+ raw_response=_response,
+ logging_obj=logging_obj,
+ request_data=cast(dict, data),
+ image=image,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=None,
+ api_key=api_key,
+ )
+
+ def image_variations(
+ self,
+ model_response: ImageResponse,
+ api_key: str,
+ model: Optional[str],
+ image: FileTypes,
+ timeout: float,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ litellm_params: dict,
+ print_verbose: Optional[Callable] = None,
+ api_base: Optional[str] = None,
+ aimage_variation: bool = False,
+ logger_fn=None,
+ client=None,
+ organization: Optional[str] = None,
+ headers: Optional[dict] = None,
+ ) -> ImageResponse:
+ if model is None:
+ raise ValueError("model is required for non-openai image variations")
+
+ provider_config = ProviderConfigManager.get_provider_image_variation_config(
+ model=model, # openai defaults to dall-e-2
+ provider=LlmProviders(custom_llm_provider),
+ )
+
+ if provider_config is None:
+ raise ValueError(
+ f"image variation provider not found: {custom_llm_provider}."
+ )
+
+ api_base = provider_config.get_complete_url(
+ api_base=api_base,
+ model=model,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ stream=False,
+ )
+
+ headers = provider_config.validate_environment(
+ api_key=api_key,
+ headers=headers or {},
+ model=model,
+ messages=[{"role": "user", "content": "test"}],
+ optional_params=optional_params,
+ api_base=api_base,
+ )
+
+ data = provider_config.transform_request_image_variation(
+ model=model,
+ image=image,
+ optional_params=optional_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input="",
+ api_key=api_key,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ "complete_input_dict": data.copy(),
+ },
+ )
+
+ if litellm_params.get("async_call", False):
+ return self.async_image_variations(
+ api_base=api_base,
+ data=data,
+ headers=headers,
+ model_response=model_response,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ model=model,
+ timeout=timeout,
+ client=client,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ image=image,
+ provider_config=provider_config,
+ ) # type: ignore
+
+ if client is None or not isinstance(client, HTTPHandler):
+ sync_httpx_client = _get_httpx_client()
+ else:
+ sync_httpx_client = client
+
+ response = self._make_common_sync_call(
+ sync_httpx_client=sync_httpx_client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ stream=False,
+ data=data.get("data") or {},
+ files=data.get("files"),
+ content=data.get("content"),
+ params=data.get("params"),
+ )
+
+ ## LOGGING
+ logging_obj.post_call(
+ api_key=api_key,
+ original_response=response.text,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ },
+ )
+
+ ## RESPONSE OBJECT
+ return provider_config.transform_response_image_variation(
+ model=model,
+ model_response=model_response,
+ raw_response=response,
+ logging_obj=logging_obj,
+ request_data=cast(dict, data),
+ image=image,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=None,
+ api_key=api_key,
+ )
+
+ def _handle_error(self, e: Exception, provider_config: BaseConfig):
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ if error_response and hasattr(error_response, "text"):
+ error_text = getattr(error_response, "text", error_text)
+ if error_headers:
+ error_headers = dict(error_headers)
+ else:
+ error_headers = {}
+ raise provider_config.get_error_class(
+ error_message=error_text,
+ status_code=status_code,
+ headers=error_headers,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/http_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/http_handler.py
new file mode 100644
index 00000000..34d70434
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/http_handler.py
@@ -0,0 +1,746 @@
+import asyncio
+import os
+import ssl
+import time
+from typing import TYPE_CHECKING, Any, Callable, List, Mapping, Optional, Union
+
+import httpx
+from httpx import USE_CLIENT_DEFAULT, AsyncHTTPTransport, HTTPTransport
+
+import litellm
+from litellm.litellm_core_utils.logging_utils import track_llm_api_timing
+from litellm.types.llms.custom_http import *
+
+if TYPE_CHECKING:
+ from litellm import LlmProviders
+ from litellm.litellm_core_utils.litellm_logging import (
+ Logging as LiteLLMLoggingObject,
+ )
+else:
+ LlmProviders = Any
+ LiteLLMLoggingObject = Any
+
+try:
+ from litellm._version import version
+except Exception:
+ version = "0.0.0"
+
+headers = {
+ "User-Agent": f"litellm/{version}",
+}
+
+# https://www.python-httpx.org/advanced/timeouts
+_DEFAULT_TIMEOUT = httpx.Timeout(timeout=5.0, connect=5.0)
+_DEFAULT_TTL_FOR_HTTPX_CLIENTS = 3600 # 1 hour, re-use the same httpx client for 1 hour
+
+
+def mask_sensitive_info(error_message):
+ # Find the start of the key parameter
+ if isinstance(error_message, str):
+ key_index = error_message.find("key=")
+ else:
+ return error_message
+
+ # If key is found
+ if key_index != -1:
+ # Find the end of the key parameter (next & or end of string)
+ next_param = error_message.find("&", key_index)
+
+ if next_param == -1:
+ # If no more parameters, mask until the end of the string
+ masked_message = error_message[: key_index + 4] + "[REDACTED_API_KEY]"
+ else:
+ # Replace the key with redacted value, keeping other parameters
+ masked_message = (
+ error_message[: key_index + 4]
+ + "[REDACTED_API_KEY]"
+ + error_message[next_param:]
+ )
+
+ return masked_message
+
+ return error_message
+
+
+class MaskedHTTPStatusError(httpx.HTTPStatusError):
+ def __init__(
+ self, original_error, message: Optional[str] = None, text: Optional[str] = None
+ ):
+ # Create a new error with the masked URL
+ masked_url = mask_sensitive_info(str(original_error.request.url))
+ # Create a new error that looks like the original, but with a masked URL
+
+ super().__init__(
+ message=original_error.message,
+ request=httpx.Request(
+ method=original_error.request.method,
+ url=masked_url,
+ headers=original_error.request.headers,
+ content=original_error.request.content,
+ ),
+ response=httpx.Response(
+ status_code=original_error.response.status_code,
+ content=original_error.response.content,
+ headers=original_error.response.headers,
+ ),
+ )
+ self.message = message
+ self.text = text
+
+
+class AsyncHTTPHandler:
+ def __init__(
+ self,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ event_hooks: Optional[Mapping[str, List[Callable[..., Any]]]] = None,
+ concurrent_limit=1000,
+ client_alias: Optional[str] = None, # name for client in logs
+ ssl_verify: Optional[VerifyTypes] = None,
+ ):
+ self.timeout = timeout
+ self.event_hooks = event_hooks
+ self.client = self.create_client(
+ timeout=timeout,
+ concurrent_limit=concurrent_limit,
+ event_hooks=event_hooks,
+ ssl_verify=ssl_verify,
+ )
+ self.client_alias = client_alias
+
+ def create_client(
+ self,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ concurrent_limit: int,
+ event_hooks: Optional[Mapping[str, List[Callable[..., Any]]]],
+ ssl_verify: Optional[VerifyTypes] = None,
+ ) -> httpx.AsyncClient:
+
+ # SSL certificates (a.k.a CA bundle) used to verify the identity of requested hosts.
+ # /path/to/certificate.pem
+ if ssl_verify is None:
+ ssl_verify = os.getenv("SSL_VERIFY", litellm.ssl_verify)
+
+ ssl_security_level = os.getenv("SSL_SECURITY_LEVEL")
+
+ # If ssl_verify is not False and we need a lower security level
+ if (
+ not ssl_verify
+ and ssl_security_level
+ and isinstance(ssl_security_level, str)
+ ):
+ # Create a custom SSL context with reduced security level
+ custom_ssl_context = ssl.create_default_context()
+ custom_ssl_context.set_ciphers(ssl_security_level)
+
+ # If ssl_verify is a path to a CA bundle, load it into our custom context
+ if isinstance(ssl_verify, str) and os.path.exists(ssl_verify):
+ custom_ssl_context.load_verify_locations(cafile=ssl_verify)
+
+ # Use our custom SSL context instead of the original ssl_verify value
+ ssl_verify = custom_ssl_context
+
+ # An SSL certificate used by the requested host to authenticate the client.
+ # /path/to/client.pem
+ cert = os.getenv("SSL_CERTIFICATE", litellm.ssl_certificate)
+
+ if timeout is None:
+ timeout = _DEFAULT_TIMEOUT
+ # Create a client with a connection pool
+ transport = self._create_async_transport()
+
+ return httpx.AsyncClient(
+ transport=transport,
+ event_hooks=event_hooks,
+ timeout=timeout,
+ limits=httpx.Limits(
+ max_connections=concurrent_limit,
+ max_keepalive_connections=concurrent_limit,
+ ),
+ verify=ssl_verify,
+ cert=cert,
+ headers=headers,
+ )
+
+ async def close(self):
+ # Close the client when you're done with it
+ await self.client.aclose()
+
+ async def __aenter__(self):
+ return self.client
+
+ async def __aexit__(self):
+ # close the client when exiting
+ await self.client.aclose()
+
+ async def get(
+ self,
+ url: str,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ follow_redirects: Optional[bool] = None,
+ ):
+ # Set follow_redirects to UseClientDefault if None
+ _follow_redirects = (
+ follow_redirects if follow_redirects is not None else USE_CLIENT_DEFAULT
+ )
+
+ response = await self.client.get(
+ url, params=params, headers=headers, follow_redirects=_follow_redirects # type: ignore
+ )
+ return response
+
+ @track_llm_api_timing()
+ async def post(
+ self,
+ url: str,
+ data: Optional[Union[dict, str]] = None, # type: ignore
+ json: Optional[dict] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ stream: bool = False,
+ logging_obj: Optional[LiteLLMLoggingObject] = None,
+ ):
+ start_time = time.time()
+ try:
+ if timeout is None:
+ timeout = self.timeout
+
+ req = self.client.build_request(
+ "POST", url, data=data, json=json, params=params, headers=headers, timeout=timeout # type: ignore
+ )
+ response = await self.client.send(req, stream=stream)
+ response.raise_for_status()
+ return response
+ except (httpx.RemoteProtocolError, httpx.ConnectError):
+ # Retry the request with a new session if there is a connection error
+ new_client = self.create_client(
+ timeout=timeout, concurrent_limit=1, event_hooks=self.event_hooks
+ )
+ try:
+ return await self.single_connection_post_request(
+ url=url,
+ client=new_client,
+ data=data,
+ json=json,
+ params=params,
+ headers=headers,
+ stream=stream,
+ )
+ finally:
+ await new_client.aclose()
+ except httpx.TimeoutException as e:
+ end_time = time.time()
+ time_delta = round(end_time - start_time, 3)
+ headers = {}
+ error_response = getattr(e, "response", None)
+ if error_response is not None:
+ for key, value in error_response.headers.items():
+ headers["response_headers-{}".format(key)] = value
+
+ raise litellm.Timeout(
+ message=f"Connection timed out. Timeout passed={timeout}, time taken={time_delta} seconds",
+ model="default-model-name",
+ llm_provider="litellm-httpx-handler",
+ headers=headers,
+ )
+ except httpx.HTTPStatusError as e:
+ if stream is True:
+ setattr(e, "message", await e.response.aread())
+ setattr(e, "text", await e.response.aread())
+ else:
+ setattr(e, "message", mask_sensitive_info(e.response.text))
+ setattr(e, "text", mask_sensitive_info(e.response.text))
+
+ setattr(e, "status_code", e.response.status_code)
+
+ raise e
+ except Exception as e:
+ raise e
+
+ async def put(
+ self,
+ url: str,
+ data: Optional[Union[dict, str]] = None, # type: ignore
+ json: Optional[dict] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ stream: bool = False,
+ ):
+ try:
+ if timeout is None:
+ timeout = self.timeout
+
+ req = self.client.build_request(
+ "PUT", url, data=data, json=json, params=params, headers=headers, timeout=timeout # type: ignore
+ )
+ response = await self.client.send(req)
+ response.raise_for_status()
+ return response
+ except (httpx.RemoteProtocolError, httpx.ConnectError):
+ # Retry the request with a new session if there is a connection error
+ new_client = self.create_client(
+ timeout=timeout, concurrent_limit=1, event_hooks=self.event_hooks
+ )
+ try:
+ return await self.single_connection_post_request(
+ url=url,
+ client=new_client,
+ data=data,
+ json=json,
+ params=params,
+ headers=headers,
+ stream=stream,
+ )
+ finally:
+ await new_client.aclose()
+ except httpx.TimeoutException as e:
+ headers = {}
+ error_response = getattr(e, "response", None)
+ if error_response is not None:
+ for key, value in error_response.headers.items():
+ headers["response_headers-{}".format(key)] = value
+
+ raise litellm.Timeout(
+ message=f"Connection timed out after {timeout} seconds.",
+ model="default-model-name",
+ llm_provider="litellm-httpx-handler",
+ headers=headers,
+ )
+ except httpx.HTTPStatusError as e:
+ setattr(e, "status_code", e.response.status_code)
+ if stream is True:
+ setattr(e, "message", await e.response.aread())
+ else:
+ setattr(e, "message", e.response.text)
+ raise e
+ except Exception as e:
+ raise e
+
+ async def patch(
+ self,
+ url: str,
+ data: Optional[Union[dict, str]] = None, # type: ignore
+ json: Optional[dict] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ stream: bool = False,
+ ):
+ try:
+ if timeout is None:
+ timeout = self.timeout
+
+ req = self.client.build_request(
+ "PATCH", url, data=data, json=json, params=params, headers=headers, timeout=timeout # type: ignore
+ )
+ response = await self.client.send(req)
+ response.raise_for_status()
+ return response
+ except (httpx.RemoteProtocolError, httpx.ConnectError):
+ # Retry the request with a new session if there is a connection error
+ new_client = self.create_client(
+ timeout=timeout, concurrent_limit=1, event_hooks=self.event_hooks
+ )
+ try:
+ return await self.single_connection_post_request(
+ url=url,
+ client=new_client,
+ data=data,
+ json=json,
+ params=params,
+ headers=headers,
+ stream=stream,
+ )
+ finally:
+ await new_client.aclose()
+ except httpx.TimeoutException as e:
+ headers = {}
+ error_response = getattr(e, "response", None)
+ if error_response is not None:
+ for key, value in error_response.headers.items():
+ headers["response_headers-{}".format(key)] = value
+
+ raise litellm.Timeout(
+ message=f"Connection timed out after {timeout} seconds.",
+ model="default-model-name",
+ llm_provider="litellm-httpx-handler",
+ headers=headers,
+ )
+ except httpx.HTTPStatusError as e:
+ setattr(e, "status_code", e.response.status_code)
+ if stream is True:
+ setattr(e, "message", await e.response.aread())
+ else:
+ setattr(e, "message", e.response.text)
+ raise e
+ except Exception as e:
+ raise e
+
+ async def delete(
+ self,
+ url: str,
+ data: Optional[Union[dict, str]] = None, # type: ignore
+ json: Optional[dict] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ stream: bool = False,
+ ):
+ try:
+ if timeout is None:
+ timeout = self.timeout
+ req = self.client.build_request(
+ "DELETE", url, data=data, json=json, params=params, headers=headers, timeout=timeout # type: ignore
+ )
+ response = await self.client.send(req, stream=stream)
+ response.raise_for_status()
+ return response
+ except (httpx.RemoteProtocolError, httpx.ConnectError):
+ # Retry the request with a new session if there is a connection error
+ new_client = self.create_client(
+ timeout=timeout, concurrent_limit=1, event_hooks=self.event_hooks
+ )
+ try:
+ return await self.single_connection_post_request(
+ url=url,
+ client=new_client,
+ data=data,
+ json=json,
+ params=params,
+ headers=headers,
+ stream=stream,
+ )
+ finally:
+ await new_client.aclose()
+ except httpx.HTTPStatusError as e:
+ setattr(e, "status_code", e.response.status_code)
+ if stream is True:
+ setattr(e, "message", await e.response.aread())
+ else:
+ setattr(e, "message", e.response.text)
+ raise e
+ except Exception as e:
+ raise e
+
+ async def single_connection_post_request(
+ self,
+ url: str,
+ client: httpx.AsyncClient,
+ data: Optional[Union[dict, str]] = None, # type: ignore
+ json: Optional[dict] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ stream: bool = False,
+ ):
+ """
+ Making POST request for a single connection client.
+
+ Used for retrying connection client errors.
+ """
+ req = client.build_request(
+ "POST", url, data=data, json=json, params=params, headers=headers # type: ignore
+ )
+ response = await client.send(req, stream=stream)
+ response.raise_for_status()
+ return response
+
+ def __del__(self) -> None:
+ try:
+ asyncio.get_running_loop().create_task(self.close())
+ except Exception:
+ pass
+
+ def _create_async_transport(self) -> Optional[AsyncHTTPTransport]:
+ """
+ Create an async transport with IPv4 only if litellm.force_ipv4 is True.
+ Otherwise, return None.
+
+ Some users have seen httpx ConnectionError when using ipv6 - forcing ipv4 resolves the issue for them
+ """
+ if litellm.force_ipv4:
+ return AsyncHTTPTransport(local_address="0.0.0.0")
+ else:
+ return None
+
+
+class HTTPHandler:
+ def __init__(
+ self,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ concurrent_limit=1000,
+ client: Optional[httpx.Client] = None,
+ ssl_verify: Optional[Union[bool, str]] = None,
+ ):
+ if timeout is None:
+ timeout = _DEFAULT_TIMEOUT
+
+ # SSL certificates (a.k.a CA bundle) used to verify the identity of requested hosts.
+ # /path/to/certificate.pem
+
+ if ssl_verify is None:
+ ssl_verify = os.getenv("SSL_VERIFY", litellm.ssl_verify)
+
+ # An SSL certificate used by the requested host to authenticate the client.
+ # /path/to/client.pem
+ cert = os.getenv("SSL_CERTIFICATE", litellm.ssl_certificate)
+
+ if client is None:
+ transport = self._create_sync_transport()
+
+ # Create a client with a connection pool
+ self.client = httpx.Client(
+ transport=transport,
+ timeout=timeout,
+ limits=httpx.Limits(
+ max_connections=concurrent_limit,
+ max_keepalive_connections=concurrent_limit,
+ ),
+ verify=ssl_verify,
+ cert=cert,
+ headers=headers,
+ )
+ else:
+ self.client = client
+
+ def close(self):
+ # Close the client when you're done with it
+ self.client.close()
+
+ def get(
+ self,
+ url: str,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ follow_redirects: Optional[bool] = None,
+ ):
+ # Set follow_redirects to UseClientDefault if None
+ _follow_redirects = (
+ follow_redirects if follow_redirects is not None else USE_CLIENT_DEFAULT
+ )
+
+ response = self.client.get(
+ url, params=params, headers=headers, follow_redirects=_follow_redirects # type: ignore
+ )
+ return response
+
+ def post(
+ self,
+ url: str,
+ data: Optional[Union[dict, str]] = None,
+ json: Optional[Union[dict, str, List]] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ stream: bool = False,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ files: Optional[dict] = None,
+ content: Any = None,
+ logging_obj: Optional[LiteLLMLoggingObject] = None,
+ ):
+ try:
+ if timeout is not None:
+ req = self.client.build_request(
+ "POST",
+ url,
+ data=data, # type: ignore
+ json=json,
+ params=params,
+ headers=headers,
+ timeout=timeout,
+ files=files,
+ content=content, # type: ignore
+ )
+ else:
+ req = self.client.build_request(
+ "POST", url, data=data, json=json, params=params, headers=headers, files=files, content=content # type: ignore
+ )
+ response = self.client.send(req, stream=stream)
+ response.raise_for_status()
+ return response
+ except httpx.TimeoutException:
+ raise litellm.Timeout(
+ message=f"Connection timed out after {timeout} seconds.",
+ model="default-model-name",
+ llm_provider="litellm-httpx-handler",
+ )
+ except httpx.HTTPStatusError as e:
+ if stream is True:
+ setattr(e, "message", mask_sensitive_info(e.response.read()))
+ setattr(e, "text", mask_sensitive_info(e.response.read()))
+ else:
+ error_text = mask_sensitive_info(e.response.text)
+ setattr(e, "message", error_text)
+ setattr(e, "text", error_text)
+
+ setattr(e, "status_code", e.response.status_code)
+
+ raise e
+ except Exception as e:
+ raise e
+
+ def patch(
+ self,
+ url: str,
+ data: Optional[Union[dict, str]] = None,
+ json: Optional[Union[dict, str]] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ stream: bool = False,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ ):
+ try:
+
+ if timeout is not None:
+ req = self.client.build_request(
+ "PATCH", url, data=data, json=json, params=params, headers=headers, timeout=timeout # type: ignore
+ )
+ else:
+ req = self.client.build_request(
+ "PATCH", url, data=data, json=json, params=params, headers=headers # type: ignore
+ )
+ response = self.client.send(req, stream=stream)
+ response.raise_for_status()
+ return response
+ except httpx.TimeoutException:
+ raise litellm.Timeout(
+ message=f"Connection timed out after {timeout} seconds.",
+ model="default-model-name",
+ llm_provider="litellm-httpx-handler",
+ )
+ except httpx.HTTPStatusError as e:
+
+ if stream is True:
+ setattr(e, "message", mask_sensitive_info(e.response.read()))
+ setattr(e, "text", mask_sensitive_info(e.response.read()))
+ else:
+ error_text = mask_sensitive_info(e.response.text)
+ setattr(e, "message", error_text)
+ setattr(e, "text", error_text)
+
+ setattr(e, "status_code", e.response.status_code)
+
+ raise e
+ except Exception as e:
+ raise e
+
+ def put(
+ self,
+ url: str,
+ data: Optional[Union[dict, str]] = None,
+ json: Optional[Union[dict, str]] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ stream: bool = False,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ ):
+ try:
+
+ if timeout is not None:
+ req = self.client.build_request(
+ "PUT", url, data=data, json=json, params=params, headers=headers, timeout=timeout # type: ignore
+ )
+ else:
+ req = self.client.build_request(
+ "PUT", url, data=data, json=json, params=params, headers=headers # type: ignore
+ )
+ response = self.client.send(req, stream=stream)
+ return response
+ except httpx.TimeoutException:
+ raise litellm.Timeout(
+ message=f"Connection timed out after {timeout} seconds.",
+ model="default-model-name",
+ llm_provider="litellm-httpx-handler",
+ )
+ except Exception as e:
+ raise e
+
+ def __del__(self) -> None:
+ try:
+ self.close()
+ except Exception:
+ pass
+
+ def _create_sync_transport(self) -> Optional[HTTPTransport]:
+ """
+ Create an HTTP transport with IPv4 only if litellm.force_ipv4 is True.
+ Otherwise, return None.
+
+ Some users have seen httpx ConnectionError when using ipv6 - forcing ipv4 resolves the issue for them
+ """
+ if litellm.force_ipv4:
+ return HTTPTransport(local_address="0.0.0.0")
+ else:
+ return None
+
+
+def get_async_httpx_client(
+ llm_provider: Union[LlmProviders, httpxSpecialProvider],
+ params: Optional[dict] = None,
+) -> AsyncHTTPHandler:
+ """
+ Retrieves the async HTTP client from the cache
+ If not present, creates a new client
+
+ Caches the new client and returns it.
+ """
+ _params_key_name = ""
+ if params is not None:
+ for key, value in params.items():
+ try:
+ _params_key_name += f"{key}_{value}"
+ except Exception:
+ pass
+
+ _cache_key_name = "async_httpx_client" + _params_key_name + llm_provider
+ _cached_client = litellm.in_memory_llm_clients_cache.get_cache(_cache_key_name)
+ if _cached_client:
+ return _cached_client
+
+ if params is not None:
+ _new_client = AsyncHTTPHandler(**params)
+ else:
+ _new_client = AsyncHTTPHandler(
+ timeout=httpx.Timeout(timeout=600.0, connect=5.0)
+ )
+
+ litellm.in_memory_llm_clients_cache.set_cache(
+ key=_cache_key_name,
+ value=_new_client,
+ ttl=_DEFAULT_TTL_FOR_HTTPX_CLIENTS,
+ )
+ return _new_client
+
+
+def _get_httpx_client(params: Optional[dict] = None) -> HTTPHandler:
+ """
+ Retrieves the HTTP client from the cache
+ If not present, creates a new client
+
+ Caches the new client and returns it.
+ """
+ _params_key_name = ""
+ if params is not None:
+ for key, value in params.items():
+ try:
+ _params_key_name += f"{key}_{value}"
+ except Exception:
+ pass
+
+ _cache_key_name = "httpx_client" + _params_key_name
+
+ _cached_client = litellm.in_memory_llm_clients_cache.get_cache(_cache_key_name)
+ if _cached_client:
+ return _cached_client
+
+ if params is not None:
+ _new_client = HTTPHandler(**params)
+ else:
+ _new_client = HTTPHandler(timeout=httpx.Timeout(timeout=600.0, connect=5.0))
+
+ litellm.in_memory_llm_clients_cache.set_cache(
+ key=_cache_key_name,
+ value=_new_client,
+ ttl=_DEFAULT_TTL_FOR_HTTPX_CLIENTS,
+ )
+ return _new_client
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py
new file mode 100644
index 00000000..6f684ba0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py
@@ -0,0 +1,49 @@
+from typing import Optional, Union
+
+import httpx
+
+try:
+ from litellm._version import version
+except Exception:
+ version = "0.0.0"
+
+headers = {
+ "User-Agent": f"litellm/{version}",
+}
+
+
+class HTTPHandler:
+ def __init__(self, concurrent_limit=1000):
+ # Create a client with a connection pool
+ self.client = httpx.AsyncClient(
+ limits=httpx.Limits(
+ max_connections=concurrent_limit,
+ max_keepalive_connections=concurrent_limit,
+ ),
+ headers=headers,
+ )
+
+ async def close(self):
+ # Close the client when you're done with it
+ await self.client.aclose()
+
+ async def get(
+ self, url: str, params: Optional[dict] = None, headers: Optional[dict] = None
+ ):
+ response = await self.client.get(url, params=params, headers=headers)
+ return response
+
+ async def post(
+ self,
+ url: str,
+ data: Optional[Union[dict, str]] = None,
+ params: Optional[dict] = None,
+ headers: Optional[dict] = None,
+ ):
+ try:
+ response = await self.client.post(
+ url, data=data, params=params, headers=headers # type: ignore
+ )
+ return response
+ except Exception as e:
+ raise e
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/llm_http_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/llm_http_handler.py
new file mode 100644
index 00000000..00caf552
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/llm_http_handler.py
@@ -0,0 +1,1260 @@
+import io
+import json
+from typing import TYPE_CHECKING, Any, Coroutine, Dict, Optional, Tuple, Union
+
+import httpx # type: ignore
+
+import litellm
+import litellm.litellm_core_utils
+import litellm.types
+import litellm.types.utils
+from litellm.llms.base_llm.chat.transformation import BaseConfig
+from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig
+from litellm.llms.base_llm.rerank.transformation import BaseRerankConfig
+from litellm.llms.base_llm.responses.transformation import BaseResponsesAPIConfig
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.responses.streaming_iterator import (
+ BaseResponsesAPIStreamingIterator,
+ MockResponsesAPIStreamingIterator,
+ ResponsesAPIStreamingIterator,
+ SyncResponsesAPIStreamingIterator,
+)
+from litellm.types.llms.openai import ResponseInputParam, ResponsesAPIResponse
+from litellm.types.rerank import OptionalRerankParams, RerankResponse
+from litellm.types.router import GenericLiteLLMParams
+from litellm.types.utils import EmbeddingResponse, FileTypes, TranscriptionResponse
+from litellm.utils import CustomStreamWrapper, ModelResponse, ProviderConfigManager
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class BaseLLMHTTPHandler:
+
+ async def _make_common_async_call(
+ self,
+ async_httpx_client: AsyncHTTPHandler,
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ logging_obj: LiteLLMLoggingObj,
+ stream: bool = False,
+ ) -> httpx.Response:
+ """Common implementation across stream + non-stream calls. Meant to ensure consistent error-handling."""
+ max_retry_on_unprocessable_entity_error = (
+ provider_config.max_retry_on_unprocessable_entity_error
+ )
+
+ response: Optional[httpx.Response] = None
+ for i in range(max(max_retry_on_unprocessable_entity_error, 1)):
+ try:
+ response = await async_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout,
+ stream=stream,
+ logging_obj=logging_obj,
+ )
+ except httpx.HTTPStatusError as e:
+ hit_max_retry = i + 1 == max_retry_on_unprocessable_entity_error
+ should_retry = provider_config.should_retry_llm_api_inside_llm_translation_on_http_error(
+ e=e, litellm_params=litellm_params
+ )
+ if should_retry and not hit_max_retry:
+ data = (
+ provider_config.transform_request_on_unprocessable_entity_error(
+ e=e, request_data=data
+ )
+ )
+ continue
+ else:
+ raise self._handle_error(e=e, provider_config=provider_config)
+ except Exception as e:
+ raise self._handle_error(e=e, provider_config=provider_config)
+ break
+
+ if response is None:
+ raise provider_config.get_error_class(
+ error_message="No response from the API",
+ status_code=422, # don't retry on this error
+ headers={},
+ )
+
+ return response
+
+ def _make_common_sync_call(
+ self,
+ sync_httpx_client: HTTPHandler,
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ logging_obj: LiteLLMLoggingObj,
+ stream: bool = False,
+ ) -> httpx.Response:
+
+ max_retry_on_unprocessable_entity_error = (
+ provider_config.max_retry_on_unprocessable_entity_error
+ )
+
+ response: Optional[httpx.Response] = None
+
+ for i in range(max(max_retry_on_unprocessable_entity_error, 1)):
+ try:
+ response = sync_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout,
+ stream=stream,
+ logging_obj=logging_obj,
+ )
+ except httpx.HTTPStatusError as e:
+ hit_max_retry = i + 1 == max_retry_on_unprocessable_entity_error
+ should_retry = provider_config.should_retry_llm_api_inside_llm_translation_on_http_error(
+ e=e, litellm_params=litellm_params
+ )
+ if should_retry and not hit_max_retry:
+ data = (
+ provider_config.transform_request_on_unprocessable_entity_error(
+ e=e, request_data=data
+ )
+ )
+ continue
+ else:
+ raise self._handle_error(e=e, provider_config=provider_config)
+ except Exception as e:
+ raise self._handle_error(e=e, provider_config=provider_config)
+ break
+
+ if response is None:
+ raise provider_config.get_error_class(
+ error_message="No response from the API",
+ status_code=422, # don't retry on this error
+ headers={},
+ )
+
+ return response
+
+ async def async_completion(
+ self,
+ custom_llm_provider: str,
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ model: str,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ messages: list,
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ client: Optional[AsyncHTTPHandler] = None,
+ json_mode: bool = False,
+ ):
+ if client is None:
+ async_httpx_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders(custom_llm_provider),
+ params={"ssl_verify": litellm_params.get("ssl_verify", None)},
+ )
+ else:
+ async_httpx_client = client
+
+ response = await self._make_common_async_call(
+ async_httpx_client=async_httpx_client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ stream=False,
+ logging_obj=logging_obj,
+ )
+ return provider_config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ json_mode=json_mode,
+ )
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_llm_provider: str,
+ model_response: ModelResponse,
+ encoding,
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ acompletion: bool,
+ stream: Optional[bool] = False,
+ fake_stream: bool = False,
+ api_key: Optional[str] = None,
+ headers: Optional[dict] = {},
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ):
+ json_mode: bool = optional_params.pop("json_mode", False)
+
+ provider_config = ProviderConfigManager.get_provider_chat_config(
+ model=model, provider=litellm.LlmProviders(custom_llm_provider)
+ )
+
+ # get config from model, custom llm provider
+ headers = provider_config.validate_environment(
+ api_key=api_key,
+ headers=headers or {},
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ api_base=api_base,
+ )
+
+ api_base = provider_config.get_complete_url(
+ api_base=api_base,
+ model=model,
+ optional_params=optional_params,
+ stream=stream,
+ litellm_params=litellm_params,
+ )
+
+ data = provider_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ headers = provider_config.sign_request(
+ headers=headers,
+ optional_params=optional_params,
+ request_data=data,
+ api_base=api_base,
+ stream=stream,
+ fake_stream=fake_stream,
+ model=model,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ if acompletion is True:
+ if stream is True:
+ data = self._add_stream_param_to_request_body(
+ data=data,
+ provider_config=provider_config,
+ fake_stream=fake_stream,
+ )
+ return self.acompletion_stream_function(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ headers=headers,
+ custom_llm_provider=custom_llm_provider,
+ provider_config=provider_config,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ data=data,
+ fake_stream=fake_stream,
+ client=(
+ client
+ if client is not None and isinstance(client, AsyncHTTPHandler)
+ else None
+ ),
+ litellm_params=litellm_params,
+ json_mode=json_mode,
+ )
+
+ else:
+ return self.async_completion(
+ custom_llm_provider=custom_llm_provider,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ model=model,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ client=(
+ client
+ if client is not None and isinstance(client, AsyncHTTPHandler)
+ else None
+ ),
+ json_mode=json_mode,
+ )
+
+ if stream is True:
+ data = self._add_stream_param_to_request_body(
+ data=data,
+ provider_config=provider_config,
+ fake_stream=fake_stream,
+ )
+ if provider_config.has_custom_stream_wrapper is True:
+ return provider_config.get_sync_custom_stream_wrapper(
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ logging_obj=logging_obj,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ messages=messages,
+ client=client,
+ json_mode=json_mode,
+ )
+ completion_stream, headers = self.make_sync_call(
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers, # type: ignore
+ data=data,
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ timeout=timeout,
+ fake_stream=fake_stream,
+ client=(
+ client
+ if client is not None and isinstance(client, HTTPHandler)
+ else None
+ ),
+ litellm_params=litellm_params,
+ )
+ return CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ logging_obj=logging_obj,
+ )
+
+ if client is None or not isinstance(client, HTTPHandler):
+ sync_httpx_client = _get_httpx_client(
+ params={"ssl_verify": litellm_params.get("ssl_verify", None)}
+ )
+ else:
+ sync_httpx_client = client
+
+ response = self._make_common_sync_call(
+ sync_httpx_client=sync_httpx_client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ logging_obj=logging_obj,
+ )
+ return provider_config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ json_mode=json_mode,
+ )
+
+ def make_sync_call(
+ self,
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ model: str,
+ messages: list,
+ logging_obj,
+ litellm_params: dict,
+ timeout: Union[float, httpx.Timeout],
+ fake_stream: bool = False,
+ client: Optional[HTTPHandler] = None,
+ ) -> Tuple[Any, dict]:
+ if client is None or not isinstance(client, HTTPHandler):
+ sync_httpx_client = _get_httpx_client(
+ {
+ "ssl_verify": litellm_params.get("ssl_verify", None),
+ }
+ )
+ else:
+ sync_httpx_client = client
+ stream = True
+ if fake_stream is True:
+ stream = False
+
+ response = self._make_common_sync_call(
+ sync_httpx_client=sync_httpx_client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ stream=stream,
+ logging_obj=logging_obj,
+ )
+
+ if fake_stream is True:
+ completion_stream = provider_config.get_model_response_iterator(
+ streaming_response=response.json(), sync_stream=True
+ )
+ else:
+ completion_stream = provider_config.get_model_response_iterator(
+ streaming_response=response.iter_lines(), sync_stream=True
+ )
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream, dict(response.headers)
+
+ async def acompletion_stream_function(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_llm_provider: str,
+ headers: dict,
+ provider_config: BaseConfig,
+ timeout: Union[float, httpx.Timeout],
+ logging_obj: LiteLLMLoggingObj,
+ data: dict,
+ litellm_params: dict,
+ fake_stream: bool = False,
+ client: Optional[AsyncHTTPHandler] = None,
+ json_mode: Optional[bool] = None,
+ ):
+ if provider_config.has_custom_stream_wrapper is True:
+ return provider_config.get_async_custom_stream_wrapper(
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ logging_obj=logging_obj,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ messages=messages,
+ client=client,
+ json_mode=json_mode,
+ )
+
+ completion_stream, _response_headers = await self.make_async_call_stream_helper(
+ custom_llm_provider=custom_llm_provider,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ messages=messages,
+ logging_obj=logging_obj,
+ timeout=timeout,
+ fake_stream=fake_stream,
+ client=client,
+ litellm_params=litellm_params,
+ )
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ logging_obj=logging_obj,
+ )
+ return streamwrapper
+
+ async def make_async_call_stream_helper(
+ self,
+ custom_llm_provider: str,
+ provider_config: BaseConfig,
+ api_base: str,
+ headers: dict,
+ data: dict,
+ messages: list,
+ logging_obj: LiteLLMLoggingObj,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ fake_stream: bool = False,
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> Tuple[Any, httpx.Headers]:
+ """
+ Helper function for making an async call with stream.
+
+ Handles fake stream as well.
+ """
+ if client is None:
+ async_httpx_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders(custom_llm_provider),
+ params={"ssl_verify": litellm_params.get("ssl_verify", None)},
+ )
+ else:
+ async_httpx_client = client
+ stream = True
+ if fake_stream is True:
+ stream = False
+
+ response = await self._make_common_async_call(
+ async_httpx_client=async_httpx_client,
+ provider_config=provider_config,
+ api_base=api_base,
+ headers=headers,
+ data=data,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ stream=stream,
+ logging_obj=logging_obj,
+ )
+
+ if fake_stream is True:
+ completion_stream = provider_config.get_model_response_iterator(
+ streaming_response=response.json(), sync_stream=False
+ )
+ else:
+ completion_stream = provider_config.get_model_response_iterator(
+ streaming_response=response.aiter_lines(), sync_stream=False
+ )
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream, response.headers
+
+ def _add_stream_param_to_request_body(
+ self,
+ data: dict,
+ provider_config: BaseConfig,
+ fake_stream: bool,
+ ) -> dict:
+ """
+ Some providers like Bedrock invoke do not support the stream parameter in the request body, we only pass `stream` in the request body the provider supports it.
+ """
+ if fake_stream is True:
+ return data
+ if provider_config.supports_stream_param_in_request_body is True:
+ data["stream"] = True
+ return data
+
+ def embedding(
+ self,
+ model: str,
+ input: list,
+ timeout: float,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ api_base: Optional[str],
+ optional_params: dict,
+ litellm_params: dict,
+ model_response: EmbeddingResponse,
+ api_key: Optional[str] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ aembedding: bool = False,
+ headers={},
+ ) -> EmbeddingResponse:
+
+ provider_config = ProviderConfigManager.get_provider_embedding_config(
+ model=model, provider=litellm.LlmProviders(custom_llm_provider)
+ )
+ # get config from model, custom llm provider
+ headers = provider_config.validate_environment(
+ api_key=api_key,
+ headers=headers,
+ model=model,
+ messages=[],
+ optional_params=optional_params,
+ )
+
+ api_base = provider_config.get_complete_url(
+ api_base=api_base,
+ model=model,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+
+ data = provider_config.transform_embedding_request(
+ model=model,
+ input=input,
+ optional_params=optional_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ if aembedding is True:
+ return self.aembedding( # type: ignore
+ request_data=data,
+ api_base=api_base,
+ headers=headers,
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ provider_config=provider_config,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ timeout=timeout,
+ client=client,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+
+ if client is None or not isinstance(client, HTTPHandler):
+ sync_httpx_client = _get_httpx_client()
+ else:
+ sync_httpx_client = client
+
+ try:
+ response = sync_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout,
+ )
+ except Exception as e:
+ raise self._handle_error(
+ e=e,
+ provider_config=provider_config,
+ )
+
+ return provider_config.transform_embedding_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+
+ async def aembedding(
+ self,
+ request_data: dict,
+ api_base: str,
+ headers: dict,
+ model: str,
+ custom_llm_provider: str,
+ provider_config: BaseEmbeddingConfig,
+ model_response: EmbeddingResponse,
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ litellm_params: dict,
+ api_key: Optional[str] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ) -> EmbeddingResponse:
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ async_httpx_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders(custom_llm_provider)
+ )
+ else:
+ async_httpx_client = client
+
+ try:
+ response = await async_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(request_data),
+ timeout=timeout,
+ )
+ except Exception as e:
+ raise self._handle_error(e=e, provider_config=provider_config)
+
+ return provider_config.transform_embedding_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=request_data,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+
+ def rerank(
+ self,
+ model: str,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ provider_config: BaseRerankConfig,
+ optional_rerank_params: OptionalRerankParams,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ model_response: RerankResponse,
+ _is_async: bool = False,
+ headers: dict = {},
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ) -> RerankResponse:
+
+ # get config from model, custom llm provider
+ headers = provider_config.validate_environment(
+ api_key=api_key,
+ headers=headers,
+ model=model,
+ )
+
+ api_base = provider_config.get_complete_url(
+ api_base=api_base,
+ model=model,
+ )
+
+ data = provider_config.transform_rerank_request(
+ model=model,
+ optional_rerank_params=optional_rerank_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=optional_rerank_params.get("query", ""),
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ if _is_async is True:
+ return self.arerank( # type: ignore
+ model=model,
+ request_data=data,
+ custom_llm_provider=custom_llm_provider,
+ provider_config=provider_config,
+ logging_obj=logging_obj,
+ model_response=model_response,
+ api_base=api_base,
+ headers=headers,
+ api_key=api_key,
+ timeout=timeout,
+ client=client,
+ )
+
+ if client is None or not isinstance(client, HTTPHandler):
+ sync_httpx_client = _get_httpx_client()
+ else:
+ sync_httpx_client = client
+
+ try:
+ response = sync_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout,
+ )
+ except Exception as e:
+ raise self._handle_error(
+ e=e,
+ provider_config=provider_config,
+ )
+
+ return provider_config.transform_rerank_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ )
+
+ async def arerank(
+ self,
+ model: str,
+ request_data: dict,
+ custom_llm_provider: str,
+ provider_config: BaseRerankConfig,
+ logging_obj: LiteLLMLoggingObj,
+ model_response: RerankResponse,
+ api_base: str,
+ headers: dict,
+ api_key: Optional[str] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ) -> RerankResponse:
+
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ async_httpx_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders(custom_llm_provider)
+ )
+ else:
+ async_httpx_client = client
+ try:
+ response = await async_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(request_data),
+ timeout=timeout,
+ )
+ except Exception as e:
+ raise self._handle_error(e=e, provider_config=provider_config)
+
+ return provider_config.transform_rerank_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=request_data,
+ )
+
+ def handle_audio_file(self, audio_file: FileTypes) -> bytes:
+ """
+ Processes the audio file input based on its type and returns the binary data.
+
+ Args:
+ audio_file: Can be a file path (str), a tuple (filename, file_content), or binary data (bytes).
+
+ Returns:
+ The binary data of the audio file.
+ """
+ binary_data: bytes # Explicitly declare the type
+
+ # Handle the audio file based on type
+ if isinstance(audio_file, str):
+ # If it's a file path
+ with open(audio_file, "rb") as f:
+ binary_data = f.read() # `f.read()` always returns `bytes`
+ elif isinstance(audio_file, tuple):
+ # Handle tuple case
+ _, file_content = audio_file[:2]
+ if isinstance(file_content, str):
+ with open(file_content, "rb") as f:
+ binary_data = f.read() # `f.read()` always returns `bytes`
+ elif isinstance(file_content, bytes):
+ binary_data = file_content
+ else:
+ raise TypeError(
+ f"Unexpected type in tuple: {type(file_content)}. Expected str or bytes."
+ )
+ elif isinstance(audio_file, bytes):
+ # Assume it's already binary data
+ binary_data = audio_file
+ elif isinstance(audio_file, io.BufferedReader) or isinstance(
+ audio_file, io.BytesIO
+ ):
+ # Handle file-like objects
+ binary_data = audio_file.read()
+
+ else:
+ raise TypeError(f"Unsupported type for audio_file: {type(audio_file)}")
+
+ return binary_data
+
+ def audio_transcriptions(
+ self,
+ model: str,
+ audio_file: FileTypes,
+ optional_params: dict,
+ model_response: TranscriptionResponse,
+ timeout: float,
+ max_retries: int,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ custom_llm_provider: str,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ atranscription: bool = False,
+ headers: dict = {},
+ litellm_params: dict = {},
+ ) -> TranscriptionResponse:
+ provider_config = ProviderConfigManager.get_provider_audio_transcription_config(
+ model=model, provider=litellm.LlmProviders(custom_llm_provider)
+ )
+ if provider_config is None:
+ raise ValueError(
+ f"No provider config found for model: {model} and provider: {custom_llm_provider}"
+ )
+ headers = provider_config.validate_environment(
+ api_key=api_key,
+ headers=headers,
+ model=model,
+ messages=[],
+ optional_params=optional_params,
+ )
+
+ if client is None or not isinstance(client, HTTPHandler):
+ client = _get_httpx_client()
+
+ complete_url = provider_config.get_complete_url(
+ api_base=api_base,
+ model=model,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+
+ # Handle the audio file based on type
+ binary_data = self.handle_audio_file(audio_file)
+
+ try:
+ # Make the POST request
+ response = client.post(
+ url=complete_url,
+ headers=headers,
+ content=binary_data,
+ timeout=timeout,
+ )
+ except Exception as e:
+ raise self._handle_error(e=e, provider_config=provider_config)
+
+ if isinstance(provider_config, litellm.DeepgramAudioTranscriptionConfig):
+ returned_response = provider_config.transform_audio_transcription_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data={},
+ optional_params=optional_params,
+ litellm_params={},
+ api_key=api_key,
+ )
+ return returned_response
+ return model_response
+
+ def response_api_handler(
+ self,
+ model: str,
+ input: Union[str, ResponseInputParam],
+ responses_api_provider_config: BaseResponsesAPIConfig,
+ response_api_optional_request_params: Dict,
+ custom_llm_provider: str,
+ litellm_params: GenericLiteLLMParams,
+ logging_obj: LiteLLMLoggingObj,
+ extra_headers: Optional[Dict[str, Any]] = None,
+ extra_body: Optional[Dict[str, Any]] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ _is_async: bool = False,
+ fake_stream: bool = False,
+ ) -> Union[
+ ResponsesAPIResponse,
+ BaseResponsesAPIStreamingIterator,
+ Coroutine[
+ Any, Any, Union[ResponsesAPIResponse, BaseResponsesAPIStreamingIterator]
+ ],
+ ]:
+ """
+ Handles responses API requests.
+ When _is_async=True, returns a coroutine instead of making the call directly.
+ """
+ if _is_async:
+ # Return the async coroutine if called with _is_async=True
+ return self.async_response_api_handler(
+ model=model,
+ input=input,
+ responses_api_provider_config=responses_api_provider_config,
+ response_api_optional_request_params=response_api_optional_request_params,
+ custom_llm_provider=custom_llm_provider,
+ litellm_params=litellm_params,
+ logging_obj=logging_obj,
+ extra_headers=extra_headers,
+ extra_body=extra_body,
+ timeout=timeout,
+ client=client if isinstance(client, AsyncHTTPHandler) else None,
+ fake_stream=fake_stream,
+ )
+
+ if client is None or not isinstance(client, HTTPHandler):
+ sync_httpx_client = _get_httpx_client(
+ params={"ssl_verify": litellm_params.get("ssl_verify", None)}
+ )
+ else:
+ sync_httpx_client = client
+
+ headers = responses_api_provider_config.validate_environment(
+ api_key=litellm_params.api_key,
+ headers=response_api_optional_request_params.get("extra_headers", {}) or {},
+ model=model,
+ )
+
+ if extra_headers:
+ headers.update(extra_headers)
+
+ api_base = responses_api_provider_config.get_complete_url(
+ api_base=litellm_params.api_base,
+ model=model,
+ )
+
+ data = responses_api_provider_config.transform_responses_api_request(
+ model=model,
+ input=input,
+ response_api_optional_request_params=response_api_optional_request_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ # Check if streaming is requested
+ stream = response_api_optional_request_params.get("stream", False)
+
+ try:
+ if stream:
+ # For streaming, use stream=True in the request
+ if fake_stream is True:
+ stream, data = self._prepare_fake_stream_request(
+ stream=stream,
+ data=data,
+ fake_stream=fake_stream,
+ )
+ response = sync_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout
+ or response_api_optional_request_params.get("timeout"),
+ stream=stream,
+ )
+ if fake_stream is True:
+ return MockResponsesAPIStreamingIterator(
+ response=response,
+ model=model,
+ logging_obj=logging_obj,
+ responses_api_provider_config=responses_api_provider_config,
+ )
+
+ return SyncResponsesAPIStreamingIterator(
+ response=response,
+ model=model,
+ logging_obj=logging_obj,
+ responses_api_provider_config=responses_api_provider_config,
+ )
+ else:
+ # For non-streaming requests
+ response = sync_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout
+ or response_api_optional_request_params.get("timeout"),
+ )
+ except Exception as e:
+ raise self._handle_error(
+ e=e,
+ provider_config=responses_api_provider_config,
+ )
+
+ return responses_api_provider_config.transform_response_api_response(
+ model=model,
+ raw_response=response,
+ logging_obj=logging_obj,
+ )
+
+ async def async_response_api_handler(
+ self,
+ model: str,
+ input: Union[str, ResponseInputParam],
+ responses_api_provider_config: BaseResponsesAPIConfig,
+ response_api_optional_request_params: Dict,
+ custom_llm_provider: str,
+ litellm_params: GenericLiteLLMParams,
+ logging_obj: LiteLLMLoggingObj,
+ extra_headers: Optional[Dict[str, Any]] = None,
+ extra_body: Optional[Dict[str, Any]] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ fake_stream: bool = False,
+ ) -> Union[ResponsesAPIResponse, BaseResponsesAPIStreamingIterator]:
+ """
+ Async version of the responses API handler.
+ Uses async HTTP client to make requests.
+ """
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ async_httpx_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders(custom_llm_provider),
+ params={"ssl_verify": litellm_params.get("ssl_verify", None)},
+ )
+ else:
+ async_httpx_client = client
+
+ headers = responses_api_provider_config.validate_environment(
+ api_key=litellm_params.api_key,
+ headers=response_api_optional_request_params.get("extra_headers", {}) or {},
+ model=model,
+ )
+
+ if extra_headers:
+ headers.update(extra_headers)
+
+ api_base = responses_api_provider_config.get_complete_url(
+ api_base=litellm_params.api_base,
+ model=model,
+ )
+
+ data = responses_api_provider_config.transform_responses_api_request(
+ model=model,
+ input=input,
+ response_api_optional_request_params=response_api_optional_request_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+ # Check if streaming is requested
+ stream = response_api_optional_request_params.get("stream", False)
+
+ try:
+ if stream:
+ # For streaming, we need to use stream=True in the request
+ if fake_stream is True:
+ stream, data = self._prepare_fake_stream_request(
+ stream=stream,
+ data=data,
+ fake_stream=fake_stream,
+ )
+
+ response = await async_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout
+ or response_api_optional_request_params.get("timeout"),
+ stream=stream,
+ )
+
+ if fake_stream is True:
+ return MockResponsesAPIStreamingIterator(
+ response=response,
+ model=model,
+ logging_obj=logging_obj,
+ responses_api_provider_config=responses_api_provider_config,
+ )
+
+ # Return the streaming iterator
+ return ResponsesAPIStreamingIterator(
+ response=response,
+ model=model,
+ logging_obj=logging_obj,
+ responses_api_provider_config=responses_api_provider_config,
+ )
+ else:
+ # For non-streaming, proceed as before
+ response = await async_httpx_client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout
+ or response_api_optional_request_params.get("timeout"),
+ )
+
+ except Exception as e:
+ raise self._handle_error(
+ e=e,
+ provider_config=responses_api_provider_config,
+ )
+
+ return responses_api_provider_config.transform_response_api_response(
+ model=model,
+ raw_response=response,
+ logging_obj=logging_obj,
+ )
+
+ def _prepare_fake_stream_request(
+ self,
+ stream: bool,
+ data: dict,
+ fake_stream: bool,
+ ) -> Tuple[bool, dict]:
+ """
+ Handles preparing a request when `fake_stream` is True.
+ """
+ if fake_stream is True:
+ stream = False
+ data.pop("stream", None)
+ return stream, data
+ return stream, data
+
+ def _handle_error(
+ self,
+ e: Exception,
+ provider_config: Union[BaseConfig, BaseRerankConfig, BaseResponsesAPIConfig],
+ ):
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ if error_response and hasattr(error_response, "text"):
+ error_text = getattr(error_response, "text", error_text)
+ if error_headers:
+ error_headers = dict(error_headers)
+ else:
+ error_headers = {}
+ raise provider_config.get_error_class(
+ error_message=error_text,
+ status_code=status_code,
+ headers=error_headers,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/custom_llm.py b/.venv/lib/python3.12/site-packages/litellm/llms/custom_llm.py
new file mode 100644
index 00000000..a2d04b18
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/custom_llm.py
@@ -0,0 +1,170 @@
+# What is this?
+## Handler file for a Custom Chat LLM
+
+"""
+- completion
+- acompletion
+- streaming
+- async_streaming
+"""
+
+from typing import Any, AsyncIterator, Callable, Iterator, Optional, Union
+
+import httpx
+
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
+from litellm.types.utils import GenericStreamingChunk
+from litellm.utils import ImageResponse, ModelResponse
+
+from .base import BaseLLM
+
+
+class CustomLLMError(Exception): # use this for all your exceptions
+ def __init__(
+ self,
+ status_code,
+ message,
+ ):
+ self.status_code = status_code
+ self.message = message
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class CustomLLM(BaseLLM):
+ def __init__(self) -> None:
+ super().__init__()
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ acompletion=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[HTTPHandler] = None,
+ ) -> ModelResponse:
+ raise CustomLLMError(status_code=500, message="Not implemented yet!")
+
+ def streaming(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ acompletion=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[HTTPHandler] = None,
+ ) -> Iterator[GenericStreamingChunk]:
+ raise CustomLLMError(status_code=500, message="Not implemented yet!")
+
+ async def acompletion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ acompletion=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> ModelResponse:
+ raise CustomLLMError(status_code=500, message="Not implemented yet!")
+
+ async def astreaming(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ acompletion=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> AsyncIterator[GenericStreamingChunk]:
+ raise CustomLLMError(status_code=500, message="Not implemented yet!")
+
+ def image_generation(
+ self,
+ model: str,
+ prompt: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ model_response: ImageResponse,
+ optional_params: dict,
+ logging_obj: Any,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[HTTPHandler] = None,
+ ) -> ImageResponse:
+ raise CustomLLMError(status_code=500, message="Not implemented yet!")
+
+ async def aimage_generation(
+ self,
+ model: str,
+ prompt: str,
+ model_response: ImageResponse,
+ api_key: Optional[
+ str
+ ], # dynamically set api_key - https://docs.litellm.ai/docs/set_keys#api_key
+ api_base: Optional[
+ str
+ ], # dynamically set api_base - https://docs.litellm.ai/docs/set_keys#api_base
+ optional_params: dict,
+ logging_obj: Any,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> ImageResponse:
+ raise CustomLLMError(status_code=500, message="Not implemented yet!")
+
+
+def custom_chat_llm_router(
+ async_fn: bool, stream: Optional[bool], custom_llm: CustomLLM
+):
+ """
+ Routes call to CustomLLM completion/acompletion/streaming/astreaming functions, based on call type
+
+ Validates if response is in expected format
+ """
+ if async_fn:
+ if stream:
+ return custom_llm.astreaming
+ return custom_llm.acompletion
+ if stream:
+ return custom_llm.streaming
+ return custom_llm.completion
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/handler.py
new file mode 100644
index 00000000..abb71474
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/handler.py
@@ -0,0 +1,84 @@
+"""
+Handles the chat completion request for Databricks
+"""
+
+from typing import Callable, List, Optional, Union, cast
+
+from httpx._config import Timeout
+
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import CustomStreamingDecoder
+from litellm.utils import ModelResponse
+
+from ...openai_like.chat.handler import OpenAILikeChatHandler
+from ..common_utils import DatabricksBase
+from .transformation import DatabricksConfig
+
+
+class DatabricksChatCompletion(OpenAILikeChatHandler, DatabricksBase):
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ def completion(
+ self,
+ *,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_llm_provider: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key: Optional[str],
+ logging_obj,
+ optional_params: dict,
+ acompletion=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers: Optional[dict] = None,
+ timeout: Optional[Union[float, Timeout]] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ custom_endpoint: Optional[bool] = None,
+ streaming_decoder: Optional[CustomStreamingDecoder] = None,
+ fake_stream: bool = False,
+ ):
+ messages = DatabricksConfig()._transform_messages(
+ messages=cast(List[AllMessageValues], messages), model=model
+ )
+ api_base, headers = self.databricks_validate_environment(
+ api_base=api_base,
+ api_key=api_key,
+ endpoint_type="chat_completions",
+ custom_endpoint=custom_endpoint,
+ headers=headers,
+ )
+
+ if optional_params.get("stream") is True:
+ fake_stream = DatabricksConfig()._should_fake_stream(optional_params)
+ else:
+ fake_stream = False
+
+ return super().completion(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ custom_llm_provider=custom_llm_provider,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ acompletion=acompletion,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ client=client,
+ custom_endpoint=True,
+ streaming_decoder=streaming_decoder,
+ fake_stream=fake_stream,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/transformation.py
new file mode 100644
index 00000000..94e02034
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/transformation.py
@@ -0,0 +1,106 @@
+"""
+Translates from OpenAI's `/v1/chat/completions` to Databricks' `/chat/completions`
+"""
+
+from typing import List, Optional, Union
+
+from pydantic import BaseModel
+
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ handle_messages_with_content_list_to_str_conversion,
+ strip_name_from_messages,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ProviderField
+
+from ...openai_like.chat.transformation import OpenAILikeChatConfig
+
+
+class DatabricksConfig(OpenAILikeChatConfig):
+ """
+ Reference: https://docs.databricks.com/en/machine-learning/foundation-models/api-reference.html#chat-request
+ """
+
+ max_tokens: Optional[int] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ top_k: Optional[int] = None
+ stop: Optional[Union[List[str], str]] = None
+ n: Optional[int] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ top_k: Optional[int] = None,
+ stop: Optional[Union[List[str], str]] = None,
+ n: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_required_params(self) -> List[ProviderField]:
+ """For a given provider, return it's required fields with a description"""
+ return [
+ ProviderField(
+ field_name="api_key",
+ field_type="string",
+ field_description="Your Databricks API Key.",
+ field_value="dapi...",
+ ),
+ ProviderField(
+ field_name="api_base",
+ field_type="string",
+ field_description="Your Databricks API Base.",
+ field_value="https://adb-..",
+ ),
+ ]
+
+ def get_supported_openai_params(self, model: Optional[str] = None) -> list:
+ return [
+ "stream",
+ "stop",
+ "temperature",
+ "top_p",
+ "max_tokens",
+ "max_completion_tokens",
+ "n",
+ "response_format",
+ "tools",
+ "tool_choice",
+ ]
+
+ def _should_fake_stream(self, optional_params: dict) -> bool:
+ """
+ Databricks doesn't support 'response_format' while streaming
+ """
+ if optional_params.get("response_format") is not None:
+ return True
+
+ return False
+
+ def _transform_messages(
+ self, messages: List[AllMessageValues], model: str
+ ) -> List[AllMessageValues]:
+ """
+ Databricks does not support:
+ - content in list format.
+ - 'name' in user message.
+ """
+ new_messages = []
+ for idx, message in enumerate(messages):
+ if isinstance(message, BaseModel):
+ _message = message.model_dump(exclude_none=True)
+ else:
+ _message = message
+ new_messages.append(_message)
+ new_messages = handle_messages_with_content_list_to_str_conversion(new_messages)
+ new_messages = strip_name_from_messages(new_messages)
+ return super()._transform_messages(messages=new_messages, model=model)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/databricks/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/common_utils.py
new file mode 100644
index 00000000..e8481e25
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/common_utils.py
@@ -0,0 +1,82 @@
+from typing import Literal, Optional, Tuple
+
+from .exceptions import DatabricksError
+
+
+class DatabricksBase:
+ def _get_databricks_credentials(
+ self, api_key: Optional[str], api_base: Optional[str], headers: Optional[dict]
+ ) -> Tuple[str, dict]:
+ headers = headers or {"Content-Type": "application/json"}
+ try:
+ from databricks.sdk import WorkspaceClient
+
+ databricks_client = WorkspaceClient()
+
+ api_base = api_base or f"{databricks_client.config.host}/serving-endpoints"
+
+ if api_key is None:
+ databricks_auth_headers: dict[str, str] = (
+ databricks_client.config.authenticate()
+ )
+ headers = {**databricks_auth_headers, **headers}
+
+ return api_base, headers
+ except ImportError:
+ raise DatabricksError(
+ status_code=400,
+ message=(
+ "If the Databricks base URL and API key are not set, the databricks-sdk "
+ "Python library must be installed. Please install the databricks-sdk, set "
+ "{LLM_PROVIDER}_API_BASE and {LLM_PROVIDER}_API_KEY environment variables, "
+ "or provide the base URL and API key as arguments."
+ ),
+ )
+
+ def databricks_validate_environment(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ endpoint_type: Literal["chat_completions", "embeddings"],
+ custom_endpoint: Optional[bool],
+ headers: Optional[dict],
+ ) -> Tuple[str, dict]:
+ if api_key is None and headers is None:
+ if custom_endpoint is not None:
+ raise DatabricksError(
+ status_code=400,
+ message="Missing API Key - A call is being made to LLM Provider but no key is set either in the environment variables ({LLM_PROVIDER}_API_KEY) or via params",
+ )
+ else:
+ api_base, headers = self._get_databricks_credentials(
+ api_base=api_base, api_key=api_key, headers=headers
+ )
+
+ if api_base is None:
+ if custom_endpoint:
+ raise DatabricksError(
+ status_code=400,
+ message="Missing API Base - A call is being made to LLM Provider but no api base is set either in the environment variables ({LLM_PROVIDER}_API_KEY) or via params",
+ )
+ else:
+ api_base, headers = self._get_databricks_credentials(
+ api_base=api_base, api_key=api_key, headers=headers
+ )
+
+ if headers is None:
+ headers = {
+ "Authorization": "Bearer {}".format(api_key),
+ "Content-Type": "application/json",
+ }
+ else:
+ if api_key is not None:
+ headers.update({"Authorization": "Bearer {}".format(api_key)})
+
+ if api_key is not None:
+ headers["Authorization"] = f"Bearer {api_key}"
+
+ if endpoint_type == "chat_completions" and custom_endpoint is not True:
+ api_base = "{}/chat/completions".format(api_base)
+ elif endpoint_type == "embeddings" and custom_endpoint is not True:
+ api_base = "{}/embeddings".format(api_base)
+ return api_base, headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/databricks/cost_calculator.py b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/cost_calculator.py
new file mode 100644
index 00000000..5558e133
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/cost_calculator.py
@@ -0,0 +1,66 @@
+"""
+Helper util for handling databricks-specific cost calculation
+- e.g.: handling 'dbrx-instruct-*'
+"""
+
+from typing import Tuple
+
+from litellm.types.utils import Usage
+from litellm.utils import get_model_info
+
+
+def cost_per_token(model: str, usage: Usage) -> Tuple[float, float]:
+ """
+ Calculates the cost per token for a given model, prompt tokens, and completion tokens.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - usage: LiteLLM Usage block, containing anthropic caching information
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+ """
+ base_model = model
+ if model.startswith("databricks/dbrx-instruct") or model.startswith(
+ "dbrx-instruct"
+ ):
+ base_model = "databricks-dbrx-instruct"
+ elif model.startswith("databricks/meta-llama-3.1-70b-instruct") or model.startswith(
+ "meta-llama-3.1-70b-instruct"
+ ):
+ base_model = "databricks-meta-llama-3-1-70b-instruct"
+ elif model.startswith(
+ "databricks/meta-llama-3.1-405b-instruct"
+ ) or model.startswith("meta-llama-3.1-405b-instruct"):
+ base_model = "databricks-meta-llama-3-1-405b-instruct"
+ elif model.startswith("databricks/mixtral-8x7b-instruct-v0.1") or model.startswith(
+ "mixtral-8x7b-instruct-v0.1"
+ ):
+ base_model = "databricks-mixtral-8x7b-instruct"
+ elif model.startswith("databricks/mixtral-8x7b-instruct-v0.1") or model.startswith(
+ "mixtral-8x7b-instruct-v0.1"
+ ):
+ base_model = "databricks-mixtral-8x7b-instruct"
+ elif model.startswith("databricks/bge-large-en") or model.startswith(
+ "bge-large-en"
+ ):
+ base_model = "databricks-bge-large-en"
+ elif model.startswith("databricks/gte-large-en") or model.startswith(
+ "gte-large-en"
+ ):
+ base_model = "databricks-gte-large-en"
+ elif model.startswith("databricks/llama-2-70b-chat") or model.startswith(
+ "llama-2-70b-chat"
+ ):
+ base_model = "databricks-llama-2-70b-chat"
+ ## GET MODEL INFO
+ model_info = get_model_info(model=base_model, custom_llm_provider="databricks")
+
+ ## CALCULATE INPUT COST
+
+ prompt_cost: float = usage["prompt_tokens"] * model_info["input_cost_per_token"]
+
+ ## CALCULATE OUTPUT COST
+ completion_cost = usage["completion_tokens"] * model_info["output_cost_per_token"]
+
+ return prompt_cost, completion_cost
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/databricks/embed/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/embed/handler.py
new file mode 100644
index 00000000..2eabcdbc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/embed/handler.py
@@ -0,0 +1,49 @@
+"""
+Calling logic for Databricks embeddings
+"""
+
+from typing import Optional
+
+from litellm.utils import EmbeddingResponse
+
+from ...openai_like.embedding.handler import OpenAILikeEmbeddingHandler
+from ..common_utils import DatabricksBase
+
+
+class DatabricksEmbeddingHandler(OpenAILikeEmbeddingHandler, DatabricksBase):
+ def embedding(
+ self,
+ model: str,
+ input: list,
+ timeout: float,
+ logging_obj,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ optional_params: dict,
+ model_response: Optional[EmbeddingResponse] = None,
+ client=None,
+ aembedding=None,
+ custom_endpoint: Optional[bool] = None,
+ headers: Optional[dict] = None,
+ ) -> EmbeddingResponse:
+ api_base, headers = self.databricks_validate_environment(
+ api_base=api_base,
+ api_key=api_key,
+ endpoint_type="embeddings",
+ custom_endpoint=custom_endpoint,
+ headers=headers,
+ )
+ return super().embedding(
+ model=model,
+ input=input,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ api_base=api_base,
+ optional_params=optional_params,
+ model_response=model_response,
+ client=client,
+ aembedding=aembedding,
+ custom_endpoint=True,
+ headers=headers,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/databricks/embed/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/embed/transformation.py
new file mode 100644
index 00000000..53e3b30d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/embed/transformation.py
@@ -0,0 +1,48 @@
+"""
+Translates from OpenAI's `/v1/embeddings` to Databricks' `/embeddings`
+"""
+
+import types
+from typing import Optional
+
+
+class DatabricksEmbeddingConfig:
+ """
+ Reference: https://learn.microsoft.com/en-us/azure/databricks/machine-learning/foundation-models/api-reference#--embedding-task
+ """
+
+ instruction: Optional[str] = (
+ None # An optional instruction to pass to the embedding model. BGE Authors recommend 'Represent this sentence for searching relevant passages:' for retrieval queries
+ )
+
+ def __init__(self, instruction: Optional[str] = None) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(
+ self,
+ ): # no optional openai embedding params supported
+ return []
+
+ def map_openai_params(self, non_default_params: dict, optional_params: dict):
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/databricks/exceptions.py b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/exceptions.py
new file mode 100644
index 00000000..8bb3d435
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/exceptions.py
@@ -0,0 +1,12 @@
+import httpx
+
+
+class DatabricksError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(method="POST", url="https://docs.databricks.com/")
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/databricks/streaming_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/streaming_utils.py
new file mode 100644
index 00000000..2db53df9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/databricks/streaming_utils.py
@@ -0,0 +1,166 @@
+import json
+from typing import Optional
+
+import litellm
+from litellm import verbose_logger
+from litellm.types.llms.openai import (
+ ChatCompletionToolCallChunk,
+ ChatCompletionToolCallFunctionChunk,
+ ChatCompletionUsageBlock,
+)
+from litellm.types.utils import GenericStreamingChunk, Usage
+
+
+class ModelResponseIterator:
+ def __init__(self, streaming_response, sync_stream: bool):
+ self.streaming_response = streaming_response
+
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ processed_chunk = litellm.ModelResponseStream(**chunk)
+
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ is_finished = False
+ finish_reason = ""
+ usage: Optional[ChatCompletionUsageBlock] = None
+
+ if processed_chunk.choices[0].delta.content is not None: # type: ignore
+ text = processed_chunk.choices[0].delta.content # type: ignore
+
+ if (
+ processed_chunk.choices[0].delta.tool_calls is not None # type: ignore
+ and len(processed_chunk.choices[0].delta.tool_calls) > 0 # type: ignore
+ and processed_chunk.choices[0].delta.tool_calls[0].function is not None # type: ignore
+ and processed_chunk.choices[0].delta.tool_calls[0].function.arguments # type: ignore
+ is not None
+ ):
+ tool_use = ChatCompletionToolCallChunk(
+ id=processed_chunk.choices[0].delta.tool_calls[0].id, # type: ignore
+ type="function",
+ function=ChatCompletionToolCallFunctionChunk(
+ name=processed_chunk.choices[0]
+ .delta.tool_calls[0] # type: ignore
+ .function.name,
+ arguments=processed_chunk.choices[0]
+ .delta.tool_calls[0] # type: ignore
+ .function.arguments,
+ ),
+ index=processed_chunk.choices[0].delta.tool_calls[0].index,
+ )
+
+ if processed_chunk.choices[0].finish_reason is not None:
+ is_finished = True
+ finish_reason = processed_chunk.choices[0].finish_reason
+
+ usage_chunk: Optional[Usage] = getattr(processed_chunk, "usage", None)
+ if usage_chunk is not None:
+
+ usage = ChatCompletionUsageBlock(
+ prompt_tokens=usage_chunk.prompt_tokens,
+ completion_tokens=usage_chunk.completion_tokens,
+ total_tokens=usage_chunk.total_tokens,
+ )
+
+ return GenericStreamingChunk(
+ text=text,
+ tool_use=tool_use,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=usage,
+ index=0,
+ )
+ except json.JSONDecodeError:
+ raise ValueError(f"Failed to decode JSON from chunk: {chunk}")
+
+ # Sync iterator
+ def __iter__(self):
+ self.response_iterator = self.streaming_response
+ return self
+
+ def __next__(self):
+ if not hasattr(self, "response_iterator"):
+ self.response_iterator = self.streaming_response
+ try:
+ chunk = self.response_iterator.__next__()
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ chunk = litellm.CustomStreamWrapper._strip_sse_data_from_chunk(chunk) or ""
+ chunk = chunk.strip()
+ if len(chunk) > 0:
+ json_chunk = json.loads(chunk)
+ return self.chunk_parser(chunk=json_chunk)
+ else:
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ verbose_logger.debug(
+ f"Error parsing chunk: {e},\nReceived chunk: {chunk}. Defaulting to empty chunk here."
+ )
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+
+ # Async iterator
+ def __aiter__(self):
+ self.async_response_iterator = self.streaming_response.__aiter__()
+ return self
+
+ async def __anext__(self):
+ try:
+ chunk = await self.async_response_iterator.__anext__()
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+ except Exception as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ chunk = litellm.CustomStreamWrapper._strip_sse_data_from_chunk(chunk) or ""
+ chunk = chunk.strip()
+ if chunk == "[DONE]":
+ raise StopAsyncIteration
+ if len(chunk) > 0:
+ json_chunk = json.loads(chunk)
+ return self.chunk_parser(chunk=json_chunk)
+ else:
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ verbose_logger.debug(
+ f"Error parsing chunk: {e},\nReceived chunk: {chunk}. Defaulting to empty chunk here."
+ )
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/deepgram/audio_transcription/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/deepgram/audio_transcription/transformation.py
new file mode 100644
index 00000000..06296736
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/deepgram/audio_transcription/transformation.py
@@ -0,0 +1,129 @@
+"""
+Translates from OpenAI's `/v1/audio/transcriptions` to Deepgram's `/v1/listen`
+"""
+
+from typing import List, Optional, Union
+
+from httpx import Headers, Response
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ OpenAIAudioTranscriptionOptionalParams,
+)
+from litellm.types.utils import TranscriptionResponse
+
+from ...base_llm.audio_transcription.transformation import (
+ BaseAudioTranscriptionConfig,
+ LiteLLMLoggingObj,
+)
+from ..common_utils import DeepgramException
+
+
+class DeepgramAudioTranscriptionConfig(BaseAudioTranscriptionConfig):
+ def get_supported_openai_params(
+ self, model: str
+ ) -> List[OpenAIAudioTranscriptionOptionalParams]:
+ return ["language"]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ supported_params = self.get_supported_openai_params(model)
+ for k, v in non_default_params.items():
+ if k in supported_params:
+ optional_params[k] = v
+ return optional_params
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return DeepgramException(
+ message=error_message, status_code=status_code, headers=headers
+ )
+
+ def transform_audio_transcription_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: TranscriptionResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ optional_params: dict,
+ litellm_params: dict,
+ api_key: Optional[str] = None,
+ ) -> TranscriptionResponse:
+ """
+ Transforms the raw response from Deepgram to the TranscriptionResponse format
+ """
+ try:
+ response_json = raw_response.json()
+
+ # Get the first alternative from the first channel
+ first_channel = response_json["results"]["channels"][0]
+ first_alternative = first_channel["alternatives"][0]
+
+ # Extract the full transcript
+ text = first_alternative["transcript"]
+
+ # Create TranscriptionResponse object
+ response = TranscriptionResponse(text=text)
+
+ # Add additional metadata matching OpenAI format
+ response["task"] = "transcribe"
+ response["language"] = (
+ "english" # Deepgram auto-detects but doesn't return language
+ )
+ response["duration"] = response_json["metadata"]["duration"]
+
+ # Transform words to match OpenAI format
+ if "words" in first_alternative:
+ response["words"] = [
+ {"word": word["word"], "start": word["start"], "end": word["end"]}
+ for word in first_alternative["words"]
+ ]
+
+ # Store full response in hidden params
+ response._hidden_params = response_json
+
+ return response
+
+ except Exception as e:
+ raise ValueError(
+ f"Error transforming Deepgram response: {str(e)}\nResponse: {raw_response.text}"
+ )
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ if api_base is None:
+ api_base = (
+ get_secret_str("DEEPGRAM_API_BASE") or "https://api.deepgram.com/v1"
+ )
+ api_base = api_base.rstrip("/") # Remove trailing slash if present
+
+ return f"{api_base}/listen?model={model}"
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ api_key = api_key or get_secret_str("DEEPGRAM_API_KEY")
+ return {
+ "Authorization": f"Token {api_key}",
+ }
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/deepgram/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/deepgram/common_utils.py
new file mode 100644
index 00000000..a741b092
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/deepgram/common_utils.py
@@ -0,0 +1,5 @@
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class DeepgramException(BaseLLMException):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/deepinfra/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/deepinfra/chat/transformation.py
new file mode 100644
index 00000000..429759fa
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/deepinfra/chat/transformation.py
@@ -0,0 +1,119 @@
+from typing import Optional, Tuple, Union
+
+import litellm
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+from litellm.secret_managers.main import get_secret_str
+
+
+class DeepInfraConfig(OpenAIGPTConfig):
+ """
+ Reference: https://deepinfra.com/docs/advanced/openai_api
+
+ The class `DeepInfra` provides configuration for the DeepInfra's Chat Completions API interface. Below are the parameters:
+ """
+
+ frequency_penalty: Optional[int] = None
+ function_call: Optional[Union[str, dict]] = None
+ functions: Optional[list] = None
+ logit_bias: Optional[dict] = None
+ max_tokens: Optional[int] = None
+ n: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ response_format: Optional[dict] = None
+ tools: Optional[list] = None
+ tool_choice: Optional[Union[str, dict]] = None
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[int] = None,
+ function_call: Optional[Union[str, dict]] = None,
+ functions: Optional[list] = None,
+ logit_bias: Optional[dict] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ response_format: Optional[dict] = None,
+ tools: Optional[list] = None,
+ tool_choice: Optional[Union[str, dict]] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "stream",
+ "frequency_penalty",
+ "function_call",
+ "functions",
+ "logit_bias",
+ "max_tokens",
+ "max_completion_tokens",
+ "n",
+ "presence_penalty",
+ "stop",
+ "temperature",
+ "top_p",
+ "response_format",
+ "tools",
+ "tool_choice",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ supported_openai_params = self.get_supported_openai_params(model=model)
+ for param, value in non_default_params.items():
+ if (
+ param == "temperature"
+ and value == 0
+ and model == "mistralai/Mistral-7B-Instruct-v0.1"
+ ): # this model does no support temperature == 0
+ value = 0.0001 # close to 0
+ if param == "tool_choice":
+ if (
+ value != "auto" and value != "none"
+ ): # https://deepinfra.com/docs/advanced/function_calling
+ ## UNSUPPORTED TOOL CHOICE VALUE
+ if litellm.drop_params is True or drop_params is True:
+ value = None
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="Deepinfra doesn't support tool_choice={}. To drop unsupported openai params from the call, set `litellm.drop_params = True`".format(
+ value
+ ),
+ status_code=400,
+ )
+ elif param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ elif param in supported_openai_params:
+ if value is not None:
+ optional_params[param] = value
+ return optional_params
+
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ # deepinfra is openai compatible, we just need to set this to custom_openai and have the api_base be https://api.endpoints.anyscale.com/v1
+ api_base = (
+ api_base
+ or get_secret_str("DEEPINFRA_API_BASE")
+ or "https://api.deepinfra.com/v1/openai"
+ )
+ dynamic_api_key = api_key or get_secret_str("DEEPINFRA_API_KEY")
+ return api_base, dynamic_api_key
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/deepseek/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/deepseek/chat/transformation.py
new file mode 100644
index 00000000..180cf7dc
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/deepseek/chat/transformation.py
@@ -0,0 +1,55 @@
+"""
+Translates from OpenAI's `/v1/chat/completions` to DeepSeek's `/v1/chat/completions`
+"""
+
+from typing import List, Optional, Tuple
+
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ handle_messages_with_content_list_to_str_conversion,
+)
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class DeepSeekChatConfig(OpenAIGPTConfig):
+
+ def _transform_messages(
+ self, messages: List[AllMessageValues], model: str
+ ) -> List[AllMessageValues]:
+ """
+ DeepSeek does not support content in list format.
+ """
+ messages = handle_messages_with_content_list_to_str_conversion(messages)
+ return super()._transform_messages(messages=messages, model=model)
+
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = (
+ api_base
+ or get_secret_str("DEEPSEEK_API_BASE")
+ or "https://api.deepseek.com/beta"
+ ) # type: ignore
+ dynamic_api_key = api_key or get_secret_str("DEEPSEEK_API_KEY")
+ return api_base, dynamic_api_key
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ If api_base is not provided, use the default DeepSeek /chat/completions endpoint.
+ """
+ if not api_base:
+ api_base = "https://api.deepseek.com/beta"
+
+ if not api_base.endswith("/chat/completions"):
+ api_base = f"{api_base}/chat/completions"
+
+ return api_base
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/deepseek/cost_calculator.py b/.venv/lib/python3.12/site-packages/litellm/llms/deepseek/cost_calculator.py
new file mode 100644
index 00000000..0f4490cb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/deepseek/cost_calculator.py
@@ -0,0 +1,21 @@
+"""
+Cost calculator for DeepSeek Chat models.
+
+Handles prompt caching scenario.
+"""
+
+from typing import Tuple
+
+from litellm.litellm_core_utils.llm_cost_calc.utils import generic_cost_per_token
+from litellm.types.utils import Usage
+
+
+def cost_per_token(model: str, usage: Usage) -> Tuple[float, float]:
+ """
+ Calculates the cost per token for a given model, prompt tokens, and completion tokens.
+
+ Follows the same logic as Anthropic's cost per token calculation.
+ """
+ return generic_cost_per_token(
+ model=model, usage=usage, custom_llm_provider="deepseek"
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/aleph_alpha.py b/.venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/aleph_alpha.py
new file mode 100644
index 00000000..81ad1346
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/aleph_alpha.py
@@ -0,0 +1,307 @@
+import json
+import time
+import types
+from typing import Callable, Optional
+
+import httpx # type: ignore
+
+import litellm
+from litellm.utils import Choices, Message, ModelResponse, Usage
+
+
+class AlephAlphaError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url="https://api.aleph-alpha.com/complete"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class AlephAlphaConfig:
+ """
+ Reference: https://docs.aleph-alpha.com/api/complete/
+
+ The `AlephAlphaConfig` class represents the configuration for the Aleph Alpha API. Here are the properties:
+
+ - `maximum_tokens` (integer, required): The maximum number of tokens to be generated by the completion. The sum of input tokens and maximum tokens may not exceed 2048.
+
+ - `minimum_tokens` (integer, optional; default value: 0): Generate at least this number of tokens before an end-of-text token is generated.
+
+ - `echo` (boolean, optional; default value: false): Whether to echo the prompt in the completion.
+
+ - `temperature` (number, nullable; default value: 0): Adjusts how creatively the model generates outputs. Use combinations of temperature, top_k, and top_p sensibly.
+
+ - `top_k` (integer, nullable; default value: 0): Introduces randomness into token generation by considering the top k most likely options.
+
+ - `top_p` (number, nullable; default value: 0): Adds randomness by considering the smallest set of tokens whose cumulative probability exceeds top_p.
+
+ - `presence_penalty`, `frequency_penalty`, `sequence_penalty` (number, nullable; default value: 0): Various penalties that can reduce repetition.
+
+ - `sequence_penalty_min_length` (integer; default value: 2): Minimum number of tokens to be considered as a sequence.
+
+ - `repetition_penalties_include_prompt`, `repetition_penalties_include_completion`, `use_multiplicative_presence_penalty`,`use_multiplicative_frequency_penalty`,`use_multiplicative_sequence_penalty` (boolean, nullable; default value: false): Various settings that adjust how the repetition penalties are applied.
+
+ - `penalty_bias` (string, nullable): Text used in addition to the penalized tokens for repetition penalties.
+
+ - `penalty_exceptions` (string[], nullable): Strings that may be generated without penalty.
+
+ - `penalty_exceptions_include_stop_sequences` (boolean, nullable; default value: true): Include all stop_sequences in penalty_exceptions.
+
+ - `best_of` (integer, nullable; default value: 1): The number of completions will be generated on the server side.
+
+ - `n` (integer, nullable; default value: 1): The number of completions to return.
+
+ - `logit_bias` (object, nullable): Adjust the logit scores before sampling.
+
+ - `log_probs` (integer, nullable): Number of top log probabilities for each token generated.
+
+ - `stop_sequences` (string[], nullable): List of strings that will stop generation if they're generated.
+
+ - `tokens` (boolean, nullable; default value: false): Flag indicating whether individual tokens of the completion should be returned or not.
+
+ - `raw_completion` (boolean; default value: false): if True, the raw completion of the model will be returned.
+
+ - `disable_optimizations` (boolean, nullable; default value: false): Disables any applied optimizations to both your prompt and completion.
+
+ - `completion_bias_inclusion`, `completion_bias_exclusion` (string[], default value: []): Set of strings to bias the generation of tokens.
+
+ - `completion_bias_inclusion_first_token_only`, `completion_bias_exclusion_first_token_only` (boolean; default value: false): Consider only the first token for the completion_bias_inclusion/exclusion.
+
+ - `contextual_control_threshold` (number, nullable): Control over how similar tokens are controlled.
+
+ - `control_log_additive` (boolean; default value: true): Method of applying control to attention scores.
+ """
+
+ maximum_tokens: Optional[int] = (
+ litellm.max_tokens
+ ) # aleph alpha requires max tokens
+ minimum_tokens: Optional[int] = None
+ echo: Optional[bool] = None
+ temperature: Optional[int] = None
+ top_k: Optional[int] = None
+ top_p: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ frequency_penalty: Optional[int] = None
+ sequence_penalty: Optional[int] = None
+ sequence_penalty_min_length: Optional[int] = None
+ repetition_penalties_include_prompt: Optional[bool] = None
+ repetition_penalties_include_completion: Optional[bool] = None
+ use_multiplicative_presence_penalty: Optional[bool] = None
+ use_multiplicative_frequency_penalty: Optional[bool] = None
+ use_multiplicative_sequence_penalty: Optional[bool] = None
+ penalty_bias: Optional[str] = None
+ penalty_exceptions_include_stop_sequences: Optional[bool] = None
+ best_of: Optional[int] = None
+ n: Optional[int] = None
+ logit_bias: Optional[dict] = None
+ log_probs: Optional[int] = None
+ stop_sequences: Optional[list] = None
+ tokens: Optional[bool] = None
+ raw_completion: Optional[bool] = None
+ disable_optimizations: Optional[bool] = None
+ completion_bias_inclusion: Optional[list] = None
+ completion_bias_exclusion: Optional[list] = None
+ completion_bias_inclusion_first_token_only: Optional[bool] = None
+ completion_bias_exclusion_first_token_only: Optional[bool] = None
+ contextual_control_threshold: Optional[int] = None
+ control_log_additive: Optional[bool] = None
+
+ def __init__(
+ self,
+ maximum_tokens: Optional[int] = None,
+ minimum_tokens: Optional[int] = None,
+ echo: Optional[bool] = None,
+ temperature: Optional[int] = None,
+ top_k: Optional[int] = None,
+ top_p: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ frequency_penalty: Optional[int] = None,
+ sequence_penalty: Optional[int] = None,
+ sequence_penalty_min_length: Optional[int] = None,
+ repetition_penalties_include_prompt: Optional[bool] = None,
+ repetition_penalties_include_completion: Optional[bool] = None,
+ use_multiplicative_presence_penalty: Optional[bool] = None,
+ use_multiplicative_frequency_penalty: Optional[bool] = None,
+ use_multiplicative_sequence_penalty: Optional[bool] = None,
+ penalty_bias: Optional[str] = None,
+ penalty_exceptions_include_stop_sequences: Optional[bool] = None,
+ best_of: Optional[int] = None,
+ n: Optional[int] = None,
+ logit_bias: Optional[dict] = None,
+ log_probs: Optional[int] = None,
+ stop_sequences: Optional[list] = None,
+ tokens: Optional[bool] = None,
+ raw_completion: Optional[bool] = None,
+ disable_optimizations: Optional[bool] = None,
+ completion_bias_inclusion: Optional[list] = None,
+ completion_bias_exclusion: Optional[list] = None,
+ completion_bias_inclusion_first_token_only: Optional[bool] = None,
+ completion_bias_exclusion_first_token_only: Optional[bool] = None,
+ contextual_control_threshold: Optional[int] = None,
+ control_log_additive: Optional[bool] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+
+def validate_environment(api_key):
+ headers = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+ if api_key:
+ headers["Authorization"] = f"Bearer {api_key}"
+ return headers
+
+
+def completion(
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ litellm_params=None,
+ logger_fn=None,
+ default_max_tokens_to_sample=None,
+):
+ headers = validate_environment(api_key)
+
+ ## Load Config
+ config = litellm.AlephAlphaConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > aleph_alpha_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ completion_url = api_base
+ model = model
+ prompt = ""
+ if "control" in model: # follow the ###Instruction / ###Response format
+ for idx, message in enumerate(messages):
+ if "role" in message:
+ if (
+ idx == 0
+ ): # set first message as instruction (required), let later user messages be input
+ prompt += f"###Instruction: {message['content']}"
+ else:
+ if message["role"] == "system":
+ prompt += f"###Instruction: {message['content']}"
+ elif message["role"] == "user":
+ prompt += f"###Input: {message['content']}"
+ else:
+ prompt += f"###Response: {message['content']}"
+ else:
+ prompt += f"{message['content']}"
+ else:
+ prompt = " ".join(message["content"] for message in messages)
+ data = {
+ "model": model,
+ "prompt": prompt,
+ **optional_params,
+ }
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ )
+ ## COMPLETION CALL
+ response = litellm.module_level_client.post(
+ completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ stream=optional_params["stream"] if "stream" in optional_params else False,
+ )
+ if "stream" in optional_params and optional_params["stream"] is True:
+ return response.iter_lines()
+ else:
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ original_response=response.text,
+ additional_args={"complete_input_dict": data},
+ )
+ print_verbose(f"raw model_response: {response.text}")
+ ## RESPONSE OBJECT
+ completion_response = response.json()
+ if "error" in completion_response:
+ raise AlephAlphaError(
+ message=completion_response["error"],
+ status_code=response.status_code,
+ )
+ else:
+ try:
+ choices_list = []
+ for idx, item in enumerate(completion_response["completions"]):
+ if len(item["completion"]) > 0:
+ message_obj = Message(content=item["completion"])
+ else:
+ message_obj = Message(content=None)
+ choice_obj = Choices(
+ finish_reason=item["finish_reason"],
+ index=idx + 1,
+ message=message_obj,
+ )
+ choices_list.append(choice_obj)
+ model_response.choices = choices_list # type: ignore
+ except Exception:
+ raise AlephAlphaError(
+ message=json.dumps(completion_response),
+ status_code=response.status_code,
+ )
+
+ ## CALCULATING USAGE - baseten charges on time, not tokens - have some mapping of cost here.
+ prompt_tokens = len(encoding.encode(prompt))
+ completion_tokens = len(
+ encoding.encode(
+ model_response["choices"][0]["message"]["content"],
+ disallowed_special=(),
+ )
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+
+def embedding():
+ # logic for parsing in - calling - parsing out model embedding calls
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/palm.py b/.venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/palm.py
new file mode 100644
index 00000000..3039222c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/palm.py
@@ -0,0 +1,201 @@
+import copy
+import time
+import traceback
+import types
+from typing import Callable, Optional
+
+import httpx
+
+import litellm
+from litellm.utils import Choices, Message, ModelResponse, Usage
+
+
+class PalmError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST",
+ url="https://developers.generativeai.google/api/python/google/generativeai/chat",
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class PalmConfig:
+ """
+ Reference: https://developers.generativeai.google/api/python/google/generativeai/chat
+
+ The class `PalmConfig` provides configuration for the Palm's API interface. Here are the parameters:
+
+ - `context` (string): Text that should be provided to the model first, to ground the response. This could be a prompt to guide the model's responses.
+
+ - `examples` (list): Examples of what the model should generate. They are treated identically to conversation messages except that they take precedence over the history in messages if the total input size exceeds the model's input_token_limit.
+
+ - `temperature` (float): Controls the randomness of the output. Must be positive. Higher values produce a more random and varied response. A temperature of zero will be deterministic.
+
+ - `candidate_count` (int): Maximum number of generated response messages to return. This value must be between [1, 8], inclusive. Only unique candidates are returned.
+
+ - `top_k` (int): The API uses combined nucleus and top-k sampling. `top_k` sets the maximum number of tokens to sample from on each step.
+
+ - `top_p` (float): The API uses combined nucleus and top-k sampling. `top_p` configures the nucleus sampling. It sets the maximum cumulative probability of tokens to sample from.
+
+ - `max_output_tokens` (int): Sets the maximum number of tokens to be returned in the output
+ """
+
+ context: Optional[str] = None
+ examples: Optional[list] = None
+ temperature: Optional[float] = None
+ candidate_count: Optional[int] = None
+ top_k: Optional[int] = None
+ top_p: Optional[float] = None
+ max_output_tokens: Optional[int] = None
+
+ def __init__(
+ self,
+ context: Optional[str] = None,
+ examples: Optional[list] = None,
+ temperature: Optional[float] = None,
+ candidate_count: Optional[int] = None,
+ top_k: Optional[int] = None,
+ top_p: Optional[float] = None,
+ max_output_tokens: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+
+def completion(
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ api_key,
+ encoding,
+ logging_obj,
+ optional_params: dict,
+ litellm_params=None,
+ logger_fn=None,
+):
+ try:
+ import google.generativeai as palm # type: ignore
+ except Exception:
+ raise Exception(
+ "Importing google.generativeai failed, please run 'pip install -q google-generativeai"
+ )
+ palm.configure(api_key=api_key)
+
+ model = model
+
+ ## Load Config
+ inference_params = copy.deepcopy(optional_params)
+ inference_params.pop(
+ "stream", None
+ ) # palm does not support streaming, so we handle this by fake streaming in main.py
+ config = litellm.PalmConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > palm_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ prompt = ""
+ for message in messages:
+ if "role" in message:
+ if message["role"] == "user":
+ prompt += f"{message['content']}"
+ else:
+ prompt += f"{message['content']}"
+ else:
+ prompt += f"{message['content']}"
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key="",
+ additional_args={"complete_input_dict": {"inference_params": inference_params}},
+ )
+ ## COMPLETION CALL
+ try:
+ response = palm.generate_text(prompt=prompt, **inference_params)
+ except Exception as e:
+ raise PalmError(
+ message=str(e),
+ status_code=500,
+ )
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key="",
+ original_response=response,
+ additional_args={"complete_input_dict": {}},
+ )
+ print_verbose(f"raw model_response: {response}")
+ ## RESPONSE OBJECT
+ completion_response = response
+ try:
+ choices_list = []
+ for idx, item in enumerate(completion_response.candidates):
+ if len(item["output"]) > 0:
+ message_obj = Message(content=item["output"])
+ else:
+ message_obj = Message(content=None)
+ choice_obj = Choices(index=idx + 1, message=message_obj)
+ choices_list.append(choice_obj)
+ model_response.choices = choices_list # type: ignore
+ except Exception:
+ raise PalmError(
+ message=traceback.format_exc(), status_code=response.status_code
+ )
+
+ try:
+ completion_response = model_response["choices"][0]["message"].get("content")
+ except Exception:
+ raise PalmError(
+ status_code=400,
+ message=f"No response received. Original response - {response}",
+ )
+
+ ## CALCULATING USAGE - baseten charges on time, not tokens - have some mapping of cost here.
+ prompt_tokens = len(encoding.encode(prompt))
+ completion_tokens = len(
+ encoding.encode(model_response["choices"][0]["message"].get("content", ""))
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = "palm/" + model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+
+def embedding():
+ # logic for parsing in - calling - parsing out model embedding calls
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/empower/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/empower/chat/transformation.py
new file mode 100644
index 00000000..045becff
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/empower/chat/transformation.py
@@ -0,0 +1,9 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to Empower's `/v1/chat/completions`
+"""
+
+from ...openai_like.chat.transformation import OpenAILikeChatConfig
+
+
+class EmpowerChatConfig(OpenAILikeChatConfig):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/audio_transcription/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/audio_transcription/transformation.py
new file mode 100644
index 00000000..8f357052
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/audio_transcription/transformation.py
@@ -0,0 +1,28 @@
+from typing import List
+
+from litellm.types.llms.openai import OpenAIAudioTranscriptionOptionalParams
+
+from ...base_llm.audio_transcription.transformation import BaseAudioTranscriptionConfig
+from ..common_utils import FireworksAIMixin
+
+
+class FireworksAIAudioTranscriptionConfig(
+ FireworksAIMixin, BaseAudioTranscriptionConfig
+):
+ def get_supported_openai_params(
+ self, model: str
+ ) -> List[OpenAIAudioTranscriptionOptionalParams]:
+ return ["language", "prompt", "response_format", "timestamp_granularities"]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ supported_params = self.get_supported_openai_params(model)
+ for k, v in non_default_params.items():
+ if k in supported_params:
+ optional_params[k] = v
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/chat/transformation.py
new file mode 100644
index 00000000..1c82f24a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/chat/transformation.py
@@ -0,0 +1,262 @@
+from typing import List, Literal, Optional, Tuple, Union, cast
+
+import litellm
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues, ChatCompletionImageObject
+from litellm.types.utils import ProviderSpecificModelInfo
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class FireworksAIConfig(OpenAIGPTConfig):
+ """
+ Reference: https://docs.fireworks.ai/api-reference/post-chatcompletions
+
+ The class `FireworksAIConfig` provides configuration for the Fireworks's Chat Completions API interface. Below are the parameters:
+ """
+
+ tools: Optional[list] = None
+ tool_choice: Optional[Union[str, dict]] = None
+ max_tokens: Optional[int] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ top_k: Optional[int] = None
+ frequency_penalty: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ n: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ response_format: Optional[dict] = None
+ user: Optional[str] = None
+ logprobs: Optional[int] = None
+
+ # Non OpenAI parameters - Fireworks AI only params
+ prompt_truncate_length: Optional[int] = None
+ context_length_exceeded_behavior: Optional[Literal["error", "truncate"]] = None
+
+ def __init__(
+ self,
+ tools: Optional[list] = None,
+ tool_choice: Optional[Union[str, dict]] = None,
+ max_tokens: Optional[int] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ top_k: Optional[int] = None,
+ frequency_penalty: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ n: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ response_format: Optional[dict] = None,
+ user: Optional[str] = None,
+ logprobs: Optional[int] = None,
+ prompt_truncate_length: Optional[int] = None,
+ context_length_exceeded_behavior: Optional[Literal["error", "truncate"]] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "stream",
+ "tools",
+ "tool_choice",
+ "max_completion_tokens",
+ "max_tokens",
+ "temperature",
+ "top_p",
+ "top_k",
+ "frequency_penalty",
+ "presence_penalty",
+ "n",
+ "stop",
+ "response_format",
+ "user",
+ "logprobs",
+ "prompt_truncate_length",
+ "context_length_exceeded_behavior",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+
+ supported_openai_params = self.get_supported_openai_params(model=model)
+ is_tools_set = any(
+ param == "tools" and value is not None
+ for param, value in non_default_params.items()
+ )
+
+ for param, value in non_default_params.items():
+ if param == "tool_choice":
+ if value == "required":
+ # relevant issue: https://github.com/BerriAI/litellm/issues/4416
+ optional_params["tool_choice"] = "any"
+ else:
+ # pass through the value of tool choice
+ optional_params["tool_choice"] = value
+ elif param == "response_format":
+
+ if (
+ is_tools_set
+ ): # fireworks ai doesn't support tools and response_format together
+ optional_params = self._add_response_format_to_tools(
+ optional_params=optional_params,
+ value=value,
+ is_response_format_supported=False,
+ enforce_tool_choice=False, # tools and response_format are both set, don't enforce tool_choice
+ )
+ elif "json_schema" in value:
+ optional_params["response_format"] = {
+ "type": "json_object",
+ "schema": value["json_schema"]["schema"],
+ }
+ else:
+ optional_params["response_format"] = value
+ elif param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ elif param in supported_openai_params:
+ if value is not None:
+ optional_params[param] = value
+
+ return optional_params
+
+ def _add_transform_inline_image_block(
+ self,
+ content: ChatCompletionImageObject,
+ model: str,
+ disable_add_transform_inline_image_block: Optional[bool],
+ ) -> ChatCompletionImageObject:
+ """
+ Add transform_inline to the image_url (allows non-vision models to parse documents/images/etc.)
+ - ignore if model is a vision model
+ - ignore if user has disabled this feature
+ """
+ if (
+ "vision" in model or disable_add_transform_inline_image_block
+ ): # allow user to toggle this feature.
+ return content
+ if isinstance(content["image_url"], str):
+ content["image_url"] = f"{content['image_url']}#transform=inline"
+ elif isinstance(content["image_url"], dict):
+ content["image_url"][
+ "url"
+ ] = f"{content['image_url']['url']}#transform=inline"
+ return content
+
+ def _transform_messages_helper(
+ self, messages: List[AllMessageValues], model: str, litellm_params: dict
+ ) -> List[AllMessageValues]:
+ """
+ Add 'transform=inline' to the url of the image_url
+ """
+ disable_add_transform_inline_image_block = cast(
+ Optional[bool],
+ litellm_params.get("disable_add_transform_inline_image_block")
+ or litellm.disable_add_transform_inline_image_block,
+ )
+ for message in messages:
+ if message["role"] == "user":
+ _message_content = message.get("content")
+ if _message_content is not None and isinstance(_message_content, list):
+ for content in _message_content:
+ if content["type"] == "image_url":
+ content = self._add_transform_inline_image_block(
+ content=content,
+ model=model,
+ disable_add_transform_inline_image_block=disable_add_transform_inline_image_block,
+ )
+ return messages
+
+ def get_provider_info(self, model: str) -> ProviderSpecificModelInfo:
+ provider_specific_model_info = ProviderSpecificModelInfo(
+ supports_function_calling=True,
+ supports_prompt_caching=True, # https://docs.fireworks.ai/guides/prompt-caching
+ supports_pdf_input=True, # via document inlining
+ supports_vision=True, # via document inlining
+ )
+ return provider_specific_model_info
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ if not model.startswith("accounts/"):
+ model = f"accounts/fireworks/models/{model}"
+ messages = self._transform_messages_helper(
+ messages=messages, model=model, litellm_params=litellm_params
+ )
+ return super().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = (
+ api_base
+ or get_secret_str("FIREWORKS_API_BASE")
+ or "https://api.fireworks.ai/inference/v1"
+ ) # type: ignore
+ dynamic_api_key = api_key or (
+ get_secret_str("FIREWORKS_API_KEY")
+ or get_secret_str("FIREWORKS_AI_API_KEY")
+ or get_secret_str("FIREWORKSAI_API_KEY")
+ or get_secret_str("FIREWORKS_AI_TOKEN")
+ )
+ return api_base, dynamic_api_key
+
+ def get_models(self, api_key: Optional[str] = None, api_base: Optional[str] = None):
+
+ api_base, api_key = self._get_openai_compatible_provider_info(
+ api_base=api_base, api_key=api_key
+ )
+ if api_base is None or api_key is None:
+ raise ValueError(
+ "FIREWORKS_API_BASE or FIREWORKS_API_KEY is not set. Please set the environment variable, to query Fireworks AI's `/models` endpoint."
+ )
+
+ account_id = get_secret_str("FIREWORKS_ACCOUNT_ID")
+ if account_id is None:
+ raise ValueError(
+ "FIREWORKS_ACCOUNT_ID is not set. Please set the environment variable, to query Fireworks AI's `/models` endpoint."
+ )
+
+ response = litellm.module_level_client.get(
+ url=f"{api_base}/v1/accounts/{account_id}/models",
+ headers={"Authorization": f"Bearer {api_key}"},
+ )
+
+ if response.status_code != 200:
+ raise ValueError(
+ f"Failed to fetch models from Fireworks AI. Status code: {response.status_code}, Response: {response.json()}"
+ )
+
+ models = response.json()["models"]
+
+ return ["fireworks_ai/" + model["name"] for model in models]
+
+ @staticmethod
+ def get_api_key(api_key: Optional[str] = None) -> Optional[str]:
+ return api_key or (
+ get_secret_str("FIREWORKS_API_KEY")
+ or get_secret_str("FIREWORKS_AI_API_KEY")
+ or get_secret_str("FIREWORKSAI_API_KEY")
+ or get_secret_str("FIREWORKS_AI_TOKEN")
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/common_utils.py
new file mode 100644
index 00000000..293403b1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/common_utils.py
@@ -0,0 +1,51 @@
+from typing import List, Optional, Union
+
+from httpx import Headers
+
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues
+
+from ..base_llm.chat.transformation import BaseLLMException
+
+
+class FireworksAIException(BaseLLMException):
+ pass
+
+
+class FireworksAIMixin:
+ """
+ Common Base Config functions across Fireworks AI Endpoints
+ """
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return FireworksAIException(
+ status_code=status_code,
+ message=error_message,
+ headers=headers,
+ )
+
+ def _get_api_key(self, api_key: Optional[str]) -> Optional[str]:
+ dynamic_api_key = api_key or (
+ get_secret_str("FIREWORKS_API_KEY")
+ or get_secret_str("FIREWORKS_AI_API_KEY")
+ or get_secret_str("FIREWORKSAI_API_KEY")
+ or get_secret_str("FIREWORKS_AI_TOKEN")
+ )
+ return dynamic_api_key
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ api_key = self._get_api_key(api_key)
+ if api_key is None:
+ raise ValueError("FIREWORKS_API_KEY is not set")
+
+ return {"Authorization": "Bearer {}".format(api_key), **headers}
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/completion/transformation.py
new file mode 100644
index 00000000..607e709c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/completion/transformation.py
@@ -0,0 +1,61 @@
+from typing import List, Union
+
+from litellm.types.llms.openai import AllMessageValues, OpenAITextCompletionUserMessage
+
+from ...base_llm.completion.transformation import BaseTextCompletionConfig
+from ...openai.completion.utils import _transform_prompt
+from ..common_utils import FireworksAIMixin
+
+
+class FireworksAITextCompletionConfig(FireworksAIMixin, BaseTextCompletionConfig):
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ See how LiteLLM supports Provider-specific parameters - https://docs.litellm.ai/docs/completion/provider_specific_params#proxy-usage
+ """
+ return [
+ "max_tokens",
+ "logprobs",
+ "echo",
+ "temperature",
+ "top_p",
+ "top_k",
+ "frequency_penalty",
+ "presence_penalty",
+ "n",
+ "stop",
+ "response_format",
+ "stream",
+ "user",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ supported_params = self.get_supported_openai_params(model)
+ for k, v in non_default_params.items():
+ if k in supported_params:
+ optional_params[k] = v
+ return optional_params
+
+ def transform_text_completion_request(
+ self,
+ model: str,
+ messages: Union[List[AllMessageValues], List[OpenAITextCompletionUserMessage]],
+ optional_params: dict,
+ headers: dict,
+ ) -> dict:
+ prompt = _transform_prompt(messages=messages)
+
+ if not model.startswith("accounts/"):
+ model = f"accounts/fireworks/models/{model}"
+
+ data = {
+ "model": model,
+ "prompt": prompt,
+ **optional_params,
+ }
+ return data
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/cost_calculator.py b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/cost_calculator.py
new file mode 100644
index 00000000..f53aba4a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/cost_calculator.py
@@ -0,0 +1,78 @@
+"""
+For calculating cost of fireworks ai serverless inference models.
+"""
+
+from typing import Tuple
+
+from litellm.types.utils import Usage
+from litellm.utils import get_model_info
+
+
+# Extract the number of billion parameters from the model name
+# only used for together_computer LLMs
+def get_base_model_for_pricing(model_name: str) -> str:
+ """
+ Helper function for calculating together ai pricing.
+
+ Returns:
+ - str: model pricing category if mapped else received model name
+ """
+ import re
+
+ model_name = model_name.lower()
+
+ # Check for MoE models in the form <number>x<number>b
+ moe_match = re.search(r"(\d+)x(\d+)b", model_name)
+ if moe_match:
+ total_billion = int(moe_match.group(1)) * int(moe_match.group(2))
+ if total_billion <= 56:
+ return "fireworks-ai-moe-up-to-56b"
+ elif total_billion <= 176:
+ return "fireworks-ai-56b-to-176b"
+
+ # Check for standard models in the form <number>b
+ re_params_match = re.search(r"(\d+)b", model_name)
+ if re_params_match is not None:
+ params_match = str(re_params_match.group(1))
+ params_billion = float(params_match)
+
+ # Determine the category based on the number of parameters
+ if params_billion <= 16.0:
+ return "fireworks-ai-up-to-16b"
+ elif params_billion <= 80.0:
+ return "fireworks-ai-16b-80b"
+
+ # If no matches, return the original model_name
+ return "fireworks-ai-default"
+
+
+def cost_per_token(model: str, usage: Usage) -> Tuple[float, float]:
+ """
+ Calculates the cost per token for a given model, prompt tokens, and completion tokens.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - usage: LiteLLM Usage block, containing anthropic caching information
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+ """
+ ## check if model mapped, else use default pricing
+ try:
+ model_info = get_model_info(model=model, custom_llm_provider="fireworks_ai")
+ except Exception:
+ base_model = get_base_model_for_pricing(model_name=model)
+
+ ## GET MODEL INFO
+ model_info = get_model_info(
+ model=base_model, custom_llm_provider="fireworks_ai"
+ )
+
+ ## CALCULATE INPUT COST
+
+ prompt_cost: float = usage["prompt_tokens"] * model_info["input_cost_per_token"]
+
+ ## CALCULATE OUTPUT COST
+ completion_cost = usage["completion_tokens"] * model_info["output_cost_per_token"]
+
+ return prompt_cost, completion_cost
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/embed/fireworks_ai_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/embed/fireworks_ai_transformation.py
new file mode 100644
index 00000000..80906443
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/fireworks_ai/embed/fireworks_ai_transformation.py
@@ -0,0 +1,44 @@
+"""
+This is OpenAI compatible - no transformation is applied
+
+"""
+
+import litellm
+
+
+class FireworksAIEmbeddingConfig:
+ def get_supported_openai_params(self, model: str):
+ """
+ dimensions Only supported in nomic-ai/nomic-embed-text-v1.5 and later models.
+
+ https://docs.fireworks.ai/api-reference/creates-an-embedding-vector-representing-the-input-text
+ """
+ if "nomic-ai" in model:
+ return ["dimensions"]
+ return []
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict, model: str
+ ):
+ """
+ No transformation is applied - fireworks ai is openai compatible
+ """
+ supported_openai_params = self.get_supported_openai_params(model)
+ for param, value in non_default_params.items():
+ if param in supported_openai_params:
+ optional_params[param] = value
+ return optional_params
+
+ def is_fireworks_embedding_model(self, model: str):
+ """
+ helper to check if a model is a fireworks embedding model
+
+ Fireworks embeddings does not support passing /accounts/fireworks in the model name so we need to know if it's a known embedding model
+ """
+ if (
+ model in litellm.fireworks_ai_embedding_models
+ or f"fireworks_ai/{model}" in litellm.fireworks_ai_embedding_models
+ ):
+ return True
+
+ return False
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/friendliai/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/friendliai/chat/transformation.py
new file mode 100644
index 00000000..16854914
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/friendliai/chat/transformation.py
@@ -0,0 +1,9 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to Friendliai's `/v1/chat/completions`
+"""
+
+from ...openai_like.chat.handler import OpenAILikeChatConfig
+
+
+class FriendliaiChatConfig(OpenAILikeChatConfig):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/galadriel/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/galadriel/chat/transformation.py
new file mode 100644
index 00000000..1e3280bb
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/galadriel/chat/transformation.py
@@ -0,0 +1,9 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to Galadriel's `/v1/chat/completions`
+"""
+
+from ...openai_like.chat.handler import OpenAILikeChatConfig
+
+
+class GaladrielChatConfig(OpenAILikeChatConfig):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/gemini/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/gemini/chat/transformation.py
new file mode 100644
index 00000000..fbc1916d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/gemini/chat/transformation.py
@@ -0,0 +1,132 @@
+from typing import Dict, List, Optional
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ convert_generic_image_chunk_to_openai_image_obj,
+ convert_to_anthropic_image_obj,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.llms.vertex_ai import ContentType, PartType
+
+from ...vertex_ai.gemini.transformation import _gemini_convert_messages_with_history
+from ...vertex_ai.gemini.vertex_and_google_ai_studio_gemini import VertexGeminiConfig
+
+
+class GoogleAIStudioGeminiConfig(VertexGeminiConfig):
+ """
+ Reference: https://ai.google.dev/api/rest/v1beta/GenerationConfig
+
+ The class `GoogleAIStudioGeminiConfig` provides configuration for the Google AI Studio's Gemini API interface. Below are the parameters:
+
+ - `temperature` (float): This controls the degree of randomness in token selection.
+
+ - `max_output_tokens` (integer): This sets the limitation for the maximum amount of token in the text output. In this case, the default value is 256.
+
+ - `top_p` (float): The tokens are selected from the most probable to the least probable until the sum of their probabilities equals the `top_p` value. Default is 0.95.
+
+ - `top_k` (integer): The value of `top_k` determines how many of the most probable tokens are considered in the selection. For example, a `top_k` of 1 means the selected token is the most probable among all tokens. The default value is 40.
+
+ - `response_mime_type` (str): The MIME type of the response. The default value is 'text/plain'. Other values - `application/json`.
+
+ - `response_schema` (dict): Optional. Output response schema of the generated candidate text when response mime type can have schema. Schema can be objects, primitives or arrays and is a subset of OpenAPI schema. If set, a compatible response_mime_type must also be set. Compatible mimetypes: application/json: Schema for JSON response.
+
+ - `candidate_count` (int): Number of generated responses to return.
+
+ - `stop_sequences` (List[str]): The set of character sequences (up to 5) that will stop output generation. If specified, the API will stop at the first appearance of a stop sequence. The stop sequence will not be included as part of the response.
+
+ Note: Please make sure to modify the default parameters as required for your use case.
+ """
+
+ temperature: Optional[float] = None
+ max_output_tokens: Optional[int] = None
+ top_p: Optional[float] = None
+ top_k: Optional[int] = None
+ response_mime_type: Optional[str] = None
+ response_schema: Optional[dict] = None
+ candidate_count: Optional[int] = None
+ stop_sequences: Optional[list] = None
+
+ def __init__(
+ self,
+ temperature: Optional[float] = None,
+ max_output_tokens: Optional[int] = None,
+ top_p: Optional[float] = None,
+ top_k: Optional[int] = None,
+ response_mime_type: Optional[str] = None,
+ response_schema: Optional[dict] = None,
+ candidate_count: Optional[int] = None,
+ stop_sequences: Optional[list] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return [
+ "temperature",
+ "top_p",
+ "max_tokens",
+ "max_completion_tokens",
+ "stream",
+ "tools",
+ "tool_choice",
+ "functions",
+ "response_format",
+ "n",
+ "stop",
+ "logprobs",
+ "frequency_penalty",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: Dict,
+ optional_params: Dict,
+ model: str,
+ drop_params: bool,
+ ) -> Dict:
+
+ if litellm.vertex_ai_safety_settings is not None:
+ optional_params["safety_settings"] = litellm.vertex_ai_safety_settings
+ return super().map_openai_params(
+ model=model,
+ non_default_params=non_default_params,
+ optional_params=optional_params,
+ drop_params=drop_params,
+ )
+
+ def _transform_messages(
+ self, messages: List[AllMessageValues]
+ ) -> List[ContentType]:
+ """
+ Google AI Studio Gemini does not support image urls in messages.
+ """
+ for message in messages:
+ _message_content = message.get("content")
+ if _message_content is not None and isinstance(_message_content, list):
+ _parts: List[PartType] = []
+ for element in _message_content:
+ if element.get("type") == "image_url":
+ img_element = element
+ _image_url: Optional[str] = None
+ format: Optional[str] = None
+ if isinstance(img_element.get("image_url"), dict):
+ _image_url = img_element["image_url"].get("url") # type: ignore
+ format = img_element["image_url"].get("format") # type: ignore
+ else:
+ _image_url = img_element.get("image_url") # type: ignore
+ if _image_url and "https://" in _image_url:
+ image_obj = convert_to_anthropic_image_obj(
+ _image_url, format=format
+ )
+ img_element["image_url"] = ( # type: ignore
+ convert_generic_image_chunk_to_openai_image_obj(
+ image_obj
+ )
+ )
+ return _gemini_convert_messages_with_history(messages=messages)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/gemini/context_caching/README.md b/.venv/lib/python3.12/site-packages/litellm/llms/gemini/context_caching/README.md
new file mode 100644
index 00000000..fce0b9d4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/gemini/context_caching/README.md
@@ -0,0 +1 @@
+[Go here for the Gemini Context Caching code](../../vertex_ai/context_caching/) \ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/gemini/cost_calculator.py b/.venv/lib/python3.12/site-packages/litellm/llms/gemini/cost_calculator.py
new file mode 100644
index 00000000..5497640d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/gemini/cost_calculator.py
@@ -0,0 +1,21 @@
+"""
+This file is used to calculate the cost of the Gemini API.
+
+Handles the context caching for Gemini API.
+"""
+
+from typing import Tuple
+
+from litellm.litellm_core_utils.llm_cost_calc.utils import generic_cost_per_token
+from litellm.types.utils import Usage
+
+
+def cost_per_token(model: str, usage: Usage) -> Tuple[float, float]:
+ """
+ Calculates the cost per token for a given model, prompt tokens, and completion tokens.
+
+ Follows the same logic as Anthropic's cost per token calculation.
+ """
+ return generic_cost_per_token(
+ model=model, usage=usage, custom_llm_provider="gemini"
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/github/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/github/chat/transformation.py
new file mode 100644
index 00000000..9197b398
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/github/chat/transformation.py
@@ -0,0 +1,9 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to Github's `/v1/chat/completions`
+"""
+
+from ...openai_like.chat.handler import OpenAILikeChatConfig
+
+
+class GithubChatConfig(OpenAILikeChatConfig):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/groq/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/groq/chat/handler.py
new file mode 100644
index 00000000..dc4c3222
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/groq/chat/handler.py
@@ -0,0 +1,76 @@
+"""
+Handles the chat completion request for groq
+"""
+
+from typing import Callable, List, Optional, Union, cast
+
+from httpx._config import Timeout
+
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import CustomStreamingDecoder
+from litellm.utils import ModelResponse
+
+from ...groq.chat.transformation import GroqChatConfig
+from ...openai_like.chat.handler import OpenAILikeChatHandler
+
+
+class GroqChatCompletion(OpenAILikeChatHandler):
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ def completion(
+ self,
+ *,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_llm_provider: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key: Optional[str],
+ logging_obj,
+ optional_params: dict,
+ acompletion=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers: Optional[dict] = None,
+ timeout: Optional[Union[float, Timeout]] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ custom_endpoint: Optional[bool] = None,
+ streaming_decoder: Optional[CustomStreamingDecoder] = None,
+ fake_stream: bool = False,
+ ):
+ messages = GroqChatConfig()._transform_messages(
+ messages=cast(List[AllMessageValues], messages), model=model
+ )
+
+ if optional_params.get("stream") is True:
+ fake_stream = GroqChatConfig()._should_fake_stream(optional_params)
+ else:
+ fake_stream = False
+
+ return super().completion(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ custom_llm_provider=custom_llm_provider,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ acompletion=acompletion,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ client=client,
+ custom_endpoint=custom_endpoint,
+ streaming_decoder=streaming_decoder,
+ fake_stream=fake_stream,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/groq/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/groq/chat/transformation.py
new file mode 100644
index 00000000..5b24f7d1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/groq/chat/transformation.py
@@ -0,0 +1,158 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to Groq's `/v1/chat/completions`
+"""
+
+from typing import List, Optional, Tuple, Union
+
+from pydantic import BaseModel
+
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ ChatCompletionAssistantMessage,
+ ChatCompletionToolParam,
+ ChatCompletionToolParamFunctionChunk,
+)
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class GroqChatConfig(OpenAIGPTConfig):
+
+ frequency_penalty: Optional[int] = None
+ function_call: Optional[Union[str, dict]] = None
+ functions: Optional[list] = None
+ logit_bias: Optional[dict] = None
+ max_tokens: Optional[int] = None
+ n: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ response_format: Optional[dict] = None
+ tools: Optional[list] = None
+ tool_choice: Optional[Union[str, dict]] = None
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[int] = None,
+ function_call: Optional[Union[str, dict]] = None,
+ functions: Optional[list] = None,
+ logit_bias: Optional[dict] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ response_format: Optional[dict] = None,
+ tools: Optional[list] = None,
+ tool_choice: Optional[Union[str, dict]] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def _transform_messages(self, messages: List[AllMessageValues], model: str) -> List:
+ for idx, message in enumerate(messages):
+ """
+ 1. Don't pass 'null' function_call assistant message to groq - https://github.com/BerriAI/litellm/issues/5839
+ """
+ if isinstance(message, BaseModel):
+ _message = message.model_dump()
+ else:
+ _message = message
+ assistant_message = _message.get("role") == "assistant"
+ if assistant_message:
+ new_message = ChatCompletionAssistantMessage(role="assistant")
+ for k, v in _message.items():
+ if v is not None:
+ new_message[k] = v # type: ignore
+ messages[idx] = new_message
+
+ return messages
+
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ # groq is openai compatible, we just need to set this to custom_openai and have the api_base be https://api.groq.com/openai/v1
+ api_base = (
+ api_base
+ or get_secret_str("GROQ_API_BASE")
+ or "https://api.groq.com/openai/v1"
+ ) # type: ignore
+ dynamic_api_key = api_key or get_secret_str("GROQ_API_KEY")
+ return api_base, dynamic_api_key
+
+ def _should_fake_stream(self, optional_params: dict) -> bool:
+ """
+ Groq doesn't support 'response_format' while streaming
+ """
+ if optional_params.get("response_format") is not None:
+ return True
+
+ return False
+
+ def _create_json_tool_call_for_response_format(
+ self,
+ json_schema: dict,
+ ):
+ """
+ Handles creating a tool call for getting responses in JSON format.
+
+ Args:
+ json_schema (Optional[dict]): The JSON schema the response should be in
+
+ Returns:
+ AnthropicMessagesTool: The tool call to send to Anthropic API to get responses in JSON format
+ """
+ return ChatCompletionToolParam(
+ type="function",
+ function=ChatCompletionToolParamFunctionChunk(
+ name="json_tool_call",
+ parameters=json_schema,
+ ),
+ )
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool = False,
+ ) -> dict:
+ _response_format = non_default_params.get("response_format")
+ if _response_format is not None and isinstance(_response_format, dict):
+ json_schema: Optional[dict] = None
+ if "response_schema" in _response_format:
+ json_schema = _response_format["response_schema"]
+ elif "json_schema" in _response_format:
+ json_schema = _response_format["json_schema"]["schema"]
+ """
+ When using tools in this way: - https://docs.anthropic.com/en/docs/build-with-claude/tool-use#json-mode
+ - You usually want to provide a single tool
+ - You should set tool_choice (see Forcing tool use) to instruct the model to explicitly use that tool
+ - Remember that the model will pass the input to the tool, so the name of the tool and description should be from the model’s perspective.
+ """
+ if json_schema is not None:
+ _tool_choice = {
+ "type": "function",
+ "function": {"name": "json_tool_call"},
+ }
+ _tool = self._create_json_tool_call_for_response_format(
+ json_schema=json_schema,
+ )
+ optional_params["tools"] = [_tool]
+ optional_params["tool_choice"] = _tool_choice
+ optional_params["json_mode"] = True
+ non_default_params.pop(
+ "response_format", None
+ ) # only remove if it's a json_schema - handled via using groq's tool calling params.
+ return super().map_openai_params(
+ non_default_params, optional_params, model, drop_params
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/groq/stt/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/groq/stt/transformation.py
new file mode 100644
index 00000000..c4dbd8d0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/groq/stt/transformation.py
@@ -0,0 +1,101 @@
+"""
+Translate from OpenAI's `/v1/audio/transcriptions` to Groq's `/v1/audio/transcriptions`
+"""
+
+import types
+from typing import List, Optional, Union
+
+import litellm
+
+
+class GroqSTTConfig:
+
+ frequency_penalty: Optional[int] = None
+ function_call: Optional[Union[str, dict]] = None
+ functions: Optional[list] = None
+ logit_bias: Optional[dict] = None
+ max_tokens: Optional[int] = None
+ n: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ response_format: Optional[dict] = None
+ tools: Optional[list] = None
+ tool_choice: Optional[Union[str, dict]] = None
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[int] = None,
+ function_call: Optional[Union[str, dict]] = None,
+ functions: Optional[list] = None,
+ logit_bias: Optional[dict] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ response_format: Optional[dict] = None,
+ tools: Optional[list] = None,
+ tool_choice: Optional[Union[str, dict]] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params_stt(self):
+ return [
+ "prompt",
+ "response_format",
+ "temperature",
+ "language",
+ ]
+
+ def get_supported_openai_response_formats_stt(self) -> List[str]:
+ return ["json", "verbose_json", "text"]
+
+ def map_openai_params_stt(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ response_formats = self.get_supported_openai_response_formats_stt()
+ for param, value in non_default_params.items():
+ if param == "response_format":
+ if value in response_formats:
+ optional_params[param] = value
+ else:
+ if litellm.drop_params is True or drop_params is True:
+ pass
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="Groq doesn't support response_format={}. To drop unsupported openai params from the call, set `litellm.drop_params = True`".format(
+ value
+ ),
+ status_code=400,
+ )
+ else:
+ optional_params[param] = value
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py
new file mode 100644
index 00000000..9332e987
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py
@@ -0,0 +1,40 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to VLLM's `/v1/chat/completions`
+"""
+
+from typing import Optional, Tuple
+
+from litellm.secret_managers.main import get_secret_str
+
+from ....utils import _remove_additional_properties, _remove_strict_from_schema
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class HostedVLLMChatConfig(OpenAIGPTConfig):
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ _tools = non_default_params.pop("tools", None)
+ if _tools is not None:
+ # remove 'additionalProperties' from tools
+ _tools = _remove_additional_properties(_tools)
+ # remove 'strict' from tools
+ _tools = _remove_strict_from_schema(_tools)
+ if _tools is not None:
+ non_default_params["tools"] = _tools
+ return super().map_openai_params(
+ non_default_params, optional_params, model, drop_params
+ )
+
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = api_base or get_secret_str("HOSTED_VLLM_API_BASE") # type: ignore
+ dynamic_api_key = (
+ api_key or get_secret_str("HOSTED_VLLM_API_KEY") or "fake-api-key"
+ ) # vllm does not require an api key
+ return api_base, dynamic_api_key
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/embedding/README.md b/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/embedding/README.md
new file mode 100644
index 00000000..f82b3c77
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/embedding/README.md
@@ -0,0 +1,5 @@
+No transformation is required for hosted_vllm embedding.
+
+VLLM is a superset of OpenAI's `embedding` endpoint.
+
+To pass provider-specific parameters, see [this](https://docs.litellm.ai/docs/completion/provider_specific_params) \ No newline at end of file
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/chat/handler.py
new file mode 100644
index 00000000..2b65e5b7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/chat/handler.py
@@ -0,0 +1,769 @@
+## Uses the huggingface text generation inference API
+import json
+import os
+from typing import (
+ Any,
+ Callable,
+ Dict,
+ List,
+ Literal,
+ Optional,
+ Tuple,
+ Union,
+ cast,
+ get_args,
+)
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.litellm_core_utils.streaming_handler import CustomStreamWrapper
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.llms.huggingface.chat.transformation import (
+ HuggingfaceChatConfig as HuggingfaceConfig,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import EmbeddingResponse
+from litellm.types.utils import Logprobs as TextCompletionLogprobs
+from litellm.types.utils import ModelResponse
+
+from ...base import BaseLLM
+from ..common_utils import HuggingfaceError
+
+hf_chat_config = HuggingfaceConfig()
+
+
+hf_tasks_embeddings = Literal[ # pipeline tags + hf tei endpoints - https://huggingface.github.io/text-embeddings-inference/#/
+ "sentence-similarity", "feature-extraction", "rerank", "embed", "similarity"
+]
+
+
+def get_hf_task_embedding_for_model(
+ model: str, task_type: Optional[str], api_base: str
+) -> Optional[str]:
+ if task_type is not None:
+ if task_type in get_args(hf_tasks_embeddings):
+ return task_type
+ else:
+ raise Exception(
+ "Invalid task_type={}. Expected one of={}".format(
+ task_type, hf_tasks_embeddings
+ )
+ )
+ http_client = HTTPHandler(concurrent_limit=1)
+
+ model_info = http_client.get(url=api_base)
+
+ model_info_dict = model_info.json()
+
+ pipeline_tag: Optional[str] = model_info_dict.get("pipeline_tag", None)
+
+ return pipeline_tag
+
+
+async def async_get_hf_task_embedding_for_model(
+ model: str, task_type: Optional[str], api_base: str
+) -> Optional[str]:
+ if task_type is not None:
+ if task_type in get_args(hf_tasks_embeddings):
+ return task_type
+ else:
+ raise Exception(
+ "Invalid task_type={}. Expected one of={}".format(
+ task_type, hf_tasks_embeddings
+ )
+ )
+ http_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.HUGGINGFACE,
+ )
+
+ model_info = await http_client.get(url=api_base)
+
+ model_info_dict = model_info.json()
+
+ pipeline_tag: Optional[str] = model_info_dict.get("pipeline_tag", None)
+
+ return pipeline_tag
+
+
+async def make_call(
+ client: Optional[AsyncHTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ json_mode: bool,
+) -> Tuple[Any, httpx.Headers]:
+ if client is None:
+ client = litellm.module_level_aclient
+
+ try:
+ response = await client.post(
+ api_base, headers=headers, data=data, stream=True, timeout=timeout
+ )
+ except httpx.HTTPStatusError as e:
+ error_headers = getattr(e, "headers", None)
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise HuggingfaceError(
+ status_code=e.response.status_code,
+ message=str(await e.response.aread()),
+ headers=cast(dict, error_headers) if error_headers else None,
+ )
+ except Exception as e:
+ for exception in litellm.LITELLM_EXCEPTION_TYPES:
+ if isinstance(e, exception):
+ raise e
+ raise HuggingfaceError(status_code=500, message=str(e))
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=response, # Pass the completion stream for logging
+ additional_args={"complete_input_dict": data},
+ )
+
+ return response.aiter_lines(), response.headers
+
+
+class Huggingface(BaseLLM):
+ _client_session: Optional[httpx.Client] = None
+ _aclient_session: Optional[httpx.AsyncClient] = None
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def completion( # noqa: PLR0915
+ self,
+ model: str,
+ messages: list,
+ api_base: Optional[str],
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ timeout: float,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ litellm_params: dict,
+ custom_prompt_dict={},
+ acompletion: bool = False,
+ logger_fn=None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ headers: dict = {},
+ ):
+ super().completion()
+ exception_mapping_worked = False
+ try:
+ task, model = hf_chat_config.get_hf_task_for_model(model)
+ litellm_params["task"] = task
+ headers = hf_chat_config.validate_environment(
+ api_key=api_key,
+ headers=headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ )
+ completion_url = hf_chat_config.get_api_base(api_base=api_base, model=model)
+ data = hf_chat_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "headers": headers,
+ "api_base": completion_url,
+ "acompletion": acompletion,
+ },
+ )
+ ## COMPLETION CALL
+
+ if acompletion is True:
+ ### ASYNC STREAMING
+ if optional_params.get("stream", False):
+ return self.async_streaming(logging_obj=logging_obj, api_base=completion_url, data=data, headers=headers, model_response=model_response, model=model, timeout=timeout, messages=messages) # type: ignore
+ else:
+ ### ASYNC COMPLETION
+ return self.acompletion(
+ api_base=completion_url,
+ data=data,
+ headers=headers,
+ model_response=model_response,
+ encoding=encoding,
+ model=model,
+ optional_params=optional_params,
+ timeout=timeout,
+ litellm_params=litellm_params,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ messages=messages,
+ client=(
+ client
+ if client is not None
+ and isinstance(client, AsyncHTTPHandler)
+ else None
+ ),
+ )
+ if client is None or not isinstance(client, HTTPHandler):
+ client = _get_httpx_client()
+ ### SYNC STREAMING
+ if "stream" in optional_params and optional_params["stream"] is True:
+ response = client.post(
+ url=completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ stream=optional_params["stream"],
+ )
+ return response.iter_lines()
+ ### SYNC COMPLETION
+ else:
+ response = client.post(
+ url=completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ )
+
+ return hf_chat_config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ encoding=encoding,
+ json_mode=None,
+ litellm_params=litellm_params,
+ )
+ except httpx.HTTPStatusError as e:
+ raise HuggingfaceError(
+ status_code=e.response.status_code,
+ message=e.response.text,
+ headers=e.response.headers,
+ )
+ except HuggingfaceError as e:
+ exception_mapping_worked = True
+ raise e
+ except Exception as e:
+ if exception_mapping_worked:
+ raise e
+ else:
+ import traceback
+
+ raise HuggingfaceError(status_code=500, message=traceback.format_exc())
+
+ async def acompletion(
+ self,
+ api_base: str,
+ data: dict,
+ headers: dict,
+ model_response: ModelResponse,
+ encoding: Any,
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ timeout: float,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: str,
+ messages: List[AllMessageValues],
+ client: Optional[AsyncHTTPHandler] = None,
+ ):
+ response: Optional[httpx.Response] = None
+ try:
+ if client is None:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.HUGGINGFACE
+ )
+ ### ASYNC COMPLETION
+ http_response = await client.post(
+ url=api_base, headers=headers, data=json.dumps(data), timeout=timeout
+ )
+
+ response = http_response
+
+ return hf_chat_config.transform_response(
+ model=model,
+ raw_response=http_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ encoding=encoding,
+ json_mode=None,
+ litellm_params=litellm_params,
+ )
+ except Exception as e:
+ if isinstance(e, httpx.TimeoutException):
+ raise HuggingfaceError(status_code=500, message="Request Timeout Error")
+ elif isinstance(e, HuggingfaceError):
+ raise e
+ elif response is not None and hasattr(response, "text"):
+ raise HuggingfaceError(
+ status_code=500,
+ message=f"{str(e)}\n\nOriginal Response: {response.text}",
+ headers=response.headers,
+ )
+ else:
+ raise HuggingfaceError(status_code=500, message=f"{str(e)}")
+
+ async def async_streaming(
+ self,
+ logging_obj,
+ api_base: str,
+ data: dict,
+ headers: dict,
+ model_response: ModelResponse,
+ messages: List[AllMessageValues],
+ model: str,
+ timeout: float,
+ client: Optional[AsyncHTTPHandler] = None,
+ ):
+ completion_stream, _ = await make_call(
+ client=client,
+ api_base=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ timeout=timeout,
+ json_mode=False,
+ )
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="huggingface",
+ logging_obj=logging_obj,
+ )
+ return streamwrapper
+
+ def _transform_input_on_pipeline_tag(
+ self, input: List, pipeline_tag: Optional[str]
+ ) -> dict:
+ if pipeline_tag is None:
+ return {"inputs": input}
+ if pipeline_tag == "sentence-similarity" or pipeline_tag == "similarity":
+ if len(input) < 2:
+ raise HuggingfaceError(
+ status_code=400,
+ message="sentence-similarity requires 2+ sentences",
+ )
+ return {"inputs": {"source_sentence": input[0], "sentences": input[1:]}}
+ elif pipeline_tag == "rerank":
+ if len(input) < 2:
+ raise HuggingfaceError(
+ status_code=400,
+ message="reranker requires 2+ sentences",
+ )
+ return {"inputs": {"query": input[0], "texts": input[1:]}}
+ return {"inputs": input} # default to feature-extraction pipeline tag
+
+ async def _async_transform_input(
+ self,
+ model: str,
+ task_type: Optional[str],
+ embed_url: str,
+ input: List,
+ optional_params: dict,
+ ) -> dict:
+ hf_task = await async_get_hf_task_embedding_for_model(
+ model=model, task_type=task_type, api_base=embed_url
+ )
+
+ data = self._transform_input_on_pipeline_tag(input=input, pipeline_tag=hf_task)
+
+ if len(optional_params.keys()) > 0:
+ data["options"] = optional_params
+
+ return data
+
+ def _process_optional_params(self, data: dict, optional_params: dict) -> dict:
+ special_options_keys = HuggingfaceConfig().get_special_options_params()
+ special_parameters_keys = [
+ "min_length",
+ "max_length",
+ "top_k",
+ "top_p",
+ "temperature",
+ "repetition_penalty",
+ "max_time",
+ ]
+
+ for k, v in optional_params.items():
+ if k in special_options_keys:
+ data.setdefault("options", {})
+ data["options"][k] = v
+ elif k in special_parameters_keys:
+ data.setdefault("parameters", {})
+ data["parameters"][k] = v
+ else:
+ data[k] = v
+
+ return data
+
+ def _transform_input(
+ self,
+ input: List,
+ model: str,
+ call_type: Literal["sync", "async"],
+ optional_params: dict,
+ embed_url: str,
+ ) -> dict:
+ data: Dict = {}
+
+ ## TRANSFORMATION ##
+ if "sentence-transformers" in model:
+ if len(input) == 0:
+ raise HuggingfaceError(
+ status_code=400,
+ message="sentence transformers requires 2+ sentences",
+ )
+ data = {"inputs": {"source_sentence": input[0], "sentences": input[1:]}}
+ else:
+ data = {"inputs": input}
+
+ task_type = optional_params.pop("input_type", None)
+
+ if call_type == "sync":
+ hf_task = get_hf_task_embedding_for_model(
+ model=model, task_type=task_type, api_base=embed_url
+ )
+ elif call_type == "async":
+ return self._async_transform_input(
+ model=model, task_type=task_type, embed_url=embed_url, input=input
+ ) # type: ignore
+
+ data = self._transform_input_on_pipeline_tag(
+ input=input, pipeline_tag=hf_task
+ )
+
+ if len(optional_params.keys()) > 0:
+ data = self._process_optional_params(
+ data=data, optional_params=optional_params
+ )
+
+ return data
+
+ def _process_embedding_response(
+ self,
+ embeddings: dict,
+ model_response: EmbeddingResponse,
+ model: str,
+ input: List,
+ encoding: Any,
+ ) -> EmbeddingResponse:
+ output_data = []
+ if "similarities" in embeddings:
+ for idx, embedding in embeddings["similarities"]:
+ output_data.append(
+ {
+ "object": "embedding",
+ "index": idx,
+ "embedding": embedding, # flatten list returned from hf
+ }
+ )
+ else:
+ for idx, embedding in enumerate(embeddings):
+ if isinstance(embedding, float):
+ output_data.append(
+ {
+ "object": "embedding",
+ "index": idx,
+ "embedding": embedding, # flatten list returned from hf
+ }
+ )
+ elif isinstance(embedding, list) and isinstance(embedding[0], float):
+ output_data.append(
+ {
+ "object": "embedding",
+ "index": idx,
+ "embedding": embedding, # flatten list returned from hf
+ }
+ )
+ else:
+ output_data.append(
+ {
+ "object": "embedding",
+ "index": idx,
+ "embedding": embedding[0][
+ 0
+ ], # flatten list returned from hf
+ }
+ )
+ model_response.object = "list"
+ model_response.data = output_data
+ model_response.model = model
+ input_tokens = 0
+ for text in input:
+ input_tokens += len(encoding.encode(text))
+
+ setattr(
+ model_response,
+ "usage",
+ litellm.Usage(
+ prompt_tokens=input_tokens,
+ completion_tokens=input_tokens,
+ total_tokens=input_tokens,
+ prompt_tokens_details=None,
+ completion_tokens_details=None,
+ ),
+ )
+ return model_response
+
+ async def aembedding(
+ self,
+ model: str,
+ input: list,
+ model_response: litellm.utils.EmbeddingResponse,
+ timeout: Union[float, httpx.Timeout],
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ api_base: str,
+ api_key: Optional[str],
+ headers: dict,
+ encoding: Callable,
+ client: Optional[AsyncHTTPHandler] = None,
+ ):
+ ## TRANSFORMATION ##
+ data = self._transform_input(
+ input=input,
+ model=model,
+ call_type="sync",
+ optional_params=optional_params,
+ embed_url=api_base,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "headers": headers,
+ "api_base": api_base,
+ },
+ )
+ ## COMPLETION CALL
+ if client is None:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.HUGGINGFACE,
+ )
+
+ response = await client.post(api_base, headers=headers, data=json.dumps(data))
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=response,
+ )
+
+ embeddings = response.json()
+
+ if "error" in embeddings:
+ raise HuggingfaceError(status_code=500, message=embeddings["error"])
+
+ ## PROCESS RESPONSE ##
+ return self._process_embedding_response(
+ embeddings=embeddings,
+ model_response=model_response,
+ model=model,
+ input=input,
+ encoding=encoding,
+ )
+
+ def embedding(
+ self,
+ model: str,
+ input: list,
+ model_response: EmbeddingResponse,
+ optional_params: dict,
+ logging_obj: LiteLLMLoggingObj,
+ encoding: Callable,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ timeout: Union[float, httpx.Timeout] = httpx.Timeout(None),
+ aembedding: Optional[bool] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ headers={},
+ ) -> EmbeddingResponse:
+ super().embedding()
+ headers = hf_chat_config.validate_environment(
+ api_key=api_key,
+ headers=headers,
+ model=model,
+ optional_params=optional_params,
+ messages=[],
+ )
+ # print_verbose(f"{model}, {task}")
+ embed_url = ""
+ if "https" in model:
+ embed_url = model
+ elif api_base:
+ embed_url = api_base
+ elif "HF_API_BASE" in os.environ:
+ embed_url = os.getenv("HF_API_BASE", "")
+ elif "HUGGINGFACE_API_BASE" in os.environ:
+ embed_url = os.getenv("HUGGINGFACE_API_BASE", "")
+ else:
+ embed_url = f"https://api-inference.huggingface.co/models/{model}"
+
+ ## ROUTING ##
+ if aembedding is True:
+ return self.aembedding(
+ input=input,
+ model_response=model_response,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ headers=headers,
+ api_base=embed_url, # type: ignore
+ api_key=api_key,
+ client=client if isinstance(client, AsyncHTTPHandler) else None,
+ model=model,
+ optional_params=optional_params,
+ encoding=encoding,
+ )
+
+ ## TRANSFORMATION ##
+
+ data = self._transform_input(
+ input=input,
+ model=model,
+ call_type="sync",
+ optional_params=optional_params,
+ embed_url=embed_url,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "headers": headers,
+ "api_base": embed_url,
+ },
+ )
+ ## COMPLETION CALL
+ if client is None or not isinstance(client, HTTPHandler):
+ client = HTTPHandler(concurrent_limit=1)
+ response = client.post(embed_url, headers=headers, data=json.dumps(data))
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=response,
+ )
+
+ embeddings = response.json()
+
+ if "error" in embeddings:
+ raise HuggingfaceError(status_code=500, message=embeddings["error"])
+
+ ## PROCESS RESPONSE ##
+ return self._process_embedding_response(
+ embeddings=embeddings,
+ model_response=model_response,
+ model=model,
+ input=input,
+ encoding=encoding,
+ )
+
+ def _transform_logprobs(
+ self, hf_response: Optional[List]
+ ) -> Optional[TextCompletionLogprobs]:
+ """
+ Transform Hugging Face logprobs to OpenAI.Completion() format
+ """
+ if hf_response is None:
+ return None
+
+ # Initialize an empty list for the transformed logprobs
+ _logprob: TextCompletionLogprobs = TextCompletionLogprobs(
+ text_offset=[],
+ token_logprobs=[],
+ tokens=[],
+ top_logprobs=[],
+ )
+
+ # For each Hugging Face response, transform the logprobs
+ for response in hf_response:
+ # Extract the relevant information from the response
+ response_details = response["details"]
+ top_tokens = response_details.get("top_tokens", {})
+
+ for i, token in enumerate(response_details["prefill"]):
+ # Extract the text of the token
+ token_text = token["text"]
+
+ # Extract the logprob of the token
+ token_logprob = token["logprob"]
+
+ # Add the token information to the 'token_info' list
+ cast(List[str], _logprob.tokens).append(token_text)
+ cast(List[float], _logprob.token_logprobs).append(token_logprob)
+
+ # stub this to work with llm eval harness
+ top_alt_tokens = {"": -1.0, "": -2.0, "": -3.0} # noqa: F601
+ cast(List[Dict[str, float]], _logprob.top_logprobs).append(
+ top_alt_tokens
+ )
+
+ # For each element in the 'tokens' list, extract the relevant information
+ for i, token in enumerate(response_details["tokens"]):
+ # Extract the text of the token
+ token_text = token["text"]
+
+ # Extract the logprob of the token
+ token_logprob = token["logprob"]
+
+ top_alt_tokens = {}
+ temp_top_logprobs = []
+ if top_tokens != {}:
+ temp_top_logprobs = top_tokens[i]
+
+ # top_alt_tokens should look like this: { "alternative_1": -1, "alternative_2": -2, "alternative_3": -3 }
+ for elem in temp_top_logprobs:
+ text = elem["text"]
+ logprob = elem["logprob"]
+ top_alt_tokens[text] = logprob
+
+ # Add the token information to the 'token_info' list
+ cast(List[str], _logprob.tokens).append(token_text)
+ cast(List[float], _logprob.token_logprobs).append(token_logprob)
+ cast(List[Dict[str, float]], _logprob.top_logprobs).append(
+ top_alt_tokens
+ )
+
+ # Add the text offset of the token
+ # This is computed as the sum of the lengths of all previous tokens
+ cast(List[int], _logprob.text_offset).append(
+ sum(len(t["text"]) for t in response_details["tokens"][:i])
+ )
+
+ return _logprob
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/chat/transformation.py
new file mode 100644
index 00000000..858fda47
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/chat/transformation.py
@@ -0,0 +1,589 @@
+import json
+import os
+import time
+from copy import deepcopy
+from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ convert_content_list_to_str,
+)
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ custom_prompt,
+ prompt_factory,
+)
+from litellm.litellm_core_utils.streaming_handler import CustomStreamWrapper
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import Choices, Message, ModelResponse, Usage
+from litellm.utils import token_counter
+
+from ..common_utils import HuggingfaceError, hf_task_list, hf_tasks, output_parser
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+
+ LoggingClass = LiteLLMLoggingObj
+else:
+ LoggingClass = Any
+
+
+tgi_models_cache = None
+conv_models_cache = None
+
+
+class HuggingfaceChatConfig(BaseConfig):
+ """
+ Reference: https://huggingface.github.io/text-generation-inference/#/Text%20Generation%20Inference/compat_generate
+ """
+
+ hf_task: Optional[hf_tasks] = (
+ None # litellm-specific param, used to know the api spec to use when calling huggingface api
+ )
+ best_of: Optional[int] = None
+ decoder_input_details: Optional[bool] = None
+ details: Optional[bool] = True # enables returning logprobs + best of
+ max_new_tokens: Optional[int] = None
+ repetition_penalty: Optional[float] = None
+ return_full_text: Optional[bool] = (
+ False # by default don't return the input as part of the output
+ )
+ seed: Optional[int] = None
+ temperature: Optional[float] = None
+ top_k: Optional[int] = None
+ top_n_tokens: Optional[int] = None
+ top_p: Optional[int] = None
+ truncate: Optional[int] = None
+ typical_p: Optional[float] = None
+ watermark: Optional[bool] = None
+
+ def __init__(
+ self,
+ best_of: Optional[int] = None,
+ decoder_input_details: Optional[bool] = None,
+ details: Optional[bool] = None,
+ max_new_tokens: Optional[int] = None,
+ repetition_penalty: Optional[float] = None,
+ return_full_text: Optional[bool] = None,
+ seed: Optional[int] = None,
+ temperature: Optional[float] = None,
+ top_k: Optional[int] = None,
+ top_n_tokens: Optional[int] = None,
+ top_p: Optional[int] = None,
+ truncate: Optional[int] = None,
+ typical_p: Optional[float] = None,
+ watermark: Optional[bool] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_special_options_params(self):
+ return ["use_cache", "wait_for_model"]
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "stream",
+ "temperature",
+ "max_tokens",
+ "max_completion_tokens",
+ "top_p",
+ "stop",
+ "n",
+ "echo",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: Dict,
+ optional_params: Dict,
+ model: str,
+ drop_params: bool,
+ ) -> Dict:
+ for param, value in non_default_params.items():
+ # temperature, top_p, n, stream, stop, max_tokens, n, presence_penalty default to None
+ if param == "temperature":
+ if value == 0.0 or value == 0:
+ # hugging face exception raised when temp==0
+ # Failed: Error occurred: HuggingfaceException - Input validation error: `temperature` must be strictly positive
+ value = 0.01
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "n":
+ optional_params["best_of"] = value
+ optional_params["do_sample"] = (
+ True # Need to sample if you want best of for hf inference endpoints
+ )
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "stop":
+ optional_params["stop"] = value
+ if param == "max_tokens" or param == "max_completion_tokens":
+ # HF TGI raises the following exception when max_new_tokens==0
+ # Failed: Error occurred: HuggingfaceException - Input validation error: `max_new_tokens` must be strictly positive
+ if value == 0:
+ value = 1
+ optional_params["max_new_tokens"] = value
+ if param == "echo":
+ # https://huggingface.co/docs/huggingface_hub/main/en/package_reference/inference_client#huggingface_hub.InferenceClient.text_generation.decoder_input_details
+ # Return the decoder input token logprobs and ids. You must set details=True as well for it to be taken into account. Defaults to False
+ optional_params["decoder_input_details"] = True
+
+ return optional_params
+
+ def get_hf_api_key(self) -> Optional[str]:
+ return get_secret_str("HUGGINGFACE_API_KEY")
+
+ def read_tgi_conv_models(self):
+ try:
+ global tgi_models_cache, conv_models_cache
+ # Check if the cache is already populated
+ # so we don't keep on reading txt file if there are 1k requests
+ if (tgi_models_cache is not None) and (conv_models_cache is not None):
+ return tgi_models_cache, conv_models_cache
+ # If not, read the file and populate the cache
+ tgi_models = set()
+ script_directory = os.path.dirname(os.path.abspath(__file__))
+ script_directory = os.path.dirname(script_directory)
+ # Construct the file path relative to the script's directory
+ file_path = os.path.join(
+ script_directory,
+ "huggingface_llms_metadata",
+ "hf_text_generation_models.txt",
+ )
+
+ with open(file_path, "r") as file:
+ for line in file:
+ tgi_models.add(line.strip())
+
+ # Cache the set for future use
+ tgi_models_cache = tgi_models
+
+ # If not, read the file and populate the cache
+ file_path = os.path.join(
+ script_directory,
+ "huggingface_llms_metadata",
+ "hf_conversational_models.txt",
+ )
+ conv_models = set()
+ with open(file_path, "r") as file:
+ for line in file:
+ conv_models.add(line.strip())
+ # Cache the set for future use
+ conv_models_cache = conv_models
+ return tgi_models, conv_models
+ except Exception:
+ return set(), set()
+
+ def get_hf_task_for_model(self, model: str) -> Tuple[hf_tasks, str]:
+ # read text file, cast it to set
+ # read the file called "huggingface_llms_metadata/hf_text_generation_models.txt"
+ if model.split("/")[0] in hf_task_list:
+ split_model = model.split("/", 1)
+ return split_model[0], split_model[1] # type: ignore
+ tgi_models, conversational_models = self.read_tgi_conv_models()
+
+ if model in tgi_models:
+ return "text-generation-inference", model
+ elif model in conversational_models:
+ return "conversational", model
+ elif "roneneldan/TinyStories" in model:
+ return "text-generation", model
+ else:
+ return "text-generation-inference", model # default to tgi
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ task = litellm_params.get("task", None)
+ ## VALIDATE API FORMAT
+ if task is None or not isinstance(task, str) or task not in hf_task_list:
+ raise Exception(
+ "Invalid hf task - {}. Valid formats - {}.".format(task, hf_tasks)
+ )
+
+ ## Load Config
+ config = litellm.HuggingfaceConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > huggingfaceConfig(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ ### MAP INPUT PARAMS
+ #### HANDLE SPECIAL PARAMS
+ special_params = self.get_special_options_params()
+ special_params_dict = {}
+ # Create a list of keys to pop after iteration
+ keys_to_pop = []
+
+ for k, v in optional_params.items():
+ if k in special_params:
+ special_params_dict[k] = v
+ keys_to_pop.append(k)
+
+ # Pop the keys from the dictionary after iteration
+ for k in keys_to_pop:
+ optional_params.pop(k)
+ if task == "conversational":
+ inference_params = deepcopy(optional_params)
+ inference_params.pop("details")
+ inference_params.pop("return_full_text")
+ past_user_inputs = []
+ generated_responses = []
+ text = ""
+ for message in messages:
+ if message["role"] == "user":
+ if text != "":
+ past_user_inputs.append(text)
+ text = convert_content_list_to_str(message)
+ elif message["role"] == "assistant" or message["role"] == "system":
+ generated_responses.append(convert_content_list_to_str(message))
+ data = {
+ "inputs": {
+ "text": text,
+ "past_user_inputs": past_user_inputs,
+ "generated_responses": generated_responses,
+ },
+ "parameters": inference_params,
+ }
+
+ elif task == "text-generation-inference":
+ # always send "details" and "return_full_text" as params
+ if model in litellm.custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = litellm.custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details.get("roles", None),
+ initial_prompt_value=model_prompt_details.get(
+ "initial_prompt_value", ""
+ ),
+ final_prompt_value=model_prompt_details.get(
+ "final_prompt_value", ""
+ ),
+ messages=messages,
+ )
+ else:
+ prompt = prompt_factory(model=model, messages=messages)
+ data = {
+ "inputs": prompt, # type: ignore
+ "parameters": optional_params,
+ "stream": ( # type: ignore
+ True
+ if "stream" in optional_params
+ and isinstance(optional_params["stream"], bool)
+ and optional_params["stream"] is True # type: ignore
+ else False
+ ),
+ }
+ else:
+ # Non TGI and Conversational llms
+ # We need this branch, it removes 'details' and 'return_full_text' from params
+ if model in litellm.custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = litellm.custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details.get("roles", {}),
+ initial_prompt_value=model_prompt_details.get(
+ "initial_prompt_value", ""
+ ),
+ final_prompt_value=model_prompt_details.get(
+ "final_prompt_value", ""
+ ),
+ bos_token=model_prompt_details.get("bos_token", ""),
+ eos_token=model_prompt_details.get("eos_token", ""),
+ messages=messages,
+ )
+ else:
+ prompt = prompt_factory(model=model, messages=messages)
+ inference_params = deepcopy(optional_params)
+ inference_params.pop("details")
+ inference_params.pop("return_full_text")
+ data = {
+ "inputs": prompt, # type: ignore
+ }
+ if task == "text-generation-inference":
+ data["parameters"] = inference_params
+ data["stream"] = ( # type: ignore
+ True # type: ignore
+ if "stream" in optional_params and optional_params["stream"] is True
+ else False
+ )
+
+ ### RE-ADD SPECIAL PARAMS
+ if len(special_params_dict.keys()) > 0:
+ data.update({"options": special_params_dict})
+
+ return data
+
+ def get_api_base(self, api_base: Optional[str], model: str) -> str:
+ """
+ Get the API base for the Huggingface API.
+
+ Do not add the chat/embedding/rerank extension here. Let the handler do this.
+ """
+ if "https" in model:
+ completion_url = model
+ elif api_base is not None:
+ completion_url = api_base
+ elif "HF_API_BASE" in os.environ:
+ completion_url = os.getenv("HF_API_BASE", "")
+ elif "HUGGINGFACE_API_BASE" in os.environ:
+ completion_url = os.getenv("HUGGINGFACE_API_BASE", "")
+ else:
+ completion_url = f"https://api-inference.huggingface.co/models/{model}"
+
+ return completion_url
+
+ def validate_environment(
+ self,
+ headers: Dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> Dict:
+ default_headers = {
+ "content-type": "application/json",
+ }
+ if api_key is not None:
+ default_headers["Authorization"] = (
+ f"Bearer {api_key}" # Huggingface Inference Endpoint default is to accept bearer tokens
+ )
+
+ headers = {**headers, **default_headers}
+ return headers
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return HuggingfaceError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ def _convert_streamed_response_to_complete_response(
+ self,
+ response: httpx.Response,
+ logging_obj: LoggingClass,
+ model: str,
+ data: dict,
+ api_key: Optional[str] = None,
+ ) -> List[Dict[str, Any]]:
+ streamed_response = CustomStreamWrapper(
+ completion_stream=response.iter_lines(),
+ model=model,
+ custom_llm_provider="huggingface",
+ logging_obj=logging_obj,
+ )
+ content = ""
+ for chunk in streamed_response:
+ content += chunk["choices"][0]["delta"]["content"]
+ completion_response: List[Dict[str, Any]] = [{"generated_text": content}]
+ ## LOGGING
+ logging_obj.post_call(
+ input=data,
+ api_key=api_key,
+ original_response=completion_response,
+ additional_args={"complete_input_dict": data},
+ )
+ return completion_response
+
+ def convert_to_model_response_object( # noqa: PLR0915
+ self,
+ completion_response: Union[List[Dict[str, Any]], Dict[str, Any]],
+ model_response: ModelResponse,
+ task: Optional[hf_tasks],
+ optional_params: dict,
+ encoding: Any,
+ messages: List[AllMessageValues],
+ model: str,
+ ):
+ if task is None:
+ task = "text-generation-inference" # default to tgi
+
+ if task == "conversational":
+ if len(completion_response["generated_text"]) > 0: # type: ignore
+ model_response.choices[0].message.content = completion_response[ # type: ignore
+ "generated_text"
+ ]
+ elif task == "text-generation-inference":
+ if (
+ not isinstance(completion_response, list)
+ or not isinstance(completion_response[0], dict)
+ or "generated_text" not in completion_response[0]
+ ):
+ raise HuggingfaceError(
+ status_code=422,
+ message=f"response is not in expected format - {completion_response}",
+ headers=None,
+ )
+
+ if len(completion_response[0]["generated_text"]) > 0:
+ model_response.choices[0].message.content = output_parser( # type: ignore
+ completion_response[0]["generated_text"]
+ )
+ ## GETTING LOGPROBS + FINISH REASON
+ if (
+ "details" in completion_response[0]
+ and "tokens" in completion_response[0]["details"]
+ ):
+ model_response.choices[0].finish_reason = completion_response[0][
+ "details"
+ ]["finish_reason"]
+ sum_logprob = 0
+ for token in completion_response[0]["details"]["tokens"]:
+ if token["logprob"] is not None:
+ sum_logprob += token["logprob"]
+ setattr(model_response.choices[0].message, "_logprob", sum_logprob) # type: ignore
+ if "best_of" in optional_params and optional_params["best_of"] > 1:
+ if (
+ "details" in completion_response[0]
+ and "best_of_sequences" in completion_response[0]["details"]
+ ):
+ choices_list = []
+ for idx, item in enumerate(
+ completion_response[0]["details"]["best_of_sequences"]
+ ):
+ sum_logprob = 0
+ for token in item["tokens"]:
+ if token["logprob"] is not None:
+ sum_logprob += token["logprob"]
+ if len(item["generated_text"]) > 0:
+ message_obj = Message(
+ content=output_parser(item["generated_text"]),
+ logprobs=sum_logprob,
+ )
+ else:
+ message_obj = Message(content=None)
+ choice_obj = Choices(
+ finish_reason=item["finish_reason"],
+ index=idx + 1,
+ message=message_obj,
+ )
+ choices_list.append(choice_obj)
+ model_response.choices.extend(choices_list)
+ elif task == "text-classification":
+ model_response.choices[0].message.content = json.dumps( # type: ignore
+ completion_response
+ )
+ else:
+ if (
+ isinstance(completion_response, list)
+ and len(completion_response[0]["generated_text"]) > 0
+ ):
+ model_response.choices[0].message.content = output_parser( # type: ignore
+ completion_response[0]["generated_text"]
+ )
+ ## CALCULATING USAGE
+ prompt_tokens = 0
+ try:
+ prompt_tokens = token_counter(model=model, messages=messages)
+ except Exception:
+ # this should remain non blocking we should not block a response returning if calculating usage fails
+ pass
+ output_text = model_response["choices"][0]["message"].get("content", "")
+ if output_text is not None and len(output_text) > 0:
+ completion_tokens = 0
+ try:
+ completion_tokens = len(
+ encoding.encode(
+ model_response["choices"][0]["message"].get("content", "")
+ )
+ ) ##[TODO] use the llama2 tokenizer here
+ except Exception:
+ # this should remain non blocking we should not block a response returning if calculating usage fails
+ pass
+ else:
+ completion_tokens = 0
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ model_response._hidden_params["original_response"] = completion_response
+ return model_response
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LoggingClass,
+ request_data: Dict,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: Dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ ## Some servers might return streaming responses even though stream was not set to true. (e.g. Baseten)
+ task = litellm_params.get("task", None)
+ is_streamed = False
+ if (
+ raw_response.__dict__["headers"].get("Content-Type", "")
+ == "text/event-stream"
+ ):
+ is_streamed = True
+
+ # iterate over the complete streamed response, and return the final answer
+ if is_streamed:
+ completion_response = self._convert_streamed_response_to_complete_response(
+ response=raw_response,
+ logging_obj=logging_obj,
+ model=model,
+ data=request_data,
+ api_key=api_key,
+ )
+ else:
+ ## LOGGING
+ logging_obj.post_call(
+ input=request_data,
+ api_key=api_key,
+ original_response=raw_response.text,
+ additional_args={"complete_input_dict": request_data},
+ )
+ ## RESPONSE OBJECT
+ try:
+ completion_response = raw_response.json()
+ if isinstance(completion_response, dict):
+ completion_response = [completion_response]
+ except Exception:
+ raise HuggingfaceError(
+ message=f"Original Response received: {raw_response.text}",
+ status_code=raw_response.status_code,
+ )
+
+ if isinstance(completion_response, dict) and "error" in completion_response:
+ raise HuggingfaceError(
+ message=completion_response["error"], # type: ignore
+ status_code=raw_response.status_code,
+ )
+ return self.convert_to_model_response_object(
+ completion_response=completion_response,
+ model_response=model_response,
+ task=task if task is not None and task in hf_task_list else None,
+ optional_params=optional_params,
+ encoding=encoding,
+ messages=messages,
+ model=model,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/common_utils.py
new file mode 100644
index 00000000..d793b298
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/common_utils.py
@@ -0,0 +1,45 @@
+from typing import Literal, Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class HuggingfaceError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[dict, httpx.Headers]] = None,
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
+
+
+hf_tasks = Literal[
+ "text-generation-inference",
+ "conversational",
+ "text-classification",
+ "text-generation",
+]
+
+hf_task_list = [
+ "text-generation-inference",
+ "conversational",
+ "text-classification",
+ "text-generation",
+]
+
+
+def output_parser(generated_text: str):
+ """
+ Parse the output text to remove any special characters. In our current approach we just check for ChatML tokens.
+
+ Initial issue that prompted this - https://github.com/BerriAI/litellm/issues/763
+ """
+ chat_template_tokens = ["<|assistant|>", "<|system|>", "<|user|>", "<s>", "</s>"]
+ for token in chat_template_tokens:
+ if generated_text.strip().startswith(token):
+ generated_text = generated_text.replace(token, "", 1)
+ if generated_text.endswith(token):
+ generated_text = generated_text[::-1].replace(token[::-1], "", 1)[::-1]
+ return generated_text
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/huggingface_llms_metadata/hf_conversational_models.txt b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/huggingface_llms_metadata/hf_conversational_models.txt
new file mode 100644
index 00000000..fa978352
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/huggingface_llms_metadata/hf_conversational_models.txt
@@ -0,0 +1,2523 @@
+0xDEADBEA7/DialoGPT-small-rick
+1Basco/DialoGPT-small-jake
+2early4coffee/DialoGPT-medium-deadpool
+2early4coffee/DialoGPT-small-deadpool
+2gud/DialogGPT-small-Koopsbot
+ABBHISHEK/DialoGPT-small-harrypotter
+AIDynamics/DialoGPT-medium-MentorDealerGuy
+AJ/DialoGPT-small-ricksanchez
+AJ/rick-discord-bot
+AJ/rick-sanchez-bot
+AJ-Dude/DialoGPT-small-harrypotter
+AK270802/DialoGPT-small-harrypotter
+ATGdev/DialoGPT-small-harrypotter
+AVeryRealHuman/DialoGPT-small-TonyStark
+AbhinavSaiTheGreat/DialoGPT-small-harrypotter
+AccurateIsaiah/DialoGPT-small-jefftastic
+AccurateIsaiah/DialoGPT-small-mozark
+AccurateIsaiah/DialoGPT-small-mozarkv2
+AccurateIsaiah/DialoGPT-small-sinclair
+AdharshJolly/HarryPotterBot-Model
+AdrianGzz/DialoGPT-small-harrypotter
+Aero/Tsubomi-Haruno
+AetherIT/DialoGPT-small-Hal
+AiPorter/DialoGPT-small-Back_to_the_future
+Aibox/DialoGPT-small-rick
+Akjder/DialoGPT-small-harrypotter
+AllwynJ/HarryBoy
+AnthonyNelson/DialoGPT-small-ricksanchez
+Apisate/DialoGPT-small-jordan
+ArJakusz/DialoGPT-small-stark
+Aran/DialoGPT-medium-harrypotter
+Aran/DialoGPT-small-harrypotter
+Arcktosh/DialoGPT-small-rick
+AriakimTaiyo/DialoGPT-cultured-Kumiko
+AriakimTaiyo/DialoGPT-medium-Kumiko
+AriakimTaiyo/DialoGPT-revised-Kumiko
+AriakimTaiyo/DialoGPT-small-Kumiko
+AriakimTaiyo/DialoGPT-small-Rikka
+ArtemisZealot/DialoGTP-small-Qkarin
+Aruden/DialoGPT-medium-harrypotterall
+Aspect11/DialoGPT-Medium-LiSBot
+Asuramaru/DialoGPT-small-rintohsaka
+Atchuth/DialoGPT-small-MichaelBot
+Augustvember/WOKKAWOKKA
+Augustvember/WokkaBot3
+Augustvember/test
+Augustvember/wokka2
+Augustvember/wokka4
+Augustvember/wokka5
+Augustvember/wokkabottest2
+AvatarXD/DialoGPT-medium-Blitzo
+Awsaf/DialoGPT-medium-eren
+Awsaf/large-eren
+Axcel/DialoGPT-small-rick
+Ayjayo/DialoGPT-medium-AyjayoAI
+Ayran/DialoGPT-medium-harry-potter-1-through-3
+Ayran/DialoGPT-medium-harry-potter-1-through-4-plus-6-e18
+Ayran/DialoGPT-medium-harry-potter-1-through-4-plus-6
+Ayran/DialoGPT-small-gandalf
+Ayran/DialoGPT-small-harry-potter-1-through-3
+Azuris/DialoGPT-medium-envy
+Azuris/DialoGPT-medium-senorita
+Azuris/DialoGPT-small-envy
+BW/TEST
+Backedman/DialoGPT-small-Anika
+BalajiSathesh/DialoGPT-small-harrypotter
+Batsy24/DialoGPT-medium-Twilight_BellaBot
+Batsy24/DialoGPT-small-Twilight_EdBot
+Bee-Garbs/DialoGPT-real-cartman-small
+Biasface/DDDC
+Biasface/DDDC2
+BigTooth/DialoGPT-Megumin
+BigTooth/DialoGPT-small-tohru
+BigTooth/Megumin-v0.2
+BigeS/DialoGPT-small-Rick
+Bimal/my_bot_model
+BinksSachary/DialoGPT-small-shaxx
+BinksSachary/ShaxxBot
+BinksSachary/ShaxxBot2
+BlightZz/DialoGPT-medium-Kurisu
+BlightZz/MakiseKurisu
+BlueGamerBeast/DialoGPT-small-Morgana
+BotterHax/DialoGPT-small-harrypotter
+Broadus20/DialoGPT-small-joshua
+BrunoNogueira/DialoGPT-kungfupanda
+Brykee/DialoGPT-medium-Morty
+Bubb-les/DisloGPT-medium-HarryPotter
+Camzure/MaamiBot-test
+Canadiancaleb/DialoGPT-small-jesse
+Canadiancaleb/DialoGPT-small-walter
+CasualHomie/DialoGPT-small-harrypotter
+Chae/botman
+Chakita/Friends
+Chalponkey/DialoGPT-small-Barry
+ChaseBread/DialoGPT-small-harrypotter
+Chiuchiyin/DialoGPT-small-Donald
+ChrisVCB/DialoGPT-medium-cmjs
+ChrisVCB/DialoGPT-medium-ej
+Chuah/DialoGPT-small-harrypotter
+ChukSamuels/DialoGPT-small-Dr.FauciBot
+Ciruzzo/DialoGPT-small-harrypotter
+ClaudeCOULOMBE/RickBot
+Cloudy/DialoGPT-CJ-large
+ClydeWasTaken/DialoGPT-small-joshua
+CodeDanCode/CartmenBot
+CodeDanCode/SP-KyleBot
+CoderBoy432/DialoGPT-small-harrypotter
+CoderEFE/DialoGPT-marxbot
+Connor/DialoGPT-small-rick
+Connorvr/BrightBot-small
+CopymySkill/DialoGPT-medium-atakan
+Corvus/DialoGPT-medium-CaptainPrice-Extended
+Corvus/DialoGPT-medium-CaptainPrice
+Coyotl/DialoGPT-test-last-arthurmorgan
+Coyotl/DialoGPT-test2-arthurmorgan
+Coyotl/DialoGPT-test3-arthurmorgan
+CracklesCreeper/Piglin-Talks-Harry-Potter
+Cryptikdw/DialoGPT-small-rick
+Cthyllax/DialoGPT-medium-PaladinDanse
+CurtisBowser/DialoGPT-medium-sora-two
+CurtisBowser/DialoGPT-medium-sora
+CurtisBowser/DialoGPT-small-sora
+CyberMuffin/DialoGPT-small-ChandlerBot
+DARKVIP3R/DialoGPT-medium-Anakin
+Daivakai/DialoGPT-small-saitama
+Dawit/DialogGPT-small-ironman
+Daymarebait/Discord_BOT_RICK
+DecafNosebleed/DialoGPT-small-ScaraBot
+Denny29/DialoGPT-medium-asunayuuki
+Devid/DialoGPT-small-Miku
+Dilmk2/DialoGPT-small-harrypotter
+Dimedrolza/DialoGPT-small-cyberpunk
+DingleyMaillotUrgell/homer-bot
+Doiman/DialoGPT-medium-harrypotter
+DongHai/DialoGPT-small-rick
+Doquey/DialoGPT-small-Luisbot1
+Doquey/DialoGPT-small-Michaelbot
+Doxophobia/DialoGPT-medium-celeste
+Dragoniod1596/DialoGPT-small-Legacies
+Dreyzin/DialoGPT-medium-avatar
+DueLinx0402/DialoGPT-small-harrypotter
+Duugu/jakebot3000
+Dyzi/DialoGPT-small-landcheese
+EEE/DialoGPT-medium-brooke
+EEE/DialoGPT-small-aang
+EEE/DialoGPT-small-yoda
+ESPersonnel/DialoGPT-small-got
+Eagle3ye/DialoGPT-small-PeppaPig
+Elzen7/DialoGPT-medium-harrypotter
+Emi2160/DialoGPT-small-Neku
+EmileAjar/DialoGPT-small-harrypotter
+EmileAjar/DialoGPT-small-peppapig
+Erikaka/DialoGPT-small-loki
+EstoyDePaso/DialoGPT-small-harrypotter
+EuropeanTurtle/DialoGPT-small-mrcobb
+ExEngineer/DialoGPT-medium-jdt
+Exilon/DialoGPT-large-quirk
+EzioDD/house
+FFF000/dialogpt-FFF
+FangLee/DialoGPT-small-Kirito
+Filosofas/DialoGPT-medium-PALPATINE
+Flampt/DialoGPT-medium-Sheldon
+For/sheldonbot
+FosterPatch/GoT-test
+Fu10k/DialoGPT-medium-Rick
+GabbyDaBUNBUN/DialoGPT-medium-PinkiePie
+Galaxy/DialoGPT-small-hermoine
+GamerMan02/DialoGPT-medium-gamerbot
+Gappy/DialoGPT-small-Zhongli
+Geezy/DialoGPT-small-guy
+GenDelport/DialoGPT-small-harrypotter
+Gowtham25/DialoGPT-small-jackie
+Gregor-Davies/DialoGPT-small-rick
+Greysan/DialoGPT-medium-TOH
+Guard-SK/DialoGPT-medium-ricksanchez
+Guard-SK/DialoGPT-small-ricksanchez
+GunjanPantha/DialoGPT-small-gameofthrones
+Guy0/DialoGPT-small-Batmanbotty
+HAttORi/DialoGPT-Medium-zerotwo
+HackyHackyMan/DialoGPT-small-harrypotter
+Hadron/DialoGPT-medium-nino
+Hallzy/Peterbot
+Hamas/DialoGPT-large-jake
+Hamas/DialoGPT-large-jake2
+Hamas/DialoGPT-large-jake3
+Hamas/DialoGPT-large-jake4
+Hamhams/DialoGPT-small-rick
+HansAnonymous/DialoGPT-medium-rick
+HansAnonymous/DialoGPT-small-shrek
+HarryPuttar/HarryPotterDC
+Harshal6927/Jack_Sparrow_GPT
+Harshal6927/Tony_Stark_GPT
+Havokx/DialoGPT-small-Rick
+Heldhy/DialoGPT-small-tony
+Heldhy/testingAgain
+MagnusChase7/DialoGPT-medium-harrypotter
+Htenn/DialoGPT-small-spongebob
+Htenn/DialoGPT-small-spongebobv2
+HueJanus/DialoGPT-small-ricksanchez
+HypNyx/DialoGPT-small-DwightBot
+HypNyx/DialoGPT-small-Thanos
+HypedKid/PeterBot
+ILoveThatLady/DialoGPT-small-rickandmorty
+ITNODove/DialoGPT-medium-cyberbones
+Icemiser/chat-test
+Ilyabarigou/Genesis-harrybotter
+ImAPizza/DialoGPT-medium-albert
+ImAPizza/DialoGPT-medium-alberttwo
+Invincible/Chat_bot-Harrypotter-medium
+Invincible/Chat_bot-Harrypotter-small
+Invincible/DialoGPT-medium-harryPotter
+Istiaque190515/Sherlock
+Istiaque190515/harry_bot_discord
+Istiaque190515/harry_potter
+ItoYagura/DialoGPT-medium-tohru
+ItzJorinoPlays/DialoGPT-small-PickleRick
+J-Chiang/DialoGPT-small-thor
+JDS22/DialoGPT-medium-HarryPotterBot
+Jedi33/tonystarkAI
+Jeffrey/DialoGPT-small-Jeffrey
+JimmyHodl/DialoGPT-medium
+Jllama/dialoGPT-small-Joshua-test
+Jonesy/DialoGPT-medium_Barney
+Jonesy/FG_OLD
+Jonesy/DialoGPT-small_JT
+Julianqll/DialoGPT-small-finalmorty
+Julianqll/DialoGPT-small-ricksanchez
+KAIHATSU/DialoGPT-small-rick
+KENNETHFOO/DialoGPT-medium-harrypotter
+KOSTAS/DialoGPT-small-Cleverbot
+KP2500/KPBot
+Kai0857/DialoGPT-small-harrypotter
+Kail91/DialoGPT-small-PeraltaBot
+Kairu/DialoGPT-small-Rick
+Kairu/RICKBOT
+KakoSi/Smolmm3
+KakoSi/opaazzi
+Kaledmgo/DialoGPT-small-donajulia
+Kargan/DialoGPT-small-randombot
+KaydenSou/Joshua
+Keen/DialoGPT-small-potter
+KekLord/DialoGPT-small-rick3
+Keqing/Keqing-Siesta
+Keqipig/DialoGPT-small-spamton
+KhanAdeeb/model-tony-stark
+KingCodeSquid/Octavian
+KingCodeSquid/Octavian2
+Kirili4ik/ruDialoGpt3-medium-finetuned-telegram
+KnutZuidema/DialoGPT-small-morty
+Konggate/DialoGPT-small-harrypotter
+Koriyy/DialoGPT-medium-gf
+Koro/DialoGPT-medium-rickandmorty
+Koro/DialoGPT-small-rickandmorty
+KringleClaus/Dialog-santa
+KrispyIChris/DialoGPT-small-harrypotter
+Kryptone/Burobot
+Kryptone/RinAI
+Kryptone/monikAI-Unstable
+Kryptone/monikAI
+Kshaunish/DialoGPT-small-rick
+Kush/DialoGPT-small-harrypotter
+LARACHNIDE/DialogGPT-small-sw
+LactoseLegend/DialoGPT-small-Rick
+Laezor/DialoGPT-small-witcher1
+Laezor/DialoGPT-small-yakuza_0
+LaiJY/DialoGPTChatbot
+Laptop/DialoGPT-small-gandalf
+Lenza/DialoGPT-medium-Kobayashi
+Leonel/DialoGPT-small-chandler
+Leostronkest/DialoGPT-small-michael
+Leostronkest/DialoGPT
+Leviii03/Dialogpt-small-Jake99
+Lizardon/Peterbot
+Lovery/Aqua
+Lucdi90/DialoGPT-medium-XiaoBot
+LuckyWill/DialoGPT-small-JakeBot
+Lurka/DialoGPT-medium-isseibot
+Lurka/DialoGPT-medium-kon
+Luxiere/DialoGPT-medium-tyrion
+MAUtastic/DialoGPT-medium-RickandMortyBot
+MCUxDaredevil/DialoGPT-small-rick
+MS366/DialoGPT-small-vision
+MadhanKumar/DialoGPT-small-HarryPotter
+MadhanKumar/HarryPotter-Bot
+MagmaCubes1133/DialoGPT-large-rick
+Mandy/DialoGPT-small-Mikasa
+Manthan/DialoGPT-small-harrypotter
+Mara/DialoGPT-medium-harrypotter
+MathiasVS/DialoGPT-small-RickAndMorty
+MaxW0748/DialoGPT-small-Rick
+MayankGupta/DialoGPT-small-harrypotter
+MichaelTheLearner/DialoGPT-medium-harry
+Midhunkrishna/DialoGPT-small-bjk
+Mierln/SmartHarry
+MightyCoderX/DialoGPT-medium-EdwardElric
+ModzabazeR/small-okaberintaro
+Mohsin272/DialoGPT-medium-harrypotter
+Mona/DialoGPT-small-harrypotter
+MoonlitEtherna/DialoGPT-small-Nyivae
+MrDuckerino/DialoGPT-medium-Rick
+MrE/DialoGPT-medium-SARGE
+MrE/DialoGPT-medium-SARGER1
+MrE/DialoGPT-medium-SARGER3
+MrGentle/DeltaModel-genius1
+MrZ/DialoGPT-small-Rick
+Mythiie/DialoGPT-small-Modeus
+N8Daawg/chat_bot
+NASABOI/MachineLearningAI
+nabarun/DialoGPT-small-joshua
+NamPE/DialoGPT-medium-Aqua-konosuba
+NamPE/DialoGPT-medium-Takanashi-Rikka
+NamPE/DialoGPT-small-satouhina
+NanniKirby/DialoGPT-medium-bapi
+NanniKirby/bapismall
+Naturealbe/DialoGPT-small-harrypotter-2
+Naturealbe/DialoGPT-small-harrypotter
+Navigator/DialoGPT-medium-martymcfly
+Navya2608/DialoGPT-medium-chandler
+Navya2608/DialoGPT-medium-rachel
+Navya2608/DialoGPT-small-tonystarkscript
+Necrozma/harrypotterbot
+Nekoism/Zhongli-Beta
+NibrasShami/DialopGPT-small-HarryPotter
+NickCavarretta/DialoGPT-small-laffy
+Nihwy/DialoSqui
+NikhilKrishna/DialoGPT-medium-harrypotter
+Ninja5000/DialoGPT-medium-HarryPotter
+Ninja5000/DialoGPT-medium-TWEWYJoshua
+Niphredil/DialoGPT-small-lotr
+Nisarg2701/DialoGPT-medium-Rick
+NoLawz/DialoGPT-medium-hagrid
+NoLawz/DialoGPT-medium-harrypotter
+NoLawz/DialoGPT-medium-spongebob
+Nova/DialoGPT-medium-Lelouch
+NovaChrono/twervy
+Obesitycart/ChatBot
+Obscurity/DialoGPT-Medium-707
+Oji/DialoGPT-small-Rick
+Optimal/Harry
+P4RZ1V4L/DialoGPT-Medium-Tony
+PVAbhiram2003/DialoGPT-medium-RickandMorty
+Paradocx/Dialogpt-mid-hpai
+Pensador777critico/DialoGPT-small-RickandMorty
+PhilipTheGreat/DiabloGPT-small-Traveller
+PinoCorgi/DialoGPT-small-Shrek1
+Piumi/DialogGPT-small-harrypotter
+Plencers/DialoGPT-small-homer
+Poly-Pixel/shrek-medium-full
+Poly-Pixel/shrek-medium
+Poly-Pixel/shrek-test-small
+Pupihed/DialoGPT-small-shrek
+PurpleJacketGuy/My_Jarvis
+PurpleJacketGuy/My_Jarvis_2
+RAhul03/DialoGPT-small-harrypotter
+REAP3R/Chat-bot
+REZERO/DialoGPT-medium-saitama
+RTM/ChatBot
+RTM/Lucky
+RTurk/DialoGPT-small-TIMBOT
+Radicalkiddo/DialoGPT-small-Radical
+Rashid11/DialoGPT-small-rick
+Rathod/DialoGPT-small-harrypotter
+Redolid/DialoGPT-small-Rick
+Rei/DialoGPT-medium-kurisu
+RifsxD/DialoGPT-medium-raifu
+RishabhRawatt/DialoGPT-small-Rickmorty
+RishabhRawatt/DialoGPT-small-kela
+Ritchie/DialoGPT-small-Rickandmorty
+RizqFarIDN/DialoGPT-medium-harrypotter
+RizqFarIDN/DialoGPT-small-harrypotter
+RobinMari/DialoGPT-small-mikoto
+Royce23/DialoGPT-small-almas
+Rush11/DialoGPT-small-HarryPotter
+Ryanar/DialoGPT-medium-Zelda
+Ryukie/DialoGPT-small-Rick
+S34NtheGuy/DialoGPT-medium-Glass_Of_Water
+S34NtheGuy/DialoGPT-medium-Mona
+S34NtheGuy/DialoGPT-small-Harry282
+S34NtheGuy/DialoGPT-small-MJOLNIR_Soul
+S34NtheGuy/DialoGPT-small-cursedryno
+S34NtheGuy/DialoGPT-small-pikamew362
+S34NtheGuy/DialoGPT-small-wetterlettuce
+SJSui/RickBot
+SPGT/LiveSafe-DialoGPT
+SaffronIce/DialoGPT-medium-Jett
+Salma-2/DialoGPT-small-harrypotter
+Sammigooof/Peterbot
+SarahhhUwU/DialoGPT-small-ally
+Sarumomo/DialoGPT-small-test
+Saviour/ChandlerBot
+Saz/DialoGPT-small-paimon
+Saz/DialoGPT-small-saz
+Science-geek32/DialoGPT-small-doctor
+Science-geek32/DialoGPT-small-doctor2.0
+Scoops/SandalBot
+ScottaStrong/DialogGPT-medium-Scott
+ScottaStrong/DialogGPT-medium-joshua
+ScottaStrong/DialogGPT-small-Scott
+ScottaStrong/DialogGPT-small-joshua
+Sebastianthecrab/DialoGPT-small-melchior
+Sedge/DialoGPT-small-Sedge
+Shakaw/DialoGPT-small-spongebot
+ShayoGun/DialoGPT-small-shayo
+Sheel/DialoGPT-small-harrypotter
+Sheerwin02/DialoGPT-medium-mikasa
+Sheerwin02/DialoGPT-small-isla
+Sherman/DialoGPT-medium-joey
+Shike/DialoGPT_medium_harrypotter
+Shinx/DialoGPT-medium-myheroacademia
+NaturesDisaster/DialoGPT-large-Neku
+NaturesDisaster/DialoGPT-small-Neku
+ShiroNeko/DialoGPT-small-rick
+Shubham-Kumar-DTU/DialoGPT-small-goku
+SilentMyuth/sarcastic-model
+SilentMyuth/stableben
+SirBastianXVII/DialoGPT-small-TVD
+Sired/DialoGPT-small-trumpbot
+Siyris/DialoGPT-medium-SIY
+Siyris/SIY
+Skywhy/DialoGPT-medium-Churchyy
+Snaky/StupidEdwin
+Soapsy/DialoGPT-mid-cartman
+SonMooSans/DialoGPT-small-joshua
+SonMooSans/test
+Sora4762/DialoGPT-small-naruto
+Sora4762/DialoGPT-small-naruto1.1
+Soumyajit1008/DialoGPT-small-harryPotterssen
+SpacyGalaxy/DialoGPT-medium-Gandalf
+Spectrox/emmybot
+Spirax/DialoGPT-medium-sheldon
+Spoon/DialoGPT-small-engineer
+Stabley/DialoGPT-small-evelynn
+Stevo/DiagloGPT-medium-spamton
+Stoned-Code/DioloGPT-large-Rick-SC-420
+Sunnydx/BillCipherBot
+TTYU/DialoGPT-small-trump
+TVLG/DialoGPT-small-Iroh-Bot
+Taramiko/DialoGPT-small-hoshiyo_kojima
+Taramiko/Hoshiyo_Kojima
+Tejasvb/DialoGPT-small-rick
+Tejasvb/DialogGPT-small-rick
+ThatSkyFox/DialoGPT-medium-joshua
+ThatSkyFox/DialoGPT-small-joshua
+The-Programmer-With-Cool-Pens/TifaBotAIPackage
+TheCatsMoo/DialoGGPT-small-joshua
+TheDiamondKing/DialoGPT-small-harrypotter
+ThePeachOx/DialoGPT-small-harry
+TheReverendWes/DialoGPT-small-rick
+TheTUFGuy/HermioneChatBot
+Thejas/DialoGPT-small-Stewei
+Thejas/DialoGPT-small-elon
+ThoracicCosine/DialoGPT-small-harrypotter
+Tidum/DialoGPT-large-Michael
+Toadally/DialoGPT-small-david_mast
+Tofu05/DialoGPT-large-boon2
+Tofu05/DialoGPT-med-boon3
+TofuBoy/DialoGPT-medium-Yubin2
+TofuBoy/DialoGPT-medium-boon
+Tr1ex/DialoGPT-small-rick
+TrebleJeff/DialoGPT-small-Michael
+TrimPeachu/Deadpool
+Trixzy/rickai-v1
+Tropics/DialoGPT-small-peppa
+UKJ5/DialoGPT-small-harrypotter
+Username1/Mourinhio-medium
+Username1/Mourinho
+Username1/Wenger
+VLRevolution/DialogGPT-small-GGODMODEL
+VMET/DialoGPT-small-dumbassbot
+VaguelyCynical/DialoGPT-small-RickSanchez
+Vampiro/DialoGPT-small-dante_b
+Vampiro/DialoGPT-small-dante_c
+VariableZee/DialoGPT-small-ivylia03
+Verge/Peterbot
+VincentButterfield/DialoGPT-small-harrypotter
+VishalArun/DialoGPT-medium-harrypotter
+Vitafeu/DialoGPT-medium-ricksanchez
+VulcanBin/DialoGPT-small-cortana
+WarrenK-Design/DialoGPT-small-Rick
+Wessel/DiabloGPT-medium-harrypotter
+White/white-bot
+Whitez/DialoGPT-small-twety
+Wise/DialogGPT-small-JC
+WoutN2001/james3
+WurmWillem/DialoGPT-medium-RickandMorty3
+Xeouz/Ultron-Small
+XuguangAi/DialoGPT-small-Harry
+XuguangAi/DialoGPT-small-Leslie
+XuguangAi/DialoGPT-small-Rick
+Yankee/test1234
+Zane/Ricky
+Zane/Ricky3
+Zeer0/DialoGPT-small-ZerO
+Zen1/Derekbot
+Zen1/test1
+Zeph/DialoGPT-small-rick
+Zephaus/Chromrepo
+Zixtrauce/BDBot
+Zixtrauce/BDBot4Epoch
+Zixtrauce/BaekBot
+Zixtrauce/BrandonBot
+Zixtrauce/BrandonBot2
+Zixtrauce/JohnBot
+Zixtrauce/SelfAwareness
+Zuha/DialoGPT-small-gandalf
+a01709042/DialoGPT-medium
+aadilhassan/Chandlerbot
+aashutosh2102/DialoGPT-smalll-harrypotter
+abhiramtirumala/DialoGPT-sarcastic
+abhisht/DialoGPT-medium-Emilybot
+abjbpi/DS_small
+abjbpi/Dwight_Schrute
+aced/DialoGPT-medium-3PO
+adviksinghania/DialoGPT-medium-rick
+af1tang/personaGPT
+aggb/DialogGPT-small-AGGB-B
+aimiekhe/yummv1
+aimiekhe/yummv2
+aishanisingh/DiagloGPT-small-michaelscott
+aishanisingh/DialoGPT-small-harrypotter
+akaushik1/DialoGPT-small-kaiser
+akhooli/personachat-arabic
+alankar/DialoGPT-small-rick
+alipsezzar/DialoGPT-medium-harrypotter
+alistair7/bbt-diagpt2-model
+aluserhuggingface/DialoGPT-small-harrypotter
+alvinkobe/DialoGPT-medium-steve_biko
+alvinkobe/DialoGPT-small-KST
+andikarachman/DialoGPT-small-sheldon
+anduush/DialoGPT-small-Rick
+ange/DialoGPT-medium-Monke
+ankimt01/DialoGPT-small-anch
+ann101020/le2sbot-hp
+anshengli2/DialogGPT-small-Bot
+anweasha/DialoGPT-small-Chandler
+anweasha/DialoGPT-small-Jake
+aplnestrella/Aladdin-Bot
+arampacha/DialoGPT-medium-simpsons
+archmagos/HourAI
+ardatasc/miniMe-version1
+arifbhrn/DialogGPT-small-Rickk
+arnav7633/DialoGPT-medium-tony_stark
+aryanbhosale/DialoGPT-medium-harrypotter
+asad/DialoGPT-small-harryporter_bot
+ashwinchandran13/DialoGPT-small-harrypotter
+astrobreazy/DialoGPT-small-harrypotter
+atkh6673/DialoGPT-small-harrypotter
+atkh6673/DialoGPT-small-trump
+atomsspawn/DialoGPT-small-dumbledore
+augustojaba/DialoGPT-small-harrypotter
+avinashshrangee/DialoGPT-small-Ricky
+awvik360/DialoGPT-medium-plemons
+awvik360/DialoGPT-medium-plemons2
+awvik360/DialoGPT-small-plemons
+aydin/DialoGPT-medium-michael
+ayush19/rick-sanchez
+b0shakk/DialoGPT-small-Ragnar
+balta/DialoGPT-small-TestBot
+banden/DialoGPT-medium-RickBot
+banden/DialoGPT-small-LokiBot
+beatajackowska/DialoGPT-RickBot
+benajtil/DialoGPT-small-Daddyben
+benajtil/DialoGPT-small-RickAndMortyScripts
+benjaminbeilharz/dialoGPT-small-empatheticdialogues-generation
+benmrtnz27/DialoGPT-small-misato
+bensuydam/CartmanBot
+bestminerevah/DialoGPT-small-thetenthdoctor
+bhaden94/LokiDiscordBot-medium
+bhavya689/DialoGPT-large-chandler
+bleachybrain/DialoGPT-med-ss
+bmdonnell/DialoGPT-medium-harrypotter
+bonebambi/DialoGPT-small-ThakirClone
+bookemdan/DialoGPT-small-harrypotter
+boran/berkbot
+boydster/DialoGPT-small-gollum
+brimeggi/testbot2
+brokentx/newbrokiev2
+bspans/DialoGPT-small-yoda
+byeongal/Ko-DialoGPT
+bypequeno/DialoGPT-small-michaelscott
+caps1994/DialoGPT-small-chrisbot-caps1994
+caps1994/DialoGPT-small-chrisbot
+caps1994/DialoGPT-small-harrypotter-caps1994
+cartyparty/DialoGPT-small-harrypotter
+cartyparty/DialoGPT-small-iteration1
+cartyparty/DialoGPT-small-nerdherd
+cedpsam/chatbot_fr
+centon21/DialoGPT-small-harrypotter
+chaitrabhat/DialoGPT-small-rick
+chamindu/DialoGPT-medium-hermione
+chamodkarunasena/DialoGPT-medium-sokka
+chan030609/DialoGPT-medium-JAB
+chan030609/DialoGPT-small-JAB
+chellver24/DialoGPT-medium-chizuru_ichinose
+chip/DialoGPT-small-chizuru
+thu-coai/blenderbot-400M-esconv
+clairesb/kindness_bot
+clairesb/kindness_bot_repo
+clancystudios/DialoGPT-medium-Morty
+clayfox/DialoGPT-medium-Hiccup
+clayfox/DialoGPT-small-Hiccup
+cocoaclef/DialoGPT-small-kohaku
+codealtgeek/DiabloGPT-medium-rickmorty
+colochoplay/DialoGTP-small-harrypotter
+conniezyj/DialoGPT-small-snape
+cookirei/DialoGPT-medium-Joreyar
+cosmic/DialoGPT-Rick
+cosmicray001/prod-harry
+cosmicray001/small-harry
+crystalgate/DialoGPT-small-rick
+cumtowndiscord/DialoGPT-small-joshua
+cutiebunny639/DialoGPT-small-harry
+d4rk/harry
+danildany/DialoGPT-small-MichaelScott
+danny481/DialoGPT-small-datnguyenchatbot
+danny481/DialoGPT-small-harrypotter
+danny481/Final_ChatBot
+darkzek/chickenbot-jon-snow
+darthboii/DialoGPT-small-PickleRick
+darthboii/DialoGPT-small-Rick
+dats/DialoGPT-small-harrypotter
+dattam/DialoGPT-medium-TonyStarkBot
+dead69/GPT-small-yoda
+deepparag/Aeona
+deepparag/DumBot-Beta
+deepparag/DumBot
+delvan/DialoGPT-medium-DwightV1
+df4rfrrf/DialoGPT-medium-Aerith
+dhanushlnaik/amySan
+disdamoe/DialoGPT-small-moe
+disdamoe/TheGreatManipulator
+disdamoe/TheManipulator
+divi/Peterbot
+dk16gaming/DialoGPT-small-HarryPotter
+dkminer81/Tromm
+dreamline2/DialoGPT-small-joshua-demo
+dukeme/DialoGPT-small-RDBotv1
+eclare/DialoGPT-small-SCHAEFER
+educhav/Austin-DialoGPT-small
+educhav/Elijah-DialoGPT-small
+educhav/J-DialoGPT-small
+educhav/Sam-DialoGPT-small
+eklrivera/DialoGPT-small-harrypotter
+eldritch-axolotl/Rick
+ericklasco/DialoGPT-small-erickHarryPotter
+ericzhou/DialoGPT-Medium-Rick
+ericzhou/DialoGPT-Medium-Rick_v2
+ericzhou/DialoGPT-medium-elon
+ericzhou/tsundere_v1
+estehpanas/pascalbot
+ethzhou/jooby
+ethzhou/joobyChat
+ethzhou/newJooby
+f00d4tehg0dz/Peppa
+f00d4tehg0dz/Yoda
+facebook/blenderbot-1B-distill
+facebook/blenderbot-3B
+facebook/blenderbot-400M-distill
+facebook/blenderbot-90M
+facebook/blenderbot_small-90M
+faketermz/DialoGPT
+fatemaMeem98/DialoGPT-medium-HermioneGrangerBot
+felinecity/DioloGPT-small-KaeyaBot
+felinecity/DioloGPT-small-KaeyaBot2
+felinecity/DioloGPT-small-LisaBot
+felinecity/ScaraBot
+fibruh/DialoGPT-small-harrypotter
+flakje/DialoGPT-small-Marty
+flooptherocket/DialogGPT-small-rick
+ftnvir/DialoGPT-medium-bullyMaguire
+gabtan99/dialogpt-tagalog-medium-10
+gabtan99/dialogpt-tagalog-medium-20
+gabtan99/dialogpt-tagalog-medium-30
+gabtan99/dialogpt-tagalog-medium
+gfdream/dialogpt-small-familyguy
+gfdream/dialogpt-small-harrypotter
+ghhostboy/DialoGPT-medium-connorDBH3-1
+ghhostboy/DialoGPT-medium-connorDBH3-21
+gizmo-dev/DialoGPT-small-jake
+gorkemgoknar/gpt2chatbotenglish
+grayson124/chatbotwaifu
+grounddominator/DialoGPT-lar-Rick
+gusintheshell/DialoGPT-small-rickbot
+gwima/ryan-sackmott
+hama/Doctor_Bot
+hama/Harry_Bot
+hama/barney_bot
+hama/me0.01
+hama/rick_bot
+heabeoun/DiabloGPT-small-nuon-conv
+henryoce/DialoGPT-small-rick-and-morty
+hervetusse/DialogGPT-small-harrypotter
+hireddivas/DialoGPT-small-ray
+hireddivas/DialoGPT-small-scully
+hireddivas/dialoGPT-small-mulder
+hireddivas/dialoGPT-small-phil
+hireddivas/dialoGPT-small-sonic
+honguyenminh/old-zhongli
+houssaineamzil/DialoGPT-small-joey
+hrv/DialoGPT-small-rick-morty
+hyunwoongko/blenderbot-9B
+hyunwoongko/reddit-3B
+hyunwoongko/reddit-9B
+iamalpharius/GPT-Small-BenderBot
+ianc89/hagrid
+ignkai/DialoGPT-medium-spider-man-updated
+ilikeapple12/DialoGPT-small-Phos
+imran2part/DialogGPT-small-Doctor
+imrit1999/DialoGPT-small-MCU
+myynirew/DialoGPT-medium-ettengiv
+myynirew/DialoGPT-medium-leirbag
+myynirew/DialoGPT-small-awazimuruk
+ionite/DialoGPT-large-Sh0rtiAI-v2
+ionite/DialoGPT-medium-IoniteAI
+ionite/DialoGPT-medium-McKayAI-v2
+ionite/DialoGPT-medium-McKayAI
+ionite/DialoGPT-medium-Sh0rtiAI
+ionite/DialoGPT-medium-mohnjilesAI
+ionite/DialoGPT-medium-orangeAI
+ironman123/DialoGPT-small-harrypotter
+ishraaqparvez/DialoGPT-small-harrypotter
+jackky46/DialoGPT-medium-got
+jahz/DialoGPT-medium-FF8
+jalensmh/DialoGPT-medium-jalenbot
+jalensmh/DialoGPT-small-exophoria
+jamestop00/DialoGPT-spike-medium
+jasper/DialoGPT-large-homersimpson
+jchen/DialoGPT-evan
+jeanlks/DialogGPT-small-gayvid
+jeanlks/DialogGPT-small-pato
+jfhr1999/CharacterTest
+jogp10/DialoGPT-medium-arya
+jollmimmim/DialoGPT-small-monkeydluffy
+jordanhagan/DialoGPT-medium-NegaNetizen
+josephmagnayon/DialoGPT-medium-Alfred
+josepjulia/RepoHumanChatBot
+josh8/DialoGPT-medium-josh
+josh8/DialoGPT-small-josh
+jpsxlr8/DialoGPT-small-harrypotter
+jth1903/DialoGPT-small-rick
+julianolf/DialoGPT-small-harrypotter
+kaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaot1k/DialoGPT-small-Wanda
+kagennotsuki/DialoGPT-medium-radion
+kche0138/DialoGPT-medium-DIO
+kingabzpro/DialoGPT-small-Rick-Bot
+kipiiler/Rickbot
+knightbat/harry-potter
+kripanshudixit/DialoGPT-small-phoenix
+kris/DialoGPT-small-spock
+kris/DialoGPT-small-spock3
+kris/DialoGPT-small-spock4
+kris/DialoGPT-small-spock5
+kshitiz/testing-bot-repo
+kunalbhargava/DialoGPT-small-housebot
+kvothe28/DiabloGPT-small-Rick
+l41n/c3rbs
+lain2/Peterbot
+lanejm/DialoGPT-small-hagrid
+lapacc33/DialoGPT-medium-rick
+life4free96/DialogGPT-med-TeiaMoranta
+life4free96/DialogGPT-med-TeiaMoranta3
+light/small-rickk
+limivan/DialoGPT-small-c3po
+cosmicroxks/DialoGPT-small-scott
+logube/DialogGPT_small_harrypotter
+lonewanderer27/DialoGPT-small-Joshua
+lonewanderer27/KeitaroBot
+lonewanderer27/YoshinoriBot
+lonewanderer27/YuriBot
+lovellyweather/DialoGPT-medium-johnny
+luca-martial/DialoGPT-Elon
+lucas-bo/DialogGPT-small-yoda
+ludowoods/KujouSara
+lulueve3/DialoGPT-medium-Kokkoro
+lulueve3/DialoGPT-medium-Kokkoro2
+madbuda/DialoGPT-got-skippy
+madbuda/DialoGPT-medium-skippy
+majonez57/JoeBot
+manav/dialogpt-large-kanye-reddit
+manav/dialogpt-medium-berkeley-reddit
+maniacGhost24/MichaelScott-bot-push-small
+manraf/DialoGPT-smmall-harrypotter
+matprado/DialoGPT-small-rick-sanchez
+maxxx2021/DialGPT-small-harrypotter
+mdc1616/DialoGPT-large-sherlock
+melon422/DialoGPT-medium-MelonBot
+melon422/DialoGPT-medium-MelonBot2
+mewmew/DialoGPT-small-rick
+michelleshx/DialoGPT-small-michelle-discord-bot
+microsoft/DialoGPT-large
+microsoft/DialoGPT-medium
+microsoft/DialoGPT-small
+mikabeebee/Peterbot
+milayue/neosh-bot1
+minsiam/DialoGPT-medium-harrypotterbot
+minsiam/DialoGPT-small-harrypotterbot
+miogfd1234/ll
+mittalnishit/DialoGPT-medium-rickman2
+mittalnishit/DialoGPT-small-rickman
+mjstamper/DialoGPT-small-samwise
+mk3smo/dialogpt-med-ahiru
+mk3smo/dialogpt-med-duck2
+mk3smo/dialogpt-med-duck3
+mk3smo/dialogpt-med-duck5
+mk3smo/dialogpt-med-duckfinal
+mk3smo/dialogpt-med-stt3
+mklucifer/DialoGPT-medium-DEADPOOL
+mklucifer/DialoGPT-small-DEADPOOL
+mluengas/DialogGPT-small-michaelscott
+model-mili/DailoGPT-Yukub-v3
+model-mili/DialoGPT-small-Sapph-v1
+model-mili/DialoGPT-small-Yukub-v2
+model-mili/DialoGPT-small-Yukub
+mohammedks713/DialoGPT-small-harrypotter
+mohammedks713/DialoGPT-small-jonsnow
+mra1ster/DialoGPT_scully_small
+muhardianab/DialoGPT-small-theoffice
+munezah/DialoGPT-small-aot
+munezah/DialoGPT-small-sherlock
+mutamuta/DialoGPT-small-rick
+mutamuta/DialoGPT-spongebob-small
+namanrana16/DialoGPT-small-TrumpBot
+nanometeres/DialoGPT-medium-halbot
+nanometeres/DialoGPT-small-halbot
+ncoop57/DiGPTame-medium
+niharikadeokar/DialoGPT-small-Jakebot
+nikhilpatil2532000/DialoGPT-small-harrypotter
+nimrazaheer/DialoGPT-small-harrypotter
+nitishk/IronStarkBot
+nlokam/DialoGPT-digibot3.0-new
+nlokam/Digibot
+nlokam/ada_V.3
+nlokam/ada_V.6
+nlokam/ada_V.7
+nlokam/books_to_bots_v.00
+noobed/DialoGPT-small-astley
+norie4/DialoGPT-small-kyutebot
+norie4/DialoGPT-small-memoji
+not7even/DialoGPT-small-7evenpool
+npc-engine/exported-bart-light-gail-chatbot
+ntjrrvarma/DialoGPT-small-RickBot
+nwl/DialoGPT-small-enhypen
+nytestalkerq/DialoGPT-medium-joshua
+oakkas/Dialge-small-harrypotter-oguz
+odinmay/joebot
+odinmay/zackbotmodel
+ogpat123/DialoGPT-small-Michael
+ogpat23/Jules-Chatbot
+omkar1309/RickBot
+omnimokha/DialoGPT-medium-jakeamal
+omnimokha/DialoGPT-small-jakeamal
+omnimokha/jakebot2
+oododo/DialoGPT-small-elon
+otto-camp/DialoGPT-small-RickBot
+overgrowth/jokeboy
+owencubes/DialoGPT-small-Josuke
+paladinx00/rh-bender
+parigaswetha/DialoGPT-small-jakeperalta
+parthsinha/DialoGPT-small-rickandmorty
+pashin/DialoGPT-small-ironman-2
+pashin/DialoGPT-small-ironman-3
+pashin/DialoGPT-small-ironman1
+pastlecry/DialoGPT-small-harrypotter
+peamjo/DialoGPT-small-morty
+person123/DialoGPT-small-petergriffin
+pewriebontal/DialoGPT-medium-Pewpewbon
+phantom-deluxe/dialoGPT-RickBot
+phantom-deluxe/dialoGPT-harry
+phozon/harry-potter-medium
+piyushdubey/DialoGPT-Mi
+pompeiifreckles/DialoGPT-medium-Rick
+ppn/DialoGPT-small-harrypotter
+pranavtharoor/test
+professional/DialoGPT-small-joshua
+ps2102/DialoGPT-small-harrypotter
+psblade/DialoGPT-medium-PotterBot
+puugz/DialoGPT-small-spiderman
+qwerty/DialoGPT-small-rick
+r3cdhummingbird/DialoGPT-medium-joshua
+r3dhummingbird/DialoGPT-medium-joshua
+r3dhummingbird/DialoGPT-medium-neku
+r3dhummingbird/DialoGPT-small-harrypotter
+r3dhummingbird/DialoGPT-small-neku
+rachelcorey/DialoGPT-medium-kramer
+rachelcorey/DialoGPT-medium-niles
+rafakat/Botsuana-rick
+rahul26/DialoGPT-small-rickandmorty
+rahulMishra05/discord-chat-bot
+raj2002jain/DialoGPT-small-Light
+ravephelps/DialoGPT-small-MichaelSbott
+redbloodyknife/DialoGPT-medium-shayo
+rhollings/DialoGPT_small_steverogers
+richiellei/Childe
+richiellei/Childe3
+richiellei/DialoGPT-small-rick
+richielleisart/Childe
+ridwanpratama/DialoGPT-small-misaki
+rinz/DialoGPT-small-Harry-Potterrr
+rlagusrlagus123/XTC20000
+rlagusrlagus123/XTC4096
+rmicheal48/DialoGPT-small-steven_universe
+rodrigodz/DialoGPT-medium-dxd
+romuNoob/Mine
+romuNoob/test
+rovai/AI
+rovai/CARRIE
+rovai/Chat_pytorch1
+rovai/chatbotmedium1
+rovai/chatbotmedium2
+rovai/chatbotmedium3
+rovai/chatbotmedium4
+rovai/chatbotone
+rpeng35/DialoGPT-small-erenyeager
+rrtong/DialoGPT-medium-shang-chi
+rsd511/DialoGPT-small-house
+rsedlr/RickBot
+rsedlr/RickBotExample
+ruriko/bacqua
+ruriko/konoaqua
+ruriko/konodio
+sachdevkartik/DialoGPT-small-rick
+saintseer121323/DialoGPT-small-kotonoha
+sakai026/Chizuru
+sakai026/Mizuhara
+sam213/DialoGPT-small-harrypotter
+sambotx4/scamantha
+samuelssonm/DialoGPT-small-rick
+sanjanareddy226/JakeBot
+sankalpjha1/mr.bot_haary
+satkinson/DialoGPT-medium-marvin
+satkinson/DialoGPT-small-marvin
+satvikag/chatbot
+satvikag/chatbot2
+sergunow/movie-chat
+setiadia/DialogGPT-small-HPBot
+shelb-doc/DialoGPT-medium-ash
+shihab/HarryPotter
+shonuff/DialoGPT-medium-konosuba
+shreeshaaithal/DialoGPT-small-Michael-Scott
+shreeshaaithal/Discord-AI-bot
+shreeshaaithal/whatsapp-medium-bot-2
+sidkhuntia/harrypotter
+sifclairhelix/DialoGPT-small-harrypot
+simrana5/RickBotExample
+skynex/DialoGPT-small-batman
+skynex/DialoGPT-small-finalbatman
+sleekmike/DialoGPT-small-joshua
+smilesandtea/DialoGPT-medium-Rick
+smmzhu/DialoGPT-small-SZ
+solfer/DialoGPT-small-ryuji
+spockinese/DialoGPT-small-sherlock
+sreyanghosh/DialoGPT-medium-joker
+srirachasenpai/DialoGPT-medium-harrypotter
+srv/DialoGPT-medium-Breaking_Bad
+ssam/DialoGPT-small-RickmfSanchez
+ssspider/DialoGPT-medium-harrypotter
+stfuowned/nek
+stfuowned/rick
+sthom/DialoGPT-small-tin
+sudip/bot1
+sudoabrar/DialoGPT-small-dwight
+suhasjain/DailoGPT-small-harrypotter
+swapnil165/DialoGPT-small-Rick
+terter/rick-bot-test-v2
+thatoneguy267/DialoGPT-small-Oscar
+thatoneguy267/bruhpleasehelpme
+theChanChanMan/DialoGPT-small-chandler
+thefryingpan/gpt-neo-125M-splishy
+theiconik/hermione-granger
+thesamuelpena/Dialog-medium-Sonic
+thesamuelpena/Dialog-medium-masterchief
+thetlwin/DialoGPT-small-ironman
+thinhda/chatbot
+thu-coai/CDial-GPT2_LCCC-base
+thu-coai/CDial-GPT_LCCC-base
+thu-coai/CDial-GPT_LCCC-large
+ticet11/DialoGPT-small-BOBBY
+timslams666/DialoGPT-small-rick
+tinega/DialoGPT-small-harrypotter
+tngo/DialoGPT-small-HankHill
+toiletwater/DialoGPT-medium-ironman
+tom1804/HP
+tom1804/HP_last
+tom1804/hp_new
+tomascerejo12/DialoGPT-small-Rick
+tosin/dialogpt_mwoz
+tosin/dialogpt_sv
+toyfreak/DialoGPT-small-addy
+toyfreak/DialoGPT-small-shy
+tpri/DialoGPT-small-pa
+tprincessazula/Dialog-GPT-small-AANG
+tprincessazula/Dialog-GPT-small-KATARA-AVATAR
+tprincessazula/Dialog-GPT-small-SOKKA-AVATAR
+tprincessazula/Dialog-GPT-small-harrypotter
+transfaeries/DialoGPT-Discord
+transfaeries/DialoGPT-medium-Discord-1.0
+transfaeries/DialoGPT-small-Discord-1.0
+transfaeries/Twilight-Sparkle-GPT
+trig/DialoGPT-small-harrypotter
+trig/multiverse-second
+trig/multiverse
+trig/sokka-chatbot-test
+trig/tlok-test
+troythewar/DialogGPT-small-harrypotter
+truthisneverlinear/EleventhDoctor
+ttntran/DialoGPT-small-human
+tuantt/GroundNet
+ughvom/Ginger
+ughvom/britnayBOTMAIN
+umr55766/DialogGPT-small-peppa-pig
+usamazaheer/DialoGPT-small-harrypotter
+uutkras/Pandabot
+uyharold86/DialoGPT-small-RickAndMorty
+valarikv/DialoGPT-small-bateman
+vibranium19/DialoGPT-medium-jake
+victordata/DialoGPT-small-Rick
+victorswedspot/DialoGPT-small-gandalf
+vijayv500/DialoGPT-small-Big-Bang-Theory-Series-Transcripts
+vijote/DialoGPT-small-Morty
+vivek-g-2009/DialoGPT-medium-harrypotter
+vlco-o/NLboto_o-aki-dialogpt
+vlco-o/NLboto_o-small-dialogpt
+wadeed/DialogGPT-small-chandlerbingg
+wanderer/DialoGPT-small-Phoebe
+wjching/DialoGPT-small-ricksanchez
+won/DialoGPT-small-harrypotter
+worms3401/DialoGPT-small-Eleonora
+worsterman/DialoGPT-small-mulder
+wtrClover/DialoGPT-small-Flutterbot
+wtrClover/DialoGPT-small-TwilightBot
+xdmason/pretrainedCas
+xiaoheiqaq/DialoGPT-mediumJojo
+xiaoheiqaq/DialoGPT-smallharrypotter
+yahya1994/DialoGPT-small-AOT-Eren
+yahya1994/DialoGPT-small-DN-L
+yahya1994/DialoGPT-small-DN-Light
+yahya1994/DialoGPT-small-DN-Ryuk
+yahya1994/DialoGPT-small-Gintama-Gintoki
+yahya1994/DialoGPT-small-Parasyte-Migi
+yahya1994/DialoGPT-small-ReZero-Rem
+yahya1994/DialoGPT-small-ReZero-Subaru
+yahya1994/DialoGPT-small-Ryuk
+yusufmorsi/georgebot
+zaydzuhri/lelouch-medium
+zemi/jakebot
+zen-satvik/BotGPT-medium-HP
+zentos/DialoGPT-small-spongebob
+zinary/DialoGPT-small-rick-new
+zuto37/DialoGPT-small-sadao
+Maxwere/DiabloGPT-medium-maxbot
+Grungle/DialoGPT-medium-butters
+sadkat/technoai
+Grungle/DialoGPT-medium-butters2
+kookyklavicle/sean-diaz-bot
+kookyklavicle/sean-diaz
+Aquasp34/DialoGPT-small-aqua1
+zenham/khemx
+aryanbhosale/smartharrypotterbot
+Britain/DialoGPT-small-ZifBotTwoFixed
+Britain/DialoGPT-small-DanyBotThree
+infinitylyj/DialogGPT-small-rick
+infinitylyj/DialogGPT-small-general
+infinitylyj/DialogGPT-medium-general
+jackyv/DialoGPT-small-pinocchio
+Freak55/DialoGPT-small-Phoenix-Wright
+Britain/DialoGPT-small-DanyBotThreeFixed
+Britain/DialoGPT-small-DanyBotTwo
+P4RZ1V4L/DialoGPT-medium-tonystark
+Britain/DialoGPT-small-DanyBotTwoNew
+zenham/mskeen_m_e4_16h
+zenham/khemx_m_e4_16h
+zenham/wail_m_e4_16h_2k
+RTM/vilang
+BeanBoi50404/DialoGPT-small-PeppaPigButBetter
+nabin19677/small-cartman
+Prime2911/DialoGPT-small-handsomejack
+Starry/KARENTRIES
+dietconk/DialogGPT-small-Orange
+mafeu/DialoGPT-medium-willem
+Prime2911/DialoGPT-medium-handsomejack
+Meowren/DialoGPT-small-Rick-Bot
+DB13067/Peterbot
+Savitar/DialoGPT-medium-RickandMorty
+MolePatrol/Olbot
+erinchocolate/DialoGPT-small-harrypotter
+Valouzze/FairuvenIA
+MehSatho/Tai-medium-Hermione
+Valouzze/MegaIA
+Makinitas/DialoGPT-small-RickAndMortyScripts
+darthrussel/DialoGPT-small-rickandmorty
+vanilladucky/Friends_chatting_bot
+vanilladucky/Friends_chatting_bot_redefined
+chocoduck/Joey_bot
+duanxingjuan/DialoGPT-medium-DEMON_SLAYER
+pinkducky/Monica_Bot
+Starry/HELLORUKAS
+pinkducky/Rachel_Bot
+trig/multiverse-third
+pinkducky/Ross_Bot
+duanxingjuan/DialoGPT-large-DEMON_SLAYER_v1
+duanxingjuan/DialoGPT-large-DEMON
+duanxingjuan/DialoGPT-large-DEMON1
+issue89/DialoGPT-small-house
+LeonLi279/DialoGPT-small-harrypotter
+MolePatrol/DialoGPT-Medium-ConnerBot
+MolePatrol/DialoGPT-Medium-MoleBot
+TheDaydreamer/ricky
+BeamBee/DialoGPT-small-Lavenza
+Garsic/DialoGPT-medium-pecorine
+CallForEcho/DialoGPT-small-harrypotter
+BeamBee/DialoGPT-small-LavenzaNumTwo
+Meowren/MichaelScottBott
+shalpin87/dialoGPT-homer-simpson
+darthrussel/DialoGPT-small-homerbot-halfdata
+TheGoldenToaster/DialoGPT-medium-Woody
+bemich/DialoGPT-small-GeorgeCostanza
+AAAA-4/DialoGPT-small-player_03
+Teyronebigdick/DialoGPT-small-harrypotter
+Sammith/DialoGPT-small-miachael
+Nxtxn01/DialoGPT-small-harrypotter
+Teyronebigdick/DialoGPT-small-terrydavis
+mczolly/DialoGPT-small-the-doctor
+crazypegasus/GPT-JonSnow
+MrYiRen/DialoGPT-small-harrypotter
+TropicalJuice/Dialog-PeterGriffin
+TheGoldenToaster/DialoGPT-medium-Bot
+MrYiRen/DialoGPT-small-harrypotter2
+gulgulglut/DialoGPT-small-Rick
+trev/DialoGPT-small-MLP
+RAJESHNEMANI/Chatbot_AI
+lilapapazian/DialoGPT-small-harrypotter
+Alethea/GPT2-chitchat
+florentiino/DialoGPT-small-harrypotter
+NUTELEX/Eva
+jessicammow/DialoGPT-small-ronswanson
+MrYiRen/DialoGPT-small-ZC
+jessicammow/DialoGPT-medium-leslieknope
+AmbricJohnson5888/death
+AmbricJohnson5888/claura
+DarrellTimothy/DialoGPT-small-harrypotter
+RarePizzaDog/Apes_Bot
+iyedr8/DialoGPT-small-rick
+MEDT/ChatBot
+NonzeroCornet34/DialoGPT-small-hansolo
+NonzeroCornet34/DialoGPT-small-philbot
+atomsspawn/DialoGPT-medium-dumbledore
+florentiino/DialoGPT-small-rick
+ShibaDeveloper/DialoGPT-small-harrypotter
+sahilnare78/DialogGPT-medium-harrypotter
+Garsic/DialoGPT-medium-jill
+mdm/DialoGPT-small-Kanye
+ScyKindness/Hatsune_Miku
+aaaacash/DialoGPT-large-michaelscott
+AntoDono/DialoGPT-Harry
+BFMeriem/model
+BFMeriem/chatbot-model
+StringCheese/Dialog-small-bigbang
+jakewillms17/capcake-model
+Shivierra/DialoGPT-small-technoblade
+Scaprod/DialoGPT-small-arbiter
+Tlacaelel/DialoGPT-small-jarvis
+spuun/kekbot-beta-1
+Coma/Beter
+Wavepaw/DialoGPT-medium-WardenIngo
+Akarsh3053/potter-chat-bot
+MachineBabs/RickBot
+MachineBabs/DocBrown
+spuun/kekbot-beta-1-medium
+MEDT/Chatbot_Medium
+tosin/dialogpt_mwoz_idioms
+tosin/dialogpt_afriwoz_wolof
+aakhilv/tonystark
+spuun/kekbot-beta-2-medium
+xiaoGato/DialoGPT-small-villanelle
+Jonesy/DialoGPT-small_FG
+deathknight67/DialoGPT-medium-joshua
+kyriinx/DialoGPT-small-glyph
+Jonesy/DialoGPT-medium_FG
+spuun/kekbot-beta-3-medium
+Lisia/DialoGPT-small-connor
+awvik360/DialoGPT-medium-plemons-04262022
+Jonesy/LisaOnIce
+kvnaraya/DialoGPT-small-michael
+Hyperspace/DialoGPT-small-Hyperdrive
+Azuris/DialoGPT-medium-ekidona
+aditeyabaral/sonobois
+Jonesy/HomersNightOut
+Andrei0086/Chat-small-bot
+awvik360/UncleRuckus
+captainswiftfox/rickandmorty
+radicalrascal/DialoGPT-medium-jimmy
+dmoz47/DialoGPT-small-peterparker
+niprestige/GPT-small-DusabeBot
+Shakerlicious/DialoGPT-small-descentbot
+atomsspawn/DialoGPT-small-shelbot
+atomsspawn/DialoGPT-small-sheldon
+Willow/DialoGPT-medium-willow
+IsekaiMeta/dapprf
+farjvr/DialoGPT-small-Mortyfar
+InSaiyan/DialoGPT-small-harrypotter
+IsekaiMeta/dapprf3
+emolyscheisse/DialoGPT-small-mandybot
+IsekaiMeta/dapprf4
+qgdmonilla/DialoGPT-small-harrypotter
+NHStudios/DialoGPT-small-jake
+Shakerlicious/DialoGPT-small-raquelbot
+annasham/DialoGPT-small-myneighborTotoro
+CaptAdorable/RickBot
+Willow/DialoGPT-large-willow
+Kabutopusu/DialoGPT-medium-NITWMae
+HarmlessTarget/DialoGPT-medium-Bender
+soni69/DialoGPT-medium-holmes
+captainswiftfox/DialoGPT-small-rick
+kathywu/DialoGPT-small-kathy
+mybot/DialoGPT-medium-harrypotter
+Dedemg1988/DialoGPT-small-michaelscott
+pedrobaiainin/DialoGPT-small-harrypotter
+kathywu/DialoGPT-medium-kathy
+SNCannon/DialoGPT-medium-merc
+THE-DDLM/DialoGPT-sebastian
+fatirali/DialoGPT-medium-harrypotter
+TejasARathod/DialoGPT-medium-BatmanBot
+Varick/dialo-jarvis
+Robinsd/HarryBot
+dipstheman/DialoGPT-small-humanconversation
+dipstheman/DialoGPT-small-humanconversationpart
+LinkTheSinger/DialoGPT-small-Kanna
+LinkTheSinger/DialoGPT-small-Kannav4
+Robinsd/HarryBot4
+SomeRandomGuy/tony
+Meowren/HumanBot
+marcoperez/DialoGPT-small-rickandmorty
+LarsBell/DialoGPT-small-billyloomis
+okwach/mawaidhaChatbot
+LooksLikeIveLost/DialoGPT-medium-me
+okwach/mawaidhaChatbot2
+thebyy/DialoGPT-small-mortyisarick
+rongina/DialoGPT-small-cartman
+fransoa/arrombado-dms
+ionite/DialoGPT-medium-MarkAI
+ddrmaster1000/DialoGPT-medium-rick
+PeritusDux/DialoGPT-small-rick
+HomerChatbot/HomerSimpson
+t8oo/DialoGPT-small-zeni
+t8oo/DialoGPT-small-zenigata
+sexomq/DialoGPT-medium-TeoBot
+Char135/DialoGPT-medium-sebastian
+HomerChatbot/DialoGPT-small-HomerSimpson
+trev/Twilight-Sparkle
+gigikenneth/family-guy-bot
+ulises801/DialoGPT-medium-rick
+fujuta/DialoGPT-medium-HarryPotter
+fujuta/DialoGPT-medium-RonWeasley
+fujuta/DialoGPT-medium-HermioneGrander
+deepparag/Aeona-Beta
+HomerChatbot/DialoGPT-small-homersimpsonbot
+redcy/FrasierBotv1
+ElMuchoDingDong/DialoGPT-medium-AudreyHepburn
+natdon/DialoGPT_Michael_Scott
+ElMuchoDingDong/DialoGPT-medium-AudreyHepburn_v3
+deathmite/DiabloGPT-small-potaru
+ElMuchoDingDong/DialoGPT-medium-AudreyHepburn_v4
+DaBaap/Chat-Bot-Batman
+Iwa/bot
+badlawyer/DialoGPT-medium-sherlock-bot
+thanhchauns2/DialoGPT-medium-Luna
+jayklaws0606/DialoGPT-small-jayBot
+RUCAIBox/mvp
+Flem/DialoGPT-medium-alastor
+keans/DialoGPT-small-highjacker
+jayklaws0606/dgpt-small-jaybot
+CodeMaestro/DialoGPT-small-TChalla
+ElMuchoDingDong/AudreyBotBlenderBot
+stfuowned/rickfinal
+DuskSigma/DialogGPTHomerSimpson
+hireddivas/dialoGPT-small-sonic2
+N0NAne/DialoGPT-small-harrypotter
+tinkoff-ai/response-quality-classifier-tiny
+tinkoff-ai/response-quality-classifier-base
+tinkoff-ai/response-quality-classifier-large
+tinkoff-ai/response-toxicity-classifier-base
+RUCAIBox/mvp-open-dialog
+RUCAIBox/mtl-open-dialog
+RUCAIBox/mvp-multi-task
+Cirilaron/DialoGPT-medium-raiden
+BlackSamorez/rudialogpt3_medium_based_on_gpt2_2ch
+lucataco/DialogGPT-med-Rick
+lucataco/DialoGPT-medium-rafa
+gloomyworm/DialoGPT-small-ortho
+kozlovtsev/DialoGPT-medium-harrypotter
+Cirilaron/DialoGPT-medium-jetstreamsam
+lucataco/DialoGPT-medium-omar
+lucataco/DialoGPT-medium-milo
+daedalus2003/HouseBot
+SallyXue/DialoGPT-small-harrypotter
+Averium/DialoGPT-medium-TailsBot
+nlokam99/ada_sample
+nlokam99/ada_sample_2
+nlokam99/ada_sample_3
+nlokam/adanimals_V1
+spuun/kekbot-beta-4-medium
+quirkys/DialoGPT-small-harrypotter
+markofhope/DialoGPT-medium-HarringtonBot
+AntoDono/DialoGPT-Bopy-Alpha-1.01
+Hermite/DialoGPT-large-hermite
+robinhad/gpt2-uk-conversational
+Browbon/DialoGPT-small-LucaChangretta
+gloomyworm/DialoGPT-medium-ortho
+Browbon/DialoGPT-medium-LucaChangretta
+Fluffypillow/DialoGPT-small-Rem
+Hermite/DialoGPT-large-hermite2
+Bman/DialoGPT-medium-peppapig
+ZipperXYZ/DialoGPT-medium-TheWorldMachine
+AlyxTheKitten/DialoGPT-medium-AgedBlaine-2
+Averium/DialoGPT-medium-TailsBot1.1
+Elijah629/DialoGPT-mrsanai
+ZipperXYZ/DialoGPT-medium-TheWorldMachine2
+damianruel/DialoGPT-medium-MySon
+ZipperXYZ/DialoGPT-medium-TheWorldMachineExpressive
+Elijah629/DialoGPT-shrek
+AlyxTheKitten/DialoGPT-medium-Jimmis-2
+dennis-fast/DialoGPT-ElonMusk
+Sealgair/DialoGPT-medium-Eyden
+crystallyzing/DialoGPT-small-nishikiyama
+crystallyzing/DialoGPT-small-kiryu
+NikkiTiredAf/DialoGPT-small-billy2
+Evokus/DialoGPT-small-harrypotter
+mcimmy/DialoGPT-small-bob
+Laggrif/DialoGPT-medium-Luke
+Laggrif/DialoGPT-medium-3PO
+ZipperXYZ/DialoGPT-medium-TheWorldMachineExpressive2
+prprakash/DialoGPT-small-TonyStark
+sexomq/TeoBot-Romanian-medium
+Bman/DialoGPT-medium-dora
+Hermite/DialoGPT-large-hermite3
+Averium/FabioBot
+arem/DialoGPT-medium-rickandmorty
+soProf1998/DialoGPT-small-chattyrick
+soProf1998/DialoGPT-medium-chattyrick
+Dorin/DialoGPT-small-Rick
+OptimalHoiboy/DialoGPT-small-kasumai
+Hartmann/DialoGPT-small-koishikomeiji
+Konbai/DialoGPT-small-akagi
+Konbai/DialoGPT-small-akagi2
+JazzyLucas/DialoGPT-small-TonyStark
+mystery/DialoGPT-small-pinkiepie
+sexomq/TeoBot-Romanian-medium2
+erikycd/chatbot_hadita
+infinix/Sheldon-bot
+JamesonSpiff/chatBot_test_model
+Akito1961/DialoGPT-small-C3PO
+Naturealbe/DialoGPT-small-Technoblade
+zR0clu/DialoGPT-medium-Mr.Roboto
+reso/DialoGPT-medium-v3ga
+trimox/tryingnewstuff
+Nakul24/YC_Bot
+casperthegazer/DiabloGPT-medium-lukedot
+JamesStratford/PLord-bot-DialoGPT-medium
+CaptPyrite/DialoGPT-small-cat
+SafeTorpedo/DialoGPT-small-MichaelBot
+brianveebee/DialoGPT-medium-bender
+myynirew/DialoGPT-medium-shouko01
+myynirew/2-0OKUOHS
+smmzhu/DialoGPT-medium-sam
+myynirew/shouko0-3
+myynirew/dumbbot
+Lamia/DialoGPT-small-Sundrop
+ashtrindade/chatbot-stacey
+tinkoff-ai/ruDialoGPT-small
+tinkoff-ai/ruDialoGPT-medium
+24adamaliv/DialoGPT-medium-Will
+cybertelx/DialoGPT-small-drunkic0n
+Rick-C137/DialoGPT-small-rick
+debyve/dumbbot
+Amir-UL/JimBot
+BoxCrab/DialoGPT-small-Strider
+AbdalK25/DialoGPT-small-TheWiseBot
+casperthegazer/DialoGT-gandalf-urdot
+pineappleSoup/DialoGPT-medium-707
+Nakul24/AD_ChatBot
+TeaTM/DialoGPT-small-bushcat
+ionite/DialoGPT-medium-NakaAI
+Creepton/DDLCYuri-DialoGPT-small
+TeaTM/DialoGPT-large-bushcat
+yazinga/DialoGPT-medium-scout
+throwaway112358112358/DialoGPT-medium-script
+Jingna/test_hpv_discord
+anonchickenlegs/sartoshi-bot
+xander-cross/DialoGPT-small-EvilMortyTheBot
+Bman/DialoGPT-medium-shrek
+Yank2901/DialoGPT-small-Rick
+akshatpandeyme/DialoGPT-small-manpreet
+Jenwvwmabskvwh/DialoGPT-small-josh444
+akshatpandeyme/DialoGPT-small-parthiv
+akshatpandeyme/DialoGPT-small-ParthivBot
+seeksery/DialoGPT-calig
+akshatpandeyme/DialoGPT-small-AnyaBot
+Jordine/shitter
+model-attribution-challenge/DialoGPT-large
+seeksery/DialoGPT-calig2
+obl1t/DialoGPT-medium-Jotaro
+trickstters/DialoGPT-small-evanbot
+trickstters/evanbot-gpt
+AriakimTaiyo/gpt2-chat
+Yank2901/DialoGPT-small-Harry
+lizz27/DialoGPT-small-baymax
+obl1t/DialoGPT-medium-Jolyne
+seeksery/DialoGPT-calig3
+Jenwvwmabskvwh/DialoGPT-small-josh445
+trickstters/evbot2
+Jenwvwmabskvwh/DialoGPT-small-josh450
+lizz27/DialoGPT-medium-BaymaxBot
+soop/DialoGPT-medium-BaymaxBot
+abelblue3/DialoGPT-medium-baymax
+priyankac/DialoGPT-medium-BaymaxBot
+Ironpanther1/Testing
+tosin/dialogpt_afriwoz_pidgin
+Anon25/DialoGPT-Medium-BaymaxBot
+GoldenRedstone/DialoGPT-medium-Phoenix-Wright
+Primobot/DialoGPT-small-harrypotter
+Lyem/LyemBotv1
+JamesSantosxx/DialoGPT-small-harrypotter
+Lyem/LyemBotv2
+Ironpanther1/ArtoriaBot
+Swervin7s/DialoGPT-medium-anakin
+DogH2O/DialoGPT-small-naruto
+NoPeanuts/DialoGPT-small-po
+Gravitygaming/homerai
+Lyem/LyemBotv3
+celine45688/LuTing
+antwortemir/shouko04
+SebastianS/MetalSebastian
+notaproblem00/DialoGPT-small-bakugou
+myodoctor/DIALOGPT-medium-HarryPotterBot
+aniketface/DialoGPT-medium-elon
+noiseBase/DialoGPT-small-HarryPotter
+karan21/DialoGPT-medium-rickandmorty
+karan21/DialoGPT-medium-guin
+Sophiejs/DialoGPT-small-BlaineBot
+skouras/DialoGPT-small-swda
+skouras/DialoGPT-small-maptask
+TheodoreAinsley/LindaGold
+AlbedoAI/DialoGPT-large-Albedo
+AlbedoAI/DialoGPT-large-Albedo2
+willmay/DialoGPT-medium-will
+AlbedoAI/DialoGPT-medium-Albedo
+chulainn/DialoGPT-medium-Zuko
+ctoner2653/DialoGPT-medium-RickBoty
+Number4/DialoGPT-medium-harrypotter
+yummyhat/DialoGPT-small-spike
+EllyPony/flutterbot
+Suryansh-23/DialoGPT-small-MichaelScottOffice
+Cirilaron/DialoGPT-medium-vergil
+Izuuk/izuuk
+shungyan/Diablo-small-harrypotter
+bhavyasharma/DialoGPT-small-harrypotter
+nintwentydo/rickbot
+tylersfoot/DialoGPT-medium-rick
+EJoftheVern/DialoGPT-medium-shaggy
+xtraXpert/DialoGPT-small-RickAndMorty2
+ANIKEThash/DialoGPT-medium-character
+Noonw/DialoGPT-small-hijackersexurmom
+fat32man/elon_answers
+MinhP/DialoGPT-small-themis
+Noonw/DialoGPT-small-osamaflyplane
+Noonw/DialoGPT-small-ladenflyplane
+Noonw/DialoGPT-small-ladenonjet
+MinhP/DialoGPT-small-franco
+Karan59/DialoGPT-small-evaModel
+marblyso/DialoGPT-medium-marblesbagel
+Jojo17/DialoGPT-small-RickAndMorty
+deseipel/medium-LucyClarke_
+DiscordBackup/model0000
+SirSpiffy/IvanModel
+woodmtaylor/DialoGPT-small-Heej
+woodmtaylor/DialoGPT-medium-Heej
+OctaviusI/marisaV0
+ChloeMJM/DialoGPT-small-rick
+JDesignEra/DialoGPT-small-Anya
+MrE/DialoGPT-medium-SARGER4
+aarya-c111/DialoGPT-small-Rogers
+bozlucas/DialoGPT-medium-HermioneBot
+LasseVKP/DialoGPT-Mogens
+metaloopa/DialoGPT-medium-Rintaro
+ingen51/DialoGPT-medium-GPT4
+Divyesh/DialoGPT-medium-harrypotter
+Natsuki-Chan/DialoGPT-medium-luz
+akira2001/DialoGPT-medium-harrypotter
+osueng02/DialoGPT-small-STAN_BOT
+osueng02/DialoGPT-medium-STAN_BOT
+wormed/DialoGPT-small-denai
+RehanP123/DialoGPT-medium-kermit.old
+Nakul24/SM_Bot
+chulainn/DialoGPT-medium-Ragnar
+aniketface/DialoGPT-product
+shohanursobuj/DialoGPT
+marblyso/DialoGPT-medium-hero
+marblyso/DialoGPT-medium-kel
+marblyso/DialoGPT-medium-aubrey
+akil191/small-test-harryakakakaka
+sanpellegrino/CoryBot
+Arqhero/DialoGPT-small-adventuretime
+chulainn/DialoGPT-medium-Tyrion
+VTG/MentalHealthChatbotv1
+luminolblue/HomunculusGPT-testbot
+Paulina354/DialoGPT-small-rickandmorty
+khuranagarvit019/MentalHealthChatbot
+VirtualizedTrash/Chatbot
+pedrocaribe/DialoGPT-medium-LL
+queenaccila/DialoGPT-small-kashiwagi
+GarfExit/DialogGPT-medium-707
+marblyso/DialoGPT-medium-shepherd
+Spectre29/DialoGPT-small-Kaisa
+Spectre29/Kaisa-converse-model
+ZedTheUndead/Rick_fragment
+marblyso/DialoGPT-medium-mari
+Delicious/DialoGPT-small-harrypotter
+BBHKR/DialoGPT-small-jacksparrow
+Guwon/DialoGPT-small-Quincy
+epeicher/DialoGPT-small-homer-2
+timmychanga/DialoGPT-small-ashley
+mywateriswet/ShuanBot
+epeicher/DialoGPT-small-flanders
+Super-McTea/DialoGPT-small-McTea
+Eronzin/meuBotzindoEron
+Techdra/DialoGPT-large-theboy
+Eronzin/DialoGPT-small-Frodo
+gtgillott/gib
+AwesomeDWNJ/EmiBot
+CJ3/DialoGPT-medium-amber3
+GamerMan02/DialoGPT-medium-gamerbot2
+GamerMan02/DialoGPT-medium-gamerbot1
+Insomnic/DialoGPT-small-harrypotter
+Super-McTea/DialoGPT-small-McTeaV2
+FelipeJoazeiro/chatbot-morty
+microsoft/GODEL-v1_1-base-seq2seq
+microsoft/GODEL-v1_1-large-seq2seq
+Rencist/DialoGPT-small-rick
+scorpiofrens/DialoGPT-medium-ergon
+somemusicnerdwoops/DialoGPT-small-shadow
+powchang/DialoGPT2-medium-CAiFE
+ratneshrt/DialoGPT-small-Artico
+somemusicnerdwoops/DialoGPT-distilgpt2-sonicfandub
+Tsec-Research/DialoGPT-chandler-penny
+neonon/DialoGPT-medium-cloy
+ddae208s/DialoGPT-small-dimitri
+mossfarmer/VRANAK
+Matax/Aristrathor3000
+brownanchovy/Harry
+Overlrd/DialoGPT-small-cartman
+epeicher/DialoGPT-large-homer
+comradesocrates/DialoGPT-medium-stranger
+Rakublu/DialoGPT-small-yasuo
+neonon/DialoGPT-medium-htccc
+Alt41r/gpt-simpson
+Nimit-Jjw/DialoGPT-chandler-penny
+Quoc123/DialoGPT-small-AQUA
+marblyso/DialoGPT-medium-pearl
+estus2/rick-superu-rick2
+marblyso/DialoGPT-medium-marina
+rovenmusic/DialoGPT-small-melodybot
+deseipel/small-LucyClarke_
+rovenmusic/DialoGPT-small-melodybotv2
+rovenmusic/DialoGPT-small-melodybotv3
+epeicher/DialoGPT-medium-homer
+andrewkroening/GalaxyFarAway-DialoGPT-HanSolo
+nams/nams-bot
+Nicktherat/DialoGPT-medium-endella
+alfirsaafauzulh/DialoGPT-small-KamuiBastion
+rovenmusic/DialoGPT-small-melodyv10
+somesh212/Harry_Potter-BOT
+somesh212/Harry_Potter_botDialoGPT_Som2
+jmagine/DialoGPT-small-metahead
+somesh212/Harry_Potter_botDialoGPT_Som3
+rovenmusic/DialoGPT-small-melodyvfinal
+jmagine/DialoGPT-small-jmagine
+jmagine/DialoGPT-small-funded
+jmagine/DialoGPT-small-jimj
+andrewkroening/GalaxyFarAway-DialoGPT-LukeSkywalker
+andrewkroening/GalaxyFarAway-DialoGPT-Threepio
+andrewkroening/GalaxyFarAway-DialoGPT-Vader
+andrewkroening/GalaxyFarAway-DialoGPT-LeiaOrgana
+andrewkroening/GalaxyFarAway-DialoGPT-Yoda
+Wizardd/DialoGPT-small-sheldon
+BenKJH/DialoGPT-small-lucybotasg
+Ananjas/AwooAI
+Ananjas/AwooV2
+kookyklavicle/gpt-sean-diaz
+kookyklavicle/SeanDiazBot2
+Ananjas/AwooV3
+Overlrd/DialoGPT-medium-cartman
+Ananjas/AwooV6
+mathecas/HarryPotterBotAI
+Karina256/DialoGPT-small-dory
+Tony8657/DialoGPT-small-TonyStarkBot
+SebastianS/my_mim
+TFS668/DialoGPT-small-Rick
+redhoff/DialoGPT-Medium-RedBot
+FeriVOQ/DialoGPT-small-joshua
+Triobloid/DialoGPT-small-lianaharrypotter
+quinnzie/DialoGPT-small-sinister
+FarziBuilder/DialoGPT-medium-harrypotter
+sohampatil/DialoGPT-small-mentalchatbot
+gtkarber/DialoGPT-medium-columbo
+PaddlePaddle/plato-mini
+Junkan/DialoGPT-medium-Bilbo
+ThatSkyFox/DialoGPT-medium-whatsapp
+Ar4ikov/DialogAgentGPT2
+reallygoodtechdeals/Bingocat-ai-Dialo-GPT-medium
+thmauler/crashed
+OptionaI/DialoGPT-small-beepboopy
+davebathhews/DialoGPT-OTIS
+GGOM/SipBotGGOM
+davebathhews/DialoGPT-OTISBOT
+GGOM/WillBotGGOM
+GGOM/ElyasBotGGOM
+reallygoodtechdeals/steve-ai-Dialo-GPT-medium
+Crushtoe/DialoGPT-small-vangluss
+apotempest/DialoGPT-medium-geralt
+DiogoSabec/DialoGPT-small-joshua
+WaleedArif/DialoGPT-small-Micheal
+Crushtoe/DialoGPT-medium-vangluss
+Crushtoe/GODEL-v1_1-base-seq2seq-vangluss
+DiogoSabec/BOT
+Le033/DialoGPT-small-rickmorty
+Filosofas/DialoGPT-medium-PALPATINE2
+JadansTower/jobot
+NTMNathan/DialoGPT-small-harrypotter
+Ashypaws/DialoGPT-medium-Ashybot
+wmdosborne/DialoGPT-medium-kyritebot
+worms3402/DialoGPT-small-automata2
+Pi3141/DialoGPT-small-elon
+Grendar/Dialo-GPT-medium-shiro
+Pi3141/DialoGPT-medium-elon
+Pi3141/DialoGPT-medium-elon-2
+JoshuaPawlik/DialoGPT-medium-joshua
+Pi3141/DialoGPT-medium-elon-3
+josephthen3320/DialoGPT-small-walter
+robbiegwald/Rick
+Gurtej/Drbot
+Hereward/DialoGPT_medium_ObiWan_Kenobi
+Giu888/DialoGPT-small-sao
+Grendar/blenderbot-400M-distill-Shiro
+keeg8/Book-0-1500
+keeg8/Book-1500-1700
+keeg8/Book-1850-1900
+keeg8/Book-1700-1850
+karlreimond/DialoGPT-small-harrypotter
+lenartlola/SpongeBob
+lenartlola/rick-bot
+Deedlit/DialoGPT-small-southpark
+babylasagne/DialoGPT-small-narryuto
+babylasagne/DialoGPT-small-harry
+babylasagne/DialoGPT-small-spider
+babylasagne/DialoGPT-small-batman
+BradHeffernan/rickNmortyModel
+UmUDev/DialoGPT-medium-AlexVN
+ukikunz/gas-kenji-medium
+ukikunz/gas-kenji
+Isokeel/DialoGPT-medium-KMbot
+KakoSi/AcciGPT-smol
+Spoofed/DiabloGPT-small-peter
+sophiadt/DialoGPT-medium-707
+UmUDev/DialoGPT-medium-Alex
+PygmalionAI/pygmalion-350m
+sophiadt/DialoGPT-medium-reigen
+rexfi/DialoGPT-small-peter
+rexfi/NafezBot-DialoGPT
+caps1994/chris-bot
+rexfi/RickyBot
+allenai/cosmo-xl
+woodmtaylor/DialoGPT-large-Dumpling
+rexfi/MikeScottBot
+apfallinus/RickBot
+apfallinus/HarryBot
+apfallinus/MedBot
+apfallinus/AeonaBot
+apfallinus/BatmanBot
+apfallinus/AiBot
+LostXOR/TotallyNotARobot
+gachaddict/DialoGPT-medium-ike
+OctaviusI/staging
+PygmalionAI/pygmalion-1.3b
+Terrymir/DialoGPT-medium-Soraka
+SantiPingui58/DialoGPT-small-hika
+ss1612/montana-chat
+MrEmpty/DialoGPT-small-rickandmorty
+shikiskhakis/DialoGPT-small-blackdoom
+alexandreteles/GPTChizuru
+Chae/scottbot_med
+AhmedMostafa/DialoGPT-small-Rick
+metkoon/30dollarceo
+Dinocroth/DialoGPT-medium-Trevor-PhilipsV2
+metkoon/MatBot
+SmallQ/DialoGPT-small-Anya
+bigbossa/aiko6
+GK123/DialoGPT-medium-hanbot
+TheHappyDrone/DialoGPT-medium-salesman
+Pcik/DialoGPT-medium-Jaiden
+TheHappyDrone/DialoGPT-medium-Nexus-Nova
+Pcik/DialoGPT-medium-Dante
+AlmightyDeathCheater/DialoGPT-medium-harrypotter
+Pcik/DialoGPT-medium-Kirby
+Starry/COUNTNARC
+TheHappyDrone/DialoGPT-medium-Nexus-Nova-turing-v2
+wetwoteraq/DialoGPT-medium-aqua
+wetwoteraq/DialoGPT-small-peter
+wetwoteraq/DialoGPT-medium-peter
+lilexo2/DialoGPT-medium-Monica
+momo10/DialoGPT-small-harryPotter
+Antale123/ConorBot
+shikiskhakis/DialoGPT-small-xemnas
+Ecook/DialoGPT-medium-Ecook
+PygmalionAI/pygmalion-2.7b
+FowlerF/DiscordChatBot
+JoeRoganfan-69420/DialoGPT-medium-HarryPotterbot
+dusty310/DialoGPT-medium-Misaki
+Gurtej/Drbot2
+Gurtej/Drbot3
+Gurtej/Drbot4
+Gurtej/Drbot5
+Gurtej/Drbot6
+Gurtej/Drbot7
+Gurtej/Drbot8
+Gurtej/Drbot9
+PygmalionAI/pygmalion-6b
+Gurtej/Drbot11
+navygup/Mood-Tracker
+Maraslumunnus/DialoGPT-small-ivern
+DAS9051/BatemanChatBot
+SmallQLALA/DialoGPT-small-Anya
+RinkaDev/GPT-Peppa-Pig
+thu-coai/blenderbot-1B-augesc
+siyaT/DialoGPT-harrypotter-small
+keircare/DialoGPT-small-RickSanchez
+shiiiroe/DialoGPT-medium-kirito
+jdakillah/Rick
+kielljoy/DialoGPT-small-stupidspecialkay
+Ashypaws/DialoGPT-medium-Kitaibot
+jdakillah/RICK-V2
+jdakillah/Bender
+jdakillah/Generalbot
+kielljoy/DialoGPT-medium-ryanbot
+emre/spanish-dialoGPT
+vuminhtue/DialoGPT-large-HarryPotter3
+ralphsorz/DialoGPT-small-samwise
+SumYin/DialoGPT-small-Homer
+JamesRoy/DGPT-DC
+Blizzchor/DialoGPT-medium-HarryBotter
+gjhghjk/rick
+gjhghjk/rick2
+SumYin/ZeroTwo-Medium-DialoGPT
+Blizzchor/DialoGPT-medium-gamora
+Mydia2/DialoGPT-small-Flonnealive
+AL-CT/DialoGPT-small-slayer
+DhruvShek/Webraft-Ai
+arno2077/DiabloGPT-small-harrypotter
+keyonecs/fourept-debique-gpt
+Blizzchor/DialoGPT-medium-QuillLord
+callmeclover/Stinger-CONVRS_MODL
+aminFelah/DialogueGPT-very-small-harryPotter
+Keijuro/aeris-dialogpt
+Abdelrahman853/DialoGPT-small-echo
+Bearfoot/DialoGPT-medium-shrek
+arthme2/jay
+arthme2/DialoGPT-medium-Jay
+42meow/DialoGPT-medium-42meow
+Peeepy/Evie
+HorniFolks/Unicorn
+waifu-workshop/pygmalion-6b
+agenttylostudios/DialoGPT-small-Bocchi
+GregariousJamie/DialoGPT-small-jamie
+Fuwaguwa/DialoGPT-Medium-AzurLaneMusashi-v8
+s3nh/DialoGPT-large-Rick
+s3nh/DialoGPT-large-Morty
+s3nh/DialoGPT-small-morty
+Givinghawk/GPT-Morty
+DhruvShek/swearbot
+grart/DialoGPT-small-gillion
+interpixle/Sir_Caladan
+s3nh/DialoGPT-tony-montana
+s3nh/DialoGPT-small-harry-potter-goblet-of-fire
+s3nh/DialoGPT-small-hermione-granger-goblet-of-fire
+s3nh/DialoGPT-small-woody-toy-story
+s3nh/DialoGPT-small-buzz-toy-story
+puj0/DialoGPT-small-joshua
+julianvd49/DialoGPT-medium-EllieBot
+Sreyas/DialoGPT-small-elit
+DiscordRequestsAPI/DialoGPT-medium-NurDeeps
+MarinHinawa/DialoGPT-medium-Ene
+polandball/polanball
+whoami24142/DialoGPT-small-padilha
+DiscordRequestsAPI/NurDeeps-Bot
+Vaibhav-rm/GPT2-Shri-v1
+chrisrowles/DialoGPT-small-chrisrowles
+espeon98/DialoGPT-kenny-bot
+espeon98/DialoGPT-kenny-bot-2
+polandball/GPT-Polen
+chrisrowles/DialoGPT-medium-chrisrowles
+DiscordRequestsAPI/NurDeeps-Bot-2
+steerevo88/DialoGPT-small-baiken
+akiFQC/japanese-dialogpt-small-aozora
+Ngao/DialoGPT-small-ngao
+Mineroero/DialoGPT-medium-M4SOPMOD
+simple2312/DialoGPT-nayeon
+nemowet88/DialoGPT-small-ricktest
+Abraxas3d/house
+vampiregirl/DialoGPT-medium-lennoxram
+aisingapore/coherence-momentum
+simple2312/DialoGPT-Ellie
+simple2312/DialoGPT-Twice
+testaws/DialoGPT-small-joshua
+nemowet88/output-pythia-test
+Gurtej/Drbot12
+Gurtej/Drbot13
+Gurtej/Drbot14
+Gurtej/Drbot16
+EZSNoVa/DialogGPT-medium-NoVa
+mattallio/Archivist-medium-dialoGPT
+rlatt/DialoGPT-small-RickSanchez
+Lyforth/DialoGPT-Medium-Maribelle
+kittenwhiperer/Deadpool
+KumquatJoe/DialoGPT-medium-MaleToucherBot
+lmkhoa/GODEL_base_model
+JamesStratford/Pidrow-bot-DialoGPT-Large-Feb2023
+LrxLcs/DialogGPT2-SMAL
+Delcos/internal_chat_model_e2
+euvu/DialoGPT-small-harrypotter
+LrxLcs/GPT2-V2
+LrxLcs/GPT2-Test
+euvu/euvu-rickbot
+Weeeeeeeeeeeee00/DialoGPT-small-harrypotter
+slyslasher24/DialoGPT-Medium-Pondweed
+slyslasher24/DialoGPT-Small-Pondweed
+bradydawg/AI-Bot2
+aisingapore/rumour-detection-twitter
+RatInChat/Pilup7575
+rlatt/DialoGPT-large-RickSanchez
+Kira225784/Klarabot-test
+bigbossa/DialoGPT-small-aikogirl
+sckova/DialoGPT-small-joshua
+sckova/DialoGPT-medium-joshua
+sckova/DialoGPT-medium
+Beltenebros/DialoGPT-small-PerionOfGaul
+Byteno/DialoGPT-medium-glamrockfreddy
+audreycl/audreycl-testagain
+aisingapore/Lif3WayAp
+audreycl/DialoGPT-RoyalPurpleFish
+audreycl/DialoGPT-RPF
+Axelajs26/DialoGPT-small-alicetendou
+Noohance/DialoGPT-medium-noohbot
+Draptor/DialoGPT-small-coolco
+David042/DialoGPT-LucasBot
+Hobospider132/DialoGPT-Mahiru-Proto
+Draptor/DialoGPT-medium-moto
+aisingapore/SPANBert
+JYBX/DialoGPT-small-Penny
+JYBX/DialoGPT-small-Pennybot
+aisingapore/RoBERTa-base
+JYBX/DialoGPT-small-Amybot
+LuckyBor11/Figure
+FlyingGrayson0304/Gandalf-stupid-version
+BlinksFly/Harry_Potter-Ai
+PhilipN/DialoGPT-small-KeqingBot
+YTTD/DialoGPT-medium-sou
+PhilipN/DialoGPT-large-KeqingBot
+YTTD/DialoGPT-medium-souv2
+keonju/chat_bot
+MysteriousAmazon/DialoGPT-medium-alastor
+mICHPl/MINI_AI
+rlatt/DialoGPT-large-King-James-Bible-test
+v3nom1704/DialoGPT-small-potterbot
+Techcs002/DialoGPT-medium-AboTalkTest
+MysteriousAmazon/DialoGPT-medium-freddy
+ICAMPB204/DialoGPT-small-HarryPotter
+kelvinhang/DialoGPT-medium-badguy
+tatsumis6/MonikaAI
+kennethhendricks/DialoGPT-medium-PowPowGaming-Gen1
+rlatt/DialoGPT-large-King-James-Bible-test-accurate
+kennethhendricks/DialoGPT-medium-PowPowGaming
+kelvinhang/DialoGPT-medium-badguy2
+zami0011/qqpbksdj
+vladiyudi/Morty-data
+RazaK18/DialoGPT-small-harrypotter
+comradesocrates/DialoGPT-large-io
+kelvinhang/DialoGPT-medium-okakoro
+Monchic/chatwithkani
+zami0011/rickdick
+CallMeJeremy/DialoGPT-medium-THREEPIO
+Leomas/DialoGPT-medium-Leomas
+RehanP123/DialoGPT-large-kermit
+shahules786/Safetybot-T5-base
+huolongguo10/CDial-GPT2-LCCC-Base-copy
+yashR4J/TyrionBOT
+TakoIsATaco/DialoGPT-small-ShinAI
+MrLamBam/DialoGPT-medium-LUKEBot
+Zeda/DialoGPT-Medium-ZedaBot
+princedream/DialoGPT-small-harrypotter
+shahules786/Safetybot-mt5-base
+xiaomengdotcom/Chatgpt-harryP
+ProtonPLUS/Colab
+YTTD/DialoGPT-medium-saf
+jasondubon/HubermanGPT-small-v1
+YTTD/DialoGPT-medium-safv2
+YTTD/DialoGPT-medium-safv3
+kennethhendricks/DialoGPT-medium-jared-hendricks-gen1
+Cohee/pygmalion-6b-pyggyback-v6_40_v8p4_60
+DiogenesGois/DialoGPT-medium-Rick
+LordDanielDE/DialoGPT-medium-Hina
+ITG/DialoGPT-medium-spanish-chitchat
+kemsa51/DialoGPT-medium-cartman
+Mogwhy/DialoGPT-medium-Arrobot
+nRuaif/Pyg6B-V8P2
+Seer-luma/DialoGPT-small-SeerBot
+Dinoloverwii/DialoGPT-Sachibot
+flayeddie/Mike
+wooldover/krautbot
+kielljoy/DialoGPT-small-k
+WAHCLAN/DialoGPT-Medium-DAN
+ss1612/loki-chat
+IceBruhOne/mytestcharacter
+wooldover/pygbot
+IceBruhOne/DialoGPT-medium-subjectai
+YukioKoito/DialoGPT-small-ozua
+gaytrimoh/DialoGPT-small-harrypotter
+YukioKoito/DialoGPT-small-doog
+IceBruhOne/DialoGPT-medium-subjectai2
+custads23/DialoGPT-medium-aubrey
+HaHaMagpie/DialoGPT-small-phineas
+Carslo45/DialoGPT-medium-ddlc-monika
+zl111/ChatDoctor
+MarinHinawa/DialoGPT-medium-haruka
+custads23/DialoGPT-medium-basil
+IceBruhOne/DialoGPT-medium-complexai
+MarinHinawa/DialoGPT-medium-Shintaro
+jlsalty9999/DialoGPT-medium-Riddle
+custads23/DialoGPT-medium-mincy
+Wtfsquad/DialoGPT-small-pulpfictionVincent
+ss1612/erika-chatv4
+WAHCLAN/DialoGPT-Large-DAN
+Speedemon/jake-peralta-ai
+Speedemon/cobalt
+DeliveryBoy/DiabloGPT-medium-Kurisu
+AbbyRhea/DialoGPT-small-adrienbot
+monish162/kirthin-waifuu
+janna42/DialoGPT-small-phoenix
+AbbyRhea/DialoGPT-medium-AA
+FrozenSmoothie/DialoGPT-medium-star
+Fizi12341/astro_bot1234
+stiGGy/DialoGPT-medium-raymond
+patthebaker45/DialoGPT-small-Carlbot
+r4k4n1/DialoGPT-small-joshua
+Sukul/DialoGPT-small-Harsabot
+Sukul/DialoGPT-small-Harsabot1
+hihihotdog/DialoGPT-bot
+LarsJonasson/pythia-1.4b-deduped-sft-swedish
+mayaeary/pygmalion-6b-4bit-128g
+mayaeary/pygmalion-6b_dev-4bit-128g
+Inhaexpress/DialoGPT-medium-paimon
+sanyasna517/DialoGPT-medium-Zhongli
+StephenBrink/DialoGPT-small-will
+StanleyRoberts/Nix
+boudchicha/soluzione
+mayaeary/PPO_Pygway-V8p4_Dev-6b-4bit-128g
+ToborWinner/DialoGPT-medium-jolly
+mayaeary/PPO_Pygway-6b-Mix-4bit-128g
+ayushutkarsh/t3
+Inhaexpress/DialoGPT-medium-paimon2
+eepyblanky/DialoGPT-medium-malina
+eachadea/legacy-ggml-vicuna-13b-4bit
+eachadea/ggml-gpt4-x-alpaca-13b-native-4bit
+totallynotbrent/brotGPT
+Inhaexpress/DialoGPT-medium-harry_potter_ps
+robintan66/DialoGPT-small-harrypotter
+MajorCrayon7047/MadboneAssistantGPT-2
+VennuT/DialoGPT-medium-Alphinaud
+triple777/annicebot
+totallynotbrent/aaronGPTalpha
+Plaaasma/gerald-model
+yashugupta786/bart_large_xsum_samsum_conv_summarizer
+eachadea/legacy-ggml-vicuna-7b-4bit
+ColtonAi/Llmtrain
+ColtonAi/Chem4
+IchtacaKemeRaz/favabean
+Stromello/DialoGPT-medium-ZeroTwo
+totallynotbrent/brotGPTplus
+storminstakk/Stormin-Stakk
+ToddGoldfarb/Cadet-Tiny
+aghelan3/eggIncubationRepo
+hackathon-somos-nlp-2023/SalpiBloomZ_15949_input_1024-1b7
+JosephusCheung/Guanaco
+raymondho/DialoGPT-small-harry
+Capitalist/DialoGPT-small-rick
+gfgddfg/DialoGPT-small-qiu_chat
+eachadea/ggml-toolpaca-13b-4bit
+CNR223/DialoGPT-small-MasterO
+Abigaming75/Bot_wa
+pranitrai07/DialoGPT-medium-harrypotter
+IlyaGusev/saiga_7b_lora
+Ancestral/Dolly_Shygmalion-6b-4bit-128g
+Ancestral/PPO_Shygmalion-6b-4bit-128g
+wyskiski/winonabot
+hcpwr/DialoGPT-medium-samantha
+Roguwan/DialoGPT-medium-rogu
+totallynotbrent/aaronGPTplus
+Ancestral/Dolly_Malion-6b-4bit-128g
+vantozdad/DialoGPT-medium-Dumbledore
+Abyss-fyf/DialoGPT-small-discord
+CrystalzAura/DialoGPT-small-elysia
+eachadea/ggml-gpt4all-7b-4bit
+inu-ai/alpaca-guanaco-japanese-gpt-1b
+Husnul/pepper-bot-morty
+TheBloke/vicuna-13B-1.1-GPTQ
+CRD716/ggml-vicuna-1.1-quantized
+4bit/pygmalion-6b-4bit-128g
+Reaver1092/DialoGPT-small-bones
+Ibnelaiq/Makise-Amadeus-Kurisu-small
+inu-ai/dolly-japanese-gpt-1b
+clawrex/DialoGPT-medium-walt
+IlyaGusev/saiga_13b_lora
+Zeda/DialoGPT-Large-ZedaBot
+Ibnelaiq/Makise-Amadeus-Kurisu
+Jaxon/DialoGPT-medium-kirito
+glitchie/bb
+Aqua002/DialoGPT-small-deadpool
+Aqua002/discord-chatbot
+lemoniada/Przembot
+Avitas8485/Dialogpt-small-v1
+Jprafol/DialoGPT-large-ARCHIBot
+Jprafol/DialoGPT-large-ARCHIBotV2
+spitfire4794/ben-ultra
+IlyaGusev/saiga_30b_lora
+NbAiLab/nb-gpt-j-6B-norpaca
+winglian/vicuna-self-reflect-13b
+0x044/test-1
+0x044/dgpt
+ss1612/erika-chatv6
+TestingCoder463632/DialoGPT-small-palpatine
+Blizzchor/DialoGPT-medium-BarryB
+sasha0552/pygmalion-6b-f16-ggml
+kavindu999/BetterEnglishGPT-v1
+kavindu999/BetterEnglishGPT-v2
+EnterNameBros/DialoGPT-small-FoxySan
+OrientalDude/DialoGPT-medium-GOKU
+Avitas8485/Dialogpt-medium-v1
+finex/pfe-mohamed-Harry
+Avitas8485/Dialogpt-medium-finetuned
+psyamk/DialoGPT-small-harrypotter
+Jamesonn/DialoGPT-small-jumin
+CNXT/CNXT
+Ilangraterol/Dataset_model
+IlyaGusev/saiga_30b_ggml
+Locutusque/gpt2-conversational-or-qa
+TrippingFollowing39/AMOGUS
+moomoomer/DialoGPT-medium-garfield
+PygmalionAI/pygmalion-7b
+Viperxyz/DialoGPT-small-Cartman
+Neko-Institute-of-Science/pygmalion-7b
+TehVenom/Pygmalion-7b-Merged-Safetensors
+BiaDd/DialoGPT-medium-Punko
+NewBreaker/chatglm-6b-int4
+TehVenom/Pygmalion-7b-4bit-GPTQ-Safetensors
+TehVenom/Pygmalion-7b-4bit-Q4_1-GGML
+userzyzz/piggySharded
+steinhaug/models-bck
+blueberrycheesecake/DialoGPT-small-misssophie
+Imablank/P1GM4L10N-7B-MERGED_WEIGHTS
+MrToast/idk
+SouroJ/DialoGPT-medium-Mordecai
+sasha0552/pygmalion-7b-bf16
+swajan/DialoGPT-small-Trail-1
+RobiKenobi/DialoGPT-medium-pete
+sasha0552/pygmalion-7b-f16-ggml
+sasha0552/pygmalion-7b-f16
+winglian/llama-adapter-13b
+MatLumber/Bisho
+iconical/MortyChatbotAI
+swajan/Trail-1
+swajan/Trail-2
+Misfit2/DialoGPT-large-Sonic
+ToddGoldfarb/Cadet-Medium
+ajpieroni/DiabloGPT-medium-medea
+AliiaR/DialoGPT-medium-empathetic-dialogues
+Chun121/ChocolaChat
+lemoniada/kicerobot
+Kazeyami-o7/DialoGPT-medium-beterbiffin
+Elucia/Diluc_Bot
+Elucia/Diluc_Bot_1.1
+Elucia/Diluc_Bot_1.2
+neurofumo/DialoGPT-small-joshua
+Elucia/Diluc_Bot_1.3
+GraphicStylz/Stylz
+naybiblu/ChizuruBot
+calvindoingstuff/DialoGPT-medium-luffy
+xZephy/DialoGPT-small-HelperBot
+crazywombat/DialoGPT-small-abandonware
+anshengli2/DialoGPT-small-counter-hate
+sephwalker3/piggy-7b
+apricxty/DialoGPT-small-chatbot
+leadmaister/langchain-prompt-master
+Covriar/DialoGPT-med-kiryu
+yesuns/DialoGPT-small-yesun
+davidviriato/DialoGPT-small-joshua
+VMware/open-llama-0.3T-7B-open-instruct-v1.1
+prabhguron/DialoGPT-small-harrypotter
+xHexyy/small-test
+malteos/bloom-6b4-clp-german-oasst-v0.1
+Pcik/DialoGPT-medium-Ruby
+sasha0552/pygmalion-7b-q4_0-ggml
+sasha0552/pygmalion-7b-q4_1-ggml
+sasha0552/pygmalion-7b-q5_0-ggml
+sasha0552/pygmalion-7b-q5_1-ggml
+sasha0552/pygmalion-7b-q8_0-ggml
+rjorg543/DialoGPT-small-ben
+eachadea/ggml-gpt4-x-vicuna-13b
+Tlethal/DialoGPT-small-harrypotter
+xHexyy/test2
+xHexyy/test3
+ldilov/stablelm-tuned-alpha-7b-4bit-128g-descact-sym-true-sequential
+AnimusOG/pygmalion-7b-4bit-128g-cuda-2048Token
+jun-ai/BeethovenBot
+channashi/DialoGPT-small-rocket
+biscuitbutb/biscuitbot-dialogpt-model
+ytrbqrkflbvbhy/DialoGPT-small-me-rus
+Pruz0/VescGPT
+IlyaGusev/saiga_7b_ggml
+IlyaGusev/saiga_13b_ggml
+TechTay/DialoGPT-small-Luciano
+BlackBull/yeet
+WAHCLAN/DialoGPT-Medium-SAM
+MistyIce/dialog-gpt-Heshan
+Pruz0/LennGPT
+Wanfq/MAKER-mwoz-full-kb-t5-base
+Wanfq/MAKER-mwoz-full-kb-t5-large
+Wanfq/MAKER-smd-condensed-kb-t5-base
+Wanfq/MAKER-smd-condensed-kb-t5-large
+Wanfq/MAKER-camrest-condensed-kb-t5-base
+Wanfq/MAKER-camrest-condensed-kb-t5-large
+Wanfq/MAKER-camrest-full-kb-t5-base
+Wanfq/MAKER-camrest-full-kb-t5-large
+Wanfq/MAKER-mwoz-condensed-kb-t5-base
+Wanfq/MAKER-mwoz-condensed-kb-t5-large
+raphaman/test
+Pruz0/HaLLGPT
+Binaryy/blender-bot-distill-finetuned
+alex297/DialoGPT-small-sparky
+Pruz0/GeoGPT
+Pruz0/PruzGPT
+dorkai/pygmalion-2.7b
+ikocx-to24/DialoGPT-medium-plankton
+th3d4nk/llamaModel1
+PygmalionAI/pygmalion-13b
+TehVenom/Pygmalion-13b-Merged
+ivaan01/TFG-Mauri
+alex297/DialoGPT-medium-fox
+Crataco/Pygmalion-1.3B-GGML
+SaintMcMuffins/DialoGPT-small-brain2.0
+dujade18/DialoGPT-medium-dwightoffice
+TehVenom/Pygmalion-13b-8bit-GPTQ
+helloerikaaa/chandlerGPT
+SaintMcMuffins/Brain2.1
+kb2c37g/DialoGPT-small-Rick
+alex297/DialoGPT-small-fox
+TeraSpace/dialofrednocontext
+EnterNameBros/DialoGPT-small-Senko
+EnterNameBros/DialoGPT-small-Senko-san
+4bit/pyg-7b
+EnterNameBros/DialoGPT-small-Senko-san-ver
+Lumiras/rachbot
+kevintest1234/DialoGPT-small-harrypotter
+EnterNameBros/DialoGPT-small-Senko-san-ver-2
+EnterNameBros/DialoGPT-large-Senko-san-ver-2
+Delmarfish/Delmar
+diankymar/kitty
+TatonkaHF/ruDialoGpt3-medium-finetuned-russian-joke
+EggsInAJar/DialoGPT-small-MerrickBot
+DBoi/Mayreel2
+hosst/FridgeLLM
+loitran/DialoGPT-medium-peppapig
+Syamil/DialoGPT-small-pixal
+Avitas8485/Dialogpt-medium-v2
+Inhaexpress/DialoGPT-medium-harrypotter
+loitran/DialoGPT-medium-HarryPotter
+Syamil/DialoGPT-medium-pixal
+roykim/ko_chat
+Syamil/DialoGPT-medium-pixals
+minhcrafters/DialoGPT-small-Fukuya
+Warren00/DialoGPT-Med-peppa05a
+Syamil/DialoGPT-medium-pixalbot
+LelouchH/DiabloGPT-small-RaidenBot
+Inhaexpress/DialoGPT-medium-shrek124
+Inhaexpress/DialoGPT-medium-terra1
+nascar123/Discordtester000
+EnterNameBros/Offical-Senko-medium-update
+EnterNameBros/Offical-Senko-medium-update-2
+EnterNameBros/Offical-Senko-medium-update-3
+EnterNameBros/Senko-medium
+jiezhou1996/test
+ElMater06/SpaceCore
+EnterNameBros/Offical-Senko-medium
+EnterNameBros/Senko-san
+DBoi/Mayreel
+VMware/open-llama-0.7T-7B-open-instruct-v1.1
+Warren00/DialoGPT-Small-Peppa06_053123
+mpalacio/DialoGPT_ootwl
+protag07/DialoGPT-small-harrypotter
+h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v2
+cosimoiaia/Loquace-70m
+cosimoiaia/Loquace-410m
+MareNoceda/DialoGPT-medium-Luz
+GarrisonBot/DialoGPT-medium-herbertgarrison
+cosimoiaia/Loquace-12B
+cosimoiaia/Loquace-7B
+Deojoandco/ahGPT-small-v1
+PeachHeles/bmo
+Rays236/DialoGPT-small-harrypotter
+Deojoandco/ahGPT-small-v2
+Syamil/DialoGPT-medium-newpixal
+Coderhuynin/DialoGPT-large-TonyStark
+SotirisLegkas/final_socratic_dialoGPT
+ademfatnassi/bonjourGPT-small
+ikocx-to24/DialoGPT-small-planktongpt2
+EricYou/RickBot
+Ayaakaa/DialoGPT-small-Yoisaki-Kanade
+DoesNoPro/DialoGPT-small-RaidenG
+rajeshbot/DialoGPT-medium-Harry-to-Hari
+DoesNoPro/DialoGPT-small-RaidenG2
+SamsonP/pygmalion-6b-sft
+Deojoandco/ahDialoGPT-small-v4
+Syamil/GPTNeo-PIXAL-Model
+Syamil/GPTNeo-PIXAL-new
+Lattori/DiabloGPT-small-ConanBot
+Badzee/DialoGPT-medium-jackbot
+meowsynth/DialoGPT-small-sophie
+EnterNameBros/Senko-san-medium-baby
+Deojoandco/ah-GPT2-v4
+cosimoiaia/Loquace-20B
+EnterNameBros/Senko-san-medium-fox
+MarkyMarx/DialoGPT-medium-jimmybot2
+DhruvShek/DialoGPT
+Doge22/DialoGPT-medium-max
+lyogavin/Anima33B
+steerevo88/testThotBot
+steerevo88/workingthotBot
+YTTD/DialoGPT-medium-keiji
+MisguidedKerbal/DialoGPT-medium-kerbal
+Blueify/DialoGPT-small-model-lotr
+steerevo88/newthotBot
+paripi/Malishka
+finex/pfe-mohamed2023-RON
+DhruvShek/CMDGPT
+finex/pfe-mohamed2023-Hermione
+SkylerBlu9/DialoGPT-medium-CitrAI
+SkylerBlu9/DialoGPT-medium-autismobot
+MisguidedKerbal/DialoGPT-kerbalV2
+EnterNameBros/Senko-san-medium-a
+dderr/testmodel
+priyanshdahiya/DialoGPT-small-rick
+Goodnoway/DialoGPT-nerbalV2
+WompWomp1/DialoGPT-medium-Kirin
+lyogavin/Anima33B-merged
+peytonai/DialoGPT-small-wali-joshua
+MisguidedKerbal/DialoGPT-kerbalV3
+WompWomp1/DialoGPT-medium-Kaori
+OmarDiab/DialoGPT-small-Amogus
+servetier/DialoGPT-large-miguel
+OmarDiab/DialoGPT-small-Amogus-2
+steveglover/falcon-7b-instruct-telco-chat
+Lazycuber/Janemalion-6B
+Goodnoway/DialoGPT-nerbalV4
+gvij/gpt-j-6B-alpaca-gpt4
+papahawk/keya-560m
+JavRedstone/DialoGPT-small-tesseractist
+imuncomfortable/DiabloGPT-small-CocoAtarashi
+Amod/falcon7b-fine-tuned-therapy-merged
+Oshirigami1980/DialoGPT-medium-Steven
+Drevanil/DialoGPT-small-try
+Yaewe/1
+DataHammer/mozi_emotional_7b
+udxyz/HarryPotterBot
+Kasyapa/DialoGPT-medium-hagridbot
+lyogavin/Anima33B-DPO-Belle-1k
+JeanL-0/TestingModel-01
+TejasC2/DialoGPT-TejasBot
+lyogavin/Anima33B-DPO-Belle-1k-merged
+InterruptAI/Interrupt-350M
+Lucideds/Lucideds
+EnterNameBros/Senko-san-medium-sc
+EnterNameBros/Senko-san-medium-scl
+DaddySen/tighnari
+ettevyemerald/DialoGPT-medium-beomgyu
+minhcrafters/DialoGPT-small-mindwandering
+JNDankwah/DialoGPT-small-ThorCB
+minhcrafters/DialoGPT-medium-Zephirel
+papahawk/falcon-40b
+sonntt/DialoGPT-small-mindwandering
+pundapog/DialoGPT-medium-ethanbot
+TheBloke/Pygmalion-7B-SuperHOT-8K-GGML
+TheBloke/Pygmalion-7B-SuperHOT-8K-fp16
+pobierz69/model-6b-read-desc
+sidca/Cam
+EnterNameBros/Senko-san-medium-abc
+abhi-8/DialoGPT-medium-Michael
+abhi-8/DialoGPT-medium-Rick
+abhi-8/DialoGPT-medium-Joshua-twevy
+spitfire4794/dialogpt-small-rick
+abhi-8/Joshua-bot
+Justus-Jonas/Imaginary-Embeddings-Classic
+Justus-Jonas/Imaginary-Embeddings-SpeakerTokens
+Justus-Jonas/Imaginary-Embeddings-SpeakerTokens-STP
+spitfire4794/dialogpt-small-morty
+Kauru/DialoGPT-medium-Ranni
+crazydamns/DialoGPT-Johnny2
+jpandeinge/DialoGPT-medium-Oshiwambo-Bot
+custads23/pygmalion-1.3b
+HatCha01/DialoGPT-small-Batman
+crazydamns/DialoGPT-Johnny3
+assembleteams/curiouspi
+Kauru/DialoGPT-medium-Ranniv2
+SatwikShrivastava/narutoAI-chatbot
+digitalmax1/max
+adr2432/small-Joshua-Bot
+ObsessedCitrus/DialoGPT-small-PeterBot_ChatBot
+suarkadipa/HubermanGPT-small-v1
+suarkadipa/HarryPotterGPT-small-v1
+wevie1978/DialoGPT-medium-Kebb
+kopeqwerty/DialoGPT-medium-idotbot
+zelalt/Chatbot_T5-Prmtrs
+jarvissss/DialoGPT-medium-idotbot
+Magmadue/DiabloGPT-small-ei
+nicbull/DialoGPT-small-cryptonic
+nicbull/DialoGPT-small-cryptonic2
+chloe0x0/DialoGPT-small-Muty
+chloe0x0/mutyGPT
+alexwang05/DialoGPT-small-soph
+BHAndersonJr/DialoGPT-small-fry
+timothykim04/DialoGPT-medium-timothykim
+timothykim04/DialoGPT-medium-harrypotter
+Luca999/Limitlessai99
+Madgimmy/DiabloGPT-small-Madgimmy
+chloe0x0/mutyGPT-v2
+nuggster/DialoGPT-small-ianbot
+we1kkk/llama2-hf-qlora-oasst1
+IlyaGusev/saiga2_7b_lora
+IlyaGusev/gigasaiga_lora
+jliu03/JustinBot
+heliosbrahma/falcon-7b-finetuned-mental-health-conversational
+drunknmonk/GPT-Chandler
+jun-ai/llama2-qlora-finetunined-french
+WompWomp1/DialoGPT-large-Kirin
+WompWomp1/DialoGPT-large-Kirin-2
+WompWomp1/DialoGPT-large-Rin
+or4cl3ai/Aiden_t5
+jstawski/Llama-2-13b-hf-finetuned-SNG
+Gelmo/Halouf
+IlyaGusev/saiga2_13b_lora
+sophji/DialoGPT-small-GodlyLJ
+ATrapenard/Discord-Impersonation-Bot
+hiamitabha/llama2forbittlerobot
+IlyaGusev/saiga2_7b_gguf
+IlyaGusev/saiga2_13b_gguf
+TejasC2/DialoGPT-TejasBot2
+CNR223/DialoGPT-medium-MalcolmReynold
+minh-hahaha/DialoGPT-small-harrypotter
+phucnq1591999/SolanaChatBot
+marclove/llama-2-7b-chat-functions
+Sheerapi/test
+YukioKoito/DialoGPT-small-chibi
+YukioKoito/DialoGPT-small-twilight
+amzrana/lora
+ierhon/basic-chatbot
+Pula23/Hggjg
+Focs/DialoGPT-medium-tony-stark
+Kenobiwan/DialoGPT-small-AizakkuBot2
+drado/DialoGPT-small-joshua
+rah-1/Rahulio
+tanishqvashisht/DialoGPT-small-Joshua
+Kenobiwan/DialoGPT-small-AizakkuBot3
+Ridloo/DialogGPT-small-harrypotter
+dyuhong80/DialoGPT-large-ModerateEffortBombGPT
+ai-forever/paper_persi_chat
+paralleldynamix/paralleldynamix-model101
+kelSidenna/SoftwareRequirements-T5-Base
+renahime/DialoGPT-medium-umineko
+Shaun1204/RedGPT-Gormlee
+diwas7777/HarryBot
+heliosbrahma/falcon-7b-sharded-bf16-finetuned-mental-health-conversational
+kelSidenna/SoftwareReq-DialoGPT-medium
+shanover/medbot-conv
+J-Wiggler/DialoGPT-medium-Stanley
+gearski/DialoGPT-small-itskleb
+wozniakclub/llama-2-7b-medtext-llama2
+gearski/DialoGPT-medium-itskleb
+rebornrulz/Rulz-AI
+Quantsr/DialogGPT-small-Aeris
+ostorc/rick-sanchez-chatbot
+nicbull/DialoGPT-medium-nic
+nicbull/DialoGPT-medium-nic2
+gorkemgoknar/llama2-7f-moviechatbot-ggml-q4
+aka-nikko/ainz-ooal-gown
+llSourcell/medllama2_7b
+xtuner/Llama-2-7b-qlora-moss-003-sft
+xtuner/Llama-2-7b-qlora-arxiv-gentitle
+xtuner/internlm-7b-qlora-arxiv-gentitle
+xtuner/internlm-7b-qlora-alpaca-enzh
+xtuner/Baichuan-7B-qlora-arxiv-gentitle
+xtuner/Baichuan-7B-qlora-alpaca-enzh
+nicbull/DialoGPT-medium-leric
+Ian-14/llm13
+theastro/starkbot
+yupimrandy/DialoGPT-medium-butcher
+hclaim/clamgptattempt4
+yupimrandy/DialoGPT-medium-hughie
+nekohacker591/google1
+zhmx31/Mychatbot
+sk8ingcat/DialoGPT-small-TonyStark
+SanchoJR/meX
+xtuner/Qwen-7B-qlora-moss-003-sft
+xtuner/Qwen-7B-qlora-arxiv-gentitle
+xtuner/Qwen-7B-qlora-alpaca-enzh
+xtuner/Qwen-7B-qlora-oasst1
+xtuner/Baichuan-7B-qlora-oasst1
+xtuner/internlm-7b-qlora-oasst1
+4bit/medllama2_7b
+JGKD/JangoGPTv1.0
+kwankwan1000/DialoGPT-small-peppa
+JGKD/JangoGPTv1.5
+SoniR/config
+mjyh/falcon-7b-qlora-sclue-20230601-04-merged
+sadzip/SiberianPersona-ruGPT-3.5-qlora
+Wolffire88/DialoGPT-medium-Android16
+nolly3317/DialoGPT-small-alice
+feelinrealcute/pym-6b
+nixsy/AvasLove
+feelinrealcute/pym-13b7
+AleksiDu/HarryPotterBot
+Belcebuzzz/DialoGPT-small-TomoGF
+xtuner/internlm-7b-qlora-lawyer
+xtuner/internlm-7b-qlora-colorist
+xtuner/internlm-7b-qlora-coder
+xtuner/internlm-7b-qlora-open-platypus
+xtuner/internlm-7b-qlora-sql
+inception-mbzuai/jais-13b-chat
+Fredithefish/Guanaco-3B-Uncensored
+garrachonr/LlamaDos
+literallywood/DialoGPT-small-ekansh
+IALABS/Arturosfastfood
+javieitor/DialoGPT-medium-Rick
+Kuduxaaa/ava-small
+Al-Hathboor-Bikal-ai-2023/SRTIP-GPT-F7B-base
+L-R/LLmRa-355M
+Fredithefish/Guanaco-3B-Uncensored-v2
+xtuner/Llama-2-7b-qlora-colorist
+KE-AI/basicchatbot-kel
+josepholiver/TEST_MODEL_1
+PlaceReporter99/Utility_Bot_Chat
+J-Wiggler2/Caesar
+J-Wiggler2/Caesar2
+matvalan/vittae-cot
+Dawnstarhunter/DialoGPT-medium-Eveline
+sahilxyd/DialoGPT-small-joshua
+EnterNameBros/Senko-san-medium-abcd
+6adityaverma/DialoGPT-large-Walter
+6adityaverma/DialoGPT-large-Rick
+IlyaGusev/saiga2_70b_lora
+AyushK0808/StarWarsBot
+EnterNameBros/Senko-ai-medium
+Fredithefish/Guanaco-7B-Uncensored
+IlyaGusev/saiga2_70b_gguf
+glassofwine/DialoGPT-medium-johanwine
+zattio770/120-Days-of-LORA-v2-13B
+cannice/blenderbot-400M-distill-empathetic
+Likelihood94/Jackoftrades
+Hapski/DialoGPT-small-nene
+Fredithefish/Guanaco-13B-Uncensored
+kitbear444/DialoGPT-medium-kit
+SonnyAu/DialoGPT-dumbledore
+TheBloke/Guanaco-7B-Uncensored-GGUF
+TheBloke/Guanaco-13B-Uncensored-GGUF
+TheBloke/Guanaco-7B-Uncensored-GPTQ
+TheBloke/Guanaco-13B-Uncensored-GPTQ
+TheBloke/Guanaco-3B-Uncensored-v2-GPTQ
+TheBloke/Guanaco-3B-Uncensored-v2-GGML
+Codexister/DialoGPT-medium-KafkaBotV1
+mfodwo/STUGPT-small-v1
+asas-ai/jais-13b-chat-8bit
+SoupChickn/Valeen-DialoGPT
+Codexister/DialoGPT-medium-KafkaBotV2
+KoalaAI/OPT-1.3b-Chat
+Nafaille/nafaille6b
+DiTy/dialogpt
+Severus27/BeingWell_llama2_7b
+rayho/DialoGPT-small-polysoft
+TuningAI/Llama2_13B_startup_Assistant
+dipxsy/testmodel
+dipxsy/Jarvis-small
+Lazycuber/L2-7b-Chat-Guanaco-Uncensored
+dipxsy/jarvis-blend
+TheBloke/Guanaco-13B-Uncensored-AWQ
+TheBloke/Guanaco-7B-Uncensored-AWQ
+wstock04/shiddeatorBotV1
+Boqianshen/llama-2-7b-miniguanaco
+sebastiantrbl/distilgpt2-finetuned-wikitext2
+herzlixh/DialoGPTs_HarryFromHogwarts
+poiccard/jais-13b-chat-adn
+sebastiantrbl/test-DialoGPT-finetune
+uffergist/DialoGPT-small-cummy
+wstock04/shiddeatorBotV3.0
+wstock04/shiddeatorBotDUMB
+Applekinz/John
+Or4cl3/1nsfw
+sebastiantrbl/DialoGPT-finetuned-daily-dialog
+LTC-AI-Labs/L2-7b-Base-WVG-Uncensored
+hussain2030/jais13bchat2
+subabi/DialoGPT-medium-subabicord
+marblyso/DialoGPT-medium-collin
+Crataco/Pygmalion-6B-GGML
+dipxsy/jl
+testerhubhai/krnedo
+IAteSpaghettiForLunch/DialoGPT-medium-GLADoS
+IAteSpaghettiForLunch/GLADoSBOT
+Nikolai5592/DialoGPT-Medium-RickBot
+KuroganeNiello/medium-NebBot
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/huggingface_llms_metadata/hf_text_generation_models.txt b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/huggingface_llms_metadata/hf_text_generation_models.txt
new file mode 100644
index 00000000..085b642d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/huggingface/huggingface_llms_metadata/hf_text_generation_models.txt
@@ -0,0 +1,37632 @@
+distilgpt2
+gpt2-large
+gpt2-medium
+gpt2-xl
+gpt2
+t5-11b
+t5-3b
+t5-base
+t5-large
+t5-small
+0x7194633/keyt5-base
+0x7194633/keyt5-large
+0xDEADBEA7/DialoGPT-small-rick
+13on/gpt2-wishes
+13on/kw2t-wishes
+1Basco/DialoGPT-small-jake
+2early4coffee/DialoGPT-medium-deadpool
+2early4coffee/DialoGPT-small-deadpool
+2gud/DialogGPT-small-Koopsbot
+3koozy/gpt2-HxH
+ABBHISHEK/DialoGPT-small-harrypotter
+AIDynamics/DialoGPT-medium-MentorDealerGuy
+AJ/DialoGPT-small-ricksanchez
+AJ/rick-discord-bot
+AJ-Dude/DialoGPT-small-harrypotter
+AK270802/DialoGPT-small-harrypotter
+ARTeLab/it5-summarization-fanpage
+ARTeLab/it5-summarization-ilpost
+ARTeLab/it5-summarization-mlsum
+ATGdev/DialoGPT-small-harrypotter
+AVeryRealHuman/DialoGPT-small-TonyStark
+AbderrahimRezki/HarryPotterBot
+AbhinavSaiTheGreat/DialoGPT-small-harrypotter
+AccurateIsaiah/DialoGPT-small-jefftastic
+AccurateIsaiah/DialoGPT-small-mozark
+AccurateIsaiah/DialoGPT-small-mozarkv2
+AccurateIsaiah/DialoGPT-small-sinclair
+AdharshJolly/HarryPotterBot-Model
+AdrianGzz/DialoGPT-small-harrypotter
+Aero/Tsubomi-Haruno
+Ahmad/parsT5-base
+Ahmad/parsT5
+AiPorter/DialoGPT-small-Back_to_the_future
+Aibox/DialoGPT-small-rick
+AimB/mT5-en-kr-natural
+Akash7897/gpt2-wikitext2
+Akjder/DialoGPT-small-harrypotter
+AkshaySg/gramCorrection
+Aleksandar1932/distilgpt2-rock
+Aleksandar1932/gpt2-country
+Aleksandar1932/gpt2-hip-hop
+Aleksandar1932/gpt2-pop
+Aleksandar1932/gpt2-rock-124439808
+Aleksandar1932/gpt2-soul
+Aleksandar1932/gpt2-spanish-classics
+AlekseyKorshuk/comedy-scripts
+AlekseyKorshuk/horror-scripts
+Alerosae/SocratesGPT-2
+Alireza1044/dwight_bert_lm
+Alireza1044/michael_bert_lm
+AllwynJ/HarryBoy
+AndreLiu1225/t5-news-summarizer
+AndreLiu1225/t5-news
+AnonymousNLP/pretrained-model-1
+AnonymousNLP/pretrained-model-2
+AnonymousSub/SciFive_pubmedqa_question_generation
+AnonymousSub/T5_pubmedqa_question_generation
+AnthonyNelson/DialoGPT-small-ricksanchez
+AntonClaesson/movie-plot-generator
+Apisate/DialoGPT-small-jordan
+Apisate/Discord-Ai-Bot
+Apoorva/k2t-test
+ArJakusz/DialoGPT-small-stark
+Aran/DialoGPT-medium-harrypotter
+Aran/DialoGPT-small-harrypotter
+Arcktosh/DialoGPT-small-rick
+AriakimTaiyo/DialoGPT-cultured-Kumiko
+AriakimTaiyo/DialoGPT-revised-Kumiko
+AriakimTaiyo/DialoGPT-small-Kumiko
+AriakimTaiyo/DialoGPT-small-Rikka
+Aries/T5_question_answering
+Aries/T5_question_generation
+ArtemisZealot/DialoGTP-small-Qkarin
+Aruden/DialoGPT-medium-harrypotterall
+ArvinZhuang/BiTAG-t5-large
+Aspect11/DialoGPT-Medium-LiSBot
+Asuramaru/DialoGPT-small-rintohsaka
+Atchuth/DialoGPT-small-MichaelBot
+Augustvember/WOKKAWOKKA
+Augustvember/test
+Augustvember/wokka
+Augustvember/wokka2
+Augustvember/wokka5
+Augustvember/wokkabottest2
+AvatarXD/DialoGPT-medium-Blitzo
+Awsaf/DialoGPT-medium-eren
+Awsaf/large-eren
+Axcel/DialoGPT-small-rick
+Ayah/GPT2-DBpedia
+Ayjayo/DialoGPT-medium-AyjayoAI
+Ayran/DialoGPT-medium-harry-potter-1-through-3
+Ayran/DialoGPT-medium-harry-potter-1-through-4-plus-6-e18
+Ayran/DialoGPT-medium-harry-potter-1-through-4-plus-6
+Ayran/DialoGPT-small-gandalf
+Ayran/DialoGPT-small-harry-potter-1-through-3
+Azaghast/GPT2-SCP-ContainmentProcedures
+Azaghast/GPT2-SCP-Descriptions
+Azaghast/GPT2-SCP-Miscellaneous
+Azuris/DialoGPT-medium-envy
+Azuris/DialoGPT-medium-senorita
+Azuris/DialoGPT-small-envy
+BSC-LT/gpt2-large-bne
+BW/TEST
+Backedman/DialoGPT-small-Anika
+BalajiSathesh/DialoGPT-small-harrypotter
+Barkavi/t5base_totto
+Batsy24/DialoGPT-medium-Twilight_BellaBot
+Batsy24/DialoGPT-small-Twilight_EdBot
+BeIR/query-gen-msmarco-t5-base-v1
+BeIR/query-gen-msmarco-t5-large-v1
+Bee-Garbs/DialoGPT-real-cartman-small
+BenDavis71/GPT-2-Finetuning-AIRaid
+BenWitter/DialoGPT-small-Tyrion
+Benicio/t5-small-finetuned-en-to-ru
+Bhuvana/t5-base-spellchecker
+Biasface/DDDC
+Biasface/DDDC2
+BigSalmon/DaBlank
+BigSalmon/GPT2HardandEasy
+BigSalmon/GPTHeHe
+BigSalmon/GPTT
+BigSalmon/InfillFormalLincoln
+BigSalmon/InformalToFormalLincoln14
+BigSalmon/InformalToFormalLincoln15
+BigSalmon/InformalToFormalLincoln16
+BigSalmon/InformalToFormalLincoln17
+BigSalmon/InformalToFormalLincoln18
+BigSalmon/InformalToFormalLincoln19
+BigSalmon/InformalToFormalLincoln20
+BigSalmon/InformalToFormalLincoln21
+BigSalmon/InformalToFormalLincoln22
+BigSalmon/InformalToFormalLincoln23
+BigSalmon/InformalToFormalLincoln24
+BigSalmon/InformalToFormalLincoln25
+BigSalmon/InformalToFormalLincolnDistilledGPT2
+BigSalmon/Lincoln4
+BigSalmon/MrLincoln
+BigSalmon/MrLincoln10
+BigSalmon/MrLincoln11
+BigSalmon/MrLincoln12
+BigSalmon/MrLincoln13
+BigSalmon/MrLincoln2
+BigSalmon/MrLincoln3
+BigSalmon/MrLincoln4
+BigSalmon/MrLincoln5
+BigSalmon/MrLincoln6
+BigSalmon/MrLincoln8
+BigSalmon/ParaphraseParentheses
+BigSalmon/ParaphraseParentheses2.0
+BigSalmon/Points
+BigSalmon/Points2
+BigSalmon/SimplifyText
+BigSalmon/T52
+BigSalmon/T5F
+BigSalmon/T5Salmon
+BigSalmon/T5Salmon2
+BigSalmon/TS3
+BigTooth/DialoGPT-Megumin
+BigTooth/DialoGPT-small-tohru
+BigTooth/Megumin-v0.2
+BigeS/DialoGPT-small-Rick
+Bimal/my_bot_model
+BinksSachary/DialoGPT-small-shaxx
+BinksSachary/ShaxxBot
+BinksSachary/ShaxxBot2
+BlightZz/DialoGPT-medium-Kurisu
+BlightZz/MakiseKurisu
+BlueGamerBeast/DialoGPT-small-Morgana
+BossLee/t5-gec
+BotterHax/DialoGPT-small-harrypotter
+Broadus20/DialoGPT-small-harrypotter
+Broadus20/DialoGPT-small-joshua
+BrunoNogueira/DialoGPT-kungfupanda
+Brykee/DialoGPT-medium-Morty
+Bubb-les/DisloGPT-medium-HarryPotter
+BumBelDumBel/TRUMP
+BumBelDumBel/ZORK-AI-TEST
+BumBelDumBel/ZORK_AI_SCIFI
+CallumRai/HansardGPT2
+CalvinHuang/mt5-small-finetuned-amazon-en-es
+Camzure/MaamiBot-test
+Canadiancaleb/DialoGPT-small-jesse
+Canadiancaleb/DialoGPT-small-walter
+CarlosPR/mt5-spanish-memmories-analysis
+CasualHomie/DialoGPT-small-harrypotter
+Chae/botman
+Chaewon/mmnt_decoder_en
+Chaewon/mnmt_decoder_en
+Chakita/Friends
+Chakita/gpt2_mwp
+Chalponkey/DialoGPT-small-Barry
+ChaseBread/DialoGPT-small-harrypotter
+CheonggyeMountain-Sherpa/kogpt-trinity-poem
+Chiuchiyin/DialoGPT-small-Donald
+ChrisVCB/DialoGPT-medium-cmjs
+ChrisVCB/DialoGPT-medium-ej
+Chuah/DialoGPT-small-harrypotter
+ChukSamuels/DialoGPT-small-Dr.FauciBot
+Chun/DialoGPT-large-dailydialog
+Chun/DialoGPT-medium-dailydialog
+Chun/DialoGPT-small-dailydialog
+Ciruzzo/DialoGPT-small-harrypotter
+ClaudeCOULOMBE/RickBot
+CleveGreen/FieldClassifier_v2_gpt
+CleveGreen/JobClassifier_v2_gpt
+CodeDanCode/CartmenBot
+CodeDanCode/SP-KyleBot
+CoderBoy432/DialoGPT-small-harrypotter
+CoderEFE/DialoGPT-marxbot
+CoderEFE/DialoGPT-medium-marx
+CoffeeAddict93/gpt1-call-of-the-wild
+CoffeeAddict93/gpt2-call-of-the-wild
+CoffeeAddict93/gpt2-medium-call-of-the-wild
+CoffeeAddict93/gpt2-medium-modest-proposal
+CoffeeAddict93/gpt2-modest-proposal
+Coldestadam/Breakout_Mentors_SpongeBob_Model
+ComCom/gpt2-large
+ComCom/gpt2-medium
+ComCom/gpt2
+cometrain/neurotitle-rugpt3-small
+Connor/DialoGPT-small-rick
+Connorvr/BrightBot-small
+Connorvr/TeachingGen
+CopymySkill/DialoGPT-medium-atakan
+Corvus/DialoGPT-medium-CaptainPrice-Extended
+Corvus/DialoGPT-medium-CaptainPrice
+Coyotl/DialoGPT-test2-arthurmorgan
+CracklesCreeper/Piglin-Talks-Harry-Potter
+CrisLeaf/generador-de-historias-de-tolkien
+Cryptikdw/DialoGPT-small-rick
+Cthyllax/DialoGPT-medium-PaladinDanse
+CurtisBowser/DialoGPT-medium-sora
+CurtisBowser/DialoGPT-small-sora
+CyberMuffin/DialoGPT-small-ChandlerBot
+DARKVIP3R/DialoGPT-medium-Anakin
+DHBaek/gpt2-stackoverflow-question-contents-generator
+Daivakai/DialoGPT-small-saitama
+Davlan/byt5-base-eng-yor-mt
+Davlan/byt5-base-yor-eng-mt
+Davlan/mT5_base_yoruba_adr
+Davlan/mt5-small-en-pcm
+Davlan/mt5-small-pcm-en
+Davlan/mt5_base_eng_yor_mt
+Davlan/mt5_base_yor_eng_mt
+Dawit/DialogGPT-small-ironman
+DecafNosebleed/DialoGPT-small-ScaraBot
+DecafNosebleed/scarabot-model
+DeepESP/gpt2-spanish-medium
+DeepESP/gpt2-spanish
+Deniskin/emailer_medium_300
+Deniskin/gpt3_medium
+Denny29/DialoGPT-medium-asunayuuki
+Devid/DialoGPT-small-Miku
+Devmapall/paraphrase-quora
+Dilmk2/DialoGPT-small-harrypotter
+Dimedrolza/DialoGPT-small-cyberpunk
+DingleyMaillotUrgell/homer-bot
+Doiman/DialoGPT-medium-harrypotter
+DongHai/DialoGPT-small-rick
+Dongmin/testmodel
+Waynehillsdev/Wayne_NLP_mT5
+Waynehillsdev/Waynehills_summary_tensorflow
+Doquey/DialoGPT-small-Luisbot1
+Doquey/DialoGPT-small-Michaelbot
+Doxophobia/DialoGPT-medium-celeste
+Dragoniod1596/DialoGPT-small-Legacies
+Dreyzin/DialoGPT-medium-avatar
+DueLinx0402/DialoGPT-small-harrypotter
+Duugu/jakebot3000
+Dyzi/DialoGPT-small-landcheese
+EColi/sponsorblock-base-v1
+EEE/DialoGPT-medium-brooke
+EEE/DialoGPT-small-aang
+EEE/DialoGPT-small-yoda
+ESPersonnel/DialoGPT-small-got
+Eagle3ye/DialoGPT-small-PeppaPig
+EasthShin/Chatbot-LisaSimpson-DialoGPT
+EasthShin/Youth_Chatbot_Kogpt2-base
+Edaiplay/edaiplay-t5model
+Einmalumdiewelt/T5-Base_GNAD
+Elzen7/DialoGPT-medium-harrypotter
+Emi2160/DialoGPT-small-Neku
+EmileAjar/DialoGPT-small-harrypotter
+EmileAjar/DialoGPT-small-peppapig
+Erfan/mT5-base_Farsi_Title_Generator
+Erfan/mT5-base_Farsi_Title_Generator_plus
+Erfan/mT5-small_Farsi_Title_Generator
+Erikaka/DialoGPT-small-loki
+EstoyDePaso/DialoGPT-small-harrypotter
+Eunooeh/mnmt_gpt2
+EuropeanTurtle/DialoGPT-small-mrcobb
+ExEngineer/DialoGPT-medium-jdt
+Exilon/DialoGPT-large-quirk
+EzioDD/house
+FFF000/dialogpt-FFF
+FangLee/DialoGPT-small-Kirito
+Felipehonorato/storIA
+Ferch423/gpt2-small-portuguese-wikipediabio
+Filosofas/DialoGPT-medium-PALPATINE
+Finnish-NLP/gpt2-finnish
+Finnish-NLP/gpt2-large-finnish
+Finnish-NLP/gpt2-medium-finnish
+Flampt/DialoGPT-medium-Sheldon
+For/sheldonbot
+Forest/gpt2-fanfic
+FosterPatch/GoT-test
+Frederick0291/t5-small-finetuned-billsum
+Frederick0291/t5-small-finetuned-xsum
+Fu10k/DialoGPT-medium-Rick
+FutureFanatik/DialoGPT-small-rick
+GabbyDaBUNBUN/DialoGPT-medium-PinkiePie
+Galaxy/DialoGPT-small-hermoine
+Galuh/id-journal-gpt2
+GamerMan02/DialoGPT-medium-gamerbot
+GammaPTest/e_bot
+Gantenbein/ADDI-CH-GPT2
+Gantenbein/ADDI-DE-GPT2
+Gantenbein/ADDI-FI-GPT2
+Gantenbein/ADDI-FR-GPT2
+Gantenbein/ADDI-IT-GPT2
+Gappy/DialoGPT-small-Zhongli
+Geezy/DialoGPT-small-guy
+GenDelport/DialoGPT-small-harrypotter
+GermanT5/german-t5-oscar-ep1-prompted-germanquad
+GermanT5/t5-base-german-3e
+GermanT5/t5-efficient-gc4-german-base-nl36-old
+GermanT5/t5-efficient-gc4-german-small-el32
+GermanT5/t5-efficient-oscar-german-small-el32
+GnomeX/mt5-small-finetuned-amazon-en-es
+Gowtham25/DialoGPT-small-jackie
+Gregor-Davies/DialoGPT-small-rick
+Greysan/DialoGPT-medium-TOH
+GroNLP/gpt2-medium-dutch-embeddings
+GroNLP/gpt2-medium-italian-embeddings
+GroNLP/gpt2-small-dutch-embeddings
+GroNLP/gpt2-small-dutch
+GroNLP/gpt2-small-italian-embeddings
+GroNLP/gpt2-small-italian
+Guard-SK/DialoGPT-medium-ricksanchez
+Guard-SK/DialoGPT-small-ricksanchez
+GunjanPantha/DialoGPT-small-gameofthrones
+Guy0/DialoGPT-small-Batmanbotty
+HAttORi/DialoGPT-Medium-zerotwo
+HJK/PickupLineGenerator
+HScomcom/gpt2-MyLittlePony
+HScomcom/gpt2-fairytales
+HScomcom/gpt2-friends
+HScomcom/gpt2-game-of-thrones
+HScomcom/gpt2-lovecraft
+HScomcom/gpt2-theoffice
+HackyHackyMan/DialoGPT-small-harrypotter
+Hadron/DialoGPT-medium-nino
+hchang/t5-small-finetuned-xsum
+Hallzy/Peterbot
+Hamas/DialoGPT-large-jake
+Hamas/DialoGPT-large-jake2
+Hamas/DialoGPT-large-jake3
+Hamas/DialoGPT-large-jake4
+Hamhams/DialoGPT-small-rick
+HamidRezaAttar/gpt2-product-description-generator
+HansAnonymous/DialoGPT-medium-rick
+HansAnonymous/DialoGPT-small-shrek
+Haotian/distilgpt2-finetuned-wikitext2
+HarryPuttar/HarryPotterDC
+Harshal6927/Jack_Sparrow_GPT
+Harshal6927/Tony_Stark_GPT
+Havokx/DialoGPT-small-Rick
+Heldhy/testingAgain
+Hellisotherpeople/T5_Reassuring_Parables
+HelloRusk/t5-base-parasci
+HelloRusk/t5-small-parasci
+HenryHXR/t5-base-finetuned-scitldr
+HeyLucasLeao/byt5-base-pt-product-reviews
+HeyLucasLeao/byt5-small-pt-product-reviews
+HoeioUser/kod
+MagnusChase7/DialoGPT-medium-harrypotter
+HooshvareLab/gpt2-fa-comment
+HooshvareLab/gpt2-fa-poetry
+HooshvareLab/gpt2-fa
+Htenn/DialoGPT-small-spongebob
+Htenn/DialoGPT-small-spongebobv2
+HueJanus/DialoGPT-small-ricksanchez
+HypNyx/DialoGPT-small-DwightBot
+HypNyx/DialoGPT-small-Thanos
+HypedKid/PeterBot
+IDEA-CCNL/Randeng-MegatronT5-770M
+IDEA-CCNL/Wenzhong-GPT2-3.5B
+IDEA-CCNL/Yuyuan-GPT2-3.5B
+ILoveThatLady/DialoGPT-small-rickandmorty
+ITNODove/DialoGPT-medium-cyberbones
+Iacopo/Shakespear-GPT2
+Icemiser/chat-test
+Ifromspace/GRIEFSOFT-walr
+Ifromspace/GRIEFSOFT
+IlyaGusev/rugpt3medium_sum_gazeta
+IlyaGusev/rut5_base_headline_gen_telegram
+IlyaGusev/rut5_base_sum_gazeta
+IlyaGusev/sber_rut5_filler
+Ilyabarigou/Genesis-harrybotter
+ImAPizza/DialoGPT-medium-albert
+ImAPizza/DialoGPT-medium-alberttwo
+Inkdrop/gpt2-property-classifier
+Invincible/Chat_bot-Harrypotter-medium
+Invincible/Chat_bot-Harrypotter-small
+Irina/Fairytale
+Irina/cyoa_GPT3Medium
+Irina/fantasy_GPT3Medium
+Irina/trans_GPT3Medium
+Irina/trans_cyoa_GPT3Medium
+Irina/trans_cyoa_rollouted
+Istiaque190515/harry_bot_discord
+Istiaque190515/harry_potter
+ItelAi/Chatbot
+ItoYagura/DialoGPT-medium-tohru
+ItzJorinoPlays/DialoGPT-small-PickleRick
+J-Chiang/DialoGPT-small-thor
+JDBN/t5-base-fr-qg-fquad
+JDS22/DialoGPT-medium-HarryPotterBot
+Javel/linkedin_post_t5
+Jedi33/tonystarkAI
+Jeffrey/DialoGPT-small-Jeffrey
+JerryQu/v2-distilgpt2
+JimmyHodl/DialoGPT-medium
+Jipski/Flos_gpt-2_erw-02
+Jipski/Flos_gpt-2_erw
+Jipski/MegStuart_gpt-2
+Jipski/gpt2-Flo-BasBoettcher-Chefkoch
+Jipski/gpt2-Flo-BasBoettcher
+Jipski/gpt2-FloSolo
+Jllama/dialoGPT-small-Joshua-test
+Jonesy/DialoGPT-medium_Barney
+Jonesy/FG_OLD
+Jonesy/DialoGPT-small_JT
+JorgeSarry/est5-summarize
+JorgeSarry/est5base-simplify
+JorgeSarry/est5base
+Julianqll/DialoGPT-small-finalmorty
+Julianqll/DialoGPT-small-ricksanchez
+Jung/t5-base
+Jung/t5-large-finetuned
+Jung/t5-large
+K024/mt5-zh-ja-en-trimmed
+KAIHATSU/DialoGPT-small-rick
+KENNETHFOO/DialoGPT-medium-harrypotter
+KES/T5-KES
+KES/T5-TTParser
+KETI-AIR/ke-t5-base-ko
+KETI-AIR/ke-t5-base-newslike
+KETI-AIR/ke-t5-base
+KETI-AIR/ke-t5-large-ko
+KETI-AIR/ke-t5-large-newslike
+KETI-AIR/ke-t5-large
+KETI-AIR/ke-t5-small-ko
+KETI-AIR/ke-t5-small-newslike
+KETI-AIR/ke-t5-small
+KK/DialoGPT-small-Rick
+KOSTAS/DialoGPT-small-Cleverbot
+KP2500/KPBot
+Kai0857/DialoGPT-small-harrypotter
+Kail91/DialoGPT-small-PeraltaBot
+Kairu/DialoGPT-small-Rick
+Kairu/RICKBOT
+KakoSi/Smolmm3
+KakoSi/opaazzi
+Kaledmgo/DialoGPT-small-donajulia
+Kamel/t5-darija-summarization
+Kargan/DialoGPT-small-randombot
+KaydenSou/Joshua
+Keen/DialoGPT-small-potter
+KekLord/DialoGPT-small-rick3
+Keqing/Keqing-Siesta
+Keqipig/DialoGPT-small-spamton
+KhanAdeeb/model-tony-stark
+Kirili4ik/ruDialoGpt3-medium-finetuned-telegram-6ep
+Kirili4ik/ruDialoGpt3-medium-finetuned-telegram
+Kithogue/T5_Question_Generation
+KnutZuidema/DialoGPT-small-morty
+Koriyy/DialoGPT-medium-gf
+Koro/DialoGPT-medium-rickandmorty
+KringleClaus/Dialog-santa
+KrishParikh/gpt2_imdb_movie_plots
+KrispyIChris/DialoGPT-small-harrypotter
+Kryptone/Burobot
+Kryptone/RinAI
+Kryptone/monikAI-Unstable
+Kryptone/monikAI
+Kshaunish/DialoGPT-small-rick
+Kush/DialoGPT-small-harrypotter
+LARACHNIDE/DialogGPT-small-sw
+LactoseLegend/DialoGPT-small-Rick
+Laeyoung/BTS-comments-generator
+Laezor/DialoGPT-small-witcher1
+Laezor/DialoGPT-small-yakuza_0
+LaiJY/DialoGPTChatbot
+Langame/distilgpt2-starter
+Langame/gpt2-starter-2
+Langame/gpt2-starter
+Langame/gpt2-waiting
+Langboat/mengzi-t5-base
+Laptop/DialoGPT-small-gandalf
+LenaT/distilgpt2-finetuned-wikitext2
+Lenza/DialoGPT-medium-Kobayashi
+LeoCordoba/mt5-small-cc-news-es-titles
+LeoCordoba/mt5-small-mlsum
+Leonel/DialoGPT-small-chandler
+Leostronkest/DialoGPT-small-michael
+Leostronkest/DialoGPT
+Leviii03/Dialogpt-small-Jake99
+Littlemilk/autobiography-generator
+Lizardon/Peterbot
+LorenzoDeMattei/GePpeTto
+Lovery/Aqua
+Lucdi90/DialoGPT-medium-XiaoBot
+Luciano/gpt2-small-portuguese-finetuned-peticoes
+Luciano/gpt2-small-portuguese-finetuned-tcu-acordaos
+LuckyWill/DialoGPT-small-JakeBot
+LukasStankevicius/t5-base-lithuanian-news-summaries-175
+Lurka/DialoGPT-medium-isseibot
+Lurka/DialoGPT-medium-kon
+Luxiere/DialoGPT-medium-tyrion
+MAUtastic/DialoGPT-medium-RickandMortyBot
+MCUxDaredevil/DialoGPT-small-rick
+ML-ass/english_decoder
+MM98/ft-bz
+MM98/mt5-small-finetuned-pnsum
+MM98/mt5-small-finetuned-pnsum2
+KeLiu/Title-Gen
+MS366/DialoGPT-small-vision
+MYX4567/distilgpt2-finetuned-wikitext2
+MYX4567/gpt2-wikitext2
+MaalK/DialoGPT-small-Petyr
+MadhanKumar/DialoGPT-small-HarryPotter
+MadhanKumar/HarryPotter-Bot
+Madhour/gpt2-eli5
+MagmaCubes1133/DialoGPT-large-rick
+MaiaMaiaMaia/DialoGPT-medium-PeterParkerBot
+Malaina/mt5-large-spider
+Mamatha/agri-gpt2
+Mandy/DialoGPT-small-Mikasa
+Manthan/DialoGPT-small-harrypotter
+Mara/DialoGPT-medium-harrypotter
+Mary222/GPT2_RU_GAME
+Mary222/GPT2_Vit
+Mary222/GPT2_standard
+Mary222/MADE_AI_Dungeon_model_RUS
+Mary222/Models_testing_ai
+Mary222/SBERBANK_RUS
+MathiasVS/DialoGPT-small-RickAndMorty
+MaxW0748/DialoGPT-small-Rick
+MayankGupta/DialoGPT-small-harrypotter
+Meli/GPT2-Prompt
+MiBo/SADistilGPT2
+MiBo/SAGPT2
+Michael711/feinschwarz
+MichaelTheLearner/DialoGPT-medium-harry
+Michau/t5-base-en-generate-headline
+MickyMike/0-GPT2SP-appceleratorstudio
+MickyMike/0-GPT2SP-aptanastudio
+MickyMike/0-GPT2SP-bamboo
+MickyMike/0-GPT2SP-clover
+MickyMike/0-GPT2SP-datamanagement
+MickyMike/0-GPT2SP-duracloud
+MickyMike/0-GPT2SP-jirasoftware
+MickyMike/0-GPT2SP-mesos
+MickyMike/0-GPT2SP-moodle
+MickyMike/0-GPT2SP-mule
+MickyMike/0-GPT2SP-mulestudio
+MickyMike/0-GPT2SP-springxd
+MickyMike/0-GPT2SP-talenddataquality
+MickyMike/0-GPT2SP-talendesb
+MickyMike/0-GPT2SP-titanium
+MickyMike/0-GPT2SP-usergrid
+MickyMike/00-GPT2SP-appceleratorstudio-aptanastudio
+MickyMike/00-GPT2SP-appceleratorstudio-titanium
+MickyMike/00-GPT2SP-aptanastudio-titanium
+MickyMike/00-GPT2SP-mesos-usergrid
+MickyMike/00-GPT2SP-mule-mulestudio
+MickyMike/00-GPT2SP-mulestudio-mule
+MickyMike/00-GPT2SP-titanium-appceleratorstudio
+MickyMike/00-GPT2SP-usergrid-mesos
+MickyMike/000-GPT2SP-appceleratorstudio-mule
+MickyMike/000-GPT2SP-appceleratorstudio-mulestudio
+MickyMike/000-GPT2SP-clover-usergrid
+MickyMike/000-GPT2SP-mule-titanium
+MickyMike/000-GPT2SP-mulestudio-titanium
+MickyMike/000-GPT2SP-talenddataquality-appceleratorstudio
+MickyMike/000-GPT2SP-talenddataquality-aptanastudio
+MickyMike/000-GPT2SP-talendesb-mesos
+MickyMike/1-GPT2SP-appceleratorstudio
+MickyMike/1-GPT2SP-aptanastudio
+MickyMike/1-GPT2SP-bamboo
+MickyMike/1-GPT2SP-clover
+MickyMike/1-GPT2SP-datamanagement
+MickyMike/1-GPT2SP-duracloud
+MickyMike/1-GPT2SP-jirasoftware
+MickyMike/1-GPT2SP-mesos
+MickyMike/1-GPT2SP-moodle
+MickyMike/1-GPT2SP-mule
+MickyMike/1-GPT2SP-mulestudio
+MickyMike/1-GPT2SP-springxd
+MickyMike/1-GPT2SP-talenddataquality
+MickyMike/1-GPT2SP-talendesb
+MickyMike/1-GPT2SP-titanium
+MickyMike/1-GPT2SP-usergrid
+MickyMike/11-GPT2SP-appceleratorstudio-aptanastudio
+MickyMike/11-GPT2SP-appceleratorstudio-titanium
+MickyMike/11-GPT2SP-aptanastudio-titanium
+MickyMike/11-GPT2SP-mesos-usergrid
+MickyMike/11-GPT2SP-mule-mulestudio
+MickyMike/11-GPT2SP-mulestudio-mule
+MickyMike/11-GPT2SP-titanium-appceleratorstudio
+MickyMike/11-GPT2SP-usergrid-mesos
+MickyMike/111-GPT2SP-appceleratorstudio-mule
+MickyMike/111-GPT2SP-appceleratorstudio-mulestudio
+MickyMike/111-GPT2SP-clover-usergrid
+MickyMike/111-GPT2SP-mule-titanium
+MickyMike/111-GPT2SP-mulestudio-titanium
+MickyMike/111-GPT2SP-talenddataquality-appceleratorstudio
+MickyMike/111-GPT2SP-talenddataquality-aptanastudio
+MickyMike/111-GPT2SP-talendesb-mesos
+MickyMike/2-GPT2SP-appceleratorstudio
+MickyMike/2-GPT2SP-aptanastudio
+MickyMike/2-GPT2SP-bamboo
+MickyMike/2-GPT2SP-clover
+MickyMike/2-GPT2SP-datamanagement
+MickyMike/2-GPT2SP-duracloud
+MickyMike/2-GPT2SP-jirasoftware
+MickyMike/2-GPT2SP-mesos
+MickyMike/2-GPT2SP-moodle
+MickyMike/2-GPT2SP-mule
+MickyMike/2-GPT2SP-mulestudio
+MickyMike/2-GPT2SP-springxd
+MickyMike/2-GPT2SP-talenddataquality
+MickyMike/2-GPT2SP-talendesb
+MickyMike/2-GPT2SP-titanium
+MickyMike/2-GPT2SP-usergrid
+MickyMike/22-GPT2SP-appceleratorstudio-aptanastudio
+MickyMike/22-GPT2SP-appceleratorstudio-titanium
+MickyMike/22-GPT2SP-aptanastudio-titanium
+MickyMike/22-GPT2SP-mesos-usergrid
+MickyMike/22-GPT2SP-mule-mulestudio
+MickyMike/22-GPT2SP-mulestudio-mule
+MickyMike/22-GPT2SP-titanium-appceleratorstudio
+MickyMike/22-GPT2SP-usergrid-mesos
+MickyMike/222-GPT2SP-appceleratorstudio-mule
+MickyMike/222-GPT2SP-appceleratorstudio-mulestudio
+MickyMike/222-GPT2SP-clover-usergrid
+MickyMike/222-GPT2SP-mule-titanium
+MickyMike/222-GPT2SP-mulestudio-titanium
+MickyMike/222-GPT2SP-talenddataquality-appceleratorstudio
+MickyMike/222-GPT2SP-talenddataquality-aptanastudio
+MickyMike/222-GPT2SP-talendesb-mesos
+MickyMike/6-GPT2SP-appceleratorstudio
+MickyMike/6-GPT2SP-aptanastudio
+MickyMike/6-GPT2SP-bamboo
+MickyMike/6-GPT2SP-clover
+MickyMike/6-GPT2SP-datamanagement
+MickyMike/6-GPT2SP-duracloud
+MickyMike/6-GPT2SP-jirasoftware
+MickyMike/6-GPT2SP-mesos
+MickyMike/6-GPT2SP-moodle
+MickyMike/6-GPT2SP-mule
+MickyMike/6-GPT2SP-mulestudio
+MickyMike/6-GPT2SP-springxd
+MickyMike/6-GPT2SP-talenddataquality
+MickyMike/6-GPT2SP-talendesb
+MickyMike/6-GPT2SP-titanium
+MickyMike/6-GPT2SP-usergrid
+MickyMike/66-GPT2SP-appceleratorstudio-aptanastudio
+MickyMike/66-GPT2SP-appceleratorstudio-titanium
+MickyMike/66-GPT2SP-aptanastudio-titanium
+MickyMike/66-GPT2SP-mesos-usergrid
+MickyMike/66-GPT2SP-mule-mulestudio
+MickyMike/66-GPT2SP-mulestudio-mule
+MickyMike/66-GPT2SP-titanium-appceleratorstudio
+MickyMike/66-GPT2SP-usergrid-mesos
+MickyMike/666-GPT2SP-appceleratorstudio-mule
+MickyMike/666-GPT2SP-appceleratorstudio-mulestudio
+MickyMike/666-GPT2SP-clover-usergrid
+MickyMike/666-GPT2SP-mule-titanium
+MickyMike/666-GPT2SP-mulestudio-titanium
+MickyMike/666-GPT2SP-talenddataquality-appceleratorstudio
+MickyMike/666-GPT2SP-talenddataquality-aptanastudio
+MickyMike/666-GPT2SP-talendesb-mesos
+MickyMike/7-GPT2SP-appceleratorstudio
+MickyMike/7-GPT2SP-aptanastudio
+MickyMike/7-GPT2SP-bamboo
+MickyMike/7-GPT2SP-clover
+MickyMike/7-GPT2SP-datamanagement
+MickyMike/7-GPT2SP-duracloud
+MickyMike/7-GPT2SP-jirasoftware
+MickyMike/7-GPT2SP-mesos
+MickyMike/7-GPT2SP-moodle
+MickyMike/7-GPT2SP-mule
+MickyMike/7-GPT2SP-mulestudio
+MickyMike/7-GPT2SP-springxd
+MickyMike/7-GPT2SP-talenddataquality
+MickyMike/7-GPT2SP-talendesb
+MickyMike/7-GPT2SP-titanium
+MickyMike/7-GPT2SP-usergrid
+MickyMike/77-GPT2SP-appceleratorstudio-aptanastudio
+MickyMike/77-GPT2SP-appceleratorstudio-titanium
+MickyMike/77-GPT2SP-aptanastudio-titanium
+MickyMike/77-GPT2SP-mesos-usergrid
+MickyMike/77-GPT2SP-mule-mulestudio
+MickyMike/77-GPT2SP-mulestudio-mule
+MickyMike/77-GPT2SP-titanium-appceleratorstudio
+MickyMike/77-GPT2SP-usergrid-mesos
+MickyMike/777-GPT2SP-appceleratorstudio-mule
+MickyMike/777-GPT2SP-appceleratorstudio-mulestudio
+MickyMike/777-GPT2SP-clover-usergrid
+MickyMike/777-GPT2SP-mule-titanium
+MickyMike/777-GPT2SP-mulestudio-titanium
+MickyMike/777-GPT2SP-talenddataquality-appceleratorstudio
+MickyMike/777-GPT2SP-talenddataquality-aptanastudio
+MickyMike/777-GPT2SP-talendesb-mesos
+MickyMike/CT5
+MicroTurtle/DialoGPT-medium-shawn
+Midhunkrishna/DialoGPT-small-bjk
+Mierln/SmartHarry
+MightyCoderX/DialoGPT-medium-EdwardElric
+MilaBromm/TNGMain
+MilkyLatte/q-g-model
+IlyaGusev/rut5_tox
+Mirelle/t5-small-finetuned-ro-to-en
+Mirjam/test-finetuned
+MisterFavourite/Genesis_KJV_fine_tuned
+MisterFavourite/Sherlock_Holmes_fine_tuned
+Modfiededition/t5-base-fine-tuned-on-jfleg
+ModzabazeR/small-okaberintaro
+MoeZilla/Chatbot
+Mohsin272/DialoGPT-medium-harrypotter
+Momerio/meigen_generate_Japanese
+Mona/DialoGPT-small-harrypotter
+MoonlitEtherna/DialoGPT-small-Nyivae
+Motty/DialogGPT
+MrDuckerino/DialoGPT-medium-Rick
+MrE/DialoGPT-medium-SARGE
+MrE/DialoGPT-medium-SARGER1
+MrE/DialoGPT-medium-SARGER3
+MrGentle/DeltaModel-genius1
+MrZ/DialoGPT-small-Rick
+Mythiie/DialoGPT-small-Modeus
+NTUYG/SOTitle-Gen-T5
+NYTK/text-generation-news-gpt2-small-hungarian
+NYTK/text-generation-poem-petofi-gpt2-small-hungarian
+NYTK/translation-mt5-small-128-en-hu
+nabarun/DialoGPT-small-joshua
+NamPE/DialoGPT-medium-Aqua-konosuba
+NamPE/DialoGPT-medium-Takanashi-Rikka
+NamPE/DialoGPT-small-satouhina
+NanniKirby/DialoGPT-medium-bapi
+NanniKirby/bapismall
+Narrativa/byt5-base-finetuned-tweet-qa
+Narrativa/byt5-base-tweet-hate-detection
+Narrativa/mT5-base-finetuned-tydiQA-question-generation
+Narrativa/mT5-base-finetuned-tydiQA-xqa
+Narrativa/spanish-gpt2-finetuned-rap-lyrics
+Narrativa/t5-base-finetuned-totto-table-to-text
+Narsil/gpt2
+Naturealbe/DialoGPT-small-harrypotter-2
+Naturealbe/DialoGPT-small-harrypotter
+Navigator/DialoGPT-medium-martymcfly
+Navya2608/DialoGPT-medium-chandler
+Navya2608/DialoGPT-medium-rachel
+Navya2608/DialoGPT-small-tonystarkscript
+NbAiLab/nb-t5-base-v3
+Necrozma/harrypotterbot
+Nehc/adpatres
+Nehc/gpt2_lovecraft_ru
+Nehc/gpt2_priest_ru
+Nekoism/Zhongli-Beta
+NewT5SharedHeadsSharedKeyValues/t5-efficient-base-sh
+NewT5SharedHeadsSharedKeyValues/t5-efficient-base-skv
+NewT5SharedHeadsSharedKeyValues/t5-efficient-large-sh
+NewT5SharedHeadsSharedKeyValues/t5-efficient-large-skv
+NewT5SharedHeadsSharedKeyValues/t5-efficient-small-sh
+NewT5SharedHeadsSharedKeyValues/t5-efficient-small-shkv
+NewT5SharedHeadsSharedKeyValues/t5-efficient-tiny-sh
+NewT5SharedHeadsSharedKeyValues/t5-efficient-tiny-skv
+NewT5SharedHeadsSharedKeyValues/t5-efficient-xl-sh
+NewT5SharedHeadsSharedKeyValues/t5-efficient-xl-skv
+NibrasShami/DialopGPT-small-HarryPotter
+NickCavarretta/DialoGPT-small-laffy
+NicolasPeruchot/Biography
+Nihwy/DialoSqui
+NikhilKrishna/DialoGPT-medium-harrypotter
+Ninja5000/DialoGPT-medium-HarryPotter
+Ninja5000/DialoGPT-medium-TWEWYJoshua
+Niphredil/DialoGPT-small-lotr
+Nisarg2701/DialoGPT-medium-Rick
+NlpHUST/t5-en-vi-base
+NlpHUST/t5-en-vi-small
+NlpHUST/t5-small-vi-summarization
+NlpHUST/t5-vi-en-base
+NlpHUST/t5-vi-en-small
+NoLawz/DialoGPT-medium-hagrid
+NoLawz/DialoGPT-medium-harrypotter
+NoLawz/DialoGPT-medium-spongebob
+Nokia/nlgp-docstring
+Nokia/nlgp-natural
+Norimoji/DialoGPT-medium-FF7
+Norod78/distilgpt2-base-pretrained-he
+Norod78/english-sienfeld-distilgpt2
+Norod78/hewiki-articles-distilGPT2py-il
+Nova/DialoGPT-medium-Lelouch
+NovaChrono/twervy
+Obscurity/DialoGPT-Medium-707
+Ochiroo/tiny_mn_gpt
+Oji/DialoGPT-small-Rick
+OnsElleuch/logisgenerator
+Optimal/Harry
+OscarNav/dialoGPT_translate
+P4RZ1V4L/DialoGPT-Medium-Tony
+PVAbhiram2003/DialoGPT-medium-RickandMorty
+Paradocx/Dialogpt-mid-hpai
+Parth/boolean
+Parth/mT5-question-generator
+Parth/result
+PaulAdversarial/PAN_twitter_hate_speech_2021_ES_MT5
+PaulAdversarial/T5_PAN_Hate_Speech_Twitter_topic_author_ishatespeach
+PaulAdversarial/T5_PAN_Hate_Speech_Twitter_topic_ishatespeach
+Pensador777critico/DialoGPT-small-RickandMorty
+Peter/medium
+Phantomhive/Noelle-bot
+Phiion/DialoGPT-large-dilucbot
+PhilipTheGreat/DiabloGPT-small-Traveller
+Philipuss/GPT-Macbeth
+PinoCorgi/DialoGPT-small-Shrek1
+Piumi/DialogGPT-small-harrypotter
+PlanTL-GOB-ES/gpt2-base-bne
+PlanTL-GOB-ES/gpt2-large-bne
+Plencers/DialoGPT-small-homer
+Pollawat/mt5-small-thai-qa-qg
+Pollawat/mt5-small-thai-qg
+Poly-Pixel/shrek-medium-full
+Poly-Pixel/shrek-medium
+Poly-Pixel/shrek-test-small
+PolyakovMaxim/ModelGptTS
+Pupihed/DialoGPT-small-shrek
+PurpleJacketGuy/My_Jarvis
+PurpleJacketGuy/My_Jarvis_2
+Pyjay/gpt2-medium-dutch-finetuned-text-generation
+QianWeiTech/GPT2-News
+QianWeiTech/GPT2-Titles
+RAhul03/DialoGPT-small-harrypotter
+REAP3R/Chat-bot
+REZERO/DialoGPT-medium-saitama
+RTurk/DialoGPT-small-TIMBOT
+Rachneet/t5-base-qg-hl-squadv2
+Radicalkiddo/DialoGPT-small-Radical
+Radvian/t5_liputan6_finetuned_indonesia_summarization
+Rai220/test1
+Ranger/Dial0GPT-small-harrypotter
+Rashid11/DialoGPT-small-rick
+Rathod/DialoGPT-small-harrypotter
+Redolid/DialoGPT-small-Rick
+Rei/DialoGPT-medium-kurisu
+RenZHU/t5-small-finetuned-xsum-original
+RenZHU/t5-small-finetuned-xsum
+RifsxD/DialoGPT-medium-raifu
+RishabhRawatt/DialoGPT-small-Rickmorty
+RishabhRawatt/DialoGPT-small-kela
+Ritchie/DialoGPT-small-Rickandmorty
+RizqFarIDN/DialoGPT-medium-harrypotter
+RizqFarIDN/DialoGPT-small-harrypotter
+RobinMari/DialoGPT-small-mikoto
+Rocketknight1/codeparrot-ds
+Rocketknight1/distilgpt2-finetuned-wikitext2
+Rocketknight1/gpt2-finetuned-wikitext2
+Rocketknight1/gpt2-wikitext2
+Rocketknight1/t5-small-finetuned-xsum
+RollingMuffin/scripts_ru
+RonnieTheCat/QG-System
+Rostlab/prot_t5_base_mt_uniref50
+Rostlab/prot_t5_xl_bfd
+Rostlab/prot_t5_xl_uniref50
+Rostlab/prot_t5_xxl_bfd
+Rostlab/prot_t5_xxl_uniref50
+Royce23/DialoGPT-small-almas
+RuRI/Talkmodel01
+Rumesh/txt-smp-si
+Rumesh/txt-smp-si2
+Rush11/DialoGPT-small-HarryPotter
+Ryanar/DialoGPT-medium-Zelda
+Ryukie/DialoGPT-small-Rick
+S34NtheGuy/DialoGPT-medium-Glass_Of_Water
+S34NtheGuy/DialoGPT-medium-Mona
+S34NtheGuy/DialoGPT-small-Harry282
+S34NtheGuy/DialoGPT-small-MJOLNIR_Soul
+S34NtheGuy/DialoGPT-small-cursedryno
+S34NtheGuy/DialoGPT-small-pikamew362
+S34NtheGuy/DialoGPT-small-wetterlettuce
+SEBIS/code_trans_t5_base_api_generation
+SEBIS/code_trans_t5_base_api_generation_multitask
+SEBIS/code_trans_t5_base_api_generation_multitask_finetune
+SEBIS/code_trans_t5_base_api_generation_transfer_learning_finetune
+SEBIS/code_trans_t5_base_code_comment_generation_java
+SEBIS/code_trans_t5_base_code_comment_generation_java_multitask
+SEBIS/code_trans_t5_base_code_comment_generation_java_multitask_finetune
+SEBIS/code_trans_t5_base_code_comment_generation_java_transfer_learning_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_go
+SEBIS/code_trans_t5_base_code_documentation_generation_go_multitask
+SEBIS/code_trans_t5_base_code_documentation_generation_go_multitask_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_go_transfer_learning_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_java
+SEBIS/code_trans_t5_base_code_documentation_generation_java_multitask
+SEBIS/code_trans_t5_base_code_documentation_generation_java_multitask_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_java_transfer_learning_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_javascript
+SEBIS/code_trans_t5_base_code_documentation_generation_javascript_multitask
+SEBIS/code_trans_t5_base_code_documentation_generation_javascript_multitask_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_javascript_transfer_learning_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_php
+SEBIS/code_trans_t5_base_code_documentation_generation_php_multitask
+SEBIS/code_trans_t5_base_code_documentation_generation_php_multitask_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_php_transfer_learning_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_python
+SEBIS/code_trans_t5_base_code_documentation_generation_python_multitask
+SEBIS/code_trans_t5_base_code_documentation_generation_python_multitask_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_python_transfer_learning_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_ruby
+SEBIS/code_trans_t5_base_code_documentation_generation_ruby_multitask
+SEBIS/code_trans_t5_base_code_documentation_generation_ruby_multitask_finetune
+SEBIS/code_trans_t5_base_code_documentation_generation_ruby_transfer_learning_finetune
+SEBIS/code_trans_t5_base_commit_generation
+SEBIS/code_trans_t5_base_commit_generation_multitask
+SEBIS/code_trans_t5_base_commit_generation_multitask_finetune
+SEBIS/code_trans_t5_base_commit_generation_transfer_learning_finetune
+SEBIS/code_trans_t5_base_program_synthese
+SEBIS/code_trans_t5_base_program_synthese_multitask
+SEBIS/code_trans_t5_base_program_synthese_multitask_finetune
+SEBIS/code_trans_t5_base_program_synthese_transfer_learning_finetune
+SEBIS/code_trans_t5_base_source_code_summarization_csharp
+SEBIS/code_trans_t5_base_source_code_summarization_csharp_multitask
+SEBIS/code_trans_t5_base_source_code_summarization_csharp_multitask_finetune
+SEBIS/code_trans_t5_base_source_code_summarization_csharp_transfer_learning_finetune
+SEBIS/code_trans_t5_base_source_code_summarization_python
+SEBIS/code_trans_t5_base_source_code_summarization_python_multitask
+SEBIS/code_trans_t5_base_source_code_summarization_python_multitask_finetune
+SEBIS/code_trans_t5_base_source_code_summarization_python_transfer_learning_finetune
+SEBIS/code_trans_t5_base_source_code_summarization_sql
+SEBIS/code_trans_t5_base_source_code_summarization_sql_multitask
+SEBIS/code_trans_t5_base_source_code_summarization_sql_multitask_finetune
+SEBIS/code_trans_t5_base_source_code_summarization_sql_transfer_learning_finetune
+SEBIS/code_trans_t5_base_transfer_learning_pretrain
+SEBIS/code_trans_t5_large_api_generation_multitask
+SEBIS/code_trans_t5_large_api_generation_multitask_finetune
+SEBIS/code_trans_t5_large_api_generation_transfer_learning_finetune
+SEBIS/code_trans_t5_large_code_comment_generation_java_multitask
+SEBIS/code_trans_t5_large_code_comment_generation_java_multitask_finetune
+SEBIS/code_trans_t5_large_code_comment_generation_java_transfer_learning_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_go_multitask
+SEBIS/code_trans_t5_large_code_documentation_generation_go_multitask_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_go_transfer_learning_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_java_multitask
+SEBIS/code_trans_t5_large_code_documentation_generation_java_multitask_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_java_transfer_learning_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_javascript_multitask
+SEBIS/code_trans_t5_large_code_documentation_generation_javascript_multitask_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_javascript_transfer_learning_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_php_multitask
+SEBIS/code_trans_t5_large_code_documentation_generation_php_multitask_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_php_transfer_learning_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_python_multitask
+SEBIS/code_trans_t5_large_code_documentation_generation_python_multitask_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_python_transfer_learning_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_ruby_multitask
+SEBIS/code_trans_t5_large_code_documentation_generation_ruby_multitask_finetune
+SEBIS/code_trans_t5_large_code_documentation_generation_ruby_transfer_learning_finetune
+SEBIS/code_trans_t5_large_commit_generation_multitask
+SEBIS/code_trans_t5_large_commit_generation_multitask_finetune
+SEBIS/code_trans_t5_large_commit_generation_transfer_learning_finetune
+SEBIS/code_trans_t5_large_program_synthese_multitask
+SEBIS/code_trans_t5_large_program_synthese_multitask_finetune
+SEBIS/code_trans_t5_large_program_synthese_transfer_learning_finetune
+SEBIS/code_trans_t5_large_source_code_summarization_csharp_multitask
+SEBIS/code_trans_t5_large_source_code_summarization_csharp_multitask_finetune
+SEBIS/code_trans_t5_large_source_code_summarization_csharp_transfer_learning_finetune
+SEBIS/code_trans_t5_large_source_code_summarization_python_multitask
+SEBIS/code_trans_t5_large_source_code_summarization_python_multitask_finetune
+SEBIS/code_trans_t5_large_source_code_summarization_python_transfer_learning_finetune
+SEBIS/code_trans_t5_large_source_code_summarization_sql_multitask
+SEBIS/code_trans_t5_large_source_code_summarization_sql_multitask_finetune
+SEBIS/code_trans_t5_large_source_code_summarization_sql_transfer_learning_finetune
+SEBIS/code_trans_t5_large_transfer_learning_pretrain
+SEBIS/code_trans_t5_small_api_generation
+SEBIS/code_trans_t5_small_api_generation_multitask
+SEBIS/code_trans_t5_small_api_generation_multitask_finetune
+SEBIS/code_trans_t5_small_api_generation_transfer_learning_finetune
+SEBIS/code_trans_t5_small_code_comment_generation_java
+SEBIS/code_trans_t5_small_code_comment_generation_java_multitask
+SEBIS/code_trans_t5_small_code_comment_generation_java_multitask_finetune
+SEBIS/code_trans_t5_small_code_comment_generation_java_transfer_learning_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_go
+SEBIS/code_trans_t5_small_code_documentation_generation_go_multitask
+SEBIS/code_trans_t5_small_code_documentation_generation_go_multitask_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_go_transfer_learning_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_java
+SEBIS/code_trans_t5_small_code_documentation_generation_java_multitask
+SEBIS/code_trans_t5_small_code_documentation_generation_java_multitask_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_java_transfer_learning_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_javascript
+SEBIS/code_trans_t5_small_code_documentation_generation_javascript_multitask
+SEBIS/code_trans_t5_small_code_documentation_generation_javascript_multitask_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_javascript_transfer_learning_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_php
+SEBIS/code_trans_t5_small_code_documentation_generation_php_multitask
+SEBIS/code_trans_t5_small_code_documentation_generation_php_multitask_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_php_transfer_learning_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_python
+SEBIS/code_trans_t5_small_code_documentation_generation_python_multitask
+SEBIS/code_trans_t5_small_code_documentation_generation_python_multitask_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_python_transfer_learning_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_ruby
+SEBIS/code_trans_t5_small_code_documentation_generation_ruby_multitask
+SEBIS/code_trans_t5_small_code_documentation_generation_ruby_multitask_finetune
+SEBIS/code_trans_t5_small_code_documentation_generation_ruby_transfer_learning_finetune
+SEBIS/code_trans_t5_small_commit_generation
+SEBIS/code_trans_t5_small_commit_generation_multitask
+SEBIS/code_trans_t5_small_commit_generation_multitask_finetune
+SEBIS/code_trans_t5_small_commit_generation_transfer_learning_finetune
+SEBIS/code_trans_t5_small_program_synthese
+SEBIS/code_trans_t5_small_program_synthese_multitask
+SEBIS/code_trans_t5_small_program_synthese_multitask_finetune
+SEBIS/code_trans_t5_small_program_synthese_transfer_learning_finetune
+SEBIS/code_trans_t5_small_source_code_summarization_csharp
+SEBIS/code_trans_t5_small_source_code_summarization_csharp_multitask
+SEBIS/code_trans_t5_small_source_code_summarization_csharp_multitask_finetune
+SEBIS/code_trans_t5_small_source_code_summarization_csharp_transfer_learning_finetune
+SEBIS/code_trans_t5_small_source_code_summarization_python
+SEBIS/code_trans_t5_small_source_code_summarization_python_multitask
+SEBIS/code_trans_t5_small_source_code_summarization_python_multitask_finetune
+SEBIS/code_trans_t5_small_source_code_summarization_python_transfer_learning_finetune
+SEBIS/code_trans_t5_small_source_code_summarization_sql
+SEBIS/code_trans_t5_small_source_code_summarization_sql_multitask
+SEBIS/code_trans_t5_small_source_code_summarization_sql_multitask_finetune
+SEBIS/code_trans_t5_small_source_code_summarization_sql_transfer_learning_finetune
+SEBIS/code_trans_t5_small_transfer_learning_pretrain
+SEBIS/legal_t5_small_cls_cs
+SEBIS/legal_t5_small_cls_de
+SEBIS/legal_t5_small_cls_en
+SEBIS/legal_t5_small_cls_es
+SEBIS/legal_t5_small_cls_finetuned_cs
+SEBIS/legal_t5_small_cls_finetuned_de
+SEBIS/legal_t5_small_cls_finetuned_en
+SEBIS/legal_t5_small_cls_finetuned_es
+SEBIS/legal_t5_small_cls_finetuned_fr
+SEBIS/legal_t5_small_cls_finetuned_it
+SEBIS/legal_t5_small_cls_finetuned_sv
+SEBIS/legal_t5_small_cls_fr
+SEBIS/legal_t5_small_cls_it
+SEBIS/legal_t5_small_cls_multitask_cs
+SEBIS/legal_t5_small_cls_multitask_de
+SEBIS/legal_t5_small_cls_multitask_en
+SEBIS/legal_t5_small_cls_multitask_es
+SEBIS/legal_t5_small_cls_multitask_fr
+SEBIS/legal_t5_small_cls_multitask_it
+SEBIS/legal_t5_small_cls_multitask_sv
+SEBIS/legal_t5_small_cls_sv
+SEBIS/legal_t5_small_finetuned_summ_cs
+SEBIS/legal_t5_small_finetuned_summ_de
+SEBIS/legal_t5_small_finetuned_summ_en
+SEBIS/legal_t5_small_finetuned_summ_es
+SEBIS/legal_t5_small_finetuned_summ_fr
+SEBIS/legal_t5_small_finetuned_summ_it
+SEBIS/legal_t5_small_finetuned_summ_sv
+SEBIS/legal_t5_small_multitask_cs_de
+SEBIS/legal_t5_small_multitask_cs_en
+SEBIS/legal_t5_small_multitask_cs_es
+SEBIS/legal_t5_small_multitask_cs_fr
+SEBIS/legal_t5_small_multitask_cs_it
+SEBIS/legal_t5_small_multitask_cs_sv
+SEBIS/legal_t5_small_multitask_de_en
+SEBIS/legal_t5_small_multitask_de_es
+SEBIS/legal_t5_small_multitask_de_fr
+SEBIS/legal_t5_small_multitask_de_it
+SEBIS/legal_t5_small_multitask_de_sv
+SEBIS/legal_t5_small_multitask_en_cs
+SEBIS/legal_t5_small_multitask_en_de
+SEBIS/legal_t5_small_multitask_en_es
+SEBIS/legal_t5_small_multitask_en_fr
+SEBIS/legal_t5_small_multitask_en_it
+SEBIS/legal_t5_small_multitask_en_sv
+SEBIS/legal_t5_small_multitask_es_cs
+SEBIS/legal_t5_small_multitask_es_de
+SEBIS/legal_t5_small_multitask_es_en
+SEBIS/legal_t5_small_multitask_es_fr
+SEBIS/legal_t5_small_multitask_es_it
+SEBIS/legal_t5_small_multitask_es_sv
+SEBIS/legal_t5_small_multitask_fr_cs
+SEBIS/legal_t5_small_multitask_fr_de
+SEBIS/legal_t5_small_multitask_fr_en
+SEBIS/legal_t5_small_multitask_fr_es
+SEBIS/legal_t5_small_multitask_fr_it
+SEBIS/legal_t5_small_multitask_fr_sv
+SEBIS/legal_t5_small_multitask_it_cs
+SEBIS/legal_t5_small_multitask_it_de
+SEBIS/legal_t5_small_multitask_it_en
+SEBIS/legal_t5_small_multitask_it_es
+SEBIS/legal_t5_small_multitask_it_fr
+SEBIS/legal_t5_small_multitask_it_sv
+SEBIS/legal_t5_small_multitask_sv_cs
+SEBIS/legal_t5_small_multitask_sv_de
+SEBIS/legal_t5_small_multitask_sv_en
+SEBIS/legal_t5_small_multitask_sv_es
+SEBIS/legal_t5_small_multitask_sv_fr
+SEBIS/legal_t5_small_multitask_sv_it
+SEBIS/legal_t5_small_summ_cs
+SEBIS/legal_t5_small_summ_de
+SEBIS/legal_t5_small_summ_en
+SEBIS/legal_t5_small_summ_es
+SEBIS/legal_t5_small_summ_fr
+SEBIS/legal_t5_small_summ_it
+SEBIS/legal_t5_small_summ_multitask_cs
+SEBIS/legal_t5_small_summ_multitask_de
+SEBIS/legal_t5_small_summ_multitask_en
+SEBIS/legal_t5_small_summ_multitask_es
+SEBIS/legal_t5_small_summ_multitask_fr
+SEBIS/legal_t5_small_summ_multitask_it
+SEBIS/legal_t5_small_summ_multitask_sv
+SEBIS/legal_t5_small_summ_sv
+SEBIS/legal_t5_small_trans_cs_de
+SEBIS/legal_t5_small_trans_cs_de_small_finetuned
+SEBIS/legal_t5_small_trans_cs_en
+SEBIS/legal_t5_small_trans_cs_en_small_finetuned
+SEBIS/legal_t5_small_trans_cs_es
+SEBIS/legal_t5_small_trans_cs_es_small_finetuned
+SEBIS/legal_t5_small_trans_cs_fr
+SEBIS/legal_t5_small_trans_cs_fr_small_finetuned
+SEBIS/legal_t5_small_trans_cs_it
+SEBIS/legal_t5_small_trans_cs_it_small_finetuned
+SEBIS/legal_t5_small_trans_cs_sv
+SEBIS/legal_t5_small_trans_cs_sv_small_finetuned
+SEBIS/legal_t5_small_trans_de_cs
+SEBIS/legal_t5_small_trans_de_cs_small_finetuned
+SEBIS/legal_t5_small_trans_de_en
+SEBIS/legal_t5_small_trans_de_en_small_finetuned
+SEBIS/legal_t5_small_trans_de_es
+SEBIS/legal_t5_small_trans_de_es_small_finetuned
+SEBIS/legal_t5_small_trans_de_fr
+SEBIS/legal_t5_small_trans_de_fr_small_finetuned
+SEBIS/legal_t5_small_trans_de_it
+SEBIS/legal_t5_small_trans_de_it_small_finetuned
+SEBIS/legal_t5_small_trans_de_sv
+SEBIS/legal_t5_small_trans_de_sv_small_finetuned
+SEBIS/legal_t5_small_trans_en_cs
+SEBIS/legal_t5_small_trans_en_cs_small_finetuned
+SEBIS/legal_t5_small_trans_en_de
+SEBIS/legal_t5_small_trans_en_de_small_finetuned
+SEBIS/legal_t5_small_trans_en_es_small_finetuned
+SEBIS/legal_t5_small_trans_en_fr
+SEBIS/legal_t5_small_trans_en_fr_small_finetuned
+SEBIS/legal_t5_small_trans_en_it
+SEBIS/legal_t5_small_trans_en_it_small_finetuned
+SEBIS/legal_t5_small_trans_en_sv
+SEBIS/legal_t5_small_trans_en_sv_small_finetuned
+SEBIS/legal_t5_small_trans_es_cs
+SEBIS/legal_t5_small_trans_es_cs_small_finetuned
+SEBIS/legal_t5_small_trans_es_de
+SEBIS/legal_t5_small_trans_es_de_small_finetuned
+SEBIS/legal_t5_small_trans_es_en
+SEBIS/legal_t5_small_trans_es_en_small_finetuned
+SEBIS/legal_t5_small_trans_es_fr_small_finetuned
+SEBIS/legal_t5_small_trans_es_it
+SEBIS/legal_t5_small_trans_es_it_small_finetuned
+SEBIS/legal_t5_small_trans_es_sv
+SEBIS/legal_t5_small_trans_es_sv_small_finetuned
+SEBIS/legal_t5_small_trans_fr_cs
+SEBIS/legal_t5_small_trans_fr_cs_small_finetuned
+SEBIS/legal_t5_small_trans_fr_de
+SEBIS/legal_t5_small_trans_fr_de_small_finetuned
+SEBIS/legal_t5_small_trans_fr_en
+SEBIS/legal_t5_small_trans_fr_en_small_finetuned
+SEBIS/legal_t5_small_trans_fr_es
+SEBIS/legal_t5_small_trans_fr_es_small_finetuned
+SEBIS/legal_t5_small_trans_fr_it
+SEBIS/legal_t5_small_trans_fr_it_small_finetuned
+SEBIS/legal_t5_small_trans_fr_sv
+SEBIS/legal_t5_small_trans_fr_sv_small_finetuned
+SEBIS/legal_t5_small_trans_it_cs
+SEBIS/legal_t5_small_trans_it_cs_small_finetuned
+SEBIS/legal_t5_small_trans_it_de
+SEBIS/legal_t5_small_trans_it_de_small_finetuned
+SEBIS/legal_t5_small_trans_it_en
+SEBIS/legal_t5_small_trans_it_en_small_finetuned
+SEBIS/legal_t5_small_trans_it_es
+SEBIS/legal_t5_small_trans_it_es_small_finetuned
+SEBIS/legal_t5_small_trans_it_fr
+SEBIS/legal_t5_small_trans_it_fr_small_finetuned
+SEBIS/legal_t5_small_trans_it_sv
+SEBIS/legal_t5_small_trans_it_sv_small_finetuned
+SEBIS/legal_t5_small_trans_sv_cs
+SEBIS/legal_t5_small_trans_sv_cs_small_finetuned
+SEBIS/legal_t5_small_trans_sv_de
+SEBIS/legal_t5_small_trans_sv_de_small_finetuned
+SEBIS/legal_t5_small_trans_sv_en
+SEBIS/legal_t5_small_trans_sv_en_small_finetuned
+SEBIS/legal_t5_small_trans_sv_es
+SEBIS/legal_t5_small_trans_sv_es_small_finetuned
+SEBIS/legal_t5_small_trans_sv_fr
+SEBIS/legal_t5_small_trans_sv_fr_small_finetuned
+SEBIS/legal_t5_small_trans_sv_it
+SEBIS/legal_t5_small_trans_sv_it_small_finetuned
+SIC98/GPT2-first-model
+SIC98/GPT2-python-code-generator
+SJSui/AstroBot
+SJSui/NekuBot
+SJSui/RickBot
+SPGT/LiveSafe-DialoGPT
+Sabokou/squad-qg-gen
+Sadaf/God
+SaffronIce/DialoGPT-medium-Jett
+Salesforce/codet5-base-multi-sum
+Salesforce/codet5-base
+Salesforce/codet5-small
+Salesforce/mixqg-3b
+Salesforce/mixqg-base
+Salesforce/mixqg-large
+Salesforce/qaconv-unifiedqa-t5-3b
+Salesforce/qaconv-unifiedqa-t5-base
+Salesforce/qaconv-unifiedqa-t5-large
+Salma-2/DialoGPT-small-harrypotter
+Sammigooof/Peterbot
+Sancha/t5-small-finetuned-fi-to-en
+SarahhhUwU/DialoGPT-small-ally
+SaulLu/cotet5_small_fix
+Saviour/ChandlerBot
+Saz/DialoGPT-small-paimon
+Saz/DialoGPT-small-saz
+Science-geek32/DialoGPT-small-doctor
+Science-geek32/DialoGPT-small-doctor2.0
+Scoops/SandalBot
+ScottaStrong/DialogGPT-medium-Scott
+ScottaStrong/DialogGPT-medium-joshua
+ScottaStrong/DialogGPT-small-Scott
+ScottaStrong/DialogGPT-small-joshua
+Sebastianthecrab/DialoGPT-small-melchior
+Sedge/DialoGPT-small-Sedge
+Sentdex/GPyT
+Shahm/t5-small-german
+Shakaw/DialoGPT-small-spongebot
+ShayoGun/DialoGPT-small-shayo
+Sheel/DialoGPT-small-harrypotter
+Sheerwin02/DialoGPT-medium-mikasa
+Sheerwin02/DialoGPT-small-isla
+ShengdingHu/cola
+ShengdingHu/mnli
+ShengdingHu/mrpc
+ShengdingHu/qnli
+ShengdingHu/qqp
+ShengdingHu/rte
+ShengdingHu/stsb
+ShengdingHu/superglue-boolq-multig
+ShengdingHu/superglue-boolq
+ShengdingHu/superglue-cb
+ShengdingHu/superglue-copa
+ShengdingHu/superglue-multirc
+ShengdingHu/superglue-record
+ShengdingHu/superglue-wic
+ShengdingHu/superglue-wsc.fixed
+Shike/DialoGPT_medium_harrypotter
+Shinx/DialoGPT-medium-myheroacademia
+NaturesDisaster/DialoGPT-large-Neku
+NaturesDisaster/DialoGPT-small-Neku
+ShiroNeko/DialoGPT-small-rick
+Shubham-Kumar-DTU/DialoGPT-small-goku
+Sid51/CB
+Sid51/Chan
+Sid51/ChanBot
+SilentMyuth/stable-jenny
+SilentMyuth/stableben
+SilentMyuth/stablejen
+SimonThormeyer/movie-plot-generator-longer-plots
+SimonThormeyer/movie-plot-generator
+Simovod/simRU
+Simovod/testSIM
+Sin/DialoGPT-small-zai
+SirBastianXVII/DialoGPT-small-TVD
+Sired/DialoGPT-small-trumpbot
+Siyris/DialoGPT-medium-SIY
+Siyris/SIY
+s-nlp/gpt2-base-gedi-detoxification
+s-nlp/ruT5-base-detox
+s-nlp/t5-paranmt-detox
+s-nlp/t5-paraphrase-paws-msrp-opinosis-paranmt
+s-nlp/t5_ru_5_10000_detox
+Skywhy/DialoGPT-medium-Churchyy
+Snaky/StupidEdwin
+SoLID/sgd-input-plan-constructor
+SoLID/sgd-output-plan-constructor
+SoLID/sgd-response-generator
+SoLID/sgd-t5-tod
+Soapsy/DialoGPT-mid-cartman
+SonMooSans/test
+Sora4762/DialoGPT-small-naruto
+Sora4762/DialoGPT-small-naruto1.1
+Soumyajit1008/DialoGPT-small-harryPotterssen
+SouvikGhosh/DialoGPT-Souvik
+SpacyGalaxy/DialoGPT-medium-Gandalf
+Spectrox/emmybot
+Spirax/DialoGPT-medium-sheldon
+Spoon/DialoGPT-small-engineer
+Stabley/DialoGPT-small-evelynn
+SteveC/sdc_bot_15K
+SteveC/sdc_bot_medium
+SteveC/sdc_bot_small
+SteveC/sdc_bot_two_step
+StevenShoemakerNLP/pitchfork
+Stevo/DiagloGPT-medium-spamton
+Sunnydx/BillCipherBot
+SuperAI2-Machima/mt5-small-thai-qg-v2
+SuperAI2-Machima/mt5-small-thai-qg
+SuperAI2-Machima/mt5-small-thai-yes-no-qg
+SuperDoge/DialoGPT-small-harrypotter
+Supiri/t5-base-conversation
+Suva/uptag-email-model-v2
+Suva/uptag-url-model
+T-Systems-onsite/mt5-small-sum-de-en-v2
+THUMT/mGPT
+TTYU/DialoGPT-small-trump
+TVLG/DialoGPT-small-Iroh-Bot
+Tanhim/gpt2-model-de
+Taramiko/Hoshiyo_Kojima
+Teepika/t5-small-finetuned-xsum-gcloud1
+Teepika/t5-small-finetuned-xsum-proplus
+Tejasvb/DialoGPT-small-rick
+Tereveni-AI/gpt2-124M-uk-fiction
+ThaiUWA/gpt-2-josh-uwa
+ThaiUWA/gpt2test
+ThaiUWA/py_just_rumour
+ThatSkyFox/DialoGPT-medium-joshua
+ThatSkyFox/DialoGPT-small-joshua
+The-Programmer-With-Cool-Pens/TifaBotAIPackage
+TheBakerCat/2chan_ruGPT3_small
+TheCatsMoo/DialoGGPT-small-joshua
+TheDiamondKing/DialoGPT-small-harrypotter
+TheGeeKing/DialoGPT-small-Rick
+TheLongSentance/MIMIC-III-t5-large-v1
+TheLongSentance/t5-small-finetuned-toxic
+TheLongSentance/t5-small-finetuned-xsum
+TheLongSentance/t5_large_baseline
+TheLongSentance/t5_mimic_final_chkpnt10000
+TheLongSentance/t5_mimic_final_chkpnt15000
+TheLongSentance/t5_mimic_final_chkpnt150000
+TheLongSentance/t5_mimic_final_chkpnt20000
+TheLongSentance/t5_mimic_final_chkpnt225000
+TheLongSentance/t5_mimic_final_chkpnt25000
+TheLongSentance/t5_mimic_final_chkpnt30000
+TheLongSentance/t5_mimic_final_chkpnt5000
+TheLongSentance/t5_mimic_final_chkpnt75000
+TheLongSentance/t5_mimic_nt1_1m_tk200_r2p5_c15_sp1_1_nbn_lr1e4c_chkpnt20000
+TheLongSentance/t5_mimic_nt1_1m_tk200_r2p5_c15_sp1_1_nbn_lr3e4c_chkpnt20000
+TheLongSentance/t5_mimic_nt1_1m_tk200_r2p5_c15_sp1_3_nbn_chkpnt20000
+TheLongSentance/t5_mimic_nt1_1m_tk200_r2p5_c15_sp1_3_nbn_chkpnt5000
+TheLongSentance/t5_mimic_nt1_1m_tk200_r2p5_c15_sp1_3_nbn_lr3e4c
+ThePeachOx/DialoGPT-small-harry
+TheTUFGuy/HermioneChatBot
+Thejas/DialoGPT-small-Stewei
+Thejas/DialoGPT-small-elon
+ThomasNLG/t5-qa_squad2neg-en
+ThomasNLG/t5-qa_webnlg_synth-en
+ThomasNLG/t5-qg_squad1-en
+ThomasNLG/t5-qg_webnlg_synth-en
+ThomasNLG/t5-weighter_cnndm-en
+ThomasSimonini/t5-end2end-question-generation
+ThoracicCosine/DialoGPT-small-harrypotter
+Tidum/DialoGPT-large-Michael
+Tito/T5small_model1_fp16_false-finetuned-en-to-de
+Tito/T5small_model2_learning_rate_2e-4-finetuned-en-to-de
+Tito/T5small_model3_decay_001-finetuned-en-to-de
+Tito/T5small_model3_lr_2e-3-finetuned-en-to-de
+Toadally/DialoGPT-small-david_mast
+Tofu05/DialoGPT-large-boon2
+Tofu05/DialoGPT-med-boon3
+TofuBoy/DialoGPT-medium-Yubin2
+TofuBoy/DialoGPT-medium-boon
+Tr1ex/DialoGPT-small-rick
+TrLOX/gpt2-tdk
+TrebleJeff/DialoGPT-small-Michael
+TrimPeachu/Deadpool
+TristanBehrens/js-fakes-4bars
+Trixzy/rickai-v1
+Tropics/DialoGPT-small-peppa
+TsinghuaAI/CPM-Generate
+Tymoteusz/optics-abstracts-summarization
+UBC-NLP/AraT5-base-title-generation
+UBC-NLP/AraT5-base
+UBC-NLP/AraT5-msa-base
+UBC-NLP/AraT5-msa-small
+UBC-NLP/AraT5-tweet-base
+UBC-NLP/AraT5-tweet-small
+UBC-NLP/IndT5
+UKJ5/DialoGPT-small-harrypotter
+Ulto/avengeeers
+Ulto/avengers2
+Ulto/pythonCoPilot
+Ulto/pythonCoPilot2
+Ulto/pythonCoPilot3
+Unbabel/gec-t5_small
+Username1/Mourinhio-medium
+Username1/Mourinho
+Username1/Wenger
+VLRevolution/DialogGPT-small-GGODMODEL
+VMET/DialoGPT-small-dumbassbot
+VaguelyCynical/DialoGPT-small-RickSanchez
+Vaibhavbrkn/question-gen
+Vaibhavbrkn/t5-summarization
+Vampiro/DialoGPT-small-dante_b
+Vampiro/DialoGPT-small-dante_c
+Vamsi/T5_Paraphrase_Paws
+VariableZee/DialoGPT-small-ivylia03
+Vasanth/t5-news-summarization
+Verge/Peterbot
+VincentButterfield/DialoGPT-small-harrypotter
+VishalArun/DialoGPT-medium-harrypotter
+Vitafeu/DialoGPT-medium-ricksanchez
+Vivek/GPT2_GSM8k
+Vivek/checkpoints
+Vivek/gpt2-common-sense-reasoning
+VulcanBin/DialoGPT-small-cortana
+WarrenK-Design/DialoGPT-small-Rick
+Wasabi42/Joker_Model
+Wataru/T5-base-ja-open2ch-dialogue
+Weelz/Paraphraser
+Wessel/DiabloGPT-medium-harrypotter
+White/white-bot
+Whitez/DialoGPT-small-twety
+Wikidepia/IndoT5-base-paraphrase
+Wikidepia/IndoT5-base
+Wikidepia/IndoT5-large
+Wikidepia/IndoT5-small
+WikinewsSum/t5-base-multi-combine-wiki-news
+WikinewsSum/t5-base-multi-de-wiki-news
+WikinewsSum/t5-base-multi-en-wiki-news
+WikinewsSum/t5-base-multi-fr-wiki-news
+WikinewsSum/t5-base-with-title-multi-de-wiki-news
+WikinewsSum/t5-base-with-title-multi-en-wiki-news
+WikinewsSum/t5-base-with-title-multi-fr-wiki-news
+Wintermute/Wintermute
+Wintermute/Wintermute_extended
+Wise/DialogGPT-small-JC
+WoutN2001/james3
+XSY/t5-small-finetuned-xsum
+Xenova/sponsorblock-base-v1.1
+Xenova/sponsorblock-base-v1
+Xenova/sponsorblock-small
+Xeouz/Ultron-Small
+XuguangAi/DialoGPT-small-Harry
+XuguangAi/DialoGPT-small-Leslie
+XuguangAi/DialoGPT-small-Rick
+YYJ/KunquChat
+Yankee/TEST21
+Yoshisaur/kono-chat
+YusufSahin99/IFIS_ZORK_AI_FANTASY
+YusufSahin99/IFIS_ZORK_AI_HORROR
+YusufSahin99/IFIS_ZORK_AI_MODERN
+YusufSahin99/IFIS_ZORK_AI_SCIFI
+YusufSahin99/Zork_AI_SciFi
+Zane/Ricky
+Zane/Ricky3
+Zeer0/DialoGPT-small-ZerO
+Zen1/test1
+Zeph/DialoGPT-small-rick
+Zephaus/Chromrepo
+ZhangCheng/T5-Base-finetuned-for-Question-Generation
+ZhangCheng/T5v1.1-Base-Fine-Tuned-for-Question-Generation
+Zixtrauce/BDBot
+Zixtrauce/BDBot4Epoch
+Zixtrauce/BaekBot
+Zixtrauce/BrandonBot
+Zixtrauce/BrandonBot2
+Zixtrauce/JohnBot
+Zixtrauce/SelfAwareness
+Zohar/distilgpt2-finetuned-restaurant-reviews
+Zuha/DialoGPT-small-gandalf
+a01709042/DialoGPT-medium
+aadelucia/GPT2_medium_narrative_finetuned_large
+aadelucia/GPT2_medium_narrative_finetuned_medium
+aadelucia/GPT2_small_narrative_finetuned_medium
+aadilhassan/Chandlerbot
+aadilhassan/DialoGPT-small-chandler
+aakashD/t5_paraphrase
+aashutosh2102/DialoGPT-smalll-harrypotter
+abbas/gpt2-horror-stories
+abhinema/distillgpt2
+abhinema/gpt-medium
+abhinema/gpt
+abhinema/testauto
+abhiramtirumala/DialoGPT-sarcastic-medium
+abhiramtirumala/DialoGPT-sarcastic
+abhisht/DialoGPT-medium-Emilybot
+abinayam/gpt-2-tamil
+abjbpi/DS_small
+abjbpi/Dwight_Schrute
+accelotron/rugpt3-ficbook-bts
+aced/DialoGPT-medium-3PO
+ad6398/gupshup_e2e_t5
+addy88/T5-23-emotions-detections
+addy88/code-t5-ruby
+addy88/t5-argument-anlyser
+addy88/t5-base-finetuned-sn-to-en
+addy88/t5-grammar-correction
+addy88/t5-qa-genrate-explain-context
+adit94/t5_emotion
+aditi2222/automatic_title_generation
+aditi2222/t5-paraphrase
+aditi2222/t5_paraphrase_updated
+adresgezgini/Turkish-GPT-2-Finetuned_digital_ads
+adresgezgini/turkish-gpt-2
+adviksinghania/DialoGPT-medium-rick
+af1tang/personaGPT
+aggb/DialogGPT-small-AGGB-B
+aidan-plenert-macdonald/gpt2-lv
+aidan-plenert-macdonald/model_lv_custom
+aimiekhe/yummv1
+aimiekhe/yummv2
+ainize/GPT2-futurama-script
+ainize/gpt2-mcu-script-large
+ainize/gpt2-rnm-with-only-rick
+ainize/gpt2-rnm-with-season-1
+ainize/gpt2-rnm-with-spongebob
+ainize/gpt2-simpsons-script-large
+ainize/gpt2-spongebob-script-large
+airKlizz/mt5-base-germeval21-toxic-with-data-augmentation
+airKlizz/mt5-base-germeval21-toxic-with-task-specific-pretraining-and-data-augmentation
+airKlizz/mt5-base-germeval21-toxic-with-task-specific-pretraining
+airKlizz/mt5-base-germeval21-toxic
+airKlizz/mt5-base-wikinewssum-all-languages
+airKlizz/mt5-base-wikinewssum-english-100
+airKlizz/mt5-base-wikinewssum-english-1000
+airKlizz/mt5-base-wikinewssum-english
+airKlizz/mt5-base-wikinewssum-french
+airKlizz/mt5-base-wikinewssum-german
+airKlizz/mt5-base-wikinewssum-italian
+airKlizz/mt5-base-wikinewssum-polish
+airKlizz/mt5-base-wikinewssum-portuguese
+airKlizz/mt5-base-wikinewssum-spanish
+airKlizz/mt5-small-wikinewssum-test
+airKlizz/t5-base-multi-combine-wiki-news
+airKlizz/t5-base-multi-de-wiki-news
+airKlizz/t5-base-multi-en-wiki-news
+airKlizz/t5-base-multi-fr-wiki-news
+airKlizz/t5-base-with-title-multi-de-wiki-news
+airKlizz/t5-base-with-title-multi-en-wiki-news
+airKlizz/t5-base-with-title-multi-fr-wiki-news
+airKlizz/t5-small-multi-combine-wiki-news
+aishanisingh/DiagloGPT-small-michaelscott
+aishanisingh/DialoGPT-small-harrypotter
+akahana/gpt2-indonesia
+akaushik1/DialoGPT-small-kaiser
+akhooli/gpt2-ar-poetry-aub
+akhooli/gpt2-ar-poetry-aub_m
+akhooli/gpt2-ar-poetry
+akhooli/gpt2-small-arabic-poetry
+akhooli/gpt2-small-arabic
+akhooli/personachat-arabic
+akivo4ka/ruGPT3medium_psy
+akozlo/con_bal60k
+akozlo/conserv_fulltext_1_18_22
+akrathi007/akk213text
+akreal/tiny-random-gpt2
+akreal/tiny-random-t5
+alan-turing-institute/mt5-large-finetuned-mnli-xtreme-xnli
+alankar/DialoGPT-small-rick
+albertbn/gpt2-medium-finetuned-ads-fp16-blocksz512
+alenusch/mt5base-ruparaphraser
+alenusch/mt5large-ruparaphraser
+alenusch/mt5small-ruparaphraser
+alenusch/rugpt2-paraphraser
+alenusch/rugpt3-paraphraser
+alexLopatin/alex-ai
+alexcg1/models
+alexcg1/trekbot
+alexcruz0202/t5_boolq
+alexrfelicio/t5-small-finetuned-en-to-de
+alexrfelicio/t5-small-finetuned128-en-to-de
+alexrfelicio/t5-small-finetuned16-en-to-de
+alexrfelicio/t5-small-finetuned300-en-to-de
+alexrfelicio/t5-small-finetuned32-en-to-de
+alexrfelicio/t5-small-finetuned8-en-to-de
+alexrink/t5-small-finetuned-xsum
+algolet/mt5-base-chinese-qg
+alienspaceman/rus_dreamgen_fulltext_medium
+aliosm/ComVE-distilgpt2
+aliosm/ComVE-gpt2-large
+aliosm/ComVE-gpt2-medium
+aliosm/ComVE-gpt2
+alipsezzar/DialoGPT-medium-harrypotter
+alistair7/bbt-diagpt2-model
+allegro/plt5-base
+allegro/plt5-large
+allegro/plt5-small
+allenai/macaw-11b
+allenai/macaw-3b
+allenai/macaw-answer-11b
+allenai/macaw-large
+allenai/t5-small-next-word-generator-qoogle
+allenai/t5-small-squad11
+allenai/t5-small-squad2-next-word-generator-squad
+allenai/t5-small-squad2-question-generation
+allenai/tailor
+allenai/unifiedqa-t5-11b
+allenai/unifiedqa-t5-3b
+allenai/unifiedqa-t5-base
+allenai/unifiedqa-t5-large
+allenai/unifiedqa-t5-small
+allenai/unifiedqa-v2-t5-11b-1251000
+allenai/unifiedqa-v2-t5-11b-1363200
+allenai/unifiedqa-v2-t5-3b-1251000
+allenai/unifiedqa-v2-t5-3b-1363200
+allenai/unifiedqa-v2-t5-base-1251000
+allenai/unifiedqa-v2-t5-base-1363200
+allenai/unifiedqa-v2-t5-large-1251000
+allenai/unifiedqa-v2-t5-large-1363200
+allenai/unifiedqa-v2-t5-small-1251000
+allenai/unifiedqa-v2-t5-small-1363200
+aluserhuggingface/DialoGPT-small-harrypotter
+alvinkobe/DialoGPT-medium-steve_biko
+alvinkobe/DialoGPT-small-KST
+aman21/DialoGPT-medium-Morty
+amild01/GPT2-german-chefkoch
+andikarachman/DialoGPT-small-sheldon
+andrek/LAT2NOB
+anduush/DialoGPT-small-Rick
+anechaev/ru_med_gpt3sm_based_on_gpt2
+ange/DialoGPT-medium-Monke
+ankimt01/DialoGPT-small-anch
+ann101020/le2sbot-hp
+anonymous-german-nlp/german-gpt2
+anshengli2/DialogGPT-small-Bot
+antoinelouis/belgpt2
+anusha/t5-base-finetuned-wikiSQL-sql-to-en
+anusha/t5-base-finetuned-wikiSQL-sql-to-en_1
+anusha/t5-base-finetuned-wikiSQL-sql-to-en_15i
+anweasha/DialoGPT-small-Chandler
+anweasha/DialoGPT-small-Jake
+anzorq/t5-v1_1-small-ru_kbd-cased
+aoryabinin/aoryabinin_gpt_ai_dungeon_ru
+aplnestrella/Aladdin-Bot
+apoorvumang/kgt5-wikikg90mv2
+aqj213/t5-base-customised-1k-tokens-pisa-state-only-finetuned
+aqj213/t5-base-pisa-state-only-finetuned
+aqj213/t5-small-pisa-state-only-finetuned
+aqj213/t5-v1_1-large-last-1-step-pisa-state-only-finetuned
+aqj213/t5-v1_1-large-pisa-state-only-finetuned
+arampacha/DialoGPT-medium-simpsons
+archmagos/HourAI
+ardatasc/miniMe-version1
+aretw0/t5-small-finetuned-en-to-ro-dataset_20-input_64
+aretw0/t5-small-finetuned-en-to-ro-dataset_20
+aretw0/t5-small-finetuned-en-to-ro-epoch.04375
+arifbhrn/DialogGPT-small-Rickk
+aristotletan/t5-small-finetuned-xsum
+arjunth2001/priv_sum
+arnav7633/DialoGPT-medium-tony_stark
+aryanbhosale/DialoGPT-medium-harrypotter
+asad/DialoGPT-small-harryporter_bot
+lmqg/mt5-small-jaquad-qg-ae
+lmqg/mt5-small-jaquad-qg
+research-backup/t5-base-squad-qg-default
+lmqg/t5-base-squad-qg-ae
+research-backup/t5-base-squad-qg-no-answer
+research-backup/t5-base-squad-qg-no-paragraph
+lmqg/t5-base-squad-qg
+research-backup/t5-large-squad-qg-default
+research-backup/t5-large-squad-qg-no-answer
+research-backup/t5-large-squad-qg-no-paragraph
+lmqg/t5-large-squad-qg
+research-backup/t5-small-squad-qg-default
+lmqg/t5-small-squad-qg-ae
+research-backup/t5-small-squad-qg-no-answer
+research-backup/t5-small-squad-qg-no-paragraph
+lmqg/t5-small-squad-qg
+asakawa/distilgpt2-finetuned-wikitext2
+asakawa/gpt2-wikitext2
+aseda/t5-small-finetuned-xsum
+aseifert/byt5-base-jfleg-wi
+aseifert/t5-base-jfleg-wi
+asgadgdaf/text-generator-norge-1
+ashish-shrivastava/dont-know-response
+ashwinchandran13/DialoGPT-small-harrypotter
+asi/gpt-fr-cased-base
+asi/gpt-fr-cased-small
+astremo/friendly_JA
+astrobreazy/DialoGPT-small-harrypotter
+atharvapatil128/JakeBot
+atkh6673/DialoGPT-small-harrypotter
+atkh6673/DialoGPT-small-trump
+atomsspawn/DialoGPT-small-dumbledore
+aubmindlab/aragpt2-base
+aubmindlab/aragpt2-large
+aubmindlab/aragpt2-medium
+aubmindlab/aragpt2-mega
+auday/paraphraser_model1
+auday/paraphraser_model2
+augustojaba/DialoGPT-small-harrypotter
+averyanalex/panorama-rugpt3large
+aviator-neural/gpt2-donald_trump
+avinashshrangee/DialoGPT-small-Ricky
+avnish100/DialoGPT-small-rick
+avorozhko/ruDialoGpt3-medium-finetuned-context
+awvik360/DialoGPT-medium-plemons
+awvik360/DialoGPT-small-plemons
+ayameRushia/gpt2-medium-fine-tuning-indonesia-poem
+ayameRushia/gpt2-small-indonesia-fine-tuning-poem
+aydin/DialoGPT-medium-michael
+aypan17/distilgpt2-imdb
+aypan17/gpt2-med-imdb
+ayush19/rick-sanchez
+azwierzc/plt5-base-pl-to-sql
+azwierzc/plt5-small-pl-to-sql
+b0shakk/DialoGPT-small-Ragnar
+bada/test_gpt
+baffo32/gpt2-ptmap
+baffo32/pyc2py_alpha
+baffo32/pyc2py_alpha2
+baffo32/t5-base-ptmap
+bagdaebhishek/IndianPoliticalTweetsLM
+bagdaebhishek/IndianPoliticalTweetsLMMedium
+bakrianoo/t5-arabic-base
+bakrianoo/t5-arabic-large
+bakrianoo/t5-arabic-small
+bala1802/model_1_test
+balamariannmt/LanguageModel_Trial_2
+balawmt/LanguageModel_Trial_1
+balta/DialoGPT-small-TestBot
+banalyst/wonder-egg
+banden/DialoGPT-medium-RickBot
+banden/DialoGPT-small-LokiBot
+bankholdup/rugpt3_song_writer
+baophuc27/tbwt_grammar
+bayartsogt/mongolian-gpt2
+bdwjaya/t5-small-finetuned-xsum
+beatajackowska/DialoGPT-RickBot
+begar/distilgpt2-finetuned
+benajtil/DialoGPT-small-Daddyben
+benajtil/DialoGPT-small-RickAndMortyScripts
+benbeshara/vic_presser_bot
+benjamin/gerpt2-large
+benjamin/gerpt2
+benjamin/gpt2-wechsel-chinese
+benjamin/gpt2-wechsel-french
+benjamin/gpt2-wechsel-german
+benjamin/gpt2-wechsel-swahili
+benjaminbeilharz/dialoGPT-small-empatheticdialogues-generation
+benjaminbeilharz/t5-conditioned-next-turn
+benmrtnz27/DialoGPT-small-misato
+bensuydam/CartmanBot
+beomi/KcT5-dev
+beomi/kcgpt2-dev
+beomi/kcgpt2
+beomi/kykim-gpt3-kor-small_based_on_gpt2
+beomus/lotr-gpt
+bestminerevah/DialoGPT-small-thetenthdoctor
+bhaden94/LokiDiscordBot-medium
+bhavya689/DialoGPT-large-chandler
+bhuvaneswari/t5-small-finetuned-xsum
+bhuvaneswari/t5-small-text_summarization
+bigjoedata/friendlychatbot
+bigjoedata/obama-gpt2-sm
+bigjoedata/rockbot-scratch
+bigjoedata/rockbot
+bigjoedata/rockbot355M
+bigjoedata/rockchatbot
+bigjoedata/trump-gpt2-sm
+bigscience/T0
+bigscience/T0_3B
+bigscience/T0_original_task_only
+bigscience/T0_single_prompt
+bigscience/T0p
+bigscience/T0pp
+birgermoell/swedish-gpt
+birgermoell/t5-base-swedish
+bleachybrain/DialoGPT-med-ss
+bmdonnell/DialoGPT-medium-harrypotter
+bochaowei/t5-small-finetuned-cnn-wei0
+bochaowei/t5-small-finetuned-cnn-wei1
+bochaowei/t5-small-finetuned-xsum-wei0
+bochaowei/t5-small-finetuned-xsum-wei1
+bochaowei/t5-small-finetuned-xsum-wei2
+bochrasaffar/T5_description_generation
+bolbolzaban/gpt2-persian
+bonebambi/DialoGPT-small-ThakirClone
+bookbot/gpt2-indo-medium-kids-stories
+bookbot/gpt2-indo-small-kids-stories
+boran/berkbot
+boydster/DialoGPT-small-gollum
+brandontanzhirong/paraphrasing-tool_t5-finetuned-QQP
+brimeggi/inexis-bot
+brimeggi/testbot2
+brokentx/newbrokiev2
+bs-modeling-metadata/html-metadata-exp1-subexp1-1857108
+bs-modeling-metadata/html-metadata-exp1-subexp2-1929863
+bs-modeling-metadata/html-metadata-exp1-subexp3-1898197
+bs-modeling-metadata/website_metadata_exp_1_model_100k_checkpoint
+bs-modeling-metadata/website_metadata_exp_1_model_25k_checkpoint
+bspans/DialoGPT-small-yoda
+btk/gpt100k
+btk/gpt2_articles1
+btk/gpt2_data_random
+btk/gpt2jt
+byeongal/Ko-DialoGPT
+byeongal/gpt2-large
+byeongal/gpt2-medium
+byeongal/gpt2
+bypequeno/DialoGPT-small-michaelscott
+byteb/DialoGPT-small-hades
+cactode/gpt2_urbandict_textgen
+cactode/gpt2_urbandict_textgen_distill
+cactode/gpt2_urbandict_textgen_torch
+cahya/gpt2-large-indonesian-522M
+cahya/gpt2-medium-indonesian-story
+cahya/gpt2-small-indonesian-522M
+cahya/gpt2-small-indonesian-personachat-empathetic
+cahya/gpt2-small-indonesian-personachat
+cahya/gpt2-small-indonesian-story
+cahya/t5-base-indonesian-summarization-cased
+caixin1998/chinese-poetry-gpt2-pretrain
+caixin1998/chinese-poetry-gpt2
+calebcsjm/distilgpt2-finetuned-wikitexts
+cambridgeltl/simctg_english_wikipedia
+cambridgeltl/simctg_lccc_dialogue
+cambridgeltl/simctg_wikitext103
+camilodefelipe/t5_squad_v1
+camilodefelipe/t5_squad_v1_es
+cammy/t5-base-finetuned-weaksup-1000
+candra/gpt2-newgen-test
+candra/headline-small-gpt2
+candra/test-dummy-model
+canwenxu/ssr-base
+caps1994/DialoGPT-small-chrisbot-caps1994
+caps1994/DialoGPT-small-chrisbot
+caps1994/DialoGPT-small-harrypotter-caps1994
+cartyparty/DialoGPT-small-harrypotter
+cartyparty/DialoGPT-small-iteration1
+cartyparty/DialoGPT-small-nerdherd
+castorini/doc2query-t5-base-msmarco
+castorini/doc2query-t5-large-msmarco
+castorini/duot5-3b-med-msmarco
+castorini/duot5-3b-msmarco
+castorini/duot5-base-msmarco-10k
+castorini/duot5-base-msmarco
+castorini/monot5-3b-med-msmarco
+castorini/monot5-3b-msmarco
+castorini/monot5-base-med-msmarco
+castorini/monot5-base-msmarco-10k
+castorini/monot5-base-msmarco
+castorini/monot5-large-msmarco-10k
+castorini/monot5-large-msmarco
+castorini/t5-base-canard
+potaycat/vinanews-gpt2-kinda
+cedpsam/chatbot_fr
+ceostroff/harry-potter-gpt2-fanfiction
+ceshine/t5-paraphrase-paws-msrp-opinosis
+ceshine/t5-paraphrase-quora-paws
+chaitrabhat/DialoGPT-small-rick
+chamodkarunasena/DialoGPT-medium-sokka
+chan030609/DialoGPT-medium-JAB
+chan030609/DialoGPT-small-JAB
+chellver24/DialoGPT-medium-chizuru_ichinose
+chicaaago/coomaa_sensei
+chinhon/distilgpt2-sgnews
+chip/DialoGPT-small-chizuru
+chirag2706/gpt2_code_generation_model
+chopey/testmntdv
+chrisliu298/arxiv_ai_gpt2
+christopherastone/distilgpt2-proofs
+ck46/t5-base-hotpot-qa-qg
+ck46/t5-base-qg-prefix
+ck46/t5-base-squad-qa-qg
+ck46/t5-small-hotpot-qa-qg
+ck46/t5-small-squad-qa-qg
+ckiplab/gpt2-base-chinese
+clairesb/kindness_bot
+clairesb/kindness_bot_repo
+clancystudios/DialoGPT-medium-Morty
+claudelkros/T5_french_wiki_summarizer
+clayfox/DialoGPT-medium-Hiccup
+clayfox/DialoGPT-small-Hiccup
+cnicu/t5-small-booksum
+cocoaclef/DialoGPT-small-kohaku
+codealtgeek/DiabloGPT-medium-rickmorty
+AMHR/T5-for-Adversarial-Paraphrasing
+cointegrated/rut5-base-absum
+cointegrated/rut5-base-multitask
+cointegrated/rut5-base-paraphraser
+cointegrated/rut5-base-quiz
+cointegrated/rut5-base-review
+cointegrated/rut5-base
+cointegrated/rut5-small-chitchat
+cointegrated/rut5-small-chitchat2
+cointegrated/rut5-small-normalizer
+cointegrated/rut5-small
+colochoplay/DialoGTP-small-harrypotter
+colorfulscoop/gpt2-small-ja
+congcongwang/distilgpt2_fine_tuned_coder
+congcongwang/gpt2_medium_fine_tuned_coder
+congcongwang/t5-base-fine-tuned-wnut-2020-task3
+congcongwang/t5-large-fine-tuned-wnut-2020-task3
+conniezyj/DialoGPT-small-snape
+cookirei/DialoGPT-medium-Joreyar
+copypress/copypress
+cosmic/DialoGPT-Rick
+cosmicray001/prod-harry
+cosmicray001/small-harry
+cpierse/gpt2_film_scripts
+crylake/kw2poem-generation
+crystalgate/DialoGPT-small-rick
+csbongga/Machi-QAG-01
+csbongga/Machi-QAG-02
+csebuetnlp/mT5_m2o_english_crossSum
+csebuetnlp/mT5_multilingual_XLSum
+cumtowndiscord/DialoGPT-small-joshua
+cutiebunny639/DialoGPT-small-harry
+cwh/gpt2-medium-finetuned-wikitext2
+d4rk/harry
+d8oss/gamio-small
+d8oss/giw-medium
+danchang11/GPT2-TraditionalChat
+danghuy1999/gpt2-viwiki
+danhsf/mt5-small-finetuned-hi-to-en
+danhsf/t5-small-finetuned-en-to-pt
+danhsf/t5-small-finetuned-en-to-ro-lr_2e-3-fp_false
+danhsf/t5-small-finetuned-ro-to-en
+danielbispov/t5-small-finetuned-fi-to-en
+danildany/DialoGPT-small-MichaelScott
+danny481/DialoGPT-small-datnguyenchatbot
+danny481/DialoGPT-small-harrypotter
+danny481/Final_ChatBot
+danny911kr/calm-base
+danny911kr/calm-large
+danny911kr/calm-mix-base
+danny911kr/calm-mix-large
+danurahul/RuGPT3_german20
+danurahul/alex-gpt-L
+danurahul/alex-gpt-doc2text
+danurahul/alex-gpt-finetune
+danurahul/alex-gpt2000
+danurahul/alex_gpt3_Doctextfull
+danurahul/alex_gpt3_Doctextfull2
+danurahul/alex_gpt3_endoftext
+danurahul/distil
+danurahul/doc2txt_model2
+danurahul/german_gpt_4g
+danurahul/ghosh_dentist
+danurahul/ghosh_dentist_med
+danyaljj/gpt2_question_answering_squad2
+danyaljj/gpt2_question_generation_given_paragraph
+danyaljj/gpt2_question_generation_given_paragraph_answer
+daqiao202/distilgpt2-finetuned-wikitext2
+darkzek/chickenbot-jon-snow
+darthboii/DialoGPT-small-PickleRick
+darthboii/DialoGPT-small-Rick
+datificate/gpt2-small-spanish
+dats/DialoGPT-small-harrypotter
+dattam/DialoGPT-medium-TonyStarkBot
+daveripper0020/essaygpt2
+day/first-bot-large
+day/first-bot-medium
+day/first-bot-small
+day/her-bot-small
+dbddv01/gpt2-french-small
+dbernsohn/algebra_linear_1d
+dbernsohn/algebra_linear_1d_composed
+dbernsohn/t5_measurement_time
+dbernsohn/t5_numbers_gcd
+dbernsohn/t5_wikisql_SQL2en
+dbernsohn/t5_wikisql_en2SQL
+dbmdz/german-gpt2-faust
+dbmdz/german-gpt2
+dbmdz/t5-base-conll03-english
+dbragdon/noamlm
+ddobokki/gpt2_poem
+dead69/GPT-small-yoda
+DebateLabKIT/argument-analyst
+DebateLabKIT/cript-large
+DebateLabKIT/cript-medium
+DebateLabKIT/cript
+deep-learning-analytics/GrammarCorrector
+deep-learning-analytics/automatic-title-generation
+deep-learning-analytics/triviaqa-t5-base
+deep-learning-analytics/wikihow-t5-small
+deepparag/Aeona
+deepparag/DumBot
+defex/distilgpt2-finetuned-amazon-reviews
+defex/distilgpt2-movie-review-generation
+dehio/german-qg-t5-drink600
+dehio/german-qg-t5-e2e-quad
+dehio/german-qg-t5-quad
+delvan/DialoGPT-medium-DwightV1
+deutsche-telekom/mt5-small-sum-de-en-v1
+deutsche-telekom/mt5-small-sum-de-mit-v1
+df4rfrrf/DialoGPT-medium-Aerith
+dhanushlnaik/amySan
+dhlpricing/MyGPT2TG-cased-v1
+diegor2/t5-tiny-random-length-128-learning_rate-2e-05-weight_decay-0.01-finetu-truncated-d22eed
+diegor2/t5-tiny-random-length-96-learning_rate-0.0001-weight_decay-0.01-finetu-truncated-5e15da
+diegor2/t5-tiny-random-length-96-learning_rate-2e-05-weight_decay-0.005-finetu-truncated-41f800
+diegor2/t5-tiny-random-length-96-learning_rate-2e-05-weight_decay-0.01-finetuned-en-to-ro-TRAIN_EPOCHS-1
+digit82/kogpt2-summarization
+digit82/kolang-t5-base
+pyordii/distilgpt2-finetuned-AT
+disdamoe/DialoGPT-small-moe
+disdamoe/TheGreatManipulator
+disdamoe/TheManipulator
+dk16gaming/DialoGPT-small-HarryPotter
+dkleczek/papuGaPT2-finetuned-wierszyki
+dkleczek/papuGaPT2
+dkminer81/Tromm
+doc2query/S2ORC-t5-base-v1
+doc2query/all-t5-base-v1
+doc2query/all-with_prefix-t5-base-v1
+doc2query/msmarco-t5-base-v1
+doc2query/msmarco-t5-small-v1
+doc2query/reddit-t5-base-v1
+doc2query/reddit-t5-small-v1
+doc2query/stackexchange-t5-base-v1
+doc2query/stackexchange-title-body-t5-base-v1
+doc2query/stackexchange-title-body-t5-small-v1
+doc2query/yahoo_answers-t5-base-v1
+donggyu/mnmt
+donggyu/mnmt_decoder_ko
+doufulai/t5-question-generation-en-model-v1
+dpetrini/t5-small-finetuned-ro-to-en
+dpetrini/t5-tiny-random-finetuned-ru-to-en
+dracoglacius/NTDB-GPT2
+dram-conflict/horror-scripts
+dram-conflict/test_scripts
+dreamline2/DialoGPT-small-joshua-demo
+dropout05/distilt5_6l_8h_512d_2048ff
+dropout05/lfom_distilt5_6l_8h_512d_2048ff
+dropout05/lfom_distilt5_6l_8h_512d_2048ff_restarted
+dropout05/t5-tiny
+dropout05/t5_2l_8h_512d_2048ff
+dropout05/t5_2l_8h_512d_2048ff_lfom_distil
+dropout05/t5_2l_8h_512d_2048ff_vocab32128
+dudesparsh/tweet_GPT
+dukeme/DialoGPT-small-RDBotv1
+duongsau/iqtree-similarity
+e-tony/gpt2-rnm
+eclare/DialoGPT-small-SCHAEFER
+educhav/Austin-DialoGPT-small
+educhav/Elijah-DialoGPT-small
+educhav/J-DialoGPT-small
+educhav/Sam-DialoGPT-small
+efederici/it5-base-summarization
+efederici/text2tags
+egonzalez/model
+ehdwns1516/gpt2_review_star1
+ehdwns1516/gpt2_review_star2
+ehdwns1516/gpt2_review_star3
+ehdwns1516/gpt2_review_star4
+ehdwns1516/gpt2_review_star5
+ehdwns1516/gpt3-kor-based_gpt2_review_SR1
+ehdwns1516/gpt3-kor-based_gpt2_review_SR2
+ehdwns1516/gpt3-kor-based_gpt2_review_SR3
+ehdwns1516/gpt3-kor-based_gpt2_review_SR4
+ehdwns1516/gpt3-kor-based_gpt2_review_SR5
+ekkasilina/big_baseline
+ekkasilina/small_baseline
+eklrivera/DialoGPT-small-harrypotter
+eldritch-axolotl/Rick
+elena-soare/t5-base-ecommerce
+elgeish/gpt2-medium-arabic-poetry
+eliotm/t5-small-finetuned-en-to-ro-LR_1e-3
+eliotm/t5-small-finetuned-en-to-ro-fp16_off
+eliotm/t5-small-finetuned-en-to-ro-lr0.001
+eliotm/t5-small-finetuned-en-to-ro-lr_2e-6
+emil2000/dialogpt-for-french-language
+emillykkejensen/daT5-base
+emillykkejensen/daT5-large
+empushy/gpt2-alerts
+empushy/gpt2-emulator
+emre/arxiv27k-t5-abst-title-gen
+emre/jurisprudence-textgen-gpt-2
+enelpol/poleval2021-task3
+ensamblador/gpt2-derecha-with-bos-eos-48heads
+ensamblador/gpt2-derecha-with-bos-eos-8heads
+ensamblador/gpt2-es-48heads
+ensamblador/gpt2-es-8heads
+ensamblador/gpt2-twitter-politico
+ensamblador/gpt2_espanol_8hx512pos
+ensamblador/model_es_custom
+epsil/bhagvad_gita
+erfan226/persian-t5-formality-transfer
+erfan226/persian-t5-paraphraser
+ericklasco/DialoGPT-small-erickHarryPotter
+ericzhou/DialoGPT-Medium-Rick
+ericzhou/DialoGPT-Medium-Rick_v2
+ericzhou/DialoGPT-medium-elon
+ericzhou/tsundere_v1
+erikinfo/gpt2TEDlectures
+erwanlc/t5-cocktails_recipe-base
+erwanlc/t5-cocktails_recipe-small
+erwanlc/t5-coktails_recipe-base
+erwanlc/t5-coktails_recipe-small
+ethzanalytics/ai-msgbot-gpt2-L-dialogue
+ethzanalytics/ai-msgbot-gpt2-L
+ethzanalytics/ai-msgbot-gpt2-M
+ethzanalytics/ai-msgbot-gpt2-XL-dialogue
+ethzanalytics/ai-msgbot-gpt2-XL
+ethzanalytics/distilgpt2-tiny-conversational
+ethzhou/newJooby
+eunjin/kogpt2-finetuned-wellness
+f00d4tehg0dz/Peppa
+f00d4tehg0dz/Yoda
+fadhilarkan/gq-indo-k
+fadhilarkan/qa-indo-math-k-v2
+fadhilarkan/qa-indo-math-k
+fadhilarkan/t5-small-finetuned-xsum-2
+fadhilarkan/t5-small-finetuned-xsum
+fadhilarkan/t5_paw_global
+fadhilarkan/test-summarization
+fadhilarkan/tmpr60526f6
+fadhilarkan/tmpvqruuuz0
+faketermz/DialoGPT
+fatemaMeem98/DialoGPT-medium-HermioneGrangerBot
+faust/broken_t5_squad2
+felinecity/DioloGPT-small-KaeyaBot
+felinecity/DioloGPT-small-KaeyaBot2
+felinecity/DioloGPT-small-LisaBot
+felinecity/ScaraBot
+felixhusen/poem
+felixhusen/scientific
+ffrmns/t5-small_XSum-finetuned
+ffsouza/t5-small-length-128-learning_rate-2e-05-weight_decay-0.01-finetuned-en-to-ro
+ffsouza/t5-tiny-random-length-128-learning_rate-2e-05-weight_decay-0.01-finetuned-en-to-ro
+ffsouza/t5-tiny-random-length-96-learning_rate-0.0002-weight_decay-0.01-finetuned-en-to-ro
+ffsouza/t5-tiny-random-length-96-learning_rate-1e-05-weight_decay-0.01-finetuned-en-to-ro
+ffsouza/t5-tiny-random-length-96-learning_rate-2e-05-weight_decay-0.005-finetuned-en-to-ro
+ffsouza/t5-tiny-random-length-96-learning_rate-2e-05-weight_decay-0.01-finetuned-en-to-ro
+ffsouza/t5-tiny-random-length-96-learning_rate-2e-05-weight_decay-0.02-finetuned-en-to-ro
+fgaim/t5-small-squad-v2
+fibruh/DialoGPT-small-harrypotter
+figurative-nlp/t5-figurative-generation
+figurative-nlp/t5-figurative-paraphrase
+flakje/DialoGPT-small-Marty
+flax-community/Bengali-t5
+flax-community/GPT2-korean
+flax-community/Sinhala-gpt2
+flax-community/arabic-t5-small
+flax-community/bengali-t5-base
+flax-community/byt5-base-wikisplit
+flax-community/code-mt5-base-batch-mix
+flax-community/code-mt5-base
+flax-community/dansk-gpt-wiki
+flax-community/ft5-rezero-base-openwebtext
+flax-community/git-byt5-base
+flax-community/git-t5-base
+flax-community/git-t5-v1_1-base
+flax-community/gpt-2-spanish
+flax-community/gpt-2-tamil
+flax-community/gpt2-Cosmos
+flax-community/gpt2-base-thai
+flax-community/gpt2-bengali
+flax-community/gpt2-large-indonesian
+flax-community/gpt2-medium-indonesian
+flax-community/gpt2-medium-persian
+flax-community/gpt2-persian-question-answering
+flax-community/gpt2-rap-lyric-generator
+flax-community/gpt2-small-indonesian
+flax-community/gpt2-swahili
+flax-community/mongolian-gpt2
+flax-community/nordic-gpt-wiki
+flax-community/norsk-gpt-wiki
+flax-community/papuGaPT2-large
+flax-community/spanish-t5-small
+flax-community/swe-gpt-wiki
+flax-community/t5-base-cnn-dm
+flax-community/t5-base-dutch-demo
+flax-community/t5-base-dutch
+flax-community/t5-base-openwebtext
+flax-community/t5-base-wikisplit
+flax-community/t5-large-wikisplit
+flax-community/t5-recipe-generation
+flax-community/t5-v1_1-base-wikisplit
+flexudy/cheapity3
+flexudy/t5-base-conceptor
+flexudy/t5-base-multi-sentence-doctor
+flooptherocket/DialogGPT-small-rick
+aware-ai/byt5-german-grammar
+aware-ai/t5-skills
+formermagic/codet5-base
+formermagic/codet5-large
+formermagic/codet5-small
+formermagic/codet5-xl
+formermagic/codet5x-base
+formermagic/codet5x-small
+formermagic/pyt5-base
+fractaldna22/GPT_2_Marxism
+fractalego/fact-checking
+frozenwalker/T5_pubmedqa_question_generation
+frtna/t5-small-finetuned-Spanish-to-Italian
+ftnvir/DialoGPT-medium-bullyMaguire
+furyhawk/t5-base-finetuned-bbc-headline
+furyhawk/t5-base-finetuned-bbc
+furyhawk/t5-small-finetuned-bbc-headline
+furyhawk/t5-small-finetuned-bbc
+furyhawk/t5-small-finetuned-xsum
+fznmhmmd/gpt2-wikitext2
+gabtan99/dialogpt-tagalog-medium-10
+gabtan99/dialogpt-tagalog-medium-20
+gabtan99/dialogpt-tagalog-medium-30
+gabtan99/dialogpt-tagalog-medium
+gagan3012/Fox-News-Generator
+gagan3012/k2t-base
+gagan3012/k2t-new
+gagan3012/k2t-test
+gagan3012/k2t-test3
+gagan3012/k2t-tiny
+gagan3012/k2t
+gagan3012/keytotext-gpt
+gagan3012/keytotext-small
+gagan3012/keytotext
+gagan3012/model
+gagan3012/pickuplines
+gagan3012/project-code-py-micro
+gagan3012/project-code-py-small
+gagan3012/project-code-py
+gagan3012/rap-writer
+gagan3012/summarsiation
+gaochangkuan/model_dir
+gayanin/t5-small-finetuned-pubmed
+gayanin/t5-small-mlm-pubmed-15
+gayanin/t5-small-mlm-pubmed-35
+gayanin/t5-small-mlm-pubmed-45
+gayanin/t5-small-mlm-pubmed
+gayanin/t5-small-paraphrase-pubmed
+geekfeed/gpt2_ja
+geralt/MechDistilGPT2
+gfdream/dialogpt-small-familyguy
+gfdream/dialogpt-small-harrypotter
+ggosline/t5-small-herblabels
+ghhostboy/DialoGPT-medium-connorDBH3-1
+ghhostboy/DialoGPT-medium-connorDBH3-21
+ritog/bangla-gpt2
+ritog/bn-poets
+ritog/robi-kobi
+gizmo-dev/DialoGPT-small-jake
+gniemiec/mt5-small-finetuned-xsum
+gniemiec/t5-small-finetuned-xsum
+Language-Media-Lab/byt5-small-ain-jpn-mt
+Language-Media-Lab/byt5-small-jpn-ain-mt
+Language-Media-Lab/mt5-small-ain-jpn-mt
+Language-Media-Lab/mt5-small-jpn-ain-mt
+goodjw/gpt-trinity-poem
+google/byt5-base
+google/byt5-large
+google/byt5-small
+google/byt5-xl
+google/byt5-xxl
+google/mt5-base
+google/mt5-large
+google/mt5-small
+google/mt5-xl
+google/mt5-xxl
+google/t5-11b-ssm-nq
+google/t5-11b-ssm-nqo
+google/t5-11b-ssm-tqa
+google/t5-11b-ssm-tqao
+google/t5-11b-ssm-wq
+google/t5-11b-ssm
+google/t5-3b-ssm-nq
+google/t5-3b-ssm-nqo
+google/t5-3b-ssm
+google/t5-base-lm-adapt
+google/t5-efficient-base-dl2
+google/t5-efficient-base-dl4
+google/t5-efficient-base-dl6
+google/t5-efficient-base-dl8
+google/t5-efficient-base-dm1000
+google/t5-efficient-base-dm2000
+google/t5-efficient-base-dm256
+google/t5-efficient-base-dm512
+google/t5-efficient-base-el16
+google/t5-efficient-base-el2
+google/t5-efficient-base-el4
+google/t5-efficient-base-el6
+google/t5-efficient-base-el8
+google/t5-efficient-base-ff1000
+google/t5-efficient-base-ff12000
+google/t5-efficient-base-ff2000
+google/t5-efficient-base-ff6000
+google/t5-efficient-base-ff9000
+google/t5-efficient-base-kv128
+google/t5-efficient-base-kv16
+google/t5-efficient-base-kv256
+google/t5-efficient-base-kv32
+google/t5-efficient-base-nh16
+google/t5-efficient-base-nh24
+google/t5-efficient-base-nh32
+google/t5-efficient-base-nh8
+google/t5-efficient-base-nl16
+google/t5-efficient-base-nl2
+google/t5-efficient-base-nl24
+google/t5-efficient-base-nl32
+google/t5-efficient-base-nl36
+google/t5-efficient-base-nl4
+google/t5-efficient-base-nl40
+google/t5-efficient-base-nl48
+google/t5-efficient-base-nl8
+google/t5-efficient-base
+google/t5-efficient-large-dl12
+google/t5-efficient-large-dl16
+google/t5-efficient-large-dl2
+google/t5-efficient-large-dl32
+google/t5-efficient-large-dl4
+google/t5-efficient-large-dl6
+google/t5-efficient-large-dl8
+google/t5-efficient-large-dm128
+google/t5-efficient-large-dm2000
+google/t5-efficient-large-dm256
+google/t5-efficient-large-dm512
+google/t5-efficient-large-dm768
+google/t5-efficient-large-el12
+google/t5-efficient-large-el2
+google/t5-efficient-large-el4
+google/t5-efficient-large-el6
+google/t5-efficient-large-el8
+google/t5-efficient-large-kv128
+google/t5-efficient-large-kv16
+google/t5-efficient-large-kv256
+google/t5-efficient-large-kv32
+google/t5-efficient-large-nh12
+google/t5-efficient-large-nh2
+google/t5-efficient-large-nh24
+google/t5-efficient-large-nh32
+google/t5-efficient-large-nh4
+google/t5-efficient-large-nh8-nl32
+google/t5-efficient-large-nh8
+google/t5-efficient-large-nl10
+google/t5-efficient-large-nl12
+google/t5-efficient-large-nl16
+google/t5-efficient-large-nl2
+google/t5-efficient-large-nl20
+google/t5-efficient-large-nl32
+google/t5-efficient-large-nl36
+google/t5-efficient-large-nl4
+google/t5-efficient-large-nl8
+google/t5-efficient-large
+google/t5-efficient-mini-nl12
+google/t5-efficient-mini-nl24
+google/t5-efficient-mini-nl6
+google/t5-efficient-mini-nl8
+google/t5-efficient-mini
+google/t5-efficient-small-dl12
+google/t5-efficient-small-dl16
+google/t5-efficient-small-dl2
+google/t5-efficient-small-dl4
+google/t5-efficient-small-dl8
+google/t5-efficient-small-dm1000
+google/t5-efficient-small-dm128
+google/t5-efficient-small-dm2000
+google/t5-efficient-small-dm256
+google/t5-efficient-small-dm768
+google/t5-efficient-small-el12
+google/t5-efficient-small-el16-dl1
+google/t5-efficient-small-el16-dl2
+google/t5-efficient-small-el16-dl4
+google/t5-efficient-small-el16-dl8
+google/t5-efficient-small-el16
+google/t5-efficient-small-el2
+google/t5-efficient-small-el32
+google/t5-efficient-small-el4
+google/t5-efficient-small-el48
+google/t5-efficient-small-el64
+google/t5-efficient-small-el8-dl1
+google/t5-efficient-small-el8-dl2
+google/t5-efficient-small-el8-dl4
+google/t5-efficient-small-el8
+google/t5-efficient-small-ff1000
+google/t5-efficient-small-ff12000
+google/t5-efficient-small-ff3000
+google/t5-efficient-small-ff6000
+google/t5-efficient-small-ff9000
+google/t5-efficient-small-kv128
+google/t5-efficient-small-kv16
+google/t5-efficient-small-kv256
+google/t5-efficient-small-kv32
+google/t5-efficient-small-nl16
+google/t5-efficient-small-nl2
+google/t5-efficient-small-nl20
+google/t5-efficient-small-nl22
+google/t5-efficient-small-nl24
+google/t5-efficient-small-nl32
+google/t5-efficient-small-nl36
+google/t5-efficient-small-nl4
+google/t5-efficient-small-nl40
+google/t5-efficient-small-nl48
+google/t5-efficient-small-nl8
+google/t5-efficient-small
+google/t5-efficient-tiny-dl2
+google/t5-efficient-tiny-dl6
+google/t5-efficient-tiny-dl8
+google/t5-efficient-tiny-el12
+google/t5-efficient-tiny-el2
+google/t5-efficient-tiny-el6
+google/t5-efficient-tiny-el8
+google/t5-efficient-tiny-ff12000
+google/t5-efficient-tiny-ff2000
+google/t5-efficient-tiny-ff3000
+google/t5-efficient-tiny-ff6000
+google/t5-efficient-tiny-ff9000
+google/t5-efficient-tiny-nh1
+google/t5-efficient-tiny-nh16
+google/t5-efficient-tiny-nh32
+google/t5-efficient-tiny-nh8
+google/t5-efficient-tiny-nl12
+google/t5-efficient-tiny-nl16
+google/t5-efficient-tiny-nl2
+google/t5-efficient-tiny-nl24
+google/t5-efficient-tiny-nl32
+google/t5-efficient-tiny-nl6
+google/t5-efficient-tiny-nl8
+google/t5-efficient-tiny
+google/t5-efficient-xl-nl12
+google/t5-efficient-xl-nl16
+google/t5-efficient-xl-nl2
+google/t5-efficient-xl-nl28
+google/t5-efficient-xl-nl4
+google/t5-efficient-xl-nl6
+google/t5-efficient-xl-nl8
+google/t5-efficient-xl
+google/t5-efficient-xxl-nl4
+google/t5-efficient-xxl
+google/t5-large-lm-adapt
+google/t5-large-ssm-nq
+google/t5-large-ssm-nqo
+google/t5-large-ssm
+google/t5-small-lm-adapt
+google/t5-small-ssm-nq
+google/t5-small-ssm
+google/t5-v1_1-base
+google/t5-v1_1-large
+google/t5-v1_1-small
+google/t5-v1_1-xl
+google/t5-v1_1-xxl
+google/t5-xl-lm-adapt
+google/t5-xl-ssm-nq
+google/t5-xxl-lm-adapt
+google/t5-xxl-ssm-nq
+google/t5-xxl-ssm-nqo
+google/t5-xxl-ssm-tqa
+google/t5-xxl-ssm-tqao
+google/t5-xxl-ssm-wq
+google/t5-xxl-ssm-wqo
+google/t5-xxl-ssm
+gorkemgoknar/gpt2-small-turkish
+gorkemgoknar/gpt2-turkish-writer
+gorkemgoknar/gpt2chatbotenglish
+gpt2-adstext/gpt2-adstext
+grayson124/chatbotwaifu
+groar/distilgpt2-finetuned-escape
+groar/distilgpt2-finetuned-wikitext2
+grounddominator/DialoGPT-lar-Rick
+gsarti/ibyt5-base
+gsarti/imt5-base
+gsarti/it5-base-oscar
+gsarti/it5-base
+gsarti/it5-large
+gsarti/it5-small
+gusintheshell/DialoGPT-small-rickbot
+gustavecortal/T0_3B-8bit
+gwima/ryan-sackmott
+gwynethfae/t5-small-finetuned-xsum
+gyre/200wordrpgmodel
+ha-mulan/moby-dick
+hadifar/clozify
+hafidhrendyanto/gpt2-absa
+hama/Doctor_Bot
+hama/Harry_Bot
+hama/barney_bot
+hama/me0.01
+hama/rick_bot
+heabeoun/DiabloGPT-small-nuon-conv
+heliart/PhishingEmailGeneration
+helmi0695/det5-base
+henryoce/DialoGPT-small-rick-and-morty
+henryu-lin/t5-3b-samsum-deepspeed
+henryu-lin/t5-large-samsum-deepspeed
+hervetusse/DialogGPT-small-harrypotter
+hetpandya/t5-base-tapaco
+hetpandya/t5-small-quora
+hetpandya/t5-small-tapaco
+hf-internal-testing/tiny-random-gpt2
+hf-internal-testing/tiny-random-mt5
+hf-internal-testing/tiny-random-t5-v1.1
+hf-internal-testing/tiny-random-t5
+hiiamsid/autonlp-Summarization-20684327
+hiiamsid/autonlp-Summarization-20684328
+hiiamsid/est5-base-qg
+hiiamsid/est5-base
+hiiamsid/hit5-base
+himanshu-dutta/pycoder-gpt2
+hireddivas/DialoGPT-small-ray
+hireddivas/DialoGPT-small-scully
+hireddivas/dialoGPT-small-mulder
+hireddivas/dialoGPT-small-phil
+hireddivas/dialoGPT-small-sonic
+hkunlp/T5_3b_finetune_kvret_glmp2
+hkunlp/T5_base_finetune_all_tasks_2upsample2
+hkunlp/T5_base_prefix_all_tasks_2upsample2
+hkunlp/T5_large_finetune_kvret_glmp2
+hkunlp/T5_large_prefix_all_tasks_2upsample2
+hkunlp/from_all_T5_base_prefix_compwebq2
+hkunlp/from_all_T5_base_prefix_cosql_with_cell_value2
+hkunlp/from_all_T5_base_prefix_d2t_2upsample2
+hkunlp/from_all_T5_base_prefix_dart2
+hkunlp/from_all_T5_base_prefix_fact_2upsample2
+hkunlp/from_all_T5_base_prefix_fetaqa2
+hkunlp/from_all_T5_base_prefix_feverous2
+hkunlp/from_all_T5_base_prefix_grailqa2
+hkunlp/from_all_T5_base_prefix_hybridqa2
+hkunlp/from_all_T5_base_prefix_kg_2upsample2
+hkunlp/from_all_T5_base_prefix_kvret2
+hkunlp/from_all_T5_base_prefix_logic2text2
+hkunlp/from_all_T5_base_prefix_mmqa2
+hkunlp/from_all_T5_base_prefix_mtop2
+hkunlp/from_all_T5_base_prefix_multiwoz2
+hkunlp/from_all_T5_base_prefix_qa_2upsample2
+hkunlp/from_all_T5_base_prefix_sparc_with_cell_value2
+hkunlp/from_all_T5_base_prefix_spider_with_cell_value2
+hkunlp/from_all_T5_base_prefix_sqa2
+hkunlp/from_all_T5_base_prefix_sql2text2
+hkunlp/from_all_T5_base_prefix_sql_2upsample2
+hkunlp/from_all_T5_base_prefix_tab_fact2
+hkunlp/from_all_T5_base_prefix_totto2
+hkunlp/from_all_T5_base_prefix_webqsp2
+hkunlp/from_all_T5_base_prefix_wikisql2
+hkunlp/from_all_T5_base_prefix_wikitq2
+hkunlp/from_all_T5_large_prefix_compwebq2
+hkunlp/from_all_T5_large_prefix_dart2
+hkunlp/from_all_T5_large_prefix_fetaqa2
+hkunlp/from_all_T5_large_prefix_feverous2
+hkunlp/from_all_T5_large_prefix_grailqa2
+hkunlp/from_all_T5_large_prefix_hybridqa2
+hkunlp/from_all_T5_large_prefix_kvret2
+hkunlp/from_all_T5_large_prefix_logic2text2
+hkunlp/from_all_T5_large_prefix_mmqa2
+hkunlp/from_all_T5_large_prefix_mtop2
+hkunlp/from_all_T5_large_prefix_multiwoz2
+hkunlp/from_all_T5_large_prefix_sparc_with_cell_value2
+hkunlp/from_all_T5_large_prefix_spider_with_cell_value2
+hkunlp/from_all_T5_large_prefix_sqa2
+hkunlp/from_all_T5_large_prefix_sql2text2
+hkunlp/from_all_T5_large_prefix_tab_fact2
+hkunlp/from_all_T5_large_prefix_totto2
+hkunlp/from_all_T5_large_prefix_webqsp2
+hkunlp/from_all_T5_large_prefix_wikisql2
+hkunlp/from_all_T5_large_prefix_wikitq2
+honguyenminh/old-zhongli
+houssaineamzil/DialoGPT-small-joey
+hrv/DialoGPT-small-rick-morty
+huggingartists/100-gecs
+huggingartists/21-savage
+huggingartists/25-17
+huggingartists/50-cent
+huggingartists/5nizza
+huggingartists/5opka
+huggingartists/6ix9ine
+huggingartists/aaron-watson
+huggingartists/abba
+huggingartists/adele
+huggingartists/agata-christie
+huggingartists/aikko
+huggingartists/aimer
+huggingartists/alan-walker
+huggingartists/andre-3000
+huggingartists/arash
+huggingartists/architects
+huggingartists/arctic-monkeys
+huggingartists/ariana-grande
+huggingartists/ariya
+huggingartists/armin-van-buuren
+huggingartists/as-i-lay-dying
+huggingartists/baklan
+huggingartists/big-baby-tape
+huggingartists/big-russian-boss
+huggingartists/bill-wurtz
+huggingartists/billie-eilish
+huggingartists/billy-talent
+huggingartists/bladee
+huggingartists/bob-dylan
+huggingartists/bones
+huggingartists/boris-grebenshikov
+huggingartists/bring-me-the-horizon
+huggingartists/bruce-springsteen
+huggingartists/bryan-adams
+huggingartists/burzum
+huggingartists/bushido-zho
+huggingartists/cardi-b
+huggingartists/chester-bennington
+huggingartists/cocomelon
+huggingartists/coldplay
+huggingartists/dababy
+huggingartists/ddt
+huggingartists/death-grips
+huggingartists/deep-purple
+huggingartists/denderty
+huggingartists/dj-artem-artemov
+huggingartists/doja-cat
+huggingartists/drake
+huggingartists/dua-lipa
+huggingartists/duran-duran
+huggingartists/dzhizus
+huggingartists/ed-sheeran
+huggingartists/egor-kreed
+huggingartists/egor-letov
+huggingartists/elton-john
+huggingartists/eminem
+huggingartists/enigma
+huggingartists/enya
+huggingartists/epic-rap-battles-of-history
+huggingartists/face
+huggingartists/fascinoma
+huggingartists/fear-factory
+huggingartists/florence-the-machine
+huggingartists/ghost
+huggingartists/ghostemane
+huggingartists/gizmo
+huggingartists/gorillaz
+huggingartists/green-day
+huggingartists/grigory-leps
+huggingartists/grimes
+huggingartists/gspd
+huggingartists/gunna
+huggingartists/hyuna
+huggingartists/i-dont-know-how-but-they-found-me
+huggingartists/imagine-dragons
+huggingartists/john-k-samson
+huggingartists/john-lennon
+huggingartists/joji
+huggingartists/joni-mitchell
+huggingartists/kanye-west
+huggingartists/kasta
+huggingartists/kehlani
+huggingartists/kipelov
+huggingartists/kishlak
+huggingartists/kizaru
+huggingartists/krechet
+huggingartists/kurt-cobain
+huggingartists/lady-gaga
+huggingartists/lazy-jay
+huggingartists/led-zeppelin
+huggingartists/lil-baby
+huggingartists/lil-nas-x
+huggingartists/lil-peep
+huggingartists/lil-uzi-vert
+huggingartists/linkin-park
+huggingartists/little-big
+huggingartists/logic
+huggingartists/loud-luxury
+huggingartists/loverance
+huggingartists/lovv66
+huggingartists/lumen
+huggingartists/lyapis-trubetskoy
+huggingartists/macan
+huggingartists/machine-gun-kelly
+huggingartists/madonna
+huggingartists/marillion
+huggingartists/maroon-5
+huggingartists/mashina-vremeni
+huggingartists/mating-ritual
+huggingartists/max-korzh
+huggingartists/mayot
+huggingartists/mc-ride
+huggingartists/melanie-martinez
+huggingartists/metallica
+huggingartists/mf-doom
+huggingartists/mikhail-gorshenev
+huggingartists/miyagi
+huggingartists/mnogoznaal
+huggingartists/morgenshtern
+huggingartists/mumiy-troll
+huggingartists/muse
+huggingartists/nervy
+huggingartists/nirvana
+huggingartists/obladaet
+huggingartists/og-buda
+huggingartists/ot-rus
+huggingartists/our-last-night
+huggingartists/oxxxymiron
+huggingartists/peter-paul-and-mary
+huggingartists/pharaoh
+huggingartists/phish
+huggingartists/pink-floyd
+huggingartists/placebo
+huggingartists/platina
+huggingartists/post-malone
+huggingartists/pyrokinesis
+huggingartists/queen
+huggingartists/radiohead
+huggingartists/ramil
+huggingartists/rammstein
+huggingartists/red-hot-chili-peppers
+huggingartists/rex-orange-county
+huggingartists/rihanna
+huggingartists/rocket
+huggingartists/sam-kim
+huggingartists/scriptonite
+huggingartists/sergei-letov
+huggingartists/shadowraze
+huggingartists/skillet
+huggingartists/slava-kpss
+huggingartists/slava-marlow
+huggingartists/snoop-dogg
+huggingartists/sqwore
+huggingartists/sugar-ray
+huggingartists/suicideoscope
+huggingartists/sum-41
+huggingartists/system-of-a-down
+huggingartists/tanzy-minus
+huggingartists/taylor-swift
+huggingartists/the-69-eyes
+huggingartists/the-beatles
+huggingartists/the-gazette
+huggingartists/the-grateful-dead
+huggingartists/the-king-and-the-jester
+huggingartists/the-notorious-big
+huggingartists/the-sugarcubes
+huggingartists/the-the-pigs
+huggingartists/the-velvet-underground
+huggingartists/the-weeknd
+huggingartists/tiamat
+huggingartists/till-lindemann
+huggingartists/tom-waits
+huggingartists/tony-raut-and-garry-topor
+huggingartists/tool
+huggingartists/travis-scott
+huggingartists/twenty-one-pilots
+huggingartists/upsahl
+huggingartists/v-x-v-prince
+huggingartists/van-morrison
+huggingartists/veggietales
+huggingartists/viktor-tsoi
+huggingartists/vladimir-vysotsky
+huggingartists/xxxtentacion
+huggingartists/yung-lean
+huggingartists/yung-plague
+huggingartists/zemfira
+huggingface/gpt2-wikitext2
+huggingface-course/codeparrot-ds
+huggingface-course/mt5-finetuned-amazon-en-es-accelerate
+huggingface-course/mt5-finetuned-amazon-en-es
+huggingface-course/mt5-small-finetuned-amazon-en-es
+huggingtweets/09indierock
+huggingtweets/0xtuba-jacksondame-mikedemarais
+huggingtweets/12123i123i12345
+huggingtweets/12rafiqul
+huggingtweets/14jun1995
+huggingtweets/14werewolfvevo
+huggingtweets/178kakapo
+huggingtweets/2wyatt2mason
+huggingtweets/3lliethedoll
+huggingtweets/3rbunn1nja
+huggingtweets/3thanguy7
+huggingtweets/3thyr3al
+huggingtweets/423zb
+huggingtweets/4by3animetits
+huggingtweets/4pfviolet
+huggingtweets/5uppps
+huggingtweets/60secondrevit
+huggingtweets/666ouz666
+huggingtweets/6bnwo-hotwifekatrina-qobetty
+huggingtweets/926stories-farheyraan-theaamirsays
+huggingtweets/926stories-superachnural
+huggingtweets/926stories
+huggingtweets/Question
+huggingtweets/____devii
+huggingtweets/__frye
+huggingtweets/__justplaying
+huggingtweets/__solnychko
+huggingtweets/__stillpoint
+huggingtweets/__wmww
+huggingtweets/_alexhirsch
+huggingtweets/_bravit
+huggingtweets/_buddha_quotes
+huggingtweets/_colebennett_
+huggingtweets/_cyberemperor
+huggingtweets/_deep_winter_
+huggingtweets/_djpn
+huggingtweets/_elli420_
+huggingtweets/_f1rewalker_-staticmeganito
+huggingtweets/_f1rewalker_
+huggingtweets/_holyweather
+huggingtweets/_its_mino_
+huggingtweets/_luisinhobr-beckvencido
+huggingtweets/_luisinhobr-bryan_paula_-luanaguei
+huggingtweets/_luisinhobr-nomesdegato-nomesdj
+huggingtweets/_lukeharris
+huggingtweets/_marfii
+huggingtweets/_me_you_coward
+huggingtweets/_nalian-simondiamondxx
+huggingtweets/_nisagiss-dril-prezoh
+huggingtweets/_nisagiss-dril
+huggingtweets/_nisagiss-dril_gpt2-drilbot_neo
+huggingtweets/_phr3nzy
+huggingtweets/_pranavnt
+huggingtweets/_rdo
+huggingtweets/_scottcondron
+huggingtweets/_srhiggins
+huggingtweets/_stevenfan
+huggingtweets/_sydkit_
+huggingtweets/_tinyflower
+huggingtweets/a__spaceman
+huggingtweets/aaroisosaari
+huggingtweets/abattoirscreed
+huggingtweets/abcdentminded
+huggingtweets/abdi_smokes
+huggingtweets/abelaer
+huggingtweets/abkazias
+huggingtweets/abnuo113
+huggingtweets/abupepeofficial
+huggingtweets/acephallus
+huggingtweets/actionattheend
+huggingtweets/actiongeologist
+huggingtweets/adamwathan
+huggingtweets/adapkepinska
+huggingtweets/adderallblack
+huggingtweets/adderallia
+huggingtweets/adhd_93
+huggingtweets/adhib
+huggingtweets/adhitadselvaraj
+huggingtweets/adiaeu
+huggingtweets/adjacentgrace
+huggingtweets/adriangregory20
+huggingtweets/adrienna_w
+huggingtweets/ae333mage
+huggingtweets/aevaeavaevevave
+huggingtweets/afinchwrites
+huggingtweets/afm_marketing
+huggingtweets/agencialavieja
+huggingtweets/agendernihilist
+huggingtweets/agholdier
+huggingtweets/agnescallard
+huggingtweets/ahleemuhleek
+huggingtweets/ahmedallibhoy
+huggingtweets/ai_hexcrawl-dailyartprompts
+huggingtweets/ai_hexcrawl-dril_gpt2-drilbot_neo
+huggingtweets/ai_hexcrawl-gods_txt
+huggingtweets/ai_hexcrawl-gptmicrofic
+huggingtweets/ai_hexcrawl
+huggingtweets/aijritter
+huggingtweets/aimbotaimy-coldjiangshi-ladydarknest
+huggingtweets/aimbotaimy-demi_naga-livingscribe
+huggingtweets/aimbotaimy-ladydarknest
+huggingtweets/aimbotaimy
+huggingtweets/ak92501-cafe_orbitinnit-ihatesinglets
+huggingtweets/akasarahjean
+huggingtweets/alampaydavis
+huggingtweets/alanbocallaghan
+huggingtweets/alanwattsdaily
+huggingtweets/albertletranger
+huggingtweets/albertobagnai
+huggingtweets/albertsstuff
+huggingtweets/albinkurti
+huggingtweets/albiuwu_
+huggingtweets/aledaws
+huggingtweets/alex73630
+huggingtweets/alexanderramek
+huggingtweets/alexfiguii
+huggingtweets/alexip
+huggingtweets/alexisgallagher
+huggingtweets/alexisuwualexis
+huggingtweets/alexsalmond
+huggingtweets/alexwadecraig
+huggingtweets/aleyda-cyrusshepard-johnmu
+huggingtweets/alfieghill1
+huggingtweets/aliabunimah
+huggingtweets/alibabagroup
+huggingtweets/alice333ai-alicecweam
+huggingtweets/alice333ai-jj_visuals
+huggingtweets/aliceaeterna-clamtime-redpandasmash
+huggingtweets/aliceaeterna
+huggingtweets/alicefromqueens
+huggingtweets/alicesblossoms
+huggingtweets/alimaketweet
+huggingtweets/alisonaharris
+huggingtweets/alisonselby_
+huggingtweets/alivegirl001101-drilbot_neo-rusticgendarme
+huggingtweets/almostnora
+huggingtweets/alogins
+huggingtweets/alotoforanges
+huggingtweets/alper
+huggingtweets/alphaxchange-coinmarketcap-techcrunch
+huggingtweets/alt_kia
+huggingtweets/altcoinpsycho-digitalartchick-justintrimble
+huggingtweets/alterhuss-zainabverse
+huggingtweets/alth0u
+huggingtweets/alvarouribevel
+huggingtweets/aly__dixon-haleyosomething-svpino
+huggingtweets/amazon
+huggingtweets/amberblaziken
+huggingtweets/ambivalegenic-dril
+huggingtweets/ambivalegenic
+huggingtweets/amccarty
+huggingtweets/amelamelcia
+huggingtweets/americanpineapp
+huggingtweets/amirism_
+huggingtweets/ammienoot
+huggingtweets/amnananadeem-talal916
+huggingtweets/amongusgame
+huggingtweets/amphydelic
+huggingtweets/ana_couper
+huggingtweets/analogcitizen
+huggingtweets/anarchystax
+huggingtweets/ancapkid
+huggingtweets/andevereaux
+huggingtweets/andreskwon
+huggingtweets/andrewcuomo
+huggingtweets/andrewfleer
+huggingtweets/angadc
+huggingtweets/angiejolielive
+huggingtweets/angularocean
+huggingtweets/animemajg
+huggingtweets/anitta
+huggingtweets/annasvirtual
+huggingtweets/annel3illot
+huggingtweets/annepliese
+huggingtweets/annhertzz
+huggingtweets/annieqqqqqq
+huggingtweets/anotherday____
+huggingtweets/anotheredenrpg
+huggingtweets/anotherpattern
+huggingtweets/anoushnajarian
+huggingtweets/anshulkundaje
+huggingtweets/ansonjtong
+huggingtweets/anticarbons
+huggingtweets/antifashgremlin
+huggingtweets/antiihope
+huggingtweets/antoinebordes
+huggingtweets/anttoretu
+huggingtweets/antyzer_
+huggingtweets/anushkmittal
+huggingtweets/anvers1158
+huggingtweets/aoc
+huggingtweets/appleddragon
+huggingtweets/araffin2
+huggingtweets/arezno
+huggingtweets/arrl
+huggingtweets/arryadia_brk
+huggingtweets/arsonatdennys
+huggingtweets/arsondoer
+huggingtweets/artificialstup5
+huggingtweets/artorrattv
+huggingtweets/artstarcross
+huggingtweets/ascartprince-kicchinnezumi
+huggingtweets/ascii211
+huggingtweets/asimcesim
+huggingtweets/asmallfiction
+huggingtweets/asofterscp
+huggingtweets/ass420weed-gnomeszs-tyler01010101
+huggingtweets/atheistic_1
+huggingtweets/atinux
+huggingtweets/atlassian
+huggingtweets/atomicnicos
+huggingtweets/atomicthumbs
+huggingtweets/atreyupilled
+huggingtweets/atticscientist
+huggingtweets/august77lng
+huggingtweets/aumgensokyo
+huggingtweets/austen
+huggingtweets/autogynefiles
+huggingtweets/autophagian
+huggingtweets/autosport-formulaoneworld-speedcafe
+huggingtweets/avantredguard
+huggingtweets/averagesmasher
+huggingtweets/avgmeat-dril-methwaffles
+huggingtweets/avgmeat-dril-slitthroatz
+huggingtweets/avrillavigne
+huggingtweets/awanderingi
+huggingtweets/awaythrow8
+huggingtweets/axel_hugsky
+huggingtweets/axialcatwalk
+huggingtweets/axiaofficial
+huggingtweets/azulcrescent
+huggingtweets/azzamameen
+huggingtweets/b50
+huggingtweets/badbunnytwitch
+huggingtweets/badsleepwelll
+huggingtweets/baidu_inc
+huggingtweets/balajis
+huggingtweets/balanchinarinaa
+huggingtweets/balcobops-liyrex_irl-waitforgot
+huggingtweets/banjocatt
+huggingtweets/barackobama-billgates
+huggingtweets/barackobama-elonmusk
+huggingtweets/barackobama-karlousm-uofofn
+huggingtweets/barackobama
+huggingtweets/barzoople
+huggingtweets/basedgamerboi
+huggingtweets/bayesianboy
+huggingtweets/bbcqos-fitslut63-kellyg_official
+huggingtweets/bbcqos
+huggingtweets/bcdreyer
+huggingtweets/beaniemaxi-loopifyyy-punk6529
+huggingtweets/beanstalkim
+huggingtweets/beeboileau
+huggingtweets/beemoviescript
+huggingtweets/beesforbo-cafe_orbitinnit-weebbutt
+huggingtweets/beetleboxes
+huggingtweets/behemilf
+huggingtweets/beingandslime
+huggingtweets/ben_r_hoffman
+huggingtweets/benchestnut
+huggingtweets/benedictevans
+huggingtweets/benioff
+huggingtweets/benjinaesen
+huggingtweets/benrcongdon
+huggingtweets/benskerim
+huggingtweets/bentley
+huggingtweets/berniesanders-cnn-dril
+huggingtweets/berniesanders-coffee__burger-sensanders
+huggingtweets/berniesanders-coffee__burger
+huggingtweets/berniesanders-dril
+huggingtweets/berniesanders
+huggingtweets/bestmusiclyric-bygpt3
+huggingtweets/bestmusiclyric-marknorm
+huggingtweets/bestmusiclyric-poetsorg
+huggingtweets/bestmusiclyric
+huggingtweets/beth_kindig-elonmusk-iofundofficial
+huggingtweets/bfkelleher
+huggingtweets/bhogleharsha
+huggingtweets/bibliobabble
+huggingtweets/bichebuni
+huggingtweets/biiiclpher
+huggingtweets/biinx_-dril-milkman409
+huggingtweets/billgates-jack
+huggingtweets/billgates
+huggingtweets/billpshort
+huggingtweets/billtheponyfan
+huggingtweets/billwurtz
+huggingtweets/binance
+huggingtweets/biocrimed-bladeecity-w3bcam
+huggingtweets/birkirh
+huggingtweets/bitcoin
+huggingtweets/bitfinexed-coinerstakingls-xeni
+huggingtweets/bitfinexed
+huggingtweets/bladeecity-robber0540
+huggingtweets/bladeecity-rxmaybike-wojespn
+huggingtweets/bladeecity-rxmaybike
+huggingtweets/bladeecity-thaiboygoon
+huggingtweets/bladeecity
+huggingtweets/bladeefan91
+huggingtweets/bleaksigilkeep
+huggingtweets/bloodwarrioroc1
+huggingtweets/blueeyedgirlnft
+huggingtweets/bnbuzz
+huggingtweets/bobuk
+huggingtweets/bognamk
+huggingtweets/boogie2988
+huggingtweets/borisdayma-elonmusk
+huggingtweets/borisdayma
+huggingtweets/borisjohnson
+huggingtweets/born_2be_loved
+huggingtweets/boss_lady_fenja-ladyfenja_promo
+huggingtweets/bouncemanautumn
+huggingtweets/bovice18
+huggingtweets/bowserbot2
+huggingtweets/brad_buchsbaum
+huggingtweets/braintree0173
+huggingtweets/brandoncm1519
+huggingtweets/brandonreeves08
+huggingtweets/brayleino
+huggingtweets/brennacgray
+huggingtweets/bretmanrock
+huggingtweets/brianleiter
+huggingtweets/brianstelter
+huggingtweets/brielikessoda
+huggingtweets/brittany_broski
+huggingtweets/brlamb
+huggingtweets/brockhardo
+huggingtweets/bronzeswords
+huggingtweets/broschistocks
+huggingtweets/brotundsaft
+huggingtweets/brucel
+huggingtweets/bts_bighit
+huggingtweets/btsisoreo
+huggingtweets/bubblefairyjin
+huggingtweets/bubbleteaphd
+huggingtweets/bucksballl
+huggingtweets/buckyisotope-dril
+huggingtweets/buildwithcycy
+huggingtweets/bungeebingleton
+huggingtweets/butfurniture
+huggingtweets/buttruts
+huggingtweets/byabailey
+huggingtweets/bzante
+huggingtweets/c0up
+huggingtweets/c4ndl3w4x
+huggingtweets/c9mang0-deepleffen
+huggingtweets/c_harwick
+huggingtweets/c_hoffmanni
+huggingtweets/cabelobssb
+huggingtweets/caelan_hudson
+huggingtweets/cafe_orbitinnit
+huggingtweets/caitlin_higgs
+huggingtweets/caitlinmoriah
+huggingtweets/cakesniffe1
+huggingtweets/caleblebster
+huggingtweets/calimagna
+huggingtweets/camara_cl
+huggingtweets/cameronconcarne
+huggingtweets/camrin_blaze
+huggingtweets/canarymission-islamphobiacow
+huggingtweets/canarymission
+huggingtweets/captain_mrs
+huggingtweets/captainoats
+huggingtweets/carlotta_emma
+huggingtweets/caroline_bartma
+huggingtweets/caseygripps
+huggingtweets/cassandraautumn
+huggingtweets/cassandrarules
+huggingtweets/cassidoo
+huggingtweets/catboyranch
+huggingtweets/catofthestorm
+huggingtweets/caubyyy
+huggingtweets/caucasianjames-haleyosomething-officialkat
+huggingtweets/caveyt3
+huggingtweets/cavidaga-elonmusk
+huggingtweets/cazum8videos
+huggingtweets/ccwaterboy
+huggingtweets/cdcgov
+huggingtweets/celosia2
+huggingtweets/centenaryla
+huggingtweets/cf__bundy
+huggingtweets/chafickle
+huggingtweets/chainchompist
+huggingtweets/chainsaw_gutsfk
+huggingtweets/chalklings
+huggingtweets/chamath
+huggingtweets/champagnennuts
+huggingtweets/chanamessinger
+huggingtweets/chaneldrug_
+huggingtweets/chaninicholas
+huggingtweets/charles_irl
+huggingtweets/charlespegging
+huggingtweets/charletwt
+huggingtweets/charli_xcx
+huggingtweets/charlievivante-darkerfirestar-retrokatg
+huggingtweets/charlieykim
+huggingtweets/charlottefare
+huggingtweets/charmin-claireredacted
+huggingtweets/chazfirestone
+huggingtweets/cheascake
+huggingtweets/cheekinvt-generalgeega-kitsune__spirit
+huggingtweets/chenweihua
+huggingtweets/cher
+huggingtweets/chexmixfan8
+huggingtweets/chheplo
+huggingtweets/chican3ry
+huggingtweets/chick_in_kiev
+huggingtweets/chickenhalf
+huggingtweets/chiefkeef
+huggingtweets/childermass4
+huggingtweets/chipzel
+huggingtweets/chrisalbon
+huggingtweets/chrisgardenuk
+huggingtweets/chrisrgun
+huggingtweets/chrissyteigen
+huggingtweets/christianreber
+huggingtweets/chrmanning
+huggingtweets/chumphreys1999
+huggingtweets/ciarandold
+huggingtweets/ciggietoad
+huggingtweets/cindersthereare
+huggingtweets/cioran481911
+huggingtweets/ciphersbane
+huggingtweets/circlekpolarpop
+huggingtweets/citizenhush
+huggingtweets/ckinzthompson
+huggingtweets/claire_v0ltaire-praisegodbarbon
+huggingtweets/claire_v0ltaire
+huggingtweets/claireredacted-deepleffen
+huggingtweets/claireredacted
+huggingtweets/clamtime-daramgaria-lazar181
+huggingtweets/clamtime-daramgaria-ledgeguard
+huggingtweets/clamtime-lazar181
+huggingtweets/clamtime-madramami
+huggingtweets/clamtime
+huggingtweets/clar_rah
+huggingtweets/claresiobhan
+huggingtweets/clarjon1
+huggingtweets/classicaltheis
+huggingtweets/clementdelangue-julien_c-thom_wolf
+huggingtweets/clementdelangue
+huggingtweets/click_mae_togay
+huggingtweets/clickholebot
+huggingtweets/clikehouse
+huggingtweets/cliobscure-mmmalign-weftofsoul
+huggingtweets/cloarecjulien
+huggingtweets/clovizio
+huggingtweets/clubpenguinlore
+huggingtweets/clwsr
+huggingtweets/cnn-elonmusk-kanyewest
+huggingtweets/cnn
+huggingtweets/cnnbrk
+huggingtweets/cnstnce_
+huggingtweets/cnut_real
+huggingtweets/cobie-coinerstakingls-girlgone_crypto
+huggingtweets/cobie-coinerstakingls
+huggingtweets/cocacola
+huggingtweets/cochairmeshawn
+huggingtweets/cocojamgg
+huggingtweets/cocojonesspace
+huggingtweets/codewisdom
+huggingtweets/coffee__burger
+huggingtweets/cogdog
+huggingtweets/cognifide
+huggingtweets/coinburnm
+huggingtweets/coinerstakingls-elonmusk-tyler
+huggingtweets/coleofthenerds
+huggingtweets/colinb_pdx
+huggingtweets/collision
+huggingtweets/collywobbledd
+huggingtweets/combatfemme
+huggingtweets/commanderwuff
+huggingtweets/commentiquette
+huggingtweets/computerdefeat2
+huggingtweets/comradegoomba
+huggingtweets/comradekatebush
+huggingtweets/conanobrien
+huggingtweets/conceptualjames
+huggingtweets/confusionm8trix
+huggingtweets/conrad_hotdish
+huggingtweets/conspiracyb0t-occultb0t
+huggingtweets/conspiracyb0t
+huggingtweets/contrapoints
+huggingtweets/cookie__sophie
+huggingtweets/coolnerdfacts
+huggingtweets/cooperativa
+huggingtweets/cooperquinn_wy
+huggingtweets/coronavid19
+huggingtweets/corpse_husband
+huggingtweets/corpsecrusader
+huggingtweets/cosm1cgrandma-glitchre-glitchre8
+huggingtweets/cosmonolan
+huggingtweets/costello_jack99
+huggingtweets/countj0ecool
+huggingtweets/coyote_steel
+huggingtweets/cozyunoist
+huggingtweets/cphilipzarina
+huggingtweets/cptpete-tweetwhelan
+huggingtweets/cpu_cwcsonichu
+huggingtweets/crazynormie
+huggingtweets/crisprchild
+huggingtweets/cristiano
+huggingtweets/critfacts-critlite
+huggingtweets/croftsdiaries
+huggingtweets/crowdhaiku
+huggingtweets/crowonthewire1
+huggingtweets/crstingray
+huggingtweets/crusaderkings
+huggingtweets/cryptolith_-drilbot_neo-rusticgendarme
+huggingtweets/cryptolith_-poaststructural-rusticgendarme
+huggingtweets/cryptolith_-rusticgendarme
+huggingtweets/ctrlcreep
+huggingtweets/cu_coquin
+huggingtweets/cubytes
+huggingtweets/cuckolddna-jennyyoyo92-thaiqos
+huggingtweets/cuckolddna
+huggingtweets/cuckoldresss-qobetty-ragamuffin197
+huggingtweets/cummilkshake-miraiwillsaveus-technobaphomet
+huggingtweets/cunfamiliaris
+huggingtweets/cupcakkesays
+huggingtweets/curlyjunglejake
+huggingtweets/curtkrone
+huggingtweets/cushbomb
+huggingtweets/cute_sayako
+huggingtweets/cutebunnys50
+huggingtweets/cuteteengiri
+huggingtweets/cutiebomber
+huggingtweets/cwillycs
+huggingtweets/cyberbully66
+huggingtweets/cybercyberpop
+huggingtweets/cyberglyphic
+huggingtweets/cylinderlife
+huggingtweets/cyrusshepard-fastfwdco-lilyraynyc
+huggingtweets/d_greetest
+huggingtweets/d_q_nguyen
+huggingtweets/dababydababy
+huggingtweets/dabit3
+huggingtweets/daddyblackbone
+huggingtweets/daddykratos1
+huggingtweets/daddyscumcock
+huggingtweets/dadsaysjokes
+huggingtweets/daengerousk
+huggingtweets/daequaen
+huggingtweets/dailyartprompts
+huggingtweets/dailymicrofic
+huggingtweets/dakami
+huggingtweets/dalailama
+huggingtweets/dallaswentdown-jwgrieve-shanselman
+huggingtweets/daltonegreene
+huggingtweets/daltonsakthi
+huggingtweets/damelonbcws
+huggingtweets/damydothedishes
+huggingtweets/dan_abramov
+huggingtweets/danaludwig
+huggingtweets/danawhite
+huggingtweets/dancendrama1
+huggingtweets/dandiestguylol
+huggingtweets/danellisscience
+huggingtweets/dani_remade
+huggingtweets/danielgedda
+huggingtweets/danielgriffinmd-jwgrieve-tactical_times
+huggingtweets/danielgross
+huggingtweets/danielleboccell
+huggingtweets/dannybarefoot
+huggingtweets/dannybirchall
+huggingtweets/dansalvato
+huggingtweets/danwootton
+huggingtweets/daramgaria
+huggingtweets/dariasuzu
+huggingtweets/darknessisdark
+huggingtweets/darth
+huggingtweets/darthvivien
+huggingtweets/dataandme
+huggingtweets/datarade
+huggingtweets/dathiks
+huggingtweets/davemcnamee3000
+huggingtweets/david_desj
+huggingtweets/david_rccv
+huggingtweets/davidgasquez
+huggingtweets/davidgoggins
+huggingtweets/davidlisowsky
+huggingtweets/davidrliu
+huggingtweets/davidvizgan
+huggingtweets/dawnieedreams
+huggingtweets/dbdevletbahceli
+huggingtweets/dd0031
+huggingtweets/ddlcquotes
+huggingtweets/dead__bug
+huggingtweets/deahq
+huggingtweets/dealingporn
+huggingtweets/deathbattlebot
+huggingtweets/decadantism
+huggingtweets/decodemai
+huggingtweets/decoratedboar
+huggingtweets/deddogoon
+huggingtweets/deeperthrill
+huggingtweets/deepfates
+huggingtweets/deepleffen-dodo82j-tsm_leffen
+huggingtweets/deepleffen-dodo82j
+huggingtweets/deepleffen-dril-twomad
+huggingtweets/deepleffen-dril
+huggingtweets/deepleffen-dril_gpt2-twomad
+huggingtweets/deepleffen-ibnalrafidayn
+huggingtweets/deepleffen-jschlatt-twomad
+huggingtweets/deepleffen
+huggingtweets/defnotreal_
+huggingtweets/degg-dril-fred_delicious
+huggingtweets/degrassinocontx
+huggingtweets/deityofyoutube
+huggingtweets/deleteevelyn
+huggingtweets/delicious_tacos
+huggingtweets/deliveroo_fr
+huggingtweets/deliverydace
+huggingtweets/deltagammaqueen
+huggingtweets/demirenjun
+huggingtweets/deni_is_aflor
+huggingtweets/denyah_
+huggingtweets/deontologistics
+huggingtweets/deptofsophistry
+huggingtweets/derspiegel
+huggingtweets/dervine7
+huggingtweets/derweise91
+huggingtweets/destiny_thememe
+huggingtweets/detnewsopinion-ingrid_jacques-nolanfinleydn
+huggingtweets/detnewsopinion
+huggingtweets/detseretninu-dumbricardo-illuminusnumb
+huggingtweets/deusdairyland
+huggingtweets/devkoob
+huggingtweets/devon_onearth
+huggingtweets/devops_guru-neiltyson-nigelthurlow
+huggingtweets/devtesla
+huggingtweets/devtrospective
+huggingtweets/dgcyt_
+huggingtweets/dh7net
+huggingtweets/dharmeshkakadia
+huggingtweets/diaz_de_leon
+huggingtweets/digital_languor
+huggingtweets/digitalartchick
+huggingtweets/digitalsolver1
+huggingtweets/digitalsoyboy
+huggingtweets/disabledjess
+huggingtweets/discarddiscord
+huggingtweets/disconcision
+huggingtweets/discountpicasso-dril-liam_100000
+huggingtweets/divorceenforcer
+huggingtweets/dkulchar
+huggingtweets/dndomme
+huggingtweets/dobbelaerew
+huggingtweets/dochouk
+huggingtweets/doctor_emmet
+huggingtweets/dodo82j
+huggingtweets/dog_feelings-elonmusk
+huggingtweets/dog_feelings
+huggingtweets/dogdick420cum
+huggingtweets/dogepod_
+huggingtweets/doityboy
+huggingtweets/dojacat
+huggingtweets/domandcats
+huggingtweets/domonic_m
+huggingtweets/donaldclark
+huggingtweets/donalddhoffman
+huggingtweets/donkeykongape
+huggingtweets/dontgender
+huggingtweets/donwinslow
+huggingtweets/dorkyfolf
+huggingtweets/dotcsv
+huggingtweets/downgrad3d
+huggingtweets/dp_crazy_gamer
+huggingtweets/dpakman
+huggingtweets/dragonogon
+huggingtweets/drake
+huggingtweets/drbelbel0
+huggingtweets/drbrianmay
+huggingtweets/drew106
+huggingtweets/drewcoffman
+huggingtweets/dril-drilbot_neo-jril_bot
+huggingtweets/dril-fart-horse_ebooks
+huggingtweets/dril-feufillet-hostagekiller
+huggingtweets/dril-gnomeszs-methwaffles
+huggingtweets/dril-gnomeszs-s4m31p4n
+huggingtweets/dril-heroicvillain95
+huggingtweets/dril-horse_ebooks-pukicho
+huggingtweets/dril-horse_ebooks
+huggingtweets/dril-hostagekiller-suicidepussy
+huggingtweets/dril-jdogmart-redfieldcooper
+huggingtweets/dril-kanyewest-ph4370n
+huggingtweets/dril-linaarabii
+huggingtweets/dril-methwaffles-s4m31p4n
+huggingtweets/dril-methwaffles-someduckingguy
+huggingtweets/dril-nia_mp4
+huggingtweets/dril-praisegodbarbon
+huggingtweets/dril-theonion
+huggingtweets/dril
+huggingtweets/dril_gpt2
+huggingtweets/drilbot_neo-rusticgendarme
+huggingtweets/drilbot_neo
+huggingtweets/drjesstaylor
+huggingtweets/drsweety303
+huggingtweets/drumbunkerdrag1
+huggingtweets/drwrightquotes-iang_fc-s__nakamoto
+huggingtweets/drwrightquotes-nickszabo4-s__nakamoto
+huggingtweets/dualipa
+huggingtweets/dudeswatcheva
+huggingtweets/dumb4funbp
+huggingtweets/dunnymoment
+huggingtweets/dynamic_proxy
+huggingtweets/dynatronne
+huggingtweets/dysexliaa
+huggingtweets/earlofkaleb
+huggingtweets/easimernull
+huggingtweets/eb_txt
+huggingtweets/ebeggin1
+huggingtweets/ebnhussein1424
+huggingtweets/ebuka
+huggingtweets/echocanidae
+huggingtweets/econalytics
+huggingtweets/edba_bsi-joebiden-michelkalika
+huggingtweets/eddiefisher24
+huggingtweets/eddyburback
+huggingtweets/edriffles
+huggingtweets/eduardofep
+huggingtweets/eggprophet
+huggingtweets/egregirls
+huggingtweets/eigenrobot
+huggingtweets/eiritana
+huggingtweets/ejazaii
+huggingtweets/electronicbolo
+huggingtweets/elhotzo
+huggingtweets/elizamuffins
+huggingtweets/elizgerber-galaxykate-ianhorswill
+huggingtweets/ellis_hughes
+huggingtweets/ellxrichardson
+huggingtweets/elmo_oxygen
+huggingtweets/elochindc
+huggingtweets/elonmusk-hirox246-hitoshinagai1
+huggingtweets/elonmusk-iamcardib
+huggingtweets/elonmusk-kanyewest
+huggingtweets/elonmusk-lateriser12-officialfpl
+huggingtweets/elonmusk-lexfridman
+huggingtweets/elonmusk-lynaldencontact-naval
+huggingtweets/elonmusk-mitll
+huggingtweets/elonmusk-sagnikdatta129
+huggingtweets/elonmusk
+huggingtweets/elvisquote
+huggingtweets/elxokas-evilafm-ibaillanos
+huggingtweets/emailoctopus
+huggingtweets/emanon_knockoff
+huggingtweets/emily_tweets-erinisaway-lavosaurus
+huggingtweets/emilyvdw
+huggingtweets/eminem
+huggingtweets/emirtarik
+huggingtweets/emmanuelmacron
+huggingtweets/emmashwemma
+huggingtweets/empathywarrior
+huggingtweets/empressrandom
+huggingtweets/emptyxhead
+huggingtweets/emsorkun
+huggingtweets/enderdev_
+huggingtweets/endlessoffal
+huggingtweets/enexisgroep
+huggingtweets/enilox-madacol-ricardocalleja
+huggingtweets/entirelyuseles
+huggingtweets/epic_izzy_tacos
+huggingtweets/epresleyquotes
+huggingtweets/eptun2
+huggingtweets/ereifying
+huggingtweets/erhanerkut
+huggingtweets/ericrichards22
+huggingtweets/ericrweinstein
+huggingtweets/erictopol
+huggingtweets/erikmcoronado
+huggingtweets/erilies
+huggingtweets/eripsa
+huggingtweets/eromaximus
+huggingtweets/esjhanez
+huggingtweets/estradiolgirl
+huggingtweets/estrowife
+huggingtweets/esyudkowsky
+huggingtweets/etcanada
+huggingtweets/evan_pincus
+huggingtweets/evancmalone
+huggingtweets/evandknox
+huggingtweets/evanjfields
+huggingtweets/everythingab0ng
+huggingtweets/evetheism
+huggingtweets/evilbmcats
+huggingtweets/evilvillain1231
+huggingtweets/evolso
+huggingtweets/existentialcoms
+huggingtweets/exp-twt456
+huggingtweets/extravermin
+huggingtweets/eyebleachinc
+huggingtweets/ezeojeda_97
+huggingtweets/ezraklein
+huggingtweets/f1
+huggingtweets/facebook
+huggingtweets/factfictyoutube
+huggingtweets/factoport-lifedote-lifelywords
+huggingtweets/failboat103
+huggingtweets/fakegirl501
+huggingtweets/fakeyououttt
+huggingtweets/fallexcy
+huggingtweets/fardeg1-jaypomeister-shortdaggerdick
+huggingtweets/farid_0v
+huggingtweets/fartydoodooman
+huggingtweets/fastfwdco
+huggingtweets/fatuisv
+huggingtweets/fchollet
+huggingtweets/fdgwhite
+huggingtweets/febreezyxd
+huggingtweets/felipe3867
+huggingtweets/felipenpereira
+huggingtweets/femawalmart
+huggingtweets/fembojj
+huggingtweets/femboympreg
+huggingtweets/femoidfurry
+huggingtweets/feriglesias
+huggingtweets/fesshole
+huggingtweets/feyerabender
+huggingtweets/fidelity
+huggingtweets/fiersabesari
+huggingtweets/fifer_mods
+huggingtweets/fifteenai
+huggingtweets/filippodstavec
+huggingtweets/filler_username
+huggingtweets/fimion
+huggingtweets/fiodeer
+huggingtweets/fishbeelamp
+huggingtweets/fkuhlmeier
+huggingtweets/flairmaxuwp
+huggingtweets/flatironschool
+huggingtweets/fletcherfidelis
+huggingtweets/flightlessmilfs
+huggingtweets/florestantan
+huggingtweets/florezgregory
+huggingtweets/floristree92
+huggingtweets/flower_dommy
+huggingtweets/flower_zaddy
+huggingtweets/fluffyguy
+huggingtweets/fodase_bot-nomesdegato-nomesdj
+huggingtweets/foodnetwork
+huggingtweets/footy_headlines
+huggingtweets/foraburton
+huggingtweets/formernumber-wmason_iv-wyattmaxon
+huggingtweets/formernumber
+huggingtweets/forshaper
+huggingtweets/foxehhyz
+huggingtweets/foxlius
+huggingtweets/foxnews
+huggingtweets/fozfrancisco
+huggingtweets/fr3fou
+huggingtweets/frankietime
+huggingtweets/frankviii
+huggingtweets/frantzfries
+huggingtweets/franxxfurt
+huggingtweets/fraskungfu
+huggingtweets/freakytheory-insprepositive-masterythink
+huggingtweets/fredricksonra
+huggingtweets/freganmitts
+huggingtweets/frenzie
+huggingtweets/frepno_mytoff
+huggingtweets/freudotheism
+huggingtweets/freyjihad
+huggingtweets/friztoja-sawardega-thenitrozyniak
+huggingtweets/frobenis
+huggingtweets/frogethan
+huggingtweets/frootcakee
+huggingtweets/ftuuky
+huggingtweets/fucko_el
+huggingtweets/fuckthefocus
+huggingtweets/fullbitchschol1
+huggingtweets/funnyordie
+huggingtweets/furinkan
+huggingtweets/furrymicky
+huggingtweets/fuurawa
+huggingtweets/gabrielboric
+huggingtweets/gadgetgreen
+huggingtweets/gagehleibman
+huggingtweets/gailsimone
+huggingtweets/galjudo
+huggingtweets/gambsvns
+huggingtweets/gamerepulse
+huggingtweets/gandalfthewhi19
+huggingtweets/garyshort
+huggingtweets/gaston_gordillo
+huggingtweets/gatchabot
+huggingtweets/gaucheian
+huggingtweets/gavibegtrup
+huggingtweets/gayandonline
+huggingtweets/gaybats1999
+huggingtweets/gaydeerinc
+huggingtweets/gayguynewsnet
+huggingtweets/gaypizzaboy
+huggingtweets/gaytoad2
+huggingtweets/gcargumentbot
+huggingtweets/geckogirl0
+huggingtweets/gecshater
+huggingtweets/geilehirnbude
+huggingtweets/generalgeega
+huggingtweets/genjitoday
+huggingtweets/gentlefishorse
+huggingtweets/geomblog
+huggingtweets/georgenotfound
+huggingtweets/gerardjoling
+huggingtweets/gerardsans
+huggingtweets/gesualdofan666
+huggingtweets/getfiscal
+huggingtweets/ggreenwald
+huggingtweets/ghoooostie
+huggingtweets/ghostmountainn
+huggingtweets/gilational
+huggingtweets/gimoyin
+huggingtweets/gingerbreadfork
+huggingtweets/girlchrismarker
+huggingtweets/girlmeat5557
+huggingtweets/girlshaped
+huggingtweets/gitanasnauseda-lukasvalatka-maldeikiene
+huggingtweets/gitanasnauseda-maldeikiene
+huggingtweets/glacius_gaming
+huggingtweets/glamdemon2004
+huggingtweets/glasseskin
+huggingtweets/gleegz
+huggingtweets/glitchesroux
+huggingtweets/glitchy22
+huggingtweets/glockmetal
+huggingtweets/glowdonk
+huggingtweets/glownigga
+huggingtweets/goatlich-yagisabi
+huggingtweets/godaddypro
+huggingtweets/goddenthomas
+huggingtweets/gods_txt
+huggingtweets/godslovepariah
+huggingtweets/gohere4porn-onlinepete
+huggingtweets/gojomo
+huggingtweets/goldshtn
+huggingtweets/goldwasser_seth
+huggingtweets/gonnhead
+huggingtweets/goodtweet_man
+huggingtweets/google
+huggingtweets/googleai
+huggingtweets/goon_lagoon__
+huggingtweets/gordonramsay
+huggingtweets/gothamjsharma
+huggingtweets/gozusabu
+huggingtweets/gpeyronnet
+huggingtweets/gpt2drilpapa
+huggingtweets/gr1my_w41fu
+huggingtweets/gr8ful_ted
+huggingtweets/gracchusstrupp
+huggingtweets/granblue_en
+huggingtweets/grapefried
+huggingtweets/grayvtuber
+huggingtweets/greatestquotes
+huggingtweets/greene_ray
+huggingtweets/gremlimbs
+huggingtweets/gresham2x
+huggingtweets/griceposting
+huggingtweets/gritcult
+huggingtweets/grubadubflub
+huggingtweets/gsiemens
+huggingtweets/gudapoyo2
+huggingtweets/guestyperson
+huggingtweets/guggersylvain
+huggingtweets/guilleangeris
+huggingtweets/guyfieri
+huggingtweets/guyfoxday
+huggingtweets/guywiththepie
+huggingtweets/gvanrossum
+huggingtweets/gwenvara_
+huggingtweets/h21k
+huggingtweets/h_ototake-hirox246-ochyai
+huggingtweets/habiba_shoukry-yourfavhwhw
+huggingtweets/haikalstr
+huggingtweets/hairchewer
+huggingtweets/halfeandhalfe
+huggingtweets/hamamatsuphoton
+huggingtweets/hamelhusain
+huggingtweets/hamletbatista
+huggingtweets/hampshireomen
+huggingtweets/hankgreen
+huggingtweets/hanksoda
+huggingtweets/hannabbc-hfrost3000-thaiqos
+huggingtweets/hannesbajohr
+huggingtweets/hansvestberg
+huggingtweets/harbogomps
+huggingtweets/hardmaru
+huggingtweets/harishkgarg
+huggingtweets/harmchair
+huggingtweets/harry
+huggingtweets/harrybutaverage
+huggingtweets/hasanthehun
+huggingtweets/hazuma
+huggingtweets/hbloodedheroine
+huggingtweets/hbmmaster
+huggingtweets/hbomberguy
+huggingtweets/heartswellzz
+huggingtweets/heatherchungus
+huggingtweets/heaven_ley
+huggingtweets/hel_ql-shahdashrf_-sinnerslayerr-witheredstrings
+huggingtweets/helvegyr
+huggingtweets/henninglobin
+huggingtweets/henry_krahn
+huggingtweets/heresathought
+huggingtweets/herialc
+huggingtweets/hey_ash21
+huggingtweets/heyarav
+huggingtweets/heydonemily
+huggingtweets/heyimheroic
+huggingtweets/hideki_naganuma
+huggingtweets/hideo_kojima_en-rxmaybike
+huggingtweets/hifrommichaelv
+huggingtweets/hioberman
+huggingtweets/hirox246
+huggingtweets/history
+huggingtweets/histronicmonstr
+huggingtweets/hitman-iointeractive
+huggingtweets/hkbaptistu
+huggingtweets/hkpmcgregor
+huggingtweets/hmtodayiwill
+huggingtweets/hochimeme1
+huggingtweets/hoffridder
+huggingtweets/hollagrace_
+huggingtweets/hollidayspessa
+huggingtweets/holocenite
+huggingtweets/homehousesys
+huggingtweets/honeytech
+huggingtweets/horniestdoe
+huggingtweets/horse1350
+huggingtweets/hoshirisu
+huggingtweets/hostagekiller-suicidepussy
+huggingtweets/hostagekiller
+huggingtweets/hotwifekatrina
+huggingtweets/hotwifeofohiolv
+huggingtweets/hourousha0153
+huggingtweets/hugebraingenius
+huggingtweets/humaimtiaz
+huggingtweets/humanisque
+huggingtweets/humantestkit
+huggingtweets/hunny6ee
+huggingtweets/hunt_harriet
+huggingtweets/hurricanenita
+huggingtweets/hustlenconquer-nocodepiper
+huggingtweets/huxijin_gt
+huggingtweets/hva
+huggingtweets/hvvvvns
+huggingtweets/hypervisible
+huggingtweets/hypogolic
+huggingtweets/i_am_kirook
+huggingtweets/i_apx_86
+huggingtweets/i_like_flags
+huggingtweets/i_run_i_think
+huggingtweets/iamaaronwill
+huggingtweets/iamalkhemik
+huggingtweets/iamcardib
+huggingtweets/iamdevloper
+huggingtweets/iamhajimari
+huggingtweets/iamsrk
+huggingtweets/ian_thefemale
+huggingtweets/ianmileschungus
+huggingtweets/ibaillanos
+huggingtweets/ibjiyongi
+huggingtweets/ibnalrafidayn
+huggingtweets/ica_csab
+huggingtweets/icelynjennings
+huggingtweets/idph
+huggingtweets/ifalioncould
+huggingtweets/ifuckedgod
+huggingtweets/igorbrigadir
+huggingtweets/igorcarron
+huggingtweets/ihavesexhourly
+huggingtweets/ihyjuju
+huggingtweets/ijustbluemyself
+huggingtweets/ildiazm
+huggingtweets/ilike_birds
+huggingtweets/iljone
+huggingtweets/ilovelucilius
+huggingtweets/ilyasut
+huggingtweets/imaginary_bi
+huggingtweets/imcummingonline
+huggingtweets/imgrimevil
+huggingtweets/imjackrudd
+huggingtweets/imjustluca
+huggingtweets/imjustuhgrl
+huggingtweets/immarxistonline
+huggingtweets/immersivekind
+huggingtweets/imnotseto
+huggingtweets/imogenloisfox
+huggingtweets/imrobertyi
+huggingtweets/imscribbledude
+huggingtweets/incantalupo
+huggingtweets/incharmuese-sadsocrates-vvangone
+huggingtweets/indiburger
+huggingtweets/infernocav
+huggingtweets/infinitedodge
+huggingtweets/infosec_domme
+huggingtweets/ingridasimonyte
+huggingtweets/ingroupist
+huggingtweets/inhalingmy
+huggingtweets/inmidonot
+huggingtweets/insert_name27
+huggingtweets/insharamin-prathkum-saviomartin7
+huggingtweets/insufficientout
+huggingtweets/interro__bang
+huggingtweets/intifada
+huggingtweets/intuitmachine
+huggingtweets/investorstheory-steveonspeed
+huggingtweets/ioorbust
+huggingtweets/iotnerd
+huggingtweets/ipoduje
+huggingtweets/ir_rkp
+huggingtweets/is_he_batman
+huggingtweets/ishanspatil
+huggingtweets/islamocommunism
+huggingtweets/islamphobiacow-praisegodbarbon
+huggingtweets/islamphobiacow
+huggingtweets/islamrizza
+huggingtweets/island_iverson
+huggingtweets/istfoundation-sciencebits
+huggingtweets/itemlabel
+huggingtweets/itsall_bullshit
+huggingtweets/itsbigian
+huggingtweets/itsharveen
+huggingtweets/itsjaneflowers
+huggingtweets/itskillerdog
+huggingtweets/itslucikeller
+huggingtweets/itsmeaqsaa
+huggingtweets/itspublu
+huggingtweets/itssixword
+huggingtweets/iuditg
+huggingtweets/ivanpeer
+huggingtweets/ivegottagetagf
+huggingtweets/iwriteok
+huggingtweets/iyxnmt
+huggingtweets/j_beck00
+huggingtweets/j_j_j_j_j_jones
+huggingtweets/jack
+huggingtweets/jack_walshh
+huggingtweets/jackbutcher-paikcapital-thedankoe
+huggingtweets/jackclarksf
+huggingtweets/jackgordonyt
+huggingtweets/jackieracc_
+huggingtweets/jacknjellify
+huggingtweets/jackposobiec
+huggingtweets/jacksfilms
+huggingtweets/jae_day6
+huggingtweets/jagedn
+huggingtweets/jaguarunlocked
+huggingtweets/jakeaccino
+huggingtweets/jamescham
+huggingtweets/jamescharles-loganpaul-tanamongeau
+huggingtweets/jamesclear
+huggingtweets/jameshuttonphil
+huggingtweets/jamespsherlock
+huggingtweets/jamz5251
+huggingtweets/janieclone
+huggingtweets/janiedied
+huggingtweets/jardininfo
+huggingtweets/jasonchen0325
+huggingtweets/jasutherlandbks
+huggingtweets/jattazo
+huggingtweets/jattazoshin
+huggingtweets/java_jigga
+huggingtweets/javiballester4
+huggingtweets/javierito321
+huggingtweets/javorszky
+huggingtweets/jayalammar
+huggingtweets/jazzpomegranate
+huggingtweets/jbmurray
+huggingtweets/jbpetersonquote
+huggingtweets/jcbdwsn
+huggingtweets/jdcmedlock
+huggingtweets/jdogmart
+huggingtweets/jeansingod
+huggingtweets/jeebustrump
+huggingtweets/jeemstate
+huggingtweets/jeffdean
+huggingtweets/jeffdeecee
+huggingtweets/jematrics
+huggingtweets/jen_122
+huggingtweets/jennyenicholson
+huggingtweets/jenslennartsson
+huggingtweets/jeremymmele
+huggingtweets/jeremyphoward-karpathy-ylecun
+huggingtweets/jeremyphoward
+huggingtweets/jessi_cata
+huggingtweets/jessi_rihanna
+huggingtweets/jesusisathembo
+huggingtweets/jeveuxrien95
+huggingtweets/jfcarrasco
+huggingtweets/jichikawa
+huggingtweets/jimgroom
+huggingtweets/jimlbsp
+huggingtweets/jk_rowling
+huggingtweets/jmlepstein
+huggingtweets/jmourad
+huggingtweets/joebiden-potus
+huggingtweets/joebiden
+huggingtweets/joeddav
+huggingtweets/joelgrus
+huggingtweets/joelstc
+huggingtweets/joemamachungus
+huggingtweets/joeniz6h
+huggingtweets/joerogan
+huggingtweets/johannesreck
+huggingtweets/john_tub_ocf
+huggingtweets/johnchildren
+huggingtweets/johndoench
+huggingtweets/johnlimouze
+huggingtweets/johnmisczak
+huggingtweets/johnowhitaker
+huggingtweets/johntheduncan
+huggingtweets/joinjuno
+huggingtweets/jokesofthedaydn
+huggingtweets/jokowi
+huggingtweets/jonathankabel0
+huggingtweets/jonsolomon
+huggingtweets/jontthomas
+huggingtweets/jordanbpeterson
+huggingtweets/jordubi
+huggingtweets/jorvalentine
+huggingtweets/josephmama666
+huggingtweets/joshizcul
+huggingtweets/joshuadun
+huggingtweets/joshuamterry
+huggingtweets/journoramzy
+huggingtweets/jpbrammer
+huggingtweets/jplatzhalter
+huggingtweets/jreosquare
+huggingtweets/jrosenfeld13
+huggingtweets/jruizalt
+huggingtweets/js_thrill
+huggingtweets/jschlatt
+huggingtweets/jslez
+huggingtweets/jtk314
+huggingtweets/juan
+huggingtweets/juanpazurita
+huggingtweets/juanrallo
+huggingtweets/juicewit
+huggingtweets/julien_c
+huggingtweets/june_lalonde
+huggingtweets/justinbieber
+huggingtweets/justingaynor
+huggingtweets/k_saifullaah
+huggingtweets/kaidominic_
+huggingtweets/kaikothesharko
+huggingtweets/kali_k_priv
+huggingtweets/kaliandkalki
+huggingtweets/kaltetechnick
+huggingtweets/kanganateam
+huggingtweets/kanugantisuman
+huggingtweets/kanyewest
+huggingtweets/kapusaicin
+huggingtweets/karchitecture
+huggingtweets/karlousm-whosnina__
+huggingtweets/karpathy
+huggingtweets/kartographien
+huggingtweets/katposting
+huggingtweets/katya_zamo
+huggingtweets/katymontgomerie
+huggingtweets/kawa11qt
+huggingtweets/kaysarridha
+huggingtweets/kdtrey5-rxmaybike
+huggingtweets/kdtrey5
+huggingtweets/kdv_grnola_bars
+huggingtweets/keithfrankish
+huggingtweets/kendalljenner
+huggingtweets/kendrictonn
+huggingtweets/kennethlpearce
+huggingtweets/kfeldesu
+huggingtweets/kgoth999
+huggingtweets/khldharun
+huggingtweets/kholodetss
+huggingtweets/kiashaaaa
+huggingtweets/kicchinnezumi
+huggingtweets/kiddiabeetus
+huggingtweets/kidmom777
+huggingtweets/kimkardashian
+huggingtweets/kimpossiblefact
+huggingtweets/kingal
+huggingtweets/kingjames
+huggingtweets/kinskyunplugged
+huggingtweets/kirilchi
+huggingtweets/kirsten3531
+huggingtweets/kitsune__spirit
+huggingtweets/kleocadiaa
+huggingtweets/kmett-richhickey-worrydream
+huggingtweets/knipps
+huggingtweets/koriposting
+huggingtweets/kpnsecurity
+huggingtweets/kr00ney-nerdwallet-producthunt
+huggingtweets/krankergeist1
+huggingtweets/krashhash
+huggingtweets/krimsonmist
+huggingtweets/krislikesbooks
+huggingtweets/kristjanmoore
+huggingtweets/krzyzanowskim
+huggingtweets/ksi
+huggingtweets/kurnugia1
+huggingtweets/kurtkendricks
+huggingtweets/kylecranmer
+huggingtweets/kylejameshoward
+huggingtweets/kylelchong
+huggingtweets/kyliejenner
+huggingtweets/kyrillpotapov
+huggingtweets/l2k
+huggingtweets/l3gacyb3ta
+huggingtweets/laceyjames814
+huggingtweets/lado_boi
+huggingtweets/ladygaga-lennykravitz-snoopdogg
+huggingtweets/ladygaga
+huggingtweets/laen
+huggingtweets/lafrenchfabtalk
+huggingtweets/laikasez
+huggingtweets/lainca_
+huggingtweets/laineden
+huggingtweets/laitman
+huggingtweets/lana_ray_dale
+huggingtweets/lanalilligant
+huggingtweets/laptopmicdrop
+huggingtweets/laura_the_loser
+huggingtweets/lauradmcbryde
+huggingtweets/lauren9dudley
+huggingtweets/laurentfranckx
+huggingtweets/lavanguardia
+huggingtweets/lavanyaai
+huggingtweets/lavendersheeps
+huggingtweets/lavendhole
+huggingtweets/lazar181
+huggingtweets/leaacta
+huggingtweets/leannelleeds-scalzi
+huggingtweets/leduans1
+huggingtweets/leehsienloong
+huggingtweets/leftist_cowgirl
+huggingtweets/legendarysoren
+huggingtweets/leleighc
+huggingtweets/leloykun
+huggingtweets/lemonjellyhats
+huggingtweets/lenforlenjamin
+huggingtweets/lennycurry
+huggingtweets/leolerena
+huggingtweets/lesbimins
+huggingtweets/lesbrarienne
+huggingtweets/lesley4labour
+huggingtweets/lesseyecontact
+huggingtweets/lesterbuxton
+huggingtweets/lets4r
+huggingtweets/lewisgburton
+huggingtweets/lex_mala_
+huggingtweets/lexfridman
+huggingtweets/liam_100000
+huggingtweets/liampayne
+huggingtweets/liararoux
+huggingtweets/liekovarpio
+huggingtweets/lilbthebasedgod
+huggingtweets/lilmaudlin
+huggingtweets/lilnasx
+huggingtweets/lily_dusk
+huggingtweets/lilyw12_
+huggingtweets/lingtolls
+huggingtweets/lionel_scott_
+huggingtweets/liquidgoth
+huggingtweets/lisaannsimpson2
+huggingtweets/lisatomic5
+huggingtweets/lithros
+huggingtweets/liv_garde
+huggingtweets/liyrex_irl-mkleosb-vermontsmash
+huggingtweets/lizasoberano
+huggingtweets/lizzo
+huggingtweets/lloyd_devoid
+huggingtweets/lmgriffjohnson
+huggingtweets/lnglggdsclst
+huggingtweets/locosherman2
+huggingtweets/logicaldota2
+huggingtweets/logo_daedalus
+huggingtweets/lol8ball
+huggingtweets/lord_voldemort7
+huggingtweets/louispotok
+huggingtweets/love_alvays
+huggingtweets/loverachelle2
+huggingtweets/lowqualitybot
+huggingtweets/lp_lapresse
+huggingtweets/lrcssndr
+huggingtweets/lrxmk8
+huggingtweets/ltwukwuk
+huggingtweets/lucasgold06
+huggingtweets/lucasmantin
+huggingtweets/lucca
+huggingtweets/luciisapphire
+huggingtweets/luizhgm
+huggingtweets/lukashasnoidea
+huggingtweets/lukasvalatka
+huggingtweets/lumakiri
+huggingtweets/lumetroid
+huggingtweets/luna_lun_a
+huggingtweets/lunch_enjoyer
+huggingtweets/lux_capital
+huggingtweets/lynnbee01
+huggingtweets/lyons____
+huggingtweets/lysandrejik
+huggingtweets/m3ghd00t
+huggingtweets/macalester2go
+huggingtweets/macegrunow
+huggingtweets/macintoxic
+huggingtweets/maddiebirds
+huggingtweets/madisonbeer
+huggingtweets/madlag
+huggingtweets/madsingwar
+huggingtweets/maemuller_
+huggingtweets/maevewrapped
+huggingtweets/magggiegrace
+huggingtweets/maggiewestrum
+huggingtweets/magicjohnson
+huggingtweets/magicrealismbot
+huggingtweets/mahimikoumbral
+huggingtweets/malaamusic
+huggingtweets/maldeikiene
+huggingtweets/malleus_malefix
+huggingtweets/man24car
+huggingtweets/mangoflavored7
+huggingtweets/mangosplenty
+huggingtweets/manifest
+huggingtweets/mara_phon
+huggingtweets/marcethemartian
+huggingtweets/margot_witte
+huggingtweets/mariobrothblog
+huggingtweets/mariomasta64
+huggingtweets/markiplier
+huggingtweets/marknorm
+huggingtweets/markowetzlab
+huggingtweets/markprzepiora
+huggingtweets/markvc5
+huggingtweets/marsajal
+huggingtweets/marsiennex2
+huggingtweets/marsneedsmilfs
+huggingtweets/marx_is_pog
+huggingtweets/marxhaunting
+huggingtweets/maryannblaetke
+huggingtweets/maryjackalope
+huggingtweets/marylandmudflap-sniping_soup
+huggingtweets/matdryhurst
+huggingtweets/matei_zaharia
+huggingtweets/matspike
+huggingtweets/matsu_bouzu
+huggingtweets/mattdadpleaseno
+huggingtweets/mattdsegal
+huggingtweets/matteosalvinimi
+huggingtweets/mattgertz
+huggingtweets/matthartman
+huggingtweets/matthewespinosa
+huggingtweets/mattjope
+huggingtweets/mattriddell
+huggingtweets/mattsmethurst
+huggingtweets/mattwalshblog
+huggingtweets/mauriciomacri
+huggingtweets/mavimasa
+huggingtweets/max_katz
+huggingtweets/maxberggren
+huggingtweets/maxfleit-sahil
+huggingtweets/maximalworm
+huggingtweets/maximumgraves
+huggingtweets/maxisawesome538
+huggingtweets/maxnoichl
+huggingtweets/maxwellacameron
+huggingtweets/maybeluncle
+huggingtweets/mchammer
+huggingtweets/mchotpockets
+huggingtweets/mcintweet
+huggingtweets/mdennedy
+huggingtweets/mdlhx
+huggingtweets/meadowfaust
+huggingtweets/mechanical_monk
+huggingtweets/mediocrechris
+huggingtweets/medyoantok
+huggingtweets/meekaale
+huggingtweets/mehatescum
+huggingtweets/melee_monkey
+huggingtweets/melnicksergio
+huggingtweets/melspurgatory
+huggingtweets/mentlelhospital
+huggingtweets/merry_eths
+huggingtweets/messiah869
+huggingtweets/messiah_niko
+huggingtweets/mgardner2000
+huggingtweets/micbucci
+huggingtweets/michaeldrummey-theegaycomrade-vpukhanov
+huggingtweets/michaeljackson
+huggingtweets/michaelreeves
+huggingtweets/michaeltrazzi
+huggingtweets/michelleobama
+huggingtweets/michelonfray4
+huggingtweets/micky_cow
+huggingtweets/mickyrourk
+huggingtweets/microflashfic
+huggingtweets/microsoft
+huggingtweets/midwaymedway
+huggingtweets/miild90
+huggingtweets/mike_massive
+huggingtweets/mike_pence
+huggingtweets/mikekyismad
+huggingtweets/mikeyyshorts
+huggingtweets/mikrodystopies
+huggingtweets/mild_lakes
+huggingtweets/milesperhoward
+huggingtweets/milezmarkus
+huggingtweets/milligram3d
+huggingtweets/mineplay512
+huggingtweets/minidiscplus
+huggingtweets/minimalaq
+huggingtweets/miraiwillsaveus-richest__woman
+huggingtweets/mishanotters
+huggingtweets/misogenist
+huggingtweets/miss_sanrio
+huggingtweets/mistercoolrock
+huggingtweets/mistykrueger
+huggingtweets/mit_csail
+huggingtweets/mitchellsolomo1
+huggingtweets/mitll
+huggingtweets/mitomodeller
+huggingtweets/mjrotoni
+huggingtweets/mkbhd
+huggingtweets/ml_nlp
+huggingtweets/mo_turse
+huggingtweets/moderadillo
+huggingtweets/modpizza
+huggingtweets/molassesgrey
+huggingtweets/molleindustria
+huggingtweets/moltenpig
+huggingtweets/moncleryear
+huggingtweets/mondomascots
+huggingtweets/moneyvsfreedom
+huggingtweets/moni_stats
+huggingtweets/monodevice
+huggingtweets/monopolyfornite
+huggingtweets/moonagemayqueen
+huggingtweets/morallawwithin
+huggingtweets/moratorias
+huggingtweets/morganstanley
+huggingtweets/mormo_music
+huggingtweets/most_lamentable
+huggingtweets/mothsprite
+huggingtweets/motivational
+huggingtweets/moviefishy
+huggingtweets/mplay513
+huggingtweets/mpopv
+huggingtweets/mr_bubblezzz
+huggingtweets/mralgore
+huggingtweets/mraofnull
+huggingtweets/mrjjrocks
+huggingtweets/mrmeatscience
+huggingtweets/mrsanctumonious
+huggingtweets/mrwheatley3
+huggingtweets/mschuresko
+huggingtweets/mspunks
+huggingtweets/mtajsar
+huggingtweets/mullbot_forever
+huggingtweets/muratpak
+huggingtweets/murderlinart
+huggingtweets/musebiihi
+huggingtweets/musicalmushr00m
+huggingtweets/musingsofyouth
+huggingtweets/mutilumila
+huggingtweets/mutual_ayyde
+huggingtweets/mxrtinli
+huggingtweets/myconversica
+huggingtweets/mysticmaryy
+huggingtweets/naisu9k
+huggingtweets/najmc
+huggingtweets/nancycartnite
+huggingtweets/narendramodi
+huggingtweets/nasa
+huggingtweets/natashajaques
+huggingtweets/nateritter-naval
+huggingtweets/natesilver538
+huggingtweets/nathanlawkc
+huggingtweets/nathanmarz
+huggingtweets/nathanstanz
+huggingtweets/natincorporated
+huggingtweets/nature
+huggingtweets/natureneuro
+huggingtweets/naval-shl
+huggingtweets/naval-warikoo
+huggingtweets/naval
+huggingtweets/navalismhq
+huggingtweets/nayancat1111
+huggingtweets/nbthieves
+huggingtweets/nebaris
+huggingtweets/neil_jetter
+huggingtweets/neil_mcneil
+huggingtweets/neiltyson
+huggingtweets/nekoninarimas
+huggingtweets/neokeitaro
+huggingtweets/neonacho
+huggingtweets/nerdyboy77
+huggingtweets/nerv_emma
+huggingtweets/nestor_d
+huggingtweets/netflix
+huggingtweets/neural_meduza
+huggingtweets/neuro_stack
+huggingtweets/newathensgov
+huggingtweets/newcastle
+huggingtweets/newdlzz
+huggingtweets/news8
+huggingtweets/newsfrmhome
+huggingtweets/newyorkgop
+huggingtweets/nextlevelbrett
+huggingtweets/nexussomnia
+huggingtweets/nfl
+huggingtweets/nflfantasy
+huggingtweets/nftfreaks
+huggingtweets/nftmansa
+huggingtweets/ngrossman81
+huggingtweets/nhlrumorsdaily
+huggingtweets/nicedaysareweak
+huggingtweets/nicholasbraun
+huggingtweets/nickadamsinusa
+huggingtweets/nickfehr
+huggingtweets/nickjfuentes
+huggingtweets/nicodelon
+huggingtweets/nicolasmaduro
+huggingtweets/nigel_farage
+huggingtweets/nigelthurlow
+huggingtweets/nihilist_arbys
+huggingtweets/nikhilmulani
+huggingtweets/nikkibomm
+huggingtweets/nikkihaleyfan93
+huggingtweets/nillster
+huggingtweets/nilsmedzkills
+huggingtweets/nintendoamerica
+huggingtweets/nintendobower
+huggingtweets/nintyclaire
+huggingtweets/nipsithesciguy
+huggingtweets/nixelpixel
+huggingtweets/nknewsorg
+huggingtweets/nntaleb
+huggingtweets/no__________end-onlinepete
+huggingtweets/noamchompers
+huggingtweets/nobu_hibiki
+huggingtweets/nocodelife
+huggingtweets/noctilucents
+huggingtweets/nodefunallowed
+huggingtweets/noellayoshino
+huggingtweets/noetic_emetic
+huggingtweets/nolanatlas
+huggingtweets/nolanfinleydn
+huggingtweets/nolemonnomelon
+huggingtweets/nonlocal_lia
+huggingtweets/nonmurkyconsqnc
+huggingtweets/normmacdonald
+huggingtweets/northernlion
+huggingtweets/northernlionlp
+huggingtweets/not_luis0_o
+huggingtweets/not_not_i
+huggingtweets/notadamking
+huggingtweets/notanastronomer
+huggingtweets/notcrypticno
+huggingtweets/notdaijob
+huggingtweets/notjohnfante
+huggingtweets/notmikeharlow
+huggingtweets/notpretzel
+huggingtweets/nueclear333
+huggingtweets/nuggetprime
+huggingtweets/nvidia
+huggingtweets/nyanberryy
+huggingtweets/nyandiquil
+huggingtweets/nygovcuomo
+huggingtweets/nyjetstfmedia
+huggingtweets/nykteli_os
+huggingtweets/nyshra_
+huggingtweets/nytimes
+huggingtweets/o0ovoid
+huggingtweets/oann
+huggingtweets/offalgirl
+huggingtweets/officialmcafee
+huggingtweets/ofrainandruin
+huggingtweets/oframblers
+huggingtweets/ohitstarik
+huggingtweets/ojornet
+huggingtweets/oksoumhi
+huggingtweets/olikuchi
+huggingtweets/oliverguhr
+huggingtweets/oliversherouse
+huggingtweets/ollybot_redux
+huggingtweets/omalliecatt
+huggingtweets/omarsar0
+huggingtweets/onalifeglug
+huggingtweets/onboardmass
+huggingtweets/oneonlygriffin
+huggingtweets/onlinepete-recyrb
+huggingtweets/onlinepete-sematarygravemn-superpiss
+huggingtweets/onlinepete-superpiss
+huggingtweets/onlinepete
+huggingtweets/oohloo
+huggingtweets/ookinanami73
+huggingtweets/oooolya
+huggingtweets/opalresplendent
+huggingtweets/opolopso
+huggingtweets/opossumzavod
+huggingtweets/oprah
+huggingtweets/ora_vt
+huggingtweets/oratorofvibes
+huggingtweets/oreocamus
+huggingtweets/orkoliberal
+huggingtweets/orogdk
+huggingtweets/oscardelahoya
+huggingtweets/osirisrafflebot
+huggingtweets/oth_radar
+huggingtweets/oughton_andrew
+huggingtweets/ourqueeningreen
+huggingtweets/outsideness
+huggingtweets/owljohn
+huggingtweets/owlsimulator
+huggingtweets/oxtrf
+huggingtweets/p69ns
+huggingtweets/pabloiglesias
+huggingtweets/paguetisqueso
+huggingtweets/paharnic
+huggingtweets/pakalupapitow
+huggingtweets/palaeoplushies
+huggingtweets/pallpointben
+huggingtweets/paola_rojas
+huggingtweets/pareinoia
+huggingtweets/parikpatelcfa
+huggingtweets/parkerklund
+huggingtweets/parmarsuraj99
+huggingtweets/partyavantharde
+huggingtweets/pastellexists
+huggingtweets/patrick_exo
+huggingtweets/pattonoswalt
+huggingtweets/paulandreidg
+huggingtweets/pauljwright
+huggingtweets/pbhushan1
+huggingtweets/pdobryden
+huggingtweets/peanutfarttles
+huggingtweets/pearltrans
+huggingtweets/pebblessss12
+huggingtweets/pee_zombie
+huggingtweets/penners827
+huggingtweets/pepexbt
+huggingtweets/percyvader
+huggingtweets/permafuddled
+huggingtweets/perry_ruh
+huggingtweets/persimfan
+huggingtweets/persoverant
+huggingtweets/pervocracy
+huggingtweets/pestopublic
+huggingtweets/peter_shoes_
+huggingtweets/peterhurford
+huggingtweets/petermolydeux
+huggingtweets/petersengraph
+huggingtweets/petersinger
+huggingtweets/peterxinping
+huggingtweets/peteskomoroch
+huggingtweets/pfrazee
+huggingtweets/ph4370n
+huggingtweets/phaggotthefrog
+huggingtweets/phantasyphiend
+huggingtweets/philipjbasile
+huggingtweets/philoso_foster
+huggingtweets/philosophy_mark
+huggingtweets/philosoraptor
+huggingtweets/phoebe_bridgers
+huggingtweets/phrasee
+huggingtweets/pico8degalaleo
+huggingtweets/pidgezero_one
+huggingtweets/piechocinski
+huggingtweets/piersmorgan
+huggingtweets/piratepilots
+huggingtweets/piss_river_fc
+huggingtweets/pix_uwu
+huggingtweets/pixelatedboat-theonion
+huggingtweets/pixiecatsupreme
+huggingtweets/pj_bud
+huggingtweets/pkmn_elfbooks
+huggingtweets/planeselchu
+huggingtweets/planetmoney
+huggingtweets/playboicarti
+huggingtweets/plesmasquerade
+huggingtweets/plinz
+huggingtweets/pnasnews
+huggingtweets/poconggg
+huggingtweets/podsaveamerica
+huggingtweets/pokimanelol
+huggingtweets/polanypolany
+huggingtweets/politicalmiller
+huggingtweets/poly_metis
+huggingtweets/ponkichi_book
+huggingtweets/pontifex
+huggingtweets/pontifex_es
+huggingtweets/pop2bycharlixcx
+huggingtweets/popculturefan78
+huggingtweets/poppunkarsonist
+huggingtweets/poppy_haze
+huggingtweets/porngum_ebooks
+huggingtweets/porns_xx
+huggingtweets/porter_esq
+huggingtweets/portgarden
+huggingtweets/poss_em
+huggingtweets/postedinthecrib
+huggingtweets/postgohst
+huggingtweets/postpastiche
+huggingtweets/postpostpostr
+huggingtweets/potus
+huggingtweets/ppredictors
+huggingtweets/pr1ncess_emily
+huggingtweets/pradyuprasad
+huggingtweets/prageru
+huggingtweets/praisegodbarbon
+huggingtweets/prakash1729brt
+huggingtweets/prathkum
+huggingtweets/praticoslo
+huggingtweets/prawn_meat
+huggingtweets/prawnheadmd
+huggingtweets/premiles_
+huggingtweets/preyproject
+huggingtweets/prezoh
+huggingtweets/princessarylin
+huggingtweets/prisonplanet
+huggingtweets/problem_halting
+huggingtweets/prof_jtaylor
+huggingtweets/prof_preobr
+huggingtweets/profdemirtas
+huggingtweets/proffeynman
+huggingtweets/profleeper
+huggingtweets/progynovadose
+huggingtweets/projectlincoln
+huggingtweets/protoneutype
+huggingtweets/pseud0spiral
+huggingtweets/pseud_posting
+huggingtweets/pseudomanifold
+huggingtweets/pukimarx
+huggingtweets/punishedhibiki
+huggingtweets/punk4156
+huggingtweets/punk6529
+huggingtweets/punk_bat
+huggingtweets/pup_hime
+huggingtweets/pupco1thedog
+huggingtweets/puppsicle
+huggingtweets/pupsona__
+huggingtweets/purefulsoul-turtlebreezee-wnrstweets
+huggingtweets/purenietzsche
+huggingtweets/purplefinatic
+huggingtweets/purplepupper
+huggingtweets/purplesquare41
+huggingtweets/pwang
+huggingtweets/qdragonaol
+huggingtweets/qoaeun
+huggingtweets/qotheghost
+huggingtweets/qtpath
+huggingtweets/qtsheepgirl
+huggingtweets/queenjennyxoxo
+huggingtweets/queenmelanoma
+huggingtweets/queenofbithynia
+huggingtweets/quietpinetrees
+huggingtweets/quizzicallay
+huggingtweets/r2devops_io
+huggingtweets/ra_ed
+huggingtweets/rabbitsnap
+huggingtweets/raciebeep
+huggingtweets/radfroggie
+huggingtweets/radicalkevbot
+huggingtweets/radityadika
+huggingtweets/raels_lamia
+huggingtweets/ragswastaken
+huggingtweets/raholaoficial
+huggingtweets/rahulroushan
+huggingtweets/rajcs4
+huggingtweets/rajupp
+huggingtweets/ramit
+huggingtweets/ramona69420
+huggingtweets/ramonalonsojr
+huggingtweets/rantspakistani
+huggingtweets/rapevictlm-smallapey-vsshole
+huggingtweets/rapevictlm
+huggingtweets/raquelbaron__
+huggingtweets/ravenn_diagram
+huggingtweets/ravikorukonda
+huggingtweets/ravisankar_g
+huggingtweets/raydalio
+huggingtweets/rcandlemaker
+huggingtweets/rct_ai
+huggingtweets/reachtarunhere
+huggingtweets/readmengzi
+huggingtweets/realaetius
+huggingtweets/realbenfishbein
+huggingtweets/realbobodenkirk
+huggingtweets/realcommaqueen
+huggingtweets/realdjcthulhu
+huggingtweets/realdonaldtrump
+huggingtweets/realjameswoods
+huggingtweets/realmichaelkay
+huggingtweets/realnamenumbers
+huggingtweets/realsophiarobot
+huggingtweets/realweinerman
+huggingtweets/rebeccafiebrink
+huggingtweets/rebirthofwonder
+huggingtweets/red_blaster
+huggingtweets/redbirdrabbit
+huggingtweets/reddit_exmuslim
+huggingtweets/redpandasmash
+huggingtweets/reeds_sarah
+huggingtweets/regaleyes
+huggingtweets/remibacha
+huggingtweets/renatrigiorese
+huggingtweets/repkatieporter
+huggingtweets/reptileclocker
+huggingtweets/restrictedwop
+huggingtweets/reverse_city
+huggingtweets/rgrig
+huggingtweets/rias_hot
+huggingtweets/ricardor1710
+huggingtweets/rice_nug
+huggingtweets/richardbspencer
+huggingtweets/richardcraib
+huggingtweets/richardknotel
+huggingtweets/richardsocher
+huggingtweets/rickandmorty
+huggingtweets/rickygervais
+huggingtweets/ridiculouscrabs
+huggingtweets/ridingthescree
+huggingtweets/rikergoogling
+huggingtweets/ringostarrmusic
+huggingtweets/riot_kassadin
+huggingtweets/ripnpepperonis
+huggingtweets/rishiosaur
+huggingtweets/ritaradostitz
+huggingtweets/ritualneo
+huggingtweets/riverlavoisier
+huggingtweets/rivin64
+huggingtweets/rizgblue
+huggingtweets/rmaxico
+huggingtweets/roamfu
+huggingtweets/robber0540
+huggingtweets/robdel12
+huggingtweets/robertodcrsj
+huggingtweets/rocallagy
+huggingtweets/rocio_old
+huggingtweets/rockberta
+huggingtweets/rockdekorose
+huggingtweets/rockdrigoma
+huggingtweets/roedeerrootie
+huggingtweets/rogerfederer
+huggingtweets/rokroka25
+huggingtweets/ronindune
+huggingtweets/ronnienumber7
+huggingtweets/roreiy
+huggingtweets/rotandgrow
+huggingtweets/rowanbt
+huggingtweets/royalreporter
+huggingtweets/roybahat
+huggingtweets/rterdogan
+huggingtweets/rufandom
+huggingtweets/rusticgendarme
+huggingtweets/rwinshow
+huggingtweets/rwphan
+huggingtweets/rxmaybike
+huggingtweets/s2pidfuck
+huggingtweets/s5bug
+huggingtweets/s66jewelevans
+huggingtweets/s_mething
+huggingtweets/sabopunkad
+huggingtweets/sadalsvvd
+huggingtweets/sadfaceone
+huggingtweets/sadhgurujv
+huggingtweets/sagefuncom
+huggingtweets/sagejdk
+huggingtweets/saidemilyfrost
+huggingtweets/saitej786
+huggingtweets/saladplainzone
+huggingtweets/salesforce
+huggingtweets/sam__cash
+huggingtweets/samebagels
+huggingtweets/samkyle0
+huggingtweets/samtheevader
+huggingtweets/samyamar_
+huggingtweets/sanchezcastejon
+huggingtweets/sandissauka
+huggingtweets/sanhestpasmoi
+huggingtweets/sapphirelally
+huggingtweets/sarahksilverman
+huggingtweets/sardesairajdeep
+huggingtweets/sardied1
+huggingtweets/sardoche_lol
+huggingtweets/sarthaktexas
+huggingtweets/sashasoftshark
+huggingtweets/sauce__world
+huggingtweets/saudiah_repat-someone_470
+huggingtweets/saxena_puru
+huggingtweets/sayantandas_
+huggingtweets/sbubby4
+huggingtweets/sburhanova
+huggingtweets/scarlet_platnm
+huggingtweets/scarysmilingdog
+huggingtweets/schneider4il10
+huggingtweets/sciencebits
+huggingtweets/scooterabrahaam
+huggingtweets/scottadamssays
+huggingtweets/scottcrates
+huggingtweets/scottmorrisonmp
+huggingtweets/scpebooks
+huggingtweets/scpwiki
+huggingtweets/scrawledsongs
+huggingtweets/scrmshw
+huggingtweets/scromiting
+huggingtweets/scrubphilosophy
+huggingtweets/seangaz
+huggingtweets/seanmombo
+huggingtweets/seannameeshelle
+huggingtweets/sebastiankurz
+huggingtweets/sedirox
+huggingtweets/seffsaid
+huggingtweets/seleniumreal
+huggingtweets/sellarsrespectr
+huggingtweets/sematarygravemn
+huggingtweets/senorstallone
+huggingtweets/sentienter
+huggingtweets/seocamp
+huggingtweets/seraxiz
+huggingtweets/sexycuckolding
+huggingtweets/seyitaylor
+huggingtweets/sfy____
+huggingtweets/sh44sti
+huggingtweets/shacharmirkin
+huggingtweets/shadowkusanagi
+huggingtweets/shaklakhani
+huggingtweets/shallydarte
+huggingtweets/shamscharania
+huggingtweets/shape_nato
+huggingtweets/sharsenko
+huggingtweets/shartitheclown
+huggingtweets/shegotadankwa
+huggingtweets/shelbythanna
+huggingtweets/shengokai
+huggingtweets/sheniroh
+huggingtweets/shickdits
+huggingtweets/shishibane
+huggingtweets/shivon
+huggingtweets/shoe0nhead
+huggingtweets/shonenpatties
+huggingtweets/shovelship
+huggingtweets/shrike76
+huggingtweets/shuos_
+huggingtweets/shutupjamiepls
+huggingtweets/sicatrix66
+huggingtweets/sidjindal1
+huggingtweets/sigh_oh
+huggingtweets/sigittanew
+huggingtweets/sigsys
+huggingtweets/sillynous
+huggingtweets/simpingboisinc-sircantus
+huggingtweets/simpingboisinc
+huggingtweets/simpleflips
+huggingtweets/sinirlasansiz
+huggingtweets/sirsfurther
+huggingtweets/sixjay__
+huggingtweets/skabpixels
+huggingtweets/skinny_pickens
+huggingtweets/sky_obito
+huggingtweets/slainkinsman
+huggingtweets/slashdashdot
+huggingtweets/slime_machine
+huggingtweets/slimepriestess
+huggingtweets/slowcoregod
+huggingtweets/sluckbo
+huggingtweets/sludge_girl
+huggingtweets/smithchitty
+huggingtweets/smokey_niggata_
+huggingtweets/smokyblue__
+huggingtweets/smolserabean
+huggingtweets/sn0ozefest
+huggingtweets/sn_fk_n
+huggingtweets/snackmerritt
+huggingtweets/snackteeth
+huggingtweets/snackuporsackup
+huggingtweets/sneakygnida
+huggingtweets/snobiwan
+huggingtweets/snoopdogg
+huggingtweets/snooterboops
+huggingtweets/snorapp
+huggingtweets/snow_gh0st
+huggingtweets/soashworth
+huggingtweets/sodaag
+huggingtweets/solarmonke
+huggingtweets/solarsystern
+huggingtweets/soleil__vt
+huggingtweets/some_bxdy
+huggingtweets/sonyaism
+huggingtweets/sopitas
+huggingtweets/sorenemile
+huggingtweets/sosadtoday
+huggingtweets/sovereign_beast
+huggingtweets/spacebananaza
+huggingtweets/spacedsheep
+huggingtweets/spam_can
+huggingtweets/spamemcspam
+huggingtweets/spatermensch
+huggingtweets/spdustin
+huggingtweets/speakerpelosi
+huggingtweets/spiffffer
+huggingtweets/spiraltoo
+huggingtweets/spknnk
+huggingtweets/spookymachine
+huggingtweets/spookysimon1
+huggingtweets/sporeball
+huggingtweets/sprobertson
+huggingtweets/ssarahbel
+huggingtweets/sshakestation
+huggingtweets/ssriprincess
+huggingtweets/ssriqueen
+huggingtweets/st6_nsqk
+huggingtweets/st6cam
+huggingtweets/stablekwon
+huggingtweets/staenrey
+huggingtweets/staidindoors
+huggingtweets/starbannergames
+huggingtweets/staroxvia
+huggingtweets/staticbluebat
+huggingtweets/staticmeganito
+huggingtweets/stdoval_
+huggingtweets/steashaz
+huggingtweets/stefrappeneau
+huggingtweets/stellahymmne
+huggingtweets/stephencurry30
+huggingtweets/stephenking
+huggingtweets/stephenmhouston
+huggingtweets/stevain
+huggingtweets/stillgray
+huggingtweets/stinkbomb64
+huggingtweets/stockstotrade
+huggingtweets/stoolpresidente
+huggingtweets/str_voyage
+huggingtweets/strappedtrap
+huggingtweets/strife212
+huggingtweets/strongerstabler
+huggingtweets/stuartpb
+huggingtweets/studio71us
+huggingtweets/studiocanaluk
+huggingtweets/sturch45
+huggingtweets/styrm_wb
+huggingtweets/sudat0
+huggingtweets/sunnekochan
+huggingtweets/suzyshinn
+huggingtweets/svpino
+huggingtweets/swamy39
+huggingtweets/swedense
+huggingtweets/switcharooo
+huggingtweets/syryquil
+huggingtweets/t2scania
+huggingtweets/t4t_cyborg
+huggingtweets/t_llulah
+huggingtweets/t_zahil
+huggingtweets/talal916
+huggingtweets/talebquotes
+huggingtweets/taliasturm
+huggingtweets/tallfuzzball
+huggingtweets/tamaybes
+huggingtweets/taracharamod
+huggingtweets/tarp1_t
+huggingtweets/tashikitama
+huggingtweets/tasshinfogleman
+huggingtweets/tatclouthier
+huggingtweets/tatiranae
+huggingtweets/tatitacita
+huggingtweets/tatsu_moved
+huggingtweets/taylorswift13
+huggingtweets/tdxf20
+huggingtweets/teawoodleaf
+huggingtweets/techcrunch
+huggingtweets/techgirljenni
+huggingtweets/technothepig
+huggingtweets/teethdespot
+huggingtweets/tekniiix
+huggingtweets/tekrariyokbunun
+huggingtweets/telephuckyou
+huggingtweets/teletour
+huggingtweets/temeton_blue-temeton_pink
+huggingtweets/temeton_blue
+huggingtweets/temrqp
+huggingtweets/temujin9
+huggingtweets/tenthkrige
+huggingtweets/tere_marinovic
+huggingtweets/terencemckenna_
+huggingtweets/terra_lunatics
+huggingtweets/tetranode
+huggingtweets/tetraspacewest
+huggingtweets/textmemeeffect
+huggingtweets/texttheater
+huggingtweets/tez_romach
+huggingtweets/tgdeergirl
+huggingtweets/thatonequeen
+huggingtweets/thatsmauvelous
+huggingtweets/thatstupiddoll
+huggingtweets/thattrans_girl
+huggingtweets/thcphilosopher
+huggingtweets/the1619project
+huggingtweets/the___missile
+huggingtweets/the_aiju
+huggingtweets/the_leonardo_dc
+huggingtweets/the_nftking
+huggingtweets/the_officiator
+huggingtweets/the_robisho
+huggingtweets/thebabylonbee-theonion
+huggingtweets/thebaronskelly
+huggingtweets/thebossbeach
+huggingtweets/thebotbible
+huggingtweets/thecity2
+huggingtweets/thecoolersyry
+huggingtweets/thecoolestcool
+huggingtweets/thecryptolark
+huggingtweets/theczar_bk
+huggingtweets/thedanielh05
+huggingtweets/theeconomist
+huggingtweets/theeklub
+huggingtweets/theexpertonthis
+huggingtweets/theeye_eee
+huggingtweets/thefoxjulia
+huggingtweets/thehangedman
+huggingtweets/theheidifeed
+huggingtweets/thehowie
+huggingtweets/theisaiahw
+huggingtweets/thejakenixon
+huggingtweets/themarktwain
+huggingtweets/themoonkestrel
+huggingtweets/thenamefaceless
+huggingtweets/thenamescam1
+huggingtweets/theneedledrop
+huggingtweets/thenewfiction
+huggingtweets/theofficetv
+huggingtweets/theonion
+huggingtweets/theorangealt
+huggingtweets/theosanderson
+huggingtweets/thepetershep
+huggingtweets/theqwaincrane
+huggingtweets/therealbenedwa1
+huggingtweets/therock
+huggingtweets/thesamparr
+huggingtweets/thesiswhisperer
+huggingtweets/thesravaka
+huggingtweets/thestoicemperor
+huggingtweets/thetweetofgod
+huggingtweets/thetweetofrhea
+huggingtweets/thewenbo
+huggingtweets/theytooknedward
+huggingtweets/thezachmueller
+huggingtweets/thierrybaudet
+huggingtweets/thinkagainer
+huggingtweets/thinkiamsad
+huggingtweets/thinktilt
+huggingtweets/thisisaito
+huggingtweets/thisispartridge
+huggingtweets/thisonequestion
+huggingtweets/thom_ivy_1
+huggingtweets/thom_wolf
+huggingtweets/thot_piece
+huggingtweets/thucydiplease
+huggingtweets/thyacinth
+huggingtweets/tiktaalexroseae
+huggingtweets/tilda_tweets
+huggingtweets/tim_cook
+huggingtweets/tim_hosgood
+huggingtweets/timcast
+huggingtweets/timelordpony125
+huggingtweets/timhaines
+huggingtweets/timheadadvocate
+huggingtweets/timkellernyc
+huggingtweets/timnitgebru
+huggingtweets/timthom_007
+huggingtweets/titaniamcgrath
+huggingtweets/titusoneeeeil
+huggingtweets/tj_neyland
+huggingtweets/tjonthefloor
+huggingtweets/tk_tr
+huggingtweets/tmarysuma
+huggingtweets/tobywalsh
+huggingtweets/toffeepawbz
+huggingtweets/tokenthird
+huggingtweets/tomb_respecter
+huggingtweets/tomlau
+huggingtweets/tomlennard
+huggingtweets/tommyhump
+huggingtweets/tommyinnit
+huggingtweets/tonline_news
+huggingtweets/topntran
+huggingtweets/toriteamos
+huggingtweets/tosh14k1
+huggingtweets/tower727
+huggingtweets/tr0g
+huggingtweets/trappychan_
+huggingtweets/trevorthalacker
+huggingtweets/trolley_rebel
+huggingtweets/troydan
+huggingtweets/truck_____er
+huggingtweets/tryndamere_riot
+huggingtweets/tsihanouskaya
+huggingtweets/tsm_leffen
+huggingtweets/tsuda
+huggingtweets/tsuyamumethefox
+huggingtweets/tswiftlyricsbot
+huggingtweets/tszzl
+huggingtweets/tuckercarlson
+huggingtweets/tudelft
+huggingtweets/tundeeednut
+huggingtweets/tvistter
+huggingtweets/tweeting691
+huggingtweets/twentyonepilots
+huggingtweets/twinkhonkat
+huggingtweets/twinkmao
+huggingtweets/twitchytyrant
+huggingtweets/twmatthieuh
+huggingtweets/twomad
+huggingtweets/twominutepapers
+huggingtweets/txwatie
+huggingtweets/tylerrjoseph
+huggingtweets/tylerthecreator
+huggingtweets/ual_cci
+huggingtweets/uberfacts
+huggingtweets/ubergeekgirl
+huggingtweets/ubtiviv
+huggingtweets/uckerssket
+huggingtweets/udupendra
+huggingtweets/ugh_lily
+huggingtweets/uhaul_cares
+huggingtweets/ultraposting
+huggingtweets/umbersorrow
+huggingtweets/uncannydays
+huggingtweets/unitas_spiritus
+huggingtweets/universal_lucas-void_vomicae
+huggingtweets/unkledell
+huggingtweets/unlikelyvee
+huggingtweets/unmoglich1
+huggingtweets/uppityducky
+huggingtweets/urmomlolroasted
+huggingtweets/urst0ff
+huggingtweets/usethespacebar
+huggingtweets/uspto
+huggingtweets/uwusman
+huggingtweets/v23242526
+huggingtweets/vanpelt
+huggingtweets/vansianmagic
+huggingtweets/vaushv
+huggingtweets/vccircle
+huggingtweets/vecuroniyum
+huggingtweets/veganseltzer
+huggingtweets/vendittilab
+huggingtweets/venmo
+huggingtweets/venmosupport
+huggingtweets/vennesports
+huggingtweets/verafiedposter
+huggingtweets/vercel
+huggingtweets/vermontsmash
+huggingtweets/veryshortstory
+huggingtweets/vfahegao
+huggingtweets/vfsyes
+huggingtweets/vgr
+huggingtweets/vikjapan
+huggingtweets/viktar_babaryka
+huggingtweets/vinesauce
+huggingtweets/vinniehacker
+huggingtweets/violet_tarot
+huggingtweets/violetgweny
+huggingtweets/viperwave
+huggingtweets/viral_b_shah
+huggingtweets/visakanv
+huggingtweets/vishigondi
+huggingtweets/vishxl
+huggingtweets/visionify
+huggingtweets/visualizevalue
+huggingtweets/vitalikbuterin
+huggingtweets/void_vomicae
+huggingtweets/voteblake
+huggingtweets/voxdotcom
+huggingtweets/vsshole
+huggingtweets/vtribbean
+huggingtweets/vtubercringe
+huggingtweets/vvangone
+huggingtweets/w3disd3ad
+huggingtweets/w_mlabateki
+huggingtweets/wallstreetbets
+huggingtweets/wandererslibrar
+huggingtweets/washed_u
+huggingtweets/wausaubob
+huggingtweets/waynedupreeshow
+huggingtweets/wearosbygoogle
+huggingtweets/weedsle
+huggingtweets/weights_biases
+huggingtweets/wellshit0
+huggingtweets/wellypooscene
+huggingtweets/weloc_
+huggingtweets/wendys
+huggingtweets/weworewhat
+huggingtweets/whaletrades
+huggingtweets/whatsylviaate
+huggingtweets/wherewasmybrain
+huggingtweets/whiskyhutch
+huggingtweets/whoops2gay
+huggingtweets/wife_geist
+huggingtweets/wiifactsplus
+huggingtweets/williamblakebot
+huggingtweets/williamgrobman
+huggingtweets/wilton_quinn
+huggingtweets/wired
+huggingtweets/witchdagguh
+huggingtweets/witheredstrings
+huggingtweets/witten271
+huggingtweets/wmascen
+huggingtweets/wojespn
+huggingtweets/wokal_distance
+huggingtweets/woketopus
+huggingtweets/wolfejosh
+huggingtweets/wolfniya
+huggingtweets/wonkhe
+huggingtweets/wormonnastring
+huggingtweets/worrski_
+huggingtweets/wortelsoup
+huggingtweets/woxxy
+huggingtweets/wrathofgnon
+huggingtweets/wretched_worm
+huggingtweets/writinglefty
+huggingtweets/wsj
+huggingtweets/wwm_shakespeare
+huggingtweets/wyatt_privilege
+huggingtweets/wyattpuppers
+huggingtweets/xaneowski
+huggingtweets/xescobin
+huggingtweets/xiaomi
+huggingtweets/xinqisu
+huggingtweets/xwylraz0rbl4d3x
+huggingtweets/xxinnernettexx
+huggingtweets/yarbsalocin
+huggingtweets/ycombinator
+huggingtweets/yeahyeahyens
+huggingtweets/yeetgenstein
+huggingtweets/yellowdogedem
+huggingtweets/yennyowo
+huggingtweets/yieee_nagitaco
+huggingtweets/yierpaen
+huggingtweets/yigitckahyaoglu
+huggingtweets/ylecun
+huggingtweets/youcleanitup1
+huggingtweets/yourfavhwhw
+huggingtweets/youronlinedad
+huggingtweets/yu_kisub21
+huggingtweets/yujachachacha
+huggingtweets/yujiri3
+huggingtweets/yukonbrandon
+huggingtweets/yung_caribou
+huggingtweets/yungparenti
+huggingtweets/yuureimi
+huggingtweets/yybbhn
+huggingtweets/zacharyhundley
+huggingtweets/zachfox
+huggingtweets/zackfox
+huggingtweets/zackmdavis
+huggingtweets/zashskoe
+huggingtweets/zavaralho
+huggingtweets/zeebeecat01
+huggingtweets/zemmoureric
+huggingtweets/zetsubunny
+huggingtweets/zeynep
+huggingtweets/zitterbewegung
+huggingtweets/zkarlinn
+huggingtweets/zlisto
+huggingtweets/zoebot_zoe
+huggingtweets/zrkrlc
+huggingtweets/zssbecker
+huggingtweets/zvisrosen
+hugo/byt5-en-v3
+hugo/byt5-en-v5
+hugo/byt5-en-v6
+hugo/byt5-mono-de-v1
+hugo/byt5-mono-en-v1
+hugo/byt5-mono-pt-v1
+hugo/byt5-mono-vi-v1
+hugo/byt5-pt-v4
+iamalpharius/GPT-Small-BenderBot
+ianc89/hagrid
+iarfmoose/t5-base-question-generator
+ifis-zork/IFIS_ZORK_AI_MEDIUM_HORROR
+ifis-zork/ZORK_AI_FANTASY
+ifis-zork/ZORK_AI_FAN_TEMP
+ifis-zork/ZORK_AI_MODERN
+ifis-zork/ZORK_AI_MODERN_A
+ifis-zork/ZORK_AI_SCI_FI
+ifis-zork/ZORK_AI_SCI_FI_TEMP
+ignkai/DialoGPT-medium-spider-man-updated
+ilikeapple12/DialoGPT-small-Phos
+iliketurtles/distilgpt2-finetuned-wikitext2
+imfiba1991/gpt2-wikitext2
+impyadav/GPT2-FineTuned-Hinglish-Song-Generation
+imran2part/DialogGPT-small-Doctor
+imrit1999/DialoGPT-small-MCU
+imrit450/DialoGPT-small-Tony
+imthanhlv/gpt2news
+imthanhlv/t5vi
+imthanhlv/vigpt2medium
+imxly/t5-pegasus-small
+imxly/t5-pegasus
+indobenchmark/indogpt
+indonesian-nlp/gpt2-medium-indonesian
+indonesian-nlp/gpt2
+inferus/DialoGPT-small-rick
+ingridnc/t5-small-finetuned-fi-to-en
+inspectorsolaris/gpt2_french
+inspectorsolaris/gpt2_french_pre_trained
+myynirew/DialoGPT-medium-leirbag
+myynirew/DialoGPT-small-awazimuruk
+ionite/DialoGPT-large-Sh0rtiAI-v2
+ionite/DialoGPT-medium-IoniteAI
+ionite/DialoGPT-medium-McKayAI-v2
+ionite/DialoGPT-medium-McKayAI
+ionite/DialoGPT-medium-Sh0rtiAI
+ionite/DialoGPT-medium-mohnjilesAI
+ionite/DialoGPT-medium-orangeAI
+ironman123/DialoGPT-small-harrypotter
+irvingpop/dreambank
+ishraaqparvez/DialoGPT-small-harrypotter
+ismaelfaro/gpt2-poems.en
+ismaelfaro/gpt2-poems.es
+it5/it5-base-formal-to-informal
+it5/it5-base-headline-generation
+it5/it5-base-ilgiornale-to-repubblica
+it5/it5-base-informal-to-formal
+it5/it5-base-news-summarization
+it5/it5-base-question-answering
+it5/it5-base-question-generation
+it5/it5-base-repubblica-to-ilgiornale
+it5/it5-base-wiki-summarization
+it5/it5-large-formal-to-informal
+it5/it5-large-headline-generation
+it5/it5-large-ilgiornale-to-repubblica
+it5/it5-large-informal-to-formal
+it5/it5-large-news-summarization
+it5/it5-large-question-answering
+it5/it5-large-question-generation
+it5/it5-large-repubblica-to-ilgiornale
+it5/it5-large-wiki-summarization
+it5/it5-small-formal-to-informal
+it5/it5-small-headline-generation
+it5/it5-small-ilgiornale-to-repubblica
+it5/it5-small-informal-to-formal
+it5/it5-small-news-summarization
+it5/it5-small-question-answering
+it5/it5-small-question-generation
+it5/it5-small-repubblica-to-ilgiornale
+it5/it5-small-wiki-summarization
+it5/mt5-base-formal-to-informal
+it5/mt5-base-headline-generation
+it5/mt5-base-ilgiornale-to-repubblica
+it5/mt5-base-informal-to-formal
+it5/mt5-base-news-summarization
+it5/mt5-base-question-answering
+it5/mt5-base-question-generation
+it5/mt5-base-repubblica-to-ilgiornale
+it5/mt5-base-wiki-summarization
+it5/mt5-small-formal-to-informal
+it5/mt5-small-headline-generation
+it5/mt5-small-ilgiornale-to-repubblica
+it5/mt5-small-informal-to-formal
+it5/mt5-small-news-summarization
+it5/mt5-small-question-answering
+it5/mt5-small-question-generation
+it5/mt5-small-repubblica-to-ilgiornale
+it5/mt5-small-wiki-summarization
+jack-oh/KoGPT2_finetuned_wellness
+jackky46/DialoGPT-medium-got
+jacksee/biochem-model-first
+jacksee/biochem-model-firstv2
+jacksee/gpt2-finetuned-biochemistry
+jaesun/kogpt2-base-v2-finetuned-nsmc
+jahz/DialoGPT-medium-FF8
+jakobwes/finance-gpt2
+jalensmh/DialoGPT-medium-jalenbot
+jalensmh/DialoGPT-small-exophoria
+jamestop00/DialoGPT-spike-medium
+jamiewjm/CCGwGPT2
+jamiewjm/CCGwGPT2extep2
+jamiewjm/CCGwGPT2extep3
+jamiewjm/CCGwGPT2extep3reduce
+jamiewjm/CCGwGPT2extep5
+jaron-maene/gpt2-large-nl2bash
+jaron-maene/gpt2-medium-nl2bash
+jasper/DialoGPT-large-homersimpson
+jaynlp/t5-large-samsum
+jaynlp/t5-large-transferqa
+jayson31/DialoGPT-small-RickAndMorty
+jaywhypark/test
+jazzisfuture/new_summary_t5_small
+jbarry/irish-gpt2
+jcblaise/gpt2-tagalog
+jchen/DialoGPT-evan
+jcpwfloi/gpt2-story-generation
+jeanlks/DialogGPT-small-gayvid
+jeanlks/DialogGPT-small-pato
+jegormeister/dialogpt-ir-bot
+jenspt/byt5_extra_layer_1024_ft_all_clean_data_SAFETY
+jenspt/byt5_extra_layer_1024_ft_all_clean_data_SAFETY_v2
+jenspt/byt5_ft_all_clean_data
+jenspt/byt5_ft_all_clean_data_lr_1e4
+jenspt/byt5_ft_all_clean_data_ws3000
+jenspt/byt5_ft_error_only
+jenspt/mln_ft
+jerome1519/t5-small-finetuned-xsum
+jfhr1999/CharacterTest
+jihopark/GPT2-Article-Large2
+jihopark/KoCulture-Large
+jihopark/article_large
+jihopark/colloquial-large
+jihopark/colloquial
+jihopark/colloquialV2
+jihopark/wiki_large
+jinlmsft/t5-base-domain-detect
+jinlmsft/t5-large-domain-detect
+jinlmsft/t5-large-multiwoz
+jinlmsft/t5-large-slots
+jj-co/gtr-t5-base
+jkulhanek/augpt-bigdata
+jkulhanek/augpt-mw-20
+jkulhanek/augpt-mw-21
+jky594176/recipe_GPT2
+jldnunna369/t5-small-finetuned-xsum
+jmamou/gpt2-medium-IMDB
+jmamou/gpt2-medium-SST-2
+jogp10/DialoGPT-medium-arya
+johnpaulbin/gpt2-skript-1m-v5
+johnpaulbin/gpt2-skript-80-v3
+johnpaulbin/gpt2-skript-80
+johnpaulbin/gpt2-skript-base
+johnpaulbin/meme-titles
+jollmimmim/DialoGPT-small-monkeydluffy
+jonasmue/cover-letter-distilgpt2
+jonasmue/cover-letter-gpt2
+jonasurth/T5Sum
+jonatasgrosman/paraphrase
+jonx18/DialoGPT-small-Creed-Odyssey
+jordan-m-young/buzz-article-gpt-2
+jordanhagan/DialoGPT-medium-NegaNetizen
+josephmagnayon/DialoGPT-medium-Alfred
+josepjulia/RepoHumanChatBot
+josh8/DialoGPT-medium-josh
+josh8/DialoGPT-small-josh
+josmunpen/mt5-small-spanish-summarization
+jpwahle/t5-large-word-sense-disambiguation
+jppaolim/homerGPT2
+jppaolim/homerGPT2L
+jpsxlr8/DialoGPT-small-harrypotter
+jroussin/gpt2-ontapdoc-gen
+jsfoon/slogan-generator
+jshu/gpt2-medium-ontapdoc-gen-2
+jt360/mt5-small-finetuned-amazon-en-es-video-games
+jth1903/DialoGPT-small-rick
+julianolf/DialoGPT-small-harrypotter
+julien-c/t5-3b-fork2
+kaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaot1k/DialoGPT-small-Wanda
+kaedefuto/chat_bot
+kagennotsuki/DialoGPT-medium-radion
+kalki7/distilgpt2-ratatouille
+kbhugging/autonlp-text2sql-18413376
+kche0138/DialoGPT-medium-DIO
+kco4776/kogpt-chat
+kdo6301/DongwoongKim-test-model
+keras-io/text-generation-miniature-gpt
+keshan/sinhala-gpt2-newswire
+keshan/sinhala-gpt2
+keshan/sinhala-t5-small
+keyonvafa/compatible-gpt2
+khailai/t5-wav2vec2-punctuator-2
+khailai/t5-wav2vec2-punctuator
+khalidsaifullaah/bengali-lyricist-gpt2
+khanglam7012/t5-small
+khursani8/distilgpt2-finetuned-wikitext2
+kikumaru818/easy_algebra
+kingabzpro/DialoGPT-small-Rick-Bot
+kipiiler/Rickbot
+kiri-ai/gpt2-large-quantized
+kiri-ai/t5-base-qa-summary-emotion
+kleinay/qanom-seq2seq-model-baseline
+kleinay/qanom-seq2seq-model-joint
+kloon99/KML_Eula_generate_v1
+kloon99/KML_Eula_generate_v2
+kmfoda/description_generator_new
+knightbat/harry-potter
+kp17/DialoGPT-small-tonystark
+kripanshudixit/DialoGPT-small-phoenix
+kris/DialoGPT-small-spock
+kris/DialoGPT-small-spock3
+kris/DialoGPT-small-spock4
+kris/DialoGPT-small-spock5
+kshitiz/testing-bot-repo
+ktrapeznikov/gpt2-medium-topic-news-v2
+ktrapeznikov/gpt2-medium-topic-news
+ktrapeznikov/gpt2-medium-topic-small-set
+kumakino/fairy-tale-gpt2-small
+kunalbhargava/DialoGPT-small-housebot
+kvothe28/DiabloGPT-small-Rick
+kykim/gpt3-kor-small_based_on_gpt2
+kykim/t5-kor-small
+kz/mt5base-finetuned-ECC-japanese-small
+kz/mt5base-finetuned-patentsum-japanese-small
+LACAI/DialoGPT-large-PFG
+LACAI/DialoGPT-small-PFG
+LACAI/DialoGPT-small-SGD
+LACAI/gpt2-xl-dialog-narrative-persuasion
+lagodw/plotly_gpt
+lagodw/plotly_gpt2_large
+lagodw/plotly_gpt2_medium
+lagodw/redditbot
+lagodw/redditbot_gpt2
+lagodw/redditbot_gpt2_short
+lagodw/redditbot_gpt2_v2
+lagodw/redditbot_gpt2_xl
+lain2/Peterbot
+lalopey/benn_eifert
+lalopey/pearkes
+lalopey/saeed
+describeai/gemini
+describeai/gemini-small
+lanejm/DialoGPT-small-hagrid
+lapacc33/DialoGPT-medium-rick
+larcane/kogpt2-cat-diary
+lemon234071/ct5-small
+lemon234071/t5-base-Chinese
+lewtun/mt5-finetuned-amazon-en-es-accelerate
+lewtun/mt5-small-finetuned-mlsum
+lhbit20010120/distilgpt2-finetuned-wikitext2
+liam168/chat-DialoGPT-small-en
+liam168/chat-DialoGPT-small-zh
+liam168/gen-gpt2-medium-chinese
+liangtaiwan/t5-v1_1-lm100k-base
+liangtaiwan/t5-v1_1-lm100k-large
+liangtaiwan/t5-v1_1-lm100k-small
+liangtaiwan/t5-v1_1-lm100k-xl
+liangtaiwan/t5-v1_1-lm100k-xxl
+life4free96/DialogGPT-med-TeiaMoranta
+life4free96/DialogGPT-med-TeiaMoranta3
+light/small-rickk
+lighteternal/gpt2-finetuned-greek-small
+lighteternal/gpt2-finetuned-greek
+limivan/DialoGPT-small-c3po
+limter/DialoGPT-medium-krish
+lkh4317/KoGPT2_novel
+lkh4317/gpt2_fairy_tale
+cosmicroxks/DialoGPT-small-scott
+logube/DialogGPT_small_harrypotter
+lonewanderer27/DialoGPT-small-Joshua
+lonewanderer27/KeitaroBot
+lonewanderer27/YoshinoriBot
+lonewanderer27/YuriBot
+longcld/t5-base-squad-visquad-aqg
+longcld/t5-small-e2e-qa-full
+longcld/t5-small-e2e-qa
+longcld/t5-small-itranslate-visquad-aqg
+longcld/t5-small-squad-itranslate-aqg
+longcld/t5_small_checkpoint
+longcld/t5_small_qg_ae_hl
+longcld/t5_small_squad_trans_old
+lordtt13/t5-inshorts
+lovellyweather/DialoGPT-medium-johnny
+ltrctelugu/gpt2_ltrc_telugu
+luca-martial/DialoGPT-Elon
+lucas-bo/DialogGPT-small-yoda
+lucasnobre212/description-test
+lucius/distilgpt2-finetuned-wikitext2
+lucone83/deep-metal
+ludowoods/KujouSara
+lulueve3/DialoGPT-medium-Kokkoro
+lulueve3/DialoGPT-medium-Kokkoro2
+codeparrot/codeparrot-small
+codeparrot/codeparrot
+lvwerra/gpt2-imdb-ctrl
+lvwerra/gpt2-imdb-pos
+lvwerra/gpt2-imdb
+lvwerra/gpt2-medium-taboo
+lysandre/arxiv-nlp
+lysandre/arxiv
+lysandre/my-cool-arxiv-model
+m3hrdadfi/gpt2-QA
+m3hrdadfi/gpt2-persian-qa
+macedonizer/al-gpt2
+macedonizer/blaze-koneski
+macedonizer/gr-gpt2
+macedonizer/hr-gpt2
+macedonizer/mk-gpt2
+macedonizer/sl-gpt2
+macedonizer/sr-gpt2
+madbuda/DialoGPT-got-skippy
+madbuda/DialoGPT-medium-skippy
+mahaamami/distilgpt2-finetuned-wikitext2
+majonez57/JoeBot
+mesolitica/t5-base-standard-bahasa-cased
+mesolitica/t5-small-standard-bahasa-cased
+mesolitica/t5-super-super-tiny-standard-bahasa-cased
+mesolitica/t5-super-tiny-standard-bahasa-cased
+mesolitica/t5-tiny-standard-bahasa-cased
+mamlong34/t5_base_race_cosmos_qa
+mamlong34/t5_large_race_cosmos_qa
+mamlong34/t5_small_cosmos_qa
+mamlong34/t5_small_race_mutlirc
+manav/dialogpt-large-kanye-reddit
+manav/dialogpt-medium-berkeley-reddit
+maniacGhost24/MichaelScott-bot-push-small
+manraf/DialoGPT-smmall-harrypotter
+manueldeprada/t5-cord19-paraphrase-paws-msrp-opinosis
+manueldeprada/t5-cord19
+mapama247/test123
+marciovbarbosa/t5-small-finetuned-de-to-en-fp16
+marciovbarbosa/t5-small-finetuned-de-to-en-lr1e-4
+marciovbarbosa/t5-small-finetuned-de-to-en-lr3e-4
+marciovbarbosa/t5-small-finetuned-de-to-en-swd
+marciovbarbosa/t5-small-finetuned-de-to-en
+marcosscarpim/t5-small-finetuned-en-to-ro
+marefa-nlp/summarization-arabic-english-news
+markg/swda-test
+matprado/DialoGPT-small-rick-sanchez
+maxxx2021/DialGPT-small-harrypotter
+mbateman/mt5-small-finetuned-amazon-en-es
+mbien/fdh-wikibio
+mbien/recipenlg
+mdc1616/DialoGPT-large-sherlock
+megagonlabs/t5-base-japanese-web-8k
+megagonlabs/t5-base-japanese-web
+melon422/DialoGPT-medium-MelonBot
+melon422/DialoGPT-medium-MelonBot2
+mengsay/t5-small-finetuned-gigaword
+mengsay/t5-small-t5small-gigaword
+mewmew/DialoGPT-small-rick
+michaelhsieh42/distilgpt2-finetuned-wikitext2
+michelleshx/DialoGPT-small-michelle-discord-bot
+microsoft/CodeGPT-small-java-adaptedGPT2
+microsoft/CodeGPT-small-java
+microsoft/CodeGPT-small-py-adaptedGPT2
+microsoft/CodeGPT-small-py
+microsoft/DialoGPT-large
+microsoft/DialoGPT-medium
+microsoft/DialoGPT-small
+microsoft/DialogRPT-depth
+microsoft/DialogRPT-human-vs-machine
+microsoft/DialogRPT-human-vs-rand
+microsoft/DialogRPT-updown
+microsoft/DialogRPT-width
+microsoft/ssr-base
+midas/gupshup_e2e_gpt
+midas/gupshup_e2e_t5
+midas/gupshup_h2e_gpt
+midas/gupshup_h2e_t5
+midas/gupshup_h2e_t5_mtl
+miguelvictor/multilingual-gpt2-large
+miguelvictor/python-fromzero-gpt2-base
+miguelvictor/python-fromzero-t5-base
+miguelvictor/python-gpt2-large
+miguelvictor/python-gpt2-medium
+miguelvictor/python-t5-base
+mikabeebee/Peterbot
+mikaelsouza/msft-regular-model
+mikaelsouza/msft-smaller-model
+milayue/neosh-bot1
+mimi/Waynehills-NLP-doogie-AIHub-paper-summary-AIHub-paper-summary
+mimi/Waynehills-NLP-doogie-AIHub-paper-summary
+mimi/Waynehills-NLP-doogie
+mimi/Waynehills-NLP-mimi
+mimi/Waynehills_NLP_KE-T5
+mimi/Waynehills_NLP_muti
+mimi/ke-t5-base-ko-AIHub-paper-summary
+minimaxir/hacker-news
+minimaxir/magic-the-gathering
+minimaxir/reddit
+minsiam/DialoGPT-medium-harrypotterbot
+minsiam/DialoGPT-small-harrypotterbot
+mipatov/rugpt3_nb_descr
+mipatov/rut5_nb_descr
+mittalnishit/DialoGPT-medium-rickman2
+mittalnishit/DialoGPT-small-rickman
+mjstamper/DialoGPT-small-samwise
+mk3smo/dialogpt-med-ahiru
+mk3smo/dialogpt-med-duck2
+mk3smo/dialogpt-med-duck3
+mk3smo/dialogpt-med-duck5
+mk3smo/dialogpt-med-duckfinal
+mk3smo/dialogpt-med-stt3
+mkhalifa/gpt2-biographies
+mklucifer/DialoGPT-medium-DEADPOOL
+mklucifer/DialoGPT-small-DEADPOOL
+ml6team/byt5-base-dutch-ocr-correction
+ml6team/gpt-2-medium-conditional-quote-generator
+ml6team/gpt-2-small-conditional-quote-generator
+ml6team/gpt2-medium-dutch-finetune-oscar
+ml6team/gpt2-medium-german-finetune-oscar
+ml6team/gpt2-small-dutch-finetune-oscar
+ml6team/gpt2-small-german-finetune-oscar
+ml6team/mt5-small-german-finetune-mlsum
+mluengas/DialogGPT-small-michaelscott
+mmm-da/anekdot_funny1_rugpt3Small
+mmm-da/anekdot_funny2_rugpt3Small
+model-mili/DailoGPT-Yukub-v3
+model-mili/DialoGPT-small-Sapph-v1
+model-mili/DialoGPT-small-Yukub-v2
+model-mili/DialoGPT-small-Yukub
+mofawzy/argpt2-goodreads
+mofawzy/cstgan
+mofawzy/gpt-2-goodreads-ar
+mofawzy/gpt-2-negative-reviews
+mofawzy/gpt2-arabic-sentence-generator
+mohammadtari/arxivinterface
+mohammedks713/DialoGPT-small-harrypotter
+mohammedks713/DialoGPT-small-jonsnow
+momo/gpt2-kiosk
+monsoon-nlp/byt5-base-dv
+monsoon-nlp/byt5-basque
+monsoon-nlp/byt5-dv
+monsoon-nlp/dialect-ar-gpt-2021
+monsoon-nlp/gpt-nyc-affirmations
+monsoon-nlp/gpt-nyc-nontoxic
+monsoon-nlp/gpt-nyc-small
+monsoon-nlp/gpt-nyc
+monsoon-nlp/gpt-winowhy
+monsoon-nlp/no-phone-gpt2
+monsoon-nlp/sanaa-dialect
+monsoon-nlp/sanaa
+moyix/csrc_774m
+mra1ster/DialoGPT_scully_small
+mrm8488/CodeGPT-small-finetuned-python-token-completion
+mrm8488/GPT-2-finetuned-CORD19
+mrm8488/GPT-2-finetuned-CRD3
+mrm8488/GPT-2-finetuned-common_gen
+mrm8488/GPT-2-finetuned-covid-bio-medrxiv
+mrm8488/GuaPeTe-2-tiny-finetuned-TED
+mrm8488/GuaPeTe-2-tiny-finetuned-eubookshop
+mrm8488/GuaPeTe-2-tiny-finetuned-spa-constitution
+mrm8488/GuaPeTe-2-tiny
+mrm8488/T5-base-finetuned-cuad
+mrm8488/byt5-small-finetuned-tweet-qa
+mrm8488/byt5-small-tweet-hate-detection
+mrm8488/dilstilgpt2-finetuned-amazon-food-reviews
+mrm8488/diltilgpt2-finetuned-bookcopus-10
+mrm8488/distilgpt2-finedtuned-meditations
+mrm8488/distilgpt2-finetuned-bookcopus-10
+mrm8488/distilgpt2-finetuned-reddit-tifu
+mrm8488/distilgpt2-finetuned-wsb-tweets
+mrm8488/gpt2-finetuned-recipes-cooking
+mrm8488/gpt2-finetuned-recipes-cooking_v2
+mrm8488/gpt2-finetuned-reddit-tifu
+mrm8488/gpt2-imdb-neg
+mrm8488/gpt2-imdb-neutral
+mrm8488/mT5-small-finetuned-multi-question-generation
+mrm8488/mT5-small-finetuned-tydiqa-for-xqa
+mrm8488/spanish-gpt2
+mrm8488/spanish-t5-small-sqac-for-qa
+mrm8488/t5-base-e2e-question-generation
+mrm8488/t5-base-finetuned-AESLC-summarization
+mrm8488/t5-base-finetuned-Reddit-TIFU-TLDR
+mrm8488/t5-base-finetuned-boolq
+mrm8488/t5-base-finetuned-break_data-question-retrieval
+mrm8488/t5-base-finetuned-break_data
+mrm8488/t5-base-finetuned-common_gen
+mrm8488/t5-base-finetuned-disaster-tweets
+mrm8488/t5-base-finetuned-e2m-intent
+mrm8488/t5-base-finetuned-emotion
+mrm8488/t5-base-finetuned-imdb-sentiment
+mrm8488/t5-base-finetuned-math-calculus-differentiate
+mrm8488/t5-base-finetuned-math-linear-algebra-1d
+mrm8488/t5-base-finetuned-math-linear-algebra-2d
+mrm8488/t5-base-finetuned-math-list-prime-factors
+mrm8488/t5-base-finetuned-math-qa-test
+mrm8488/t5-base-finetuned-math-seq-next-term
+mrm8488/t5-base-finetuned-multinews-512
+mrm8488/t5-base-finetuned-news-titles-classification
+mrm8488/t5-base-finetuned-qasc-sc
+mrm8488/t5-base-finetuned-qasc
+mrm8488/t5-base-finetuned-quarel
+mrm8488/t5-base-finetuned-quartz
+mrm8488/t5-base-finetuned-question-generation-ap
+mrm8488/t5-base-finetuned-quoref
+mrm8488/t5-base-finetuned-race
+mrm8488/t5-base-finetuned-sarcasm-twitter
+mrm8488/t5-base-finetuned-spa-squadv1
+mrm8488/t5-base-finetuned-span-sentiment-extraction
+mrm8488/t5-base-finetuned-squadv2
+mrm8488/t5-base-finetuned-summarize-news
+mrm8488/t5-base-finetuned-swag
+mrm8488/t5-base-finetuned-tab_fact
+mrm8488/t5-base-finetuned-wikiSQL-sql-to-en
+mrm8488/t5-base-finetuned-wikiSQL
+mrm8488/t5-small-finetuned-AESLC-summarization
+mrm8488/t5-small-finetuned-boolq
+mrm8488/t5-small-finetuned-common_gen
+mrm8488/t5-small-finetuned-emotion
+mrm8488/t5-small-finetuned-imdb-sentiment
+mrm8488/t5-small-finetuned-quora-for-paraphrasing
+mrm8488/t5-small-finetuned-squadv1
+mrm8488/t5-small-finetuned-squadv2
+mrm8488/t5-small-finetuned-text2log
+mrm8488/t5-small-finetuned-translation-es-to-pt
+mrm8488/t5-small-finetuned-wikiSQL
+mrm8488/t5-small-spanish-finetuned-squadv1
+msakthiganesh/TabQGen-Base
+msakthiganesh/TabQGen-Large
+msakthiganesh/TabQGen-Small
+msharma95/joke-generator
+msintaha/gpt2-finetuned-rocstories
+muhardianab/DialoGPT-small-theoffice
+muirkat/tolkien-mythopoeic-gen
+munezah/DialoGPT-small-aot
+munezah/DialoGPT-small-sherlock
+acul3/dalle-mini-indo-base
+acul3/dalle-mini-indo
+acul3/mt5-large-id-qgen-qa
+acul3/mt5-translate-en-id
+mussoguy/han-kogpt
+mussoguy/lee-kogpt
+mustapha/distilgpt2-finetuned-wikitext2
+mutamuta/DialoGPT-small-rick
+mutamuta/DialoGPT-spongebob-small
+mymusise/AIXX
+mymusise/CPM-GPT2-FP16
+mymusise/CPM-GPT2
+mymusise/CPM-Generate-distill
+mymusise/EasternFantasyNoval-small
+mymusise/EasternFantasyNoval
+mymusise/gpt2-medium-chinese
+mymusise/gpt2-small-chinese
+mys/mt5-small-turkish-question-paraphrasing
+naiyalee/DialoGPT-small-neku
+namanrana16/DialoGPT-small-House
+namanrana16/DialoGPT-small-TrumpBot
+nandinib1999/quote-generator
+nanometeres/DialoGPT-medium-halbot
+nanometeres/DialoGPT-small-halbot
+naughtycult/my-awesome-model
+navjordj/gpt2_no
+nazmiasri/property-description-gpt2
+nbroad/mt5-base-qgen
+nbroad/mt5-small-qgen
+ncduy/gpt2-wikitext2
+ncoop57/DiGPTame-medium
+ncoop57/codeparrot-py
+ncoop57/codeparrot-test
+ndevavarapu/utterance_gen
+ndubuisi/finetuned-distilgpt2
+nielsr/codet5-small-code-summarization-ruby
+nielsr/nt5-small-rc1
+niharikadeokar/DialoGPT-small-Jakebot
+nikhilnagaraj/german_gpt_small
+nikhilpatil2532000/DialoGPT-small-harrypotter
+nikokons/conversational-agent-el
+nikokons/dialo_transfer_5epo
+nikokons/gpt2-greek
+nimanpra/Fine_Tuned_Spiritual
+nimrazaheer/DialoGPT-small-harrypotter
+nipunsadvilkar/marathi-t5-base
+nitishk/IronStarkBot
+nkul/gpt2-frens
+nlokam/DialoGPT-digibot3.0-new
+nlokam/Digibot
+nlokam/ada_V.3
+nlokam/ada_V.6
+nlokam/ada_V.7
+nlokam/books_to_bots_v.00
+nlp-waseda/gpt2-small-japanese-wikipedia
+nlplab/PhishingEmailGeneration
+noah-ai/mt5-base-question-generation-vi
+noelmathewisaac/inspirational-quotes-distilgpt2
+nonamenlp/thai_new_gen_from_kw
+noobed/DialoGPT-small-astley
+norie4/DialoGPT-small-kyutebot
+not7even/DialoGPT-small-7evenpool
+nouamanetazi/cover-letter-distilgpt2
+nouamanetazi/cover-letter-gpt2
+nouamanetazi/cover-letter-t5-base
+nouamanetazi/cover-letter-t5-small
+ntjrrvarma/DialoGPT-small-RickBot
+nwl/DialoGPT-small-enhypen
+nytestalkerq/DialoGPT-medium-joshua
+oakkas/Dialge-small-harrypotter-oguz
+obiohagwu/Dialogpt-small-rick
+obiohagwu/Dialogpt-small-rick01
+obito69/DialoGPT-small-Doctorstrange
+obss/mt5-base-3task-highlight-combined3
+obss/mt5-base-3task-highlight-tquad2
+obss/mt5-small-3task-both-tquad2
+obss/mt5-small-3task-highlight-combined3
+obss/mt5-small-3task-highlight-tquad2
+obss/mt5-small-3task-prepend-tquad2
+odinmay/joebot
+odinmay/zackbotai
+odinmay/zackbotmodel
+ogpat123/DialoGPT-small-Michael
+ogpat23/Jules-Chatbot
+okaemon/fortune
+oliverP/distilgpt2-finetuned-reddit-aita-text-gen
+oliverP/distilgpt2-finetuned-reddit
+omkar1309/RickBot
+omnimokha/DialoGPT-medium-jakeamal
+omnimokha/DialoGPT-small-jakeamal
+omnimokha/jakebot2
+ontocord/mt5-fix-asr-vietnamese
+oododo/DialoGPT-small-elon
+orzhan/rugpt3-simplify-large
+orzhan/t5-long-extract
+osama7/t5-summarization-multinews
+osanseviero/t5-finetuned-test
+oskrmiguel/mt5-simplification-spanish
+otto-camp/DialoGPT-small-RickBot
+owencubes/DialoGPT-small-Josuke
+ozcangundes/T5-base-for-BioQA
+ozcangundes/mt5-multitask-qa-qg-turkish
+ozcangundes/mt5-small-turkish-squad
+ozcangundes/mt5-small-turkish-summarization
+p-christ/12412fsasf
+p208p2002/gpt2-drcd-qg-hl
+p208p2002/gpt2-squad-nqg-hl
+p208p2002/gpt2-squad-qg-hl
+p208p2002/t5-squad-nqg-hl
+p208p2002/t5-squad-qg-hl
+p4j4r0/Chat_Bot_GPT_Small_model
+paladinx00/rh-bender
+panggi/t5-base-indonesian-summarization-cased
+panggi/t5-small-indonesian-summarization-cased
+para-zhou/cunlp-gpt2-dialog
+parhamabedazad/ft-bz
+parigaswetha/DialoGPT-small-jakeperalta
+parthshukla/quotes_v1
+parthsinha/DialoGPT-small-rickandmorty
+pashin/DialoGPT-small-ironman-2
+pashin/DialoGPT-small-ironman-3
+pashin/DialoGPT-small-ironman1
+pastlecry/DialoGPT-small-harrypotter
+patrickvonplaten/als-gpt2
+patrickvonplaten/dummy-t5-test
+patrickvonplaten/gpt2-als-demo
+patrickvonplaten/norwegian-t5-base
+patrickvonplaten/papuGaPT2_correct_vocab_with_0s
+patrickvonplaten/papuGaPT2_correct_vocab_with_infs
+patrickvonplaten/t5-als
+patrickvonplaten/t5-base-norwegian
+patrickvonplaten/t5-pretraining-island
+patrickvonplaten/t5-small-norwegian
+patrickvonplaten/t5-tiny-random
+paulowoicho/t5-podcast-summarisation
+pbmstrk/t5-large-arxiv-abstract-title
+pbmstrk/t5-large-arxiv-title-abstract
+peamjo/DialoGPT-small-morty
+pearsonkyle/gpt2-exomachina
+peixian/bridge-scribe
+pelican/COMP0087_GPT2
+pelican/COMP0087_GPT2_tokenizer
+pere/DeUnCaser
+pere/norwegian-gpt2-social
+pere/norwegian-gpt2-vgd
+pere/norwegian-gpt2
+pere/norwegian-mt5
+pere/norwegian-t5-base-NCC-fast
+pere/norwegian-t5-base-NCC
+pere/norwegian-t5-base
+pere/norwegian-t5
+peril10/play_time
+persiannlp/mt5-base-parsinlu-arc-comqa-obqa-multiple-choice
+persiannlp/mt5-base-parsinlu-multiple-choice
+persiannlp/mt5-base-parsinlu-opus-translation_fa_en
+persiannlp/mt5-base-parsinlu-qqp-query-paraphrasing
+persiannlp/mt5-base-parsinlu-sentiment-analysis
+persiannlp/mt5-base-parsinlu-snli-entailment
+persiannlp/mt5-base-parsinlu-squad-reading-comprehension
+persiannlp/mt5-base-parsinlu-translation_en_fa
+persiannlp/mt5-large-parsinlu-arc-comqa-obqa-multiple-choice
+persiannlp/mt5-large-parsinlu-multiple-choice
+persiannlp/mt5-large-parsinlu-opus-translation_fa_en
+persiannlp/mt5-large-parsinlu-qqp-query-paraphrasing
+persiannlp/mt5-large-parsinlu-sentiment-analysis
+persiannlp/mt5-large-parsinlu-snli-entailment
+persiannlp/mt5-large-parsinlu-squad-reading-comprehension
+persiannlp/mt5-large-parsinlu-translation_en_fa
+persiannlp/mt5-small-parsinlu-arc-comqa-obqa-multiple-choice
+persiannlp/mt5-small-parsinlu-multiple-choice
+persiannlp/mt5-small-parsinlu-opus-translation_fa_en
+persiannlp/mt5-small-parsinlu-qqp-query-paraphrasing
+persiannlp/mt5-small-parsinlu-sentiment-analysis
+persiannlp/mt5-small-parsinlu-snli-entailment
+persiannlp/mt5-small-parsinlu-squad-reading-comprehension
+persiannlp/mt5-small-parsinlu-translation_en_fa
+person123/DialoGPT-small-petergriffin
+peterhsu/mt5-small-finetuned-amazon-en-es
+peterhsu/results-mt5-finetuned-squad-accelerate
+peterhsu/test-bert-finetuned-squad-accelerate
+pewriebontal/DialoGPT-medium-Pewpewbon
+phantom-deluxe/dialoGPT-RickBot
+phantom-deluxe/dialoGPT-harry
+philippelaban/keep_it_simple
+philippelaban/summary_loop10
+philippelaban/summary_loop24
+philippelaban/summary_loop46
+philschmid/mt5-small-prompted-germanquad-1
+philschmid/pt-test
+phozon/harry-potter-medium
+pierreguillou/byt5-small-qa-squad-v1.1-portuguese
+pierreguillou/gpt2-small-portuguese
+pierreguillou/t5-base-qa-squad-v1.1-portuguese
+piotr-rybak/poleval2021-task4-plt5-base-qa
+pistachiocow/RoyTBenBot
+pitehu/T5_NER_CONLL_ENTITYREPLACE
+pitehu/T5_NER_CONLL_LIST
+piyushdubey/DialoGPT-Mi
+pki/t5-small-finetuned_xsum
+plguillou/t5-base-fr-sum-cnndm
+pompeiifreckles/DialoGPT-medium-Rick
+porpaul/t5-small-finetuned-xsum
+ppang/model5
+ppn/DialoGPT-small-harrypotter
+prajjwal1/gpt2_xl_discovery
+prajwalcr/poetry-anger_gpt2
+prajwalcr/poetry-anticipation_gpt2
+prajwalcr/poetry-disgust_gpt2
+prajwalcr/poetry-fear_gpt2
+prajwalcr/poetry-joy_gpt2
+prajwalcr/poetry-sadness_gpt2
+prajwalcr/poetry-surprise_gpt2
+prajwalcr/poetry-trust_gpt2
+prajwalcr/poetry_gpt2
+pranavpsv/genre-story-generator-v2
+pranavpsv/gpt2-genre-story-generator
+pranavpsv/gpt2-story-gen
+pranavtharoor/test
+prastab/RickAIChatBot
+prithivida/active_to_passive_styletransfer
+prithivida/formal_to_informal_styletransfer
+prithivida/grammar_error_correcter_v1
+prithivida/informal_to_formal_styletransfer
+prithivida/parrot_paraphraser_on_T5
+prithivida/passive_to_active_styletransfer
+pritoms/distilgpt2-YTTranscriptTrial2
+pritoms/distilgpt2-finetuned-irll2
+pritoms/distilgpt2-finetuned-mit-lecture
+pritoms/distilgpt2-finetuned-pgt
+pritoms/distilgpt2-finetuned-wikitext2
+pritoms/gpt2-finetuned-python2
+pritoms/gpt2-group2
+priyank/Generate_instructions_t5
+professional/DialoGPT-small-joshua
+prophetikai/gpt-code
+proxyht/mdsister-news-100
+proxyht/mdsister-news
+proxyht/mdsister
+ps2102/DialoGPT-small-harrypotter
+psblade/DialoGPT-medium-PotterBot
+pspatel2/storygen
+pszemraj/Ballpark-Trivia-L
+pszemraj/Ballpark-Trivia-XL
+pszemraj/gpt2-medium-vaguely-human-dialogue
+pszemraj/t5-base-askscience-lfqa
+pszemraj/t5-base-askscience
+pszemraj/t5-large-for-lexical-analysis
+pszemraj/t5_1_1-base-writing-analysis
+pucpr/gpt2-bio-pt
+puugz/DialoGPT-small-spiderman
+quoc/test-new-model
+qwerty/DialoGPT-small-rick
+r3cdhummingbird/DialoGPT-medium-joshua
+r3dhummingbird/DialoGPT-medium-joshua
+r3dhummingbird/DialoGPT-medium-neku
+r3dhummingbird/DialoGPT-small-harrypotter
+r3dhummingbird/DialoGPT-small-neku
+rachelcorey/DialoGPT-medium-kramer
+rachelcorey/DialoGPT-medium-niles
+rafakat/Botsuana-rick
+rafanegrette/t5_spa_gua
+rahul26/DialoGPT-small-RaMScript
+rahul26/DialoGPT-small-rickandmorty
+rahulMishra05/discord-chat-bot
+raj2002jain/DialoGPT-small-Light
+ramsrigouthamg/t5-large-paraphraser-diverse-high-quality
+ramsrigouthamg/t5_boolean_questions
+ramsrigouthamg/t5_paraphraser
+ramsrigouthamg/t5_sentence_paraphraser
+ramsrigouthamg/t5_squad
+ramsrigouthamg/t5_squad_v1
+raruidol/GameANchess
+raruidol/PlayerANchess
+rathi/storyGenerator
+ravephelps/DialoGPT-small-MichaelSbott
+ravinyu/codeparrot-small
+ravinyu/codeparrot
+razent/SciFive-base-PMC
+razent/SciFive-base-Pubmed
+razent/SciFive-base-Pubmed_PMC
+razent/SciFive-large-PMC
+razent/SciFive-large-Pubmed
+razent/SciFive-large-Pubmed_PMC
+razent/cotext-1-cc
+razent/cotext-1-ccg
+razent/cotext-2-cc
+rbawden/diacritic_restoration_fr
+rbhushan/distilgpt2-finetuned-wikitext2
+readerbench/RoGPT2-base
+readerbench/RoGPT2-large
+readerbench/RoGPT2-medium
+redadmiral/headline-test
+redadmiral/headlines_test_small_example
+redbloodyknife/DialoGPT-medium-shayo
+redrussianarmy/gpt2-turkish-cased
+remotejob/tweetsDISTILGPT2fi_v3
+remotejob/tweetsDISTILGPT2fi_v4
+remotejob/tweetsGPT2fi_v1
+remotejob/tweetsT5_small_sum_fi
+reshinthadith/FlashFill-T5
+rg089/t5-headline-generation
+rhollings/DialoGPT_small_steverogers
+richiellei/Childe
+richiellei/Childe3
+richiellei/DialoGPT-small-rick
+richielleisart/Childe
+ridwanpratama/DialoGPT-small-misaki
+rinna/japanese-gpt-1b
+rinna/japanese-gpt2-medium
+rinna/japanese-gpt2-small
+rinna/japanese-gpt2-xsmall
+rinz/DialoGPT-small-Harry-Potterrr
+riteshsinha/distilgpt2-fine-tuned-001
+rjbownes/BBC-GQA
+rjbownes/Magic-The-Generating
+rjbownes/lovelace-generator
+rlagusrlagus123/XTC20000
+rlagusrlagus123/XTC4096
+rmicheal48/DialoGPT-small-steven_universe
+rodrigodz/DialoGPT-medium-dxd
+rohitsroch/hybrid_hbh_t5-small_ami_sum
+roivian/manningLp
+romuNoob/Mine
+romuNoob/test
+rossanez/t5-base-finetuned-de-en
+rossanez/t5-small-finetuned-de-en-256-epochs2
+rossanez/t5-small-finetuned-de-en-256-lr2e-4
+rossanez/t5-small-finetuned-de-en-256-nofp16
+rossanez/t5-small-finetuned-de-en-256-wd-01
+rossanez/t5-small-finetuned-de-en-256
+rossanez/t5-small-finetuned-de-en-64
+rossanez/t5-small-finetuned-de-en-batch8
+rossanez/t5-small-finetuned-de-en-epochs5
+rossanez/t5-small-finetuned-de-en-final
+rossanez/t5-small-finetuned-de-en-lr2e-4
+rossanez/t5-small-finetuned-de-en-nofp16
+rossanez/t5-small-finetuned-de-en-wd-01
+rovai/AI
+rovai/CARRIE
+rovai/Chat_pytorch1
+rovai/chatbotmedium1
+rovai/chatbotmedium2
+rovai/chatbotmedium3
+rovai/chatbotmedium4
+royeis/T5-Factual-Classifier-V1
+royeis/T5-FlowNLG-Planner
+royeis/T5-FlowNLG-Realizer
+rpeng35/DialoGPT-small-erenyeager
+rrtong/DialoGPT-medium-shang-chi
+rsd511/DialoGPT-small-house
+rsedlr/RickBot
+rsedlr/RickBotExample
+rtoguchi/t5-small-finetuned-en-to-ro-fp16_off-lr_2e-7-weight_decay_0.001
+rtoguchi/t5-small-finetuned-en-to-ro-fp16_off
+rtoguchi/t5-small-finetuned-en-to-ro-weight_decay_0.001
+ruiqi-zhong/verifier11b
+ruriko/konoaqua
+rwante/t5-small-finetuned-mlsum-tr
+rywerth/Rupi-or-Not-Rupi
+s3h/arabert-gec-v2-2
+s3h/arabic-t5-small-finetuned-gec
+s3h/finetuned-mt5-gec
+s3h/mt5-small-finetuned-gec
+s3h/mt5-small-finetuned-src-to-trg-testing
+s3h/mt5-small-finetuned-src-to-trg
+sabhi/t5-base-qa-qg
+sachdevkartik/DialoGPT-small-rick
+safsaf/poemAR
+saichandrapandraju/t5_base_tabqgen
+saichandrapandraju/t5_large_tabqgen
+saichandrapandraju/t5_small_tabqgen
+sakai026/Chizuru
+sakai026/Mizuhara
+salesken/content_generation_from_phrases
+salesken/grammar_correction
+salesken/natural_rephrase
+salesken/paraphrase_generation
+salesken/text_generate
+salti/arabic-t5-small-question-paraphrasing
+sam213/DialoGPT-small-harrypotter
+sambotx4/scamantha
+sangmini/ReviewGeneration
+samuelssonm/DialoGPT-small-rick
+sana-ngu/HaT5
+sana-ngu/HaT5_augmentation
+sangrimlee/mt5-small-ans-ext
+sangrimlee/mt5-small-e2e-qg
+sangrimlee/mt5-small-multitask
+sangrimlee/mt5-small-qg-hl
+sanjanareddy226/JakeBot
+sankalpjha1/mr.bot_haary
+sankhajay/mt5-base-sinaha-qa
+sanqiang/qa_base
+santhoshkolloju/ans_gen
+santhoshkolloju/ans_gen2
+santhoshkolloju/ques_gen
+santhoshkolloju/t5_qg_model_with_answer2
+santhoshkolloju/t5_qg_multi2
+santhoshkolloju/t5_qg_multi3
+sardinaerum/mt5
+alimoezzi/ReportQL-base
+satkinson/DialoGPT-medium-marvin
+satkinson/DialoGPT-small-marvin
+satvikag/chatbot
+satvikag/chatbot2
+saurkulsh/T0pp
+savasy/mt5-mlsum-turkish-summarization
+ai-forever/ruT5-base
+ai-forever/ruT5-large
+ai-forever/rugpt3large_based_on_gpt2
+ai-forever/rugpt3small_based_on_gpt2
+sbmaruf/bengali_t5_base
+sbtx/DialoGPT-small-peppapig
+seanbethard/autonlp-summarization_model-8771942
+secometo/mt5-base-turkish-question-paraphrase-generator
+seduerr/fuser
+seduerr/lang_det
+seduerr/mt5-paraphrases-espanol
+seduerr/pai-tl
+seduerr/pai_con
+seduerr/pai_ei
+seduerr/pai_emotion
+seduerr/pai_exem
+seduerr/pai_exin
+seduerr/pai_f2m
+seduerr/pai_formtrans
+seduerr/pai_fuser_short
+seduerr/pai_infi
+seduerr/pai_joke
+seduerr/pai_m2f
+seduerr/pai_meaningfulness
+seduerr/pai_paraph
+seduerr/pai_pol
+seduerr/pai_pos2neg
+seduerr/pai_simplifier_abstract
+seduerr/pai_splitter_short
+seduerr/pai_subject
+seduerr/pai_wikisplit
+seduerr/paraphrase
+seduerr/sentiment
+seduerr/soccer
+seduerr/splitter
+seduerr/t5-pawraphrase
+seduerr/t5-small-pytorch
+seduerr/t5_base_paws_ger
+seidel/plsum-base-ptt5
+sentence-transformers/gtr-t5-base
+sentence-transformers/gtr-t5-large
+sentence-transformers/gtr-t5-xl
+sentence-transformers/gtr-t5-xxl
+sentence-transformers/sentence-t5-base
+sentence-transformers/sentence-t5-large
+sentence-transformers/sentence-t5-xl
+sentence-transformers/sentence-t5-xxl
+seokho/gpt2-emotion
+setiadia/DialogGPT-small-HPBot
+severo/dummy-t5-test
+shahp7575/gpt2-horoscopes
+shamikbose89/mt5-small-finetuned-arxiv-cs-finetuned-arxiv-cs-full
+shamikbose89/mt5-small-finetuned-arxiv-cs
+shashank2123/t5-base-fine-tuned-for-Punctuation-Restoration
+shashank2123/t5-finetuned-for-GEC
+shelb-doc/DialoGPT-medium-ash
+shibing624/code-autocomplete-distilgpt2-python
+shibing624/code-autocomplete-gpt2-base
+shihab/HarryPotter
+shivam12/t5_small_pubmed
+shivangi/distilgpt2
+shonuff/DialoGPT-medium-konosuba
+shortcake/Carlos
+shreeshaaithal/DialoGPT-small-Michael-Scott
+shreeshaaithal/Discord-AI-bot
+shreeshaaithal/whatsapp-medium-bot-2
+shtoshni/gpt2-chess-uci
+sibckukgvaxsepbkyb/IndoGPT-SQuAD-5
+sibckukgvaxsepbkyb/mT5IndoQG
+sibckukgvaxsepbkyb/mT5IndoQGSQuAD
+sid1hant/tokenizer_for_python_code
+sidkhuntia/harrypotter
+sienog/autonlp-mt5-xlsum-25085641
+sifclairhelix/DialoGPT-small-harrypot
+sigmoid/mt5-en-ja
+silky/deep-todo
+simrana5/RickBotExample
+sivavee-train/iac-v1
+skt/ko-gpt-trinity-1.2B-v0.5
+skt/kogpt2-base-v2
+skynex/DialoGPT-small-finalbatman
+smartpim/k2t_ru_01
+smartpim/k2t_ru_02
+smartpim/k2t_ru_03
+smartpim/k2t_ru_04
+smilesandtea/DialoGPT-medium-Rick
+smmzhu/DialoGPT-small-SZ
+snoop2head/KoGPT-Joong-2
+snoop2head/kogpt-conditional-2
+snrspeaks/t5-one-line-summary
+socrates/socrates2.0
+soikit/distilgpt2-finetuned-wikitext2
+solfer/DialoGPT-small-ryuji
+sonoisa/byt5-small-japanese
+sonoisa/sentence-t5-base-ja-mean-tokens
+sonoisa/t5-base-japanese-article-generation
+sonoisa/t5-base-japanese-question-generation
+sonoisa/t5-base-japanese-title-generation
+sonoisa/t5-base-japanese
+sonoisa/t5-qiita-title-generation
+sonoisa/vl-t5-base-japanese
+soroush/model
+soroush/t5-finetuned-lesson-summarizer
+spandan96/T5_SEO_Title_Generator
+sparki/kinkyfurs-gpt2
+spockinese/DialoGPT-small-sherlock
+springml111/T5_Paraphrase_model
+spy24/autonlp-AUS-to-US-601516964
+spy24/autonlp-AUS-to-US2-606817121
+spy24/autonlp-UK-to-US-600416931
+spy24/autonlp-US-to-AUS3-606917136
+spy24/autonlp-US-to-UK-604417040
+spy24/autonlp-US-to-UK2-606317091
+spy24/autonlp-US_to_AUS-607117159
+spy24/autonlp-paraphrasing-607217177
+sreyanghosh/DialoGPT-medium-joker
+srirachasenpai/DialoGPT-medium-harrypotter
+srv/DialoGPT-medium-Breaking_Bad
+ssam/DialoGPT-small-RickmfSanchez
+ssardorf/t5-meta-desc
+ssardorf/t5-web-summ
+sshleifer/t5-base-cnn
+sshleifer/t5-tinier-random
+sshleifer/tiny-gpt2
+ssmadha/gpt2-finetuned-scientific-articles
+ssspider/DialoGPT-medium-harrypotter
+stanford-crfm/alias-gpt2-small-x21
+stanford-crfm/arwen-gpt2-medium-x21
+stanford-crfm/battlestar-gpt2-small-x49
+stanford-crfm/beren-gpt2-medium-x49
+stanford-crfm/caprica-gpt2-small-x81
+stanford-crfm/celebrimbor-gpt2-medium-x81
+stanford-crfm/darkmatter-gpt2-small-x343
+stanford-crfm/durin-gpt2-medium-x343
+stanford-crfm/eowyn-gpt2-medium-x777
+stanford-crfm/expanse-gpt2-small-x777
+stanleychu2/t5_user_simulator
+stanlochten/t5-KGQgen
+stas/mt5-tiny-random
+stas/t5-very-small-random
+stasvmk/honeymad_gpt_ru_v0_01
+stasvmk/honeymad_gpt_ru_v0_1
+stasvmk/tnkff_pulse_ru_gpt
+stefan-it/german-gpt2-larger
+stevenshoemaker/horror
+stevenshoemaker/horrors
+stevenshoemaker/pitchfork
+stevhliu/astroGPT
+stevhliu/t5-small-finetuned-billsum-ca_test
+stfuowned/nek
+stfuowned/rick-small
+stfuowned/rick
+sthom/DialoGPT-small-tin
+stmnk/codet5-small-code-summarization-python
+striki-ai/william-shakespeare-poetry
+subbareddyiiit/GPT2NLP
+subbareddyiiit/gpt2_csl_gold8k
+sudip/bot1
+sudoabrar/DialoGPT-small-dwight
+suhasjain/DailoGPT-small-harrypotter
+summaria/qa-qg-t5
+summaria/qa-t5
+sunhao666/chi-sina
+sunhao666/chi-sum2
+supah-hakah/distilgpt2-finetuned-wikitext2
+surajp/gpt2-hindi
+sv/gpt2-finetuned-nft-shakes-seuss-2
+sv/gpt2-finetuned-nft-shakes-seuss
+sv/gpt2-finetuned-nft-shakes
+sv/gpt2-nft-poetry
+swapnil165/DialoGPT-small-Rick
+swapnil2911/DialoGPT-small-arya
+swapnil2911/DialoGPT-test-arya
+swcrazyfan/Dekingify-T5-Large
+swcrazyfan/KingJamesify-T5-Base
+swcrazyfan/KingJamesify-T5-base-lm-adapt
+swcrazyfan/KingJamesify-T5-large
+sybk/highkick-soonjae-v2
+sybk/highkick-soonjae
+sybk/hk-backward
+sybk/hk_backward_v2
+taeminlee/kodialogpt2-base
+taeminlee/kogpt2
+tal-yifat/injury-report-distilgpt2-test
+tareknaous/t5-daily-dialog-vM
+tareknaous/t5-daily-dialog
+tareknaous/t5-empathetic-dialogues
+tartuNLP/gpt-4-est-base
+tartuNLP/gpt-4-est-large
+tau/t5-v1_1-large-rss
+team-writing-assistant/t5-base-c4jfleg
+tennessejoyce/titlewave-t5-base
+tennessejoyce/titlewave-t5-small
+terter/rick-bot-test-v2
+thaalesalves/jurandir
+theChanChanMan/DialoGPT-small-chandler
+theiconik/hermione-granger
+thesamuelpena/Dialog-medium-Sonic
+thesamuelpena/Dialog-medium-masterchief
+thetlwin/DialoGPT-small-ironman
+thilina/mt5-sinhalese-english
+thinhda/chatbot
+thomasdehaene/gpt2-large-dutch-finetune-oscar-10m-3epoch
+thomwolf/codeparrot-small
+thomwolf/codeparrot
+thu-coai/LongLM-base
+thu-coai/LongLM-large
+thu-coai/LongLM-small
+thyagosme/gpt2-wikitext2
+ticet11/DialoGPT-small-BOBBY
+timslams666/DialoGPT-small-rick
+tinega/DialoGPT-small-harrypotter
+tknmsn/hiro
+tlkh/code-byt5-large
+tlkh/t5-metaphor-large
+tlkh/t5_3B_fp16_untuned
+tlkh/t5_large_fp16_untuned
+tngo/DialoGPT-small-HankHill
+toast22a/race_natural_number_oqpl_mc
+toast22a/squad_natural_question_oqpl
+toiletwater/DialoGPT-medium-ironman
+tolgaand/tolgaand
+toloka/t5-large-for-text-aggregation
+tom1804/DialoGPT-small-HP
+tom1804/HP
+tom1804/HP_last
+tom1804/hp_new
+tomascerejo12/DialoGPT-small-Rick
+tongshuangwu/tacred_t5
+torque29/DialoGPT-small-harrypotter
+tosin/dialogpt_mwoz
+tosin/dialogpt_sv
+tosin/pcl_22
+toyfreak/DialoGPT-small-addy
+toyfreak/DialoGPT-small-shy
+tpri/DialoGPT-small-pa
+tprincessazula/Dialog-GPT-small-AANG
+tprincessazula/Dialog-GPT-small-KATARA-AVATAR
+tprincessazula/Dialog-GPT-small-SOKKA-AVATAR
+tprincessazula/Dialog-GPT-small-harrypotter
+transfaeries/DialoGPT-medium-Discord-1.0
+transfaeries/DialoGPT-small-Discord-1.0
+transfaeries/Twilight-Sparkle-GPT
+transformersbook/codeparrot-small
+transformersbook/codeparrot
+trig/DialoGPT-small-harrypotter
+trig/multiverse-second
+trig/multiverse
+trig/sokka-chatbot-test
+trig/tlok-test
+troythewar/DialogGPT-small-harrypotter
+truthisneverlinear/EleventhDoctor
+ts1829/obama_gpt2
+ts1829/trump_gpt2
+tscholak/1wnr382e
+tscholak/1zha5ono
+tscholak/2e826ioa
+tscholak/2jrayxos
+tscholak/3vnuv1vf
+tscholak/cxmefzzi
+tscholak/t5.1.1.lm100k.base
+tscholak/t5.1.1.lm100k.large
+ttj/t5-base-openwebtext
+ttntran/DialoGPT-small-human
+ttop324/kogpt2jnovel
+ttop324/kogpt2novel
+tuanle/GPT2_Poet
+tuanle/VN-News-GPT2
+tuantt/GroundNet
+tuner007/t5_abs_qa
+tupleblog/generate-thai-lyrics
+turtlesoupy/forward-dictionary-model-v1
+turtlesoupy/forward-dictionary-model
+turtlesoupy/inverse-dictionary-model-v1
+twdooley/breitbot
+tyoyo/byt5-base-TEDxJP-1body-0context-lr-small
+tyoyo/byt5-base-TEDxJP-1in-1out
+tyoyo/t5-base-TEDxJP-11body-0context
+tyoyo/t5-base-TEDxJP-1body-0context-lr-small
+tyoyo/t5-base-TEDxJP-1body-0context
+tyoyo/t5-base-TEDxJP-1body-10context
+tyoyo/t5-base-TEDxJP-1body-1context
+tyoyo/t5-base-TEDxJP-1body-2context
+tyoyo/t5-base-TEDxJP-1body-3context
+tyoyo/t5-base-TEDxJP-1body-5context
+tyoyo/t5-base-TEDxJP-6body-0context
+uer/gpt2-chinese-ancient
+uer/gpt2-chinese-cluecorpussmall
+uer/gpt2-chinese-couplet
+uer/gpt2-chinese-lyric
+uer/gpt2-chinese-poem
+uer/gpt2-distil-chinese-cluecorpussmall
+uer/t5-base-chinese-cluecorpussmall
+uer/t5-small-chinese-cluecorpussmall
+uer/t5-v1_1-base-chinese-cluecorpussmall
+uer/t5-v1_1-small-chinese-cluecorpussmall
+uf-aice-lab/SafeMathBot
+ufal/byt5-small-multilexnorm2021-da
+ufal/byt5-small-multilexnorm2021-de
+ufal/byt5-small-multilexnorm2021-en
+ufal/byt5-small-multilexnorm2021-es
+ufal/byt5-small-multilexnorm2021-hr
+ufal/byt5-small-multilexnorm2021-iden
+ufal/byt5-small-multilexnorm2021-it
+ufal/byt5-small-multilexnorm2021-nl
+ufal/byt5-small-multilexnorm2021-sl
+ufal/byt5-small-multilexnorm2021-sr
+ufal/byt5-small-multilexnorm2021-tr
+ufal/byt5-small-multilexnorm2021-trde
+ughvom/Ginger
+ughvom/britnayBOTMAIN
+umr55766/DialogGPT-small-peppa-pig
+unicamp-dl/mt5-base-en-msmarco
+unicamp-dl/mt5-base-en-pt-msmarco-v1
+unicamp-dl/mt5-base-en-pt-msmarco-v2
+unicamp-dl/mt5-base-mmarco-v1
+unicamp-dl/mt5-base-mmarco-v2
+unicamp-dl/ptt5-base-en-pt-msmarco-100k-v2
+unicamp-dl/ptt5-base-en-pt-msmarco-10k-v1
+unicamp-dl/ptt5-base-portuguese-vocab
+unicamp-dl/ptt5-base-pt-msmarco-100k-v1
+unicamp-dl/ptt5-base-pt-msmarco-100k-v2
+unicamp-dl/ptt5-base-pt-msmarco-10k-v1
+unicamp-dl/ptt5-base-pt-msmarco-10k-v2
+unicamp-dl/ptt5-base-t5-vocab
+unicamp-dl/ptt5-large-portuguese-vocab
+unicamp-dl/ptt5-large-t5-vocab
+unicamp-dl/ptt5-small-portuguese-vocab
+unicamp-dl/ptt5-small-t5-vocab
+unicamp-dl/translation-en-pt-t5
+unicamp-dl/translation-pt-en-t5
+usamazaheer/DialoGPT-small-harrypotter
+usami/t5-small-finetuned-xsum
+userman/test-model
+ushikado/yuyuyui-chatbot
+uutkras/Pandabot
+uw-hai/polyjuice
+uyeongjae/distilgpt2-finetuned-wikitext2
+uyharold86/DialoGPT-small-RickAndMorty
+vachevkd/dg-t5sm-race-v01
+vachevkd/qna-t5sm-squad-v01
+vahmohh/t5-qag-base
+valarikv/DialoGPT-small-bateman
+valeriazen/ruT5-base-finetuned-plenka-chatbot-full
+valeriazen/ruT5-base-finetuned-plenka-chatbot
+valeriazen/ruT5-base-finetuned-xsum
+valhalla/T0pp-flax-test
+valhalla/distilt5-qa-qg-hl-12-6
+valhalla/distilt5-qa-qg-hl-6-4
+valhalla/distilt5-qg-hl-12-6
+valhalla/distilt5-qg-hl-6-4
+valhalla/gpt2-norwegian-test
+valhalla/gpt2-norwegian
+valhalla/t5-base-cnn-fp6-test
+valhalla/t5-base-e2e-qg
+valhalla/t5-base-qa-qg-hl
+valhalla/t5-base-qg-hl
+valhalla/t5-base-squad
+valhalla/t5-small-e2e-qg
+valhalla/t5-small-qa-qg-hl
+valhalla/t5-small-qg-hl
+valhalla/t5-small-qg-prepend
+varun3dec/Pbi-Summarization-model
+vasudevgupta/dl-hack-distilgpt2
+vasudevgupta/dl-hack-gpt2-large
+vennify/t5-base-grammar-correction
+vennify/t5-example-upload
+versae/byt5-base-finetuned-modernisa
+versae/mt5-base-finetuned-modernisa
+vesteinn/icelandic-weather-summarization
+vibranium19/DialoGPT-medium-jake
+victordata/DialoGPT-small-Rick
+victorswedspot/DialoGPT-small-gandalf
+vijayv500/DialoGPT-small-Big-Bang-Theory-Series-Transcripts
+innovation-hacking2/shitposting-AI
+innovation-hacking2/shitposting_AI
+vionwinnie/t5-reddit
+vishnun/distilgpt2-finetuned-distilgpt2-med_articles
+vishnun/distilgpt2-finetuned-tamil-gpt
+vishnun/distilgpt2-finetuned-tamilmixsentiment
+vishnun/t5spellcorrector
+vivek-g-2009/DialoGPT-medium-harrypotter
+vkorennoy/gpt2_first
+vkorennoy/gpt3_medium
+vlco-o/NLboto_o-aki-dialogpt
+vlco-o/NLboto_o-small-dialogpt
+vmicheli/lm-butlers-gpt
+voidful/gpt2-base-ptt
+vwoloszyn/gtp2-email
+vxvxx/t5-small-finetuned-no_paragraph-to-paragraph
+vxvxx/t5-small-finetuned-no_paragraph-to-yes_paragraph-2
+vyang/plc2proc
+w11wo/indo-gpt2-small
+w11wo/javanese-gpt2-small-imdb-classifier
+w11wo/javanese-gpt2-small-imdb
+w11wo/javanese-gpt2-small
+w11wo/sundanese-gpt2-base-emotion-classifier
+w11wo/sundanese-gpt2-base
+wadeed/DialogGPT-small-chandlerbingg
+wanderer/DialoGPT-small-Phoebe
+wangj2/domaingen
+we-are-groot/narrative_gen
+whher/german-gpt2-romantik
+widyanto/IndoT5-small-qg-hl
+widyanto/IndoT5-small-qg
+wilsontam/gpt2-dstc9
+wjching/DialoGPT-small-ricksanchez
+won/DialoGPT-small-harrypotter
+woosukji/kogpt2-resume
+worms3401/DialoGPT-small-Eleonora
+worsterman/DialoGPT-small-mulder
+wtrClover/DialoGPT-small-Flutterbot
+wtrClover/DialoGPT-small-TwilightBot
+botisan-ai/mt5-translate-yue-zh
+botisan-ai/mt5-translate-zh-yue
+x10ng/gpt2-wikitext2
+xdmason/pretrainedCas
+xiaoheiqaq/DialoGPT-mediumJojo
+xiaoheiqaq/DialoGPT-smallharrypotter
+yahya1994/DialoGPT-small-AOT-Eren
+yahya1994/DialoGPT-small-DN-L
+yahya1994/DialoGPT-small-DN-Light
+yahya1994/DialoGPT-small-DN-Ryuk
+yahya1994/DialoGPT-small-Gintama-Gintoki
+yahya1994/DialoGPT-small-Parasyte-Migi
+yahya1994/DialoGPT-small-ReZero-Rem
+yahya1994/DialoGPT-small-ReZero-Subaru
+yazdipour/sparql-qald9-t5-base-2021-10-19_00-15
+yazdipour/sparql-qald9-t5-small-2021-10-19_00-01
+yazdipour/sparql-qald9-t5-small-2021-10-19_07-12_RAW
+yazdipour/text-to-sparql-t5-base-2021-10-17_23-40
+yazdipour/text-to-sparql-t5-base-2021-10-18_16-15
+yazdipour/text-to-sparql-t5-base-qald9
+yazdipour/text-to-sparql-t5-base
+yazdipour/text-to-sparql-t5-small-2021-10-15_01-00
+yazdipour/text-to-sparql-t5-small-2021-10-17_18-47
+yazdipour/text-to-sparql-t5-small-2021-10-18_09-32
+yazdipour/text-to-sparql-t5-small-2021-10-18_12-12
+yazdipour/text-to-sparql-t5-small-2021-10-18_23-00
+yazdipour/text-to-sparql-t5-small-qald9
+yazdipour/text-to-sparql-t5-small
+ydl233/t5_small_model
+yhavinga/gpt2-large-dutch
+yhavinga/gpt2-medium-dutch-nedd
+yhavinga/gpt2-medium-dutch
+yhavinga/mt5-base-cnn-nl
+yhavinga/mt5-base-mixednews-nl
+yhavinga/t5-base-dutch
+yhavinga/t5-v1.1-base-dutch-cased
+yhavinga/t5-v1.1-base-dutch-cnn-test
+yhavinga/t5-v1.1-base-dutch-uncased
+yhavinga/t5-v1.1-large-dutch-cnn-test
+yhavinga/t5-v1_1-base-dutch-english-cased-1024
+yhavinga/t5-v1_1-base-dutch-english-cased
+ykliu1892/translation-en-pt-t5-Duolingo-Subtitles
+ykliu1892/translation-en-pt-t5-finetuned-Duolingo-Subtitles-finetuned-Duolingo-Subtitles
+ykliu1892/translation-en-pt-t5-finetuned-Duolingo-Subtitles
+ykliu1892/translation-en-pt-t5-finetuned-Duolingo
+ylh1013/fintune-ja-chatbot
+ylh1013/ja_chatbot
+yliu337/filter_maskQA
+yliu337/mt5_sliding_window_en
+yliu337/sliding_window_token_both_ctx
+yliu337/t5_fillmask_src_hyp_format
+yliu337/t5_mask_cnn_dailymail
+yliu337/t5_neg_nonfilter_bothcontext
+yliu337/t5_token_nonfilter_bothcontext
+yliu337/t5_token_nonfilter_bothcontext_padded_ctx
+yoavgur/gpt2-bash-history-baseline
+yoavgur/gpt2-bash-history-baseline2
+yohida/yoshida_gpt
+yongzx/gpt2-finetuned-oscar-de
+yongzx/gpt2-finetuned-oscar-fr-ori-tok
+yongzx/gpt2-finetuned-oscar-fr
+yongzx/gpt2-finetuned-oscar-ko
+yseop/FNP_T5_D2T_complete
+yseop/FNP_T5_D2T_simple
+yseop/text_smoothing
+ytlin/16l3xf7a_1
+ytlin/18ygyqcn_4
+ytlin/1klqb7u9_35
+ytlin/1pm2c7qw_5
+ytlin/1pm2c7qw_6
+ytlin/21qspw2p
+ytlin/35oote4t_52
+ytlin/38hbj3w7_10
+ytlin/38hbj3w7_13
+ytlin/46695u38_3
+ytlin/q4b4siil
+yucahu/len1
+yusufmorsi/georgebot
+z-uo/it5-squadv1-it
+z6228574/codegpt
+zari/my-awesome-model
+zaydzuhri/lelouch-medium
+zemi/jakebot
+zen-satvik/BotGPT-medium-HP
+zentos/DialoGPT-small-spongebob
+zeping/codeparrot
+zer0sh0t/programmer_ai_v2
+zfchen/codeparrot
+zgotter/gpt2-test
+zhangxy-2019/cu_dstc9_dialoGPT
+zhangxy-2019/cunlp-gpt2-dialog
+zharry29/goal_benchmark_gpt
+zharry29/order_benchmark_gpt
+zharry29/step_benchmark_gpt
+zinary/DialoGPT-small-rick-new
+zitterbewegung/DialoGPT-medium-ja
+zuto37/DialoGPT-small-sadao
+zyayoung/cv-full-paper
+yoavgur/gpt2-bash-history-baseline3
+Maxwere/DiabloGPT-medium-maxbot
+huggingtweets/xqc
+jweb/japanese-soseki-gpt2-1b
+sadkat/technoai
+kookyklavicle/sean-diaz-bot
+kookyklavicle/sean-diaz
+Kevincp560/t5-base-finetuned-pubmed
+Kevincp560/t5-small-finetuned-pubmed
+Bistolero/aka
+Kevincp560/wikihow-t5-small-finetuned-pubmed
+Aquasp34/DialoGPT-small-aqua1
+everdoubling/byt5-Korean-large
+patrickvonplaten/t5-3b
+zenham/khemx
+LukasStankevicius/ByT5-Lithuanian-gec-100h
+patrickvonplaten/t5-v1_1-xl
+jish/distilgpt2-finetuned-wikitext2
+aryanbhosale/smartharrypotterbot
+patrickvonplaten/t5-v1_1-xxl
+azaninello/distilgpt2-finetuned-shroomstoy
+azaninello/gpt2-finetuned-shrooms
+petrichorRainbow/mrf-GPT
+petrichorRainbow/mrf-T5
+remotejob/tweetsGPT2fi_v0
+Britain/DialoGPT-small-ZifBotTwoFixed
+xinzhel/gpt2-ag-news
+Britain/DialoGPT-small-DanyBotThree
+infinitylyj/DialogGPT-small-rick
+peterhsu/mt5-small-finetuned-amazon-en-zh_TW
+peterhsu/test-bert-finetuned-en-zh_TW-accelerate
+infinitylyj/DialogGPT-small-general
+infinitylyj/DialogGPT-medium-general
+huggingtweets/ragnar_furup
+jackyv/DialoGPT-small-pinocchio
+BigSalmon/Points3
+Freak55/DialoGPT-small-Phoenix-Wright
+Britain/DialoGPT-small-DanyBotTwo
+P4RZ1V4L/DialoGPT-medium-tonystark
+Britain/DialoGPT-small-DanyBotTwoNew
+cambridgeltl/simctg_writingprompts
+AdarshRavis/BabishBot
+Splend1dchan/byt5small-squad-5000
+Splend1dchan/byt5small-squad
+spy24/autonlp-optimized-paraphrasing-615217541
+yhavinga/t5-base-36L-dutch-english-cased
+stanleychu2/t5-transition
+spy24/autonlp-parrot_paraphrasing-615317556
+Splend1dchan/byt5small-glue-mprc
+tau/fewsion_debug
+gayanin/t5-small-mlm-paraphrasing
+Splend1dchan/byt5small-glue-mprc2
+nferruz/ProtGPT2
+kenjis2542/mt5-small-finetuned-5k-th-to-en
+Splend1dchan/byt5small-glue-mnli
+SuperAI2-Machima/mt5-small-translation_thai-english
+SuperAI2-Machima/mt5-small-translation_english-thai
+GermanT5/t5-efficient-gc4-german-base-nl36
+huggingtweets/lilbratmia-littlehorney-plusbibi1
+gayanin/t5-small-paraphrasing-mlm
+Narsil/totallysafe
+zenham/mskeen_m_e4_16h
+zenham/khemx_m_e4_16h
+Splend1dchan/byt5small-squad1024
+zenham/wail_m_e4_16h_2k
+akshara23/summarization_model_save
+oskrmiguel/t5-small-finetuned-es-to-pt
+huggingtweets/fitdollar
+Jeevesh8/t5-small-cogs_0
+gayanin/t5-small-med-term-mlm
+huggingtweets/betonkoepfin-littlehorney-plusbibi1
+huggingtweets/desertblooom-littlehorney-plusbibi1
+Jeevesh8/t5-small-cogs_1
+huggingtweets/feufillet-greatestquotes-hostagekiller
+voidful/phoneme_byt5
+Jeevesh8/t5-small-cogs_2
+Jeevesh8/t5-small-cogs_11
+Jeevesh8/t5-small-cogs_18
+Jeevesh8/t5-small-cogs_3
+Jeevesh8/t5-small-cogs_12
+Jeevesh8/t5-small-cogs_19
+akozlo/lib_bal
+Jeevesh8/t5-small-cogs_4
+Jeevesh8/t5-small-cogs_13
+Jeevesh8/t5-small-cogs_20
+BigSalmon/InformalToFormalLincoln26
+Jeevesh8/t5-small-cogs_5
+Jeevesh8/t5-small-cogs_14
+Jeevesh8/t5-small-cogs_21
+SuperAI2-Machima/mt5-small-thai_translation_th-en_en-th
+YoungDeuk/t5-small-finetuned-xsum
+momo/MOTOD_pre_trained
+Splend1dchan/byt5small-squad1024-from6000steps
+Jeevesh8/t5-small-cogs_6
+Jeevesh8/t5-small-cogs_15
+Jeevesh8/t5-small-cogs_22
+Jeevesh8/t5-small-cogs_7
+Jeevesh8/t5-small-cogs_16
+Jeevesh8/t5-small-cogs_23
+huggingtweets/aniraster_
+Jeevesh8/t5-small-cogs_8
+Jeevesh8/t5-small-cogs_17
+Jeevesh8/t5-small-cogs_24
+Jeevesh8/t5-small-cogs_9
+paopow/t5_base
+ra1/t5-small-finetuned-xsum
+Jeevesh8/t5-small-cogs_10
+SuperAI2-Machima/mt5-small-thai_translation_th-en_en-th_V2
+yhavinga/t5-small-24L-dutch-english
+paopow/t5_base2
+BeanBoi50404/DialoGPT-small-PeppaPigButBetter
+Yangdf/mt5-base-chinese-qg
+nabin19677/Cartman
+nabin19677/small-cartman
+kazandaev/mt5-base-en-ru
+P0intMaN/PyAutoCode
+Prime2911/DialoGPT-small-handsomejack
+Starry/KARENTRIES
+huggingtweets/atarifounders
+dietconk/DialogGPT-small-Orange
+newtonkwan/gpt2-fine-tuned-debiased
+newtonkwan/gpt2-xl-fine-tuned-debiased
+mafeu/DialoGPT-medium-willem
+momo/MOTOD_fine-tuning
+Prime2911/DialoGPT-medium-handsomejack
+malmarjeh/gpt2
+huggingtweets/thed3linquent_
+calebcsjm/reverse_text_generation_HarryPotter
+benjaminbeilharz/dialoGPT-small-conditioned2nextturn
+everdoubling/byt5-Korean-small
+beston91/gpt2_large_ft_mult_1k
+Splend1dchan/t5lephone-mnli
+Danik51002/finetuned
+huggingtweets/mikepompeo
+Danik51002/NewModel
+tau/test
+newtonkwan/gpt2-ft-with-non-challenging
+newtonkwan/gpt2-xl-ft-1
+bettertextapp/tai-byt5-small-de-correct-train
+huggingtweets/ayurastro
+DB13067/Peterbot
+ComCom/skt_kogpt2-base-v2
+tau/fewsion_1024_0.3_2100
+tau/t5_1024_0.3_2400
+tareknaous/dialogpt-daily-dialog
+Splend1dchan/byt5base-glue-mnli
+huggingtweets/temapex
+peterhsu/codeparrot-ds
+VietAI/vit5-large
+VietAI/vit5-base
+MarioJ/Portuguese-Poems-Small-Gpt2
+newtonkwan/gpt2-xl-ft-with-non-challenging-25k
+hackathon-pln-es/poem-gen-gpt2-small-spanish
+peterhsu/codeparrot-ds-accelerate
+tau/fewsion_1024_0.3_3150
+tau/t5_1024_0.3_7950
+ScandinavianMrT/gpt2_supervised_SARC_3epochs_withcontext
+abinternet143/t5-small-finetuned-xsum
+DrishtiSharma/poem-gen-t5-small
+newtonkwan/gpt2-xl-ft-with-non-challenging-1k
+l3cube-pune/hing-gpt
+moralstories/gpt2_action_context-consequence
+huggingtweets/theshiftnews
+huggingtweets/maltatoday-netnewsmalta-one_news_malta
+huggingtweets/independentmlt-maltatoday-thetimesofmalta
+hackathon-pln-es/poem-gen-spanish-t5-small
+ScandinavianMrT/gpt2_prefinetune_SARC_1epoch_withcontext
+l3cube-pune/marathi-gpt
+DrishtiSharma/poem-gen-t5-small_v1
+newtonkwan/gpt2-xl-ft-with-non-challenging-0.8
+newtonkwan/gpt2-xl-ft-0
+SJ-Ray/Re-Punctuate
+Anudev08/model_3
+DrishtiSharma/poem-gen-gpt2-small-spanish
+tareknaous/dialogpt-empathetic-dialogues
+ScandinavianMrT/gpt2_prefinetune_IMDB
+newtonkwan/gpt2-xl-ft-2
+Savitar/DialoGPT-medium-RickandMorty
+cambridgeltl/simctg_realtoxicityprompts
+huggingtweets/ericson_ubbhult
+Guen/guen_test_prompt_generation
+newtonkwan/gpt2-xl-ft-3
+MolePatrol/Olbot
+libalabala/mt5-small-finetuned-amazon-en-es
+huggingtweets/missdaytona
+MickyMike/VulRepair
+newtonkwan/gpt2-xl-ft-4
+hugo/byt5-mono-zh-v1
+beston91/gpt2-xl-ft-logits-5k
+BigSalmon/InformalToFormalLincoln27
+calebcsjm/reverse_text_flipped_tokens_HarryPotter
+Marxav/frpron
+brad1141/gpt2-finetuned-comp2
+erinchocolate/DialoGPT-small-harrypotter
+eliasws/openApiT5-to-description-v1
+eliasws/openApiT5-to-description-v2
+eliasws/openApiT5-to-json-v1
+beston91/gpt2-xl-ft-logits-1k
+IsaacSST/gpt2-xl-ft-d1
+beston91/gpt2-xl_ft_mult_10k
+Valouzze/FairuvenIA
+huggingtweets/sappublicsector
+IsaacSST/gpt2-xl-ft-d2
+eliasws/openApiT5-distilled-description-v1
+MehSatho/Tai-medium-Hermione
+Valouzze/MegaIA
+ShahafAricha/nqg-gpt2
+vinaykudari/t5-ft-billsum
+beston91/gpt2-xl_ft_mult_1k
+Pavithra/code-parrot
+beston91/gpt2-xl_ft_mult_5k
+IsaacSST/gpt2-xl-ft-d3
+eliasws/openApiT5-distilled-description-v2
+eliasws/openApiT5-to-json-v2
+huggingtweets/abombayboy
+vinaykudari/distilGPT-ft-eli5
+axiomepic/nethack-gpt2
+Makinitas/DialoGPT-small-RickAndMortyScripts
+darthrussel/DialoGPT-small-rickandmorty
+Wikidepia/gpt2-spam
+vinaykudari/gpt2-acled-t2s
+bipin/malayalam-gpt2
+vanilladucky/Friends_chatting_bot
+vanilladucky/Friends_chatting_bot_redefined
+chocoduck/Joey_bot
+duanxingjuan/DialoGPT-medium-DEMON_SLAYER
+pere/test-t5-small
+pinkducky/Monica_Bot
+adalbertojunior/test-gpt2
+beston91/gpt2-xl_ft_logits_10k
+razent/SciFive-large-Pubmed_PMC-MedNLI
+Starry/HELLORUKAS
+beston91/gpt2-xl_ft_logits_1k_2
+beston91/gpt2-xl_ft_logits_5k_2
+IsaacSST/gpt2-xl-ft-d4-0.3
+BigSalmon/InformalToFormalLincoln28
+pinkducky/Rachel_Bot
+trig/multiverse-third
+pinkducky/Ross_Bot
+IsaacSST/gpt2-xl-ft-d4-0.15-n-3
+tau/fewsion_1024_0.3_3900
+tau/fewsion_2_1024_0.3_epoch1
+tau/pegasus_1024_0.3_epoch1_v2
+tau/random_1024_0.3_epoch1_v2
+tau/t5_1024_0.3_epoch1_v2
+tau/t5_lm_1024_0.3_epoch1_v2
+huggingtweets/victoriamonet
+huggingtweets/twitter
+huggingtweets/rupertboneham-rupertskids-survivorcbs
+IIC/mt5-spanish-mlsum
+Daniele/italian-spellchecker
+ScandinavianMrT/gpt2_ONION_prefinetune
+ianMconversica/autonlp-test-654919306
+huggingtweets/rebeudeter
+huggingtweets/elonmusk-garyvee
+mimicheng/codeparrot-ds
+elena-soare/docu-t5-base-FK
+elena-soare/bat-table-aug
+elena-soare/bat-pre-trained
+Bistolero/mt5_two_epocs_nl
+Bistolero/mix_training_en_du_nl
+Bistolero/mix_training_en_du_nl_1
+BigSalmon/InformalToFormalLincoln29
+Waynehillsdev/Wayne_Mulang_mT5
+tau/fewsion_2_1024_0.3_epoch2
+tau/pegasus_1024_0.3_epoch2_v2
+tau/random_1024_0.3_epoch2_v2
+tau/t5_1024_0.3_epoch2_v2
+tau/t5_lm_1024_0.3_epoch2_v2
+huggingtweets/laurentozon
+elihoole/distilgpt2-ttds
+IIC/mt5-base-lfqa-es
+mukayese/mt5-base-turkish-summarization
+bigmorning/my-gpt-model
+Splend1dchan/t5lephone-small
+huggingtweets/garymarcus
+kazandaev/mt5-base-en-ru-v2
+beston91/gpt2-xl_ft_logits_25k
+ahmeddbahaa/t5-small-finetuned-xlsum-en
+mimicheng/codeparrot-ds-sample
+vinaykudari/t5-acled-t2s
+duanxingjuan/DialoGPT-large-DEMON1
+Pavithra/codeparrot-ds-sample
+bigmorning/my-gpt-model-3
+voidful/channel_metaicl_hr_to_lr_inst_all
+Graphcore/gpt2-wikitext-103
+tau/fewsion_single_mask_1024_0.3_epoch1
+tau/random_single_mask_1024_0.3_epoch1
+tau/t5_single_mask_1024_0.3_epoch1
+Deep1994/t5-paraphrase-quora
+apoorvumang/kgt5-base-wikikg90mv2
+abdelhalim/Rec_Business_Names
+Rocketknight1/mt5-small-finetuned-amazon-en-es
+pere/test-t5-small-direct
+ScandinavianMrT/gpt2_ONION_prefinetune_3.0
+Graphcore/gpt2-medium-wikitext-103
+huggingtweets/pierreavdb
+huggingtweets/stedmanhalliday
+Zohar/distilgpt2-finetuned-hotel-reviews
+huggingtweets/metakuna
+huggingtweets/rickyflows
+huggingtweets/lucca_dev
+huggingtweets/mattiasinspace
+ScandinavianMrT/gpt2_ONION_prefinetune_4.0
+huggingtweets/eigenrobot-moridinamael
+huggingartists/kendrick-lamar
+huggingtweets/interrogami
+BigSalmon/MASKGPT2
+huggingtweets/ryiacy
+bigmorning/my-gpt-model-4
+gayanin/t5-small-med-term-conditional-masking
+huggingtweets/thanksthoth
+Bistolero/it_train_all
+BigSalmon/InformalToFormalLincoln30
+sparklyrainbows/DialoGPT-small-harrypotter
+huggingtweets/radagasttbrown
+huggingtweets/coscorrodrift
+bigmorning/my-gpt-model-5
+simonnedved/codet5-base
+Bistolero/french_all
+huggingtweets/btohtoh
+huggingtweets/btohtoh-willitbetoomuch
+Jiexing/relation_t5_small
+issue89/DialoGPT-small-house
+docto/Docto-Bot
+enimai/mt5-mustc-fr
+buvnswrn/daml-t5-pretrain
+etomoscow/T5_paraphrase_detector
+buvnswrn/daml-t5
+elihoole/distilgpt2-music-search
+fanzru/t5-small-finetuned-xsum
+blinoff/ru-gpt2-medium-rdf-2-text
+huggingtweets/iopred
+huggingtweets/tariqnasheed
+huggingtweets/kytalli-vi0linheart
+huggingtweets/madeleine
+huggingtweets/vi0linheart
+LeonLi279/DialoGPT-small-harrypotter
+buvnswrn/daml-t5-pretrain-imdb-accelerate
+Ryukijano/DialoGPT_med_model
+huggingtweets/rronigj
+huggingtweets/melindagates
+beston91/gpt2-xl_ft_mult_25k
+VRT/mT5Small_mBartTokenizer_5epoch
+ahmeddbahaa/mt5-small-finetuned-mt5-en
+huggingtweets/untiltrees
+bigmorning/try-m
+MolePatrol/DialoGPT-Medium-ConnerBot
+huggingtweets/janieclone-wretched_worm
+hugo/byt5-mono-code-v1
+pere/tt5-small
+pere/tt5-base
+pere/tt5-3B
+pere/tt5x-small
+pere/tt5x-base
+pere/tt5x-3B
+IsaacSST/gpt2-xl-ft-value_it-1k-0_on_1k-1
+Tejas21/Totto_t5_base_pt_bleu_10k_steps
+MolePatrol/DialoGPT-Medium-MoleBot
+bigmorning/try-m-e
+ScandinavianMrT/gpt2_prefinetune_SARC_2.0
+pere/multi-sentencefix-mt5-large
+eliasws/openApiT5-distilled-description-v3
+eliasws/openApiT5-to-description-v3
+eliasws/openApiT5-to-json-v3
+l3cube-pune/hing-gpt-devanagari
+snrspeaks/KeyPhraseTransformer
+ianMconversica/autotrain-parrot_finetune_v1-667919695
+bigmorning/try-m-e-perplexity594
+Jingya/t5-large-finetuned-xsum
+huggingtweets/rivatez
+mimicheng/codeparrot-ds-sample-2ep
+huggingtweets/huggingpuppy
+ahmeddbahaa/mt5-finetuned-en-ar
+Flag/joebiden
+calebcsjm/reversed_harrypotter_generation
+buvnswrn/daml-t5-training
+huggingtweets/_stevenshoe-mkobach
+ianMconversica/autotrain-phrasinator-reverse-670319725
+rsmonteiro/gpt2-small-portuguese-lyrics
+nikhedward/t5-small-finetuned-multi-news
+aihijo/transformers4ime-pinyingpt-concat
+eliasws/openApiT5-labeled-v1
+bigmorning/distilgpt2-500e
+TheDaydreamer/ricky
+huggingtweets/mkobach-naval-shaneaparrish
+huggingtweets/psimon365
+everdoubling/byt5-Korean-base
+Danik51002/Example
+Jiexing/sparc_relation_t5_3b-2112
+Jiexing/sparc_relation_t5_3b-2432
+Splend1dchan/t5small4-squad1024
+jorge-henao/gpt2-small-spanish-disco-poetry
+aihijo/gpt2-zh-21k
+efederici/sentence-it5-small
+JoofytheBloofy/T5LargeTest
+BeamBee/DialoGPT-small-Lavenza
+mrm8488/t5-base-iterater
+Garsic/DialoGPT-medium-pecorine
+huggingtweets/baguioni-elonmusk-jacobe
+huggingtweets/baguioni
+huggingtweets/jacobe
+BigSalmon/InformalToFormalLincoln31
+BigSalmon/InformalToFormalLincoln32
+CallForEcho/DialoGPT-small-harrypotter
+huggingtweets/freudwarrior123
+tau/pegasus_4_1024_0.3_epoch1
+tau/t5_4_1024_0.3_epoch1
+tau/t5_lm_4_1024_0.3_epoch1
+0x7194633/pyGPT-50M
+huggingtweets/nsawaikar
+Chikashi/t5-small-finetuned-cnndm
+hackathon-pln-es/es_text_neutralizer
+MU-NLPC/CzeGPT-2
+MU-NLPC/CzeGPT-2_summarizer
+huggingtweets/abeshinzo
+Chikashi/t5-small-finetuned-cnndm1
+castorini/monot5-3b-msmarco-10k
+jorge-henao/spanish-t5-small-disco-poetry
+tau/fewsion_4_1024_0.3_epoch1
+MU-NLPC/CzeGPT-2_headline_generator
+gayanin/t5-small-med-term-conditional-masking-0
+frtna/jwt300_mt-Italian-to-Spanish
+Chikashi/t5-small-finetuned-cnndm_3epoch
+beston91/gpt2-xl_ft_logits_5k_experiment
+jorge-henao/gpt2-small-spanish-disco-poetry-15
+hackathon-pln-es/gpt2-small-spanish-disco-poetry
+gastronomia-para-to2/gastronomia_para_to2
+tau/random_4_1024_0.3_epoch1
+parvezmrobin/bugsplainer-t5
+frtna/jwt300_mt-Italian-to-Spanish_transformers
+shrishail/t5_paraphrase_msrp_paws
+sagorsarker/emailgenerator
+UrukHan/t5-russian-spell
+BeamBee/DialoGPT-small-LavenzaNumTwo
+hackathon-pln-es/t5-small-spanish-nahuatl
+Meowren/MichaelScottBott
+DrishtiSharma/poem-gen-spanish-t5-small-v5
+DrishtiSharma/poem-gen-spanish-t5-small-v6
+DrishtiSharma/poem-gen-spanish-t5-small-v7
+hugo/byt5-mono-ar-v1
+efederici/sentence-it5-base
+shalpin87/dialoGPT-homer-simpson
+BigSalmon/PointsOneSent
+BigSalmon/PointsToSentence
+BigSalmon/InformalToFormalLincoln33
+nlp-waseda/gpt2-small-japanese
+mimicheng/codeparrot-ds-sample-2ep-29mar
+javilonso/classificationEsp3_Attraction
+javilonso/classificationPolEsp2
+huggingtweets/tojibaceo
+Sakonii/distilgpt2-nepali
+darthrussel/DialoGPT-small-homerbot-halfdata
+DrishtiSharma/poem-gen-spanish-t5-small-test
+rchiang/ingredients-parser
+TheGoldenToaster/DialoGPT-medium-Woody
+IDEA-CCNL/YuyuanQA-GPT2-3.5B
+bemich/DialoGPT-small-GeorgeCostanza
+mimi/test_KE-T5
+unjustify/autotrain-IWant-689220804
+Finnish-NLP/t5-mini-nl8-finnish
+benwoodyear/t5-base-cryptic-crosswords
+huggingtweets/youtube
+huggingtweets/timdingmanlive
+huggingtweets/stillconor
+mT0/mt0_xl_t0pp_ckpt_1025000
+benwoodyear/t5-small-cryptic-crosswords
+benwoodyear/t5-large-cryptic-crosswords
+emre/distilgpt2-pretrained-tr-10e
+benwoodyear/byt5-base-cryptic-crosswords
+benwoodyear/byt5-small-cryptic-crosswords
+AAAA-4/DialoGPT-small-player_03
+Teyronebigdick/DialoGPT-small-harrypotter
+Splend1dchan/t5lephone-small-squad1024
+Sammith/DialoGPT-small-miachael
+z5ying/distilgpt2-finetuned-wikitext2
+Nxtxn01/DialoGPT-small-harrypotter
+adderplus/separations_for_collab-cryptic-crosswords
+notexist/ttt
+soyasis/gpt2-finetuned-how-to-qa
+AvengingPrime/Argument_Generation_GPT-2_model
+mojians/E2E-QA-Mining
+DrishtiSharma/poem-gen-spanish-t5-small-d2
+DrishtiSharma/poem-gen-spanish-t5-small-d3
+DrishtiSharma/poem-gen-spanish-t5-small-d5
+abd-1999/autotrain-bbc-news-summarization-694821095
+Chikashi/t5-small-finetuned-wikihow_3epoch
+Teyronebigdick/DialoGPT-small-terrydavis
+huggingtweets/chapocheck
+clisi2000/codeparrot
+huggingtweets/clortown
+BigSalmon/Points4
+clisi2000/codeparrot-small
+jingwei001/distilgpt2-finetuned-wikitext2
+huggingtweets/percybotshelley
+juancavallotti/t5-base-es-en
+juancavallotti/t5-base-es-en-fr-de
+marksverdhei/t5-base-define
+mczolly/DialoGPT-small-the-doctor
+JustAdvanceTechonology/medical_notes_mulitilingual
+huggingtweets/sanjabh
+notexist/ttt2
+PoloHuggingface/French_grammar_error_corrector
+pszemraj/t5-v1_1-base-ft-jflAUG
+UrukHan/t5-russian-summarization
+cambridgeltl/simctg_rocstories
+huggingtweets/clortown-elonmusk-stephencurry30
+fangyuan/lfqa_role_classification
+hackathon-pln-es/t5-small-finetuned-spanish-to-quechua
+notexist/ttte
+notexist/tttf
+aypan17/distilgpt2-imdb-pos
+munozariasjm/writter_distilgpt_hep
+Zohar/distilgpt2-finetuned-restaurant-reviews-clean
+crazypegasus/GPT-JonSnow
+Finnish-NLP/t5-small-nl24-finnish
+BigSalmon/InformalToFormalLincoln34
+hackathon-pln-es/itama
+BigSalmon/InformalToFormalLincoln35
+alexjercan/codet5-base-buggy-error-description
+MrYiRen/DialoGPT-small-harrypotter
+Zarkit/Gpt2ESP-finetuned-p
+Sevil/t5-small-finetuned-wikihow_3epoch_v2
+gao-huggingface/T5-IDX-Parent
+gao-huggingface/T5-IDX-Event
+gao-huggingface/T5-IDX-Descriptor
+gao-huggingface/T5-IDX-Subdescriptor
+gao-huggingface/T5-IDX-Subdescriptor-Flat-Model
+huggingtweets/weirdokun
+ucl-snlp-group-11/t5-base-separations-cryptic-crosswords
+TropicalJuice/Dialog-PeterGriffin
+bdunnette/derbynames-aitextgen-gpt2
+TheGoldenToaster/DialoGPT-medium-Bot
+Erfan/Test_model0
+BigSalmon/MediumInformalToFormalLincoln
+Sevil/t5-small-finetuned-cnndm_3epoch_v2
+Bistolero/EXP_TWO_EP
+huggingtweets/zei_squirrel
+ZoeMC/chemT5
+MrYiRen/DialoGPT-small-harrypotter2
+gulgulglut/DialoGPT-small-Rick
+BigSalmon/InformalToFormalLincolnConciseWordy
+trev/DialoGPT-small-MLP
+huggingtweets/benk14894427
+vladimir-lomonosov/gpt2-wikitext2
+huggingtweets/vivchen_
+SoLID/t5_tod_large
+RAJESHNEMANI/Chatbot_AI
+huggingtweets/jorgegos
+Bistolero/nl_ge_alltr
+notexist/tttff
+Jiyang/EditModel
+unjustify/autotrain-Create_Question_Model-708521506
+edangx100/t5-small-finetuned-wikisql
+Linguist/t5-small-Linguists_summariser
+huggingtweets/chrismedlandf1-elonmusk-scarbstech
+huggingtweets/twommof1
+kyryl0s/gpt2-uk-xxs
+huggingtweets/chrismedlandf1
+vachevkd/qna-t5base-squad
+vachevkd/dg-t5base-race
+ucl-snlp-group-11/byt5-base-cryptic-crosswords
+ucl-snlp-group-11/byt5-small-cryptic-crosswords
+ucl-snlp-group-11/t5-large-cryptic-crosswords
+ucl-snlp-group-11/t5-small-cryptic-crosswords
+ucl-snlp-group-11/t5-base-cryptic-crosswords
+efederici/it5-small-lfqa
+lilapapazian/DialoGPT-small-harrypotter
+Splend1dchan/t5lephone200000-small-squad1024
+tau/false_large_t5_5_1024_0.3_epoch1
+tau/false_large_t5_lm_5_1024_0.3_epoch1
+tau/false_large_pmi_para0_sentNone_spanNone_5_1024_0.3_epoch1
+tau/false_large_pmi_paraNone_sent0_spanNone_5_1024_0.3_epoch1
+tau/false_large_pmi_paraNone_sentNone_span0_5_1024_0.3_epoch1
+tau/false_large_pmi_para0_sent1_span2_5_1024_0.3_epoch1
+tau/false_large_rouge_para0_sentNone_spanNone_5_1024_0.3_epoch1
+tau/false_large_rouge_paraNone_sent0_spanNone_5_1024_0.3_epoch1
+tau/false_large_rouge_paraNone_sentNone_span0_5_1024_0.3_epoch1
+tau/false_large_rouge_para0_sent1_span2_5_1024_0.3_epoch1
+tau/false_large_random_para0_sentNone_spanNone_5_1024_0.3_epoch1
+tau/false_large_random_paraNone_sent0_spanNone_5_1024_0.3_epoch1
+tau/false_large_random_paraNone_sentNone_span0_5_1024_0.3_epoch1
+tau/false_large_random_para0_sent1_span2_5_1024_0.3_epoch1
+Alethea/GPT2-chitchat
+huggingtweets/joshrevellyt-mattywtf1-twommof1
+huggingtweets/enginemode11-phoenixstk19-scarbstech
+florentiino/DialoGPT-small-harrypotter
+ai-forever/mGPT
+huggingtweets/chrismedlandf1-formula24hrs-tgruener
+notexist/tttw
+mrm8488/t5-small-finetuned-wikisql-sql-nl-nl-sql
+huggingtweets/zahedparsa2
+huggingtweets/mohamad_yazdi
+BigSalmon/MediumInformalToFormalLincoln2
+rosbo/test-rosbo
+huggingtweets/timjdillon
+huggingtweets/elonmusk-marknorm-timjdillon
+EleutherAI/gpt-neox-20b
+Bistolero/german_all
+huggingtweets/abovethebed
+jessicammow/DialoGPT-small-ronswanson
+MrYiRen/DialoGPT-small-ZC
+jessicammow/DialoGPT-medium-leslieknope
+huggingtweets/onlinepete-utilitylimb
+MaRiOrOsSi/t5-base-finetuned-question-answering
+jppaolim/v9PT
+huggingtweets/emarobot
+cambridgeltl/magic_mscoco
+huggingtweets/lilpeeplyric
+avialfont/dummy-finetuned-amazon-en-es
+huggingtweets/notsorobot
+Pavithra/codeparrot-ds-sample-gpt-small-10epoch
+Chikashi/t5-small-finetuned-wikihow_3epoch_b4_lr3e-3
+AmbricJohnson5888/death
+anegi/t5smallmodel
+AmbricJohnson5888/claura
+Hodiden/autotrain-TestProj-722121991
+HenryHXR/t5-base-finetuned-scitldr-only-abstract
+Wizounovziki/t5-small-finetuned-xsum
+Chikashi/t5-small-finetuned-wikihow_3epoch_b4_lr3e-4
+eliwill/gpt2-finetuned-krishna
+Wizounovziki/t5-small-ipad-sum
+bhoppenstedt/js-fakes-4bars
+Bogula/js-fakes-4bars
+DarrellTimothy/DialoGPT-small-harrypotter
+AlekseyKorshuk/test
+jppaolim/v10Accel
+Wizounovziki/t5-base-devices-sum-ver1
+UPF/DialoGPT-small-joshua
+Splend1dchan/byt5-base-squad
+Wizounovziki/t5-small-devices-sum-ver1
+masakhane/afrimt5_bam_fr_news
+masakhane/afrimt5_fr_bam_news
+masakhane/afribyt5_fr_bam_news
+masakhane/afribyt5_bam_fr_news
+masakhane/byt5_bam_fr_news
+masakhane/byt5_fr_bam_news
+masakhane/mt5_bam_fr_news
+masakhane/mt5_fr_bam_news
+RarePizzaDog/Apes_Bot
+Chikashi/t5-small-finetuned-wikihow_3epoch_b4_lr3e-5
+cbgbcbcg/DialoGPT-small-joshua
+iyedr8/DialoGPT-small-rick
+Wizounovziki/t5-small-devices-sum-ver2
+Wizounovziki/t5-base-devices-sum-ver2
+jo0hnd0e/mt5-small-finetuned-amazon-en-es
+MEDT/ChatBot
+Splend1dchan/t5-small-squad
+huggingtweets/fitfounder
+brad1141/baseline_gptv1
+Brendan/random-in-domain-5-demos-t5-small
+huggingtweets/gceh
+mT0/mt0_xl_t0pp_ckpt_1012500
+huggingtweets/graveyard_plots-hel_ql-witheredstrings
+huggingtweets/nordicshrew
+huggingtweets/s_m_frank
+Chikashi/t5-small-finetuned-wikihow_3epoch_b8_lr3e-3
+FabsCool/autotrain-T5Base1_1-728922203
+benjaminbeilharz/baseline
+Chikashi/t5-small-finetuned-wikihow_3epoch_b8_lr3e-4
+aleksavega/t5-efficient-base-finetuned-1.2
+yogi/autotrain-amazon_text_sum-730222226
+maesneako/gpt2-en-maptask-finetuned
+Brendan/meta-baseline-t5-small
+Chikashi/t5-small-finetuned-wikihow_3epoch_b8_lr3e-5
+adasnew/t5-small-xsum
+mT0/mt0_xl_default_mixture_ckpt_1012500
+BigSalmon/MediumInformalToFormalLincoln3
+mT0/mt0_xl_default_mixture_ckpt_1025000
+huggingtweets/angrymemorys-oldandtoothless-sadboi666_-witheredstrings
+CapoCapped/T5Base
+NonzeroCornet34/DialoGPT-small-hansolo
+agi-css/gpt2-medium
+mimi/book_data
+huggingtweets/nv1t
+Chikashi/t5-small-finetuned-cnndm-wikihow
+NonzeroCornet34/DialoGPT-small-philbot
+nlpstar/exclaim-t5
+Wizounovziki/t5-small-devices-sum-ver3
+mimicheng/codeparrot-ds-sample-1ep-12apr
+huggingtweets/radfemman
+dreamerdeo/unisar-t5-3b-spider
+cambridgeltl/magic_flickr30k
+vabadeh213/autotrain-wikihow-737822494
+dreamerdeo/unisar-t5-3b-cosql
+dreamerdeo/unisar-t5-3b-sparc
+eagles/focus_sum
+cometrain/fake-news-detector-t5
+Chikashi/t5-small-finetuned-cnndm_wikihow_test_on_cnndm
+huggingtweets/elonmusk-jeffbezos-sweatystartup
+frozenwalker/SciFive_pubmedqa_question_generation
+simonnedved/codet5-large-v1
+NeuralNotwork/gpt2-ct
+bkwebb23/gpt2-untemplated-quests
+huggingtweets/notthatsuperman
+masakhane/afrimt5_fr_bbj_news
+masakhane/afrimt5_bbj_fr_news
+masakhane/afribyt5_fr_bbj_news
+masakhane/afribyt5_bbj_fr_news
+masakhane/byt5_fr_bbj_news
+masakhane/byt5_bbj_fr_news
+masakhane/mt5_bbj_fr_news
+masakhane/mt5_fr_bbj_news
+atomsspawn/DialoGPT-medium-dumbledore
+hugo/byt5-mono-ru-v1
+huggingtweets/kc_lyricbot
+vinaykudari/t5-acled-ie
+nlpstar/exclaim-verdict
+dropout05/t5-realnewslike-super-tiny
+dropout05/distilt5_realnewslike
+huggingtweets/credenzaclear2-dril-nia_mp4
+rmihaylov/gpt2-small-theseus-bg
+knok/japanese-distilgpt2
+cometrain/stocks-news-t5
+huggingtweets/elonmusk-joebiden
+florentiino/DialoGPT-small-rick
+NeuralNotwork/gpt2-baseline
+NeuralNotwork/gpt2-ul-ts
+Chikashi/t5-small-finetuned-cnndm1-wikihow0
+huggingtweets/jeffbezos
+milyiyo/stog-t5-small
+BigSalmon/InformalToFormalLincoln36
+mT0/mt0_11B_t0_train_ckpt_1012500
+Chikashi/t5-small-finetuned-cnndm1-wikihow1
+luyaojie/uie-base-en
+mikeluck/gpt2-wikitext2
+mimicheng/codeparrot-ds-sample-2ep-14apr
+ShibaDeveloper/DialoGPT-small-harrypotter
+NeuralNotwork/gpt2-ul-ts-lrn6
+ahmeddbahaa/mT5_multilingual_XLSum-finetuned-ar
+Chikashi/t5-small-finetuned-cnndm2-wikihow1
+tau/false_large_t5_single_mask_5_1024_0.3_epoch1
+tau/false_large_random_paraNone_sentNone_span0_multi_masks_5_1024_0.3_epoch1
+masakhane/afrimt5_fr_ewe_news
+masakhane/afrimt5_ewe_fr_news
+masakhane/afribyt5_ewe_fr_news
+masakhane/afribyt5_fr_ewe_news
+masakhane/byt5_fr_ewe_news
+masakhane/byt5_ewe_fr_news
+masakhane/mt5_fr_ewe_news
+masakhane/mt5_ewe_fr_news
+sahilnare78/DialogGPT-medium-harrypotter
+Finnish-NLP/t5-base-nl36-finnish
+Chikashi/t5-small-finetuned-cnndm2-wikihow2
+Chikashi/t5-small-finetuned-cnndm3-wikihow2
+schhwmn/mt5-base-finetuned-ukr-gec
+harshm16/t5-small-finetuned-xsum
+enelpol/evalatin2022-lemma-closed
+enelpol/evalatin2022-lemma-open
+Garsic/DialoGPT-medium-jill
+Chikashi/t5-small-finetuned-cnndm3-wikihow3
+mdm/DialoGPT-small-Kanye
+eslamxm/AraT5-base-title-generation-finetuned-ar-wikilingua
+NeuralNotwork/gpt2-simctg
+masakhane/afrimt5_fr_fon_news
+masakhane/afrimt5_fon_fr_news
+masakhane/afribyt5_fr_fon_news
+masakhane/afribyt5_fon_fr_news
+masakhane/byt5_fr_fon_news
+masakhane/byt5_fon_fr_news
+masakhane/mt5_fon_fr_news
+masakhane/mt5_fr_fon_news
+Artyom/ArmSpellcheck_beta
+huggingtweets/discord
+rmihaylov/gpt2-small-bg
+rmihaylov/gpt2-medium-bg
+masakhane/mt5_mos_fr_news
+masakhane/mt5_fr_mos_news
+masakhane/afribyt5_mos_fr_news
+masakhane/afribyt5_fr_mos_news
+masakhane/byt5_mos_fr_news
+masakhane/byt5_fr_mos_news
+masakhane/afrimt5_fr_mos_news
+masakhane/afrimt5_mos_fr_news
+Pavithra/madgrad-best-version
+MrBananaHuman/kogpt_medium_wiki
+MrBananaHuman/engpt_medium_to_kogpt_medium_w_freezing
+MrBananaHuman/engpt_medium_to_kogpt_medium_wo_freezing
+ScyKindness/Hatsune_Miku
+engmatic-earth/mt5-zh-ja-en-trimmed-fine-tuned-v1
+bhagyarana/t5_squad_v1
+varinner/jaredbotmark1point5
+ttury/webnovel-kogpt2
+NeuML/t5-small-txtsql
+huggingtweets/shaq-shaqtin
+ai-guru/lakhclean_mmmtrack_4bars_d-2048
+BigSalmon/InformalToFormalLincoln37
+aaaacash/DialoGPT-large-michaelscott
+huggingtweets/crowsunflower-holyhorror8-witheredstrings
+umm-maybe/IAmA_SSI_bot
+AntoDono/DialoGPT-Harry
+benjaminbeilharz/t5-empatheticdialogues
+harshm16/t5-small-finetuned-reddit_dataset
+BigSalmon/InformalToFormalLincoln38
+BFMeriem/model
+huggingtweets/tojibawhiteroom
+mary905el/rugpt3large_neuro_chgk
+BFMeriem/chatbot-model
+tau/false_large_pmi_para0_sent1_span2_True_multi_masks_with_types_7_1024_0.3_epoch1
+tau/false_large_pmi_para0_sent1_span2_True_7_1024_0.3_epoch1
+tau/false_large_rouge_para0_sent1_span2_True_7_1024_0.3_epoch1
+huggingtweets/buckeshot-onlinepete
+StringCheese/Dialog-small-bigbang
+necm77/distilgpt2-finetuned-wikitext2
+Finnish-NLP/t5-large-nl36-finnish
+maesneako/dbddv01-gpt2-french-small_space_paco-cheese-v3
+luyaojie/uie-large-en
+frozenwalker/SciFive_pubmedqa_question_generation_nmconcept
+tau/false_large_rouge_para0_sent1_span2_True_multi_masks_with_types_7_1024_0.3_epoch1
+frozenwalker/SciFive_pubmedqa_question_generation_nmconcept_modifies
+anshr/t5-small_supervised_baseline_01
+tau/false_large_pmi_para0_sent1_span2_True_multi_masks_7_1024_0.3_epoch1
+tau/false_large_rouge_para0_sent1_span2_True_multi_masks_7_1024_0.3_epoch1
+anshr/t5-base_supervised_baseline_01
+huggingtweets/billgates-kellytclements-xychelsea
+Kateryna/eva_ru_forum_headlines
+waynehills/Waynehills_mT5_Mulang
+huggingtweets/elonmusk-iamsrk
+eslamxm/mT5_multilingual_XLSum-finetuned-ar-wikilingua
+eagles/focus_sum_gpt2
+nirmalkumar/distilledgpt2-cric-commentary
+masakhane/afrimt5_wol_fr_news
+masakhane/afrimt5_fr_wol_news
+masakhane/afribyt5_wol_fr_news
+masakhane/afribyt5_fr_wol_news
+masakhane/byt5_wol_fr_news
+masakhane/byt5_fr_wol_news
+masakhane/mt5_fr_wol_news
+masakhane/mt5_wol_fr_news
+frozenwalker/T5_pubmedqa_question_generation_preTrained_MedQuad
+Matthijs/test-gpt2
+frozenwalker/T5_pubmedqa_question_generation_preTrained_MedQuad_modified
+Tejas21/Totto_t5_base_BLEURT_24k_steps
+csebuetnlp/mT5_m2m_crossSum
+csebuetnlp/mT5_m2o_hindi_crossSum
+Finnish-NLP/t5-tiny-nl6-finnish
+Tejas21/Totto_t5_base_BERT_Score_20k_steps
+frozenwalker/SciFive_pubmedqa_question_generation_using_prompt_entity
+BigSalmon/InformalToFormalLincoln39
+frozenwalker/SciFive_pubmedqa_question_generation_using_numerical_prompt_entity
+domenicrosati/t5-finetuned-parasci
+huggingtweets/elonmusk-nicolebehnam-punk6529
+huggingtweets/nicolebehnam
+nirmalkumar/gpt2-cric-commentary
+huggingtweets/torstenvolk
+eagles/focus_sum_mT5_minshi
+brad1141/GPT2_v5
+skytnt/gpt2-japanese-lyric-small
+wojciechkrukar/t5-small-finetuned-xsum
+Shivierra/DialoGPT-small-technoblade
+frozenwalker/SciFive_pubmedqa_question_generation_using_NmCo_prompt_entity
+huggingtweets/route2fi
+ELiRF/mt5-base-dacsa-ca
+ELiRF/mt5-base-dacsa-es
+huggingtweets/kfc_uki
+csebuetnlp/mT5_m2o_arabic_crossSum
+csebuetnlp/mT5_m2o_russian_crossSum
+Onlydrinkwater/T5-small-de-en
+masakhane/afrimt5_en_ibo_news
+masakhane/afrimt5_ibo_en_news
+masakhane/afribyt5_ibo_en_news
+masakhane/afribyt5_en_ibo_news
+masakhane/mt5_ibo_en_news
+masakhane/mt5_en_ibo_news
+masakhane/byt5_en_ibo_news
+masakhane/byt5_ibo_en_news
+uaritm/datapars-base-202
+Scaprod/DialoGPT-small-arbiter
+niuca/DeepDebug
+yhavinga/t5-base-36L-ccmatrix-multi
+Wootang01/distilgpt2-finetuned-hkdse-english-paper4
+uaritm/base-neuro202
+bigscience/bigscience-small-testing
+Tlacaelel/DialoGPT-small-jarvis
+spuun/kekbot-beta-1
+Xibanya/DS9Bot
+huggingtweets/plsnobullywaaa
+huggingtweets/proanatwink
+mimicheng/codeparrot-ds-sample-2ep-batchsize32
+huggingtweets/charlottefang77
+huggingtweets/miyarepostbot
+huggingtweets/mimpathy
+AntoDono/DialoGPT-Bopy
+huggingtweets/it_its_are_are-miyarepostbot-unbridled_id
+huggingtweets/unbridled_id
+huggingtweets/propertyexile
+huggingtweets/newscollected
+huggingtweets/angelicism010-propertyexile-wretched_worm
+huggingtweets/h0uldin
+huggingtweets/angelicism010
+AntoDono/DialoGPT-Bopy-5k
+huggingtweets/it_its_are_are
+ahmeddbahaa/mt5-base-finetuned-ar-wikilingua
+adityay1221/Xegho.30.4
+adityay1221/Pixie.30.32
+adityay1221/Xegho.30.2
+anshr/distilgpt2_reward_model_01
+huggingtweets/newscollected-nickmullensgf
+hugo/byt5-mono-nonsense-v1
+azizbarank/cst5-base
+huggingtweets/dnlklr
+anshr/distilgpt2_reward_model_02
+Coma/Beter
+marksverdhei/t5-deshuffle
+Wavepaw/DialoGPT-medium-WardenIngo
+dllllb/poetnet-mt5-stihiru-libru
+domenicrosati/t5-small-finetuned-contradiction
+dllllb/poetnet-rut5-stihiru-libru
+BigSalmon/InformalToFormalLincoln40
+anshr/distilgpt2_supervised_model_01
+dllllb/poetnet-rut5-stihiru-libru-finetune
+domenicrosati/t5-small-finetuned-contradiction-local-test
+huggingtweets/c8ohe2cqqe092cq
+Pavithra/autopilot-madgrad2_54
+Akarsh3053/potter-chat-bot
+MachineBabs/RickBot
+smeoni/nbme-gpt2
+MachineBabs/DocBrown
+abusiddik/autotrain-NMT-778623908
+spuun/kekbot-beta-1-medium
+domenicrosati/t5-small-finetuned-contradiction-finetuned-contradiction
+MEDT/Chatbot_Medium
+macavaney/monot5-base-msmarco-sim1
+macavaney/monot5-base-msmarco-sim5
+tosin/dialogpt_mwoz_idioms
+tosin/dialogpt_afriwoz_wolof
+adtabora/distilgpt2-finetuned-wikitext2
+hugo/byt5-mono-bn-v1
+umarkhalid96/t5-small-train
+uaritm/base-nku-mgku-202
+AntoDono/DialoGPT-Bopy-13k
+Miranda/t5-small-train
+huggingtweets/plasma_node
+csebuetnlp/mT5_m2o_chinese_simplified_crossSum
+aakhilv/tonystark
+ankitkupadhyay/mt5-small-finetuned-amazon-en-es
+LordOfTheSheep/DialoGPT-small-AngelDust
+MSLars/t5-small-ace_en_p_pretrained
+spuun/kekbot-beta-2-medium
+swcrazyfan/Kingify-2Way-T5-Large-v1_1
+huggingtweets/jstoone
+0x12/t5-opus_infopankki-en-zh-0
+Tristo/sociopath
+cjvt/t5-sl-small
+bullmount/quanIta_t5
+xiaoGato/DialoGPT-small-villanelle
+cj-mills/codeparrot-small
+huggingtweets/unbridledbot
+nizamudma/t5-small-finetuned-cnn-2
+yhavinga/t5-eff-xl-8l-dutch-english-cased
+anshr/distilgpt2_trained_policy_model_01
+huggingtweets/gerardoalone
+huggingtweets/femboi_canis
+anshr/distilgpt2_reward_model_03
+Jonesy/DialoGPT-small_FG
+yihsuan/mt5_chinese_small
+huggingtweets/spideythefifth
+huggingtweets/lustfulliberal-pg13scottwatson
+anshr/distilgpt2_reward_model_04
+yihsuan/best_model_0426_small
+MSLars/t5-base-ace_en_p_pretrained
+stefan-it/it5-efficient-small-el32
+yihsuan/best_model_0426_base
+peggyhuang/t5-base-canard
+kyriinx/DialoGPT-small-glyph
+Inkdrop/distilgpt2-parser
+ml6team/mt5-small-german-query-generation
+0x12/t5-opus_infopankki-en-zh
+Amloii/gpt2-reviewspanish
+Jonesy/DialoGPT-medium_FG
+spuun/kekbot-beta-3-medium
+Lisia/DialoGPT-small-connor
+anshr/distilgpt2_reward_model_05
+0x12/t5small-news_commentary-en-zh
+nizamudma/t5-small-finetuned-cnn-3
+awvik360/DialoGPT-medium-plemons-04262022
+rahulgkatre/DialoGPT-homer
+rahulgkatre/DialoGPT-marge
+rahulgkatre/DialoGPT-bart
+rahulgkatre/DialoGPT-lisa
+Jonesy/LisaOnIce
+mary905el/ruT5_neuro_chgk_answering
+0x12/t5small-opus_infopankki-en-zh
+Wikidepia/byt5-sentfix
+yihsuan/best_model_0427_small_long
+thanathorn/mt5-cpe-kmutt-thai-sentence-sum
+huggingtweets/pollinations_ai
+huggingtweets/ai_curio_bot
+yhavinga/t5-small-24L-ccmatrix-multi
+ml6team/keyphrase-generation-t5-small-inspec
+pistachiocow/product_description_generator
+tau/False_large_pmi_para0_sent1_span2_True_multi_masks_with_types_enum_7_1024_0.3_epoch1
+kvnaraya/DialoGPT-small-michael
+kvnaraya/DialoGPT-small-dwight
+pistachiocow/product_description_generator_bad
+kvnaraya/DialoGPT-small-jim
+kvnaraya/DialoGPT-small-kevin
+faisalahmad2/autotrain-nlp-text-summarization-by-faisal-793224456
+Bistolero/german_40k_final
+anshr/distilgpt2_trained_policy_model_02
+NeuML/t5-small-bashsql
+chv5/t5-small-shuffled_take1
+huggingtweets/afraidofwasps-dril-senn_spud
+juierror/thai-news-summarization
+obokkkk/mt5-base
+A2/kogpt2-taf
+Hyperspace/DialoGPT-small-Hyperdrive
+MuhammadAhmad/question-model
+pfactorial/checkpoint-50-epoch-2
+Finnish-NLP/byt5-base-finnish
+Ghost1/mt5-small-finetuned-amazon-en-es
+it5/it5-efficient-small-el32-formal-to-informal
+it5/it5-efficient-small-el32-informal-to-formal
+it5/it5-efficient-small-el32-headline-generation
+it5/it5-efficient-small-el32-news-summarization
+it5/it5-efficient-small-el32-question-answering
+it5/it5-efficient-small-el32-question-generation
+it5/it5-efficient-small-el32-ilgiornale-to-repubblica
+it5/it5-efficient-small-el32-wiki-summarization
+it5/it5-efficient-small-el32-repubblica-to-ilgiornale
+aakarshan/autotrain-Question-translation-797524592
+Azuris/DialoGPT-medium-ekidona
+chv5/t5-small-shuffled_take3-small
+hugo/byt5-mono-es-v1
+aditeyabaral/sonobois
+BlackSamorez/ebanko-base
+Jonesy/HomersNightOut
+BlackSamorez/ebanko-large
+Andrei0086/Chat-small-bot
+huggingtweets/inversebrah
+Bistolero/it_es_80k
+pszemraj/mGPT-Peter-mwe
+huggingtweets/usmnt
+awvik360/UncleRuckus
+AntoDono/DialoGPT-Bopy-Normal
+mT0/mt0_large_translated_t0_ckpt_1012500
+mT0/mt0_large_translated_t0_ckpt_1025000
+momo/MOTOD-large
+obokkkk/mt5-base_2
+huggingtweets/cokedupoptions-greg16676935420-parikpatelcfa
+doc2query/msmarco-german-mt5-base-v1
+usama4512/out
+mpangrazzi/wonderflow_newsletter
+doc2query/msmarco-arabic-mt5-base-v1
+doc2query/msmarco-chinese-mt5-base-v1
+doc2query/msmarco-dutch-mt5-base-v1
+doc2query/msmarco-french-mt5-base-v1
+doc2query/msmarco-hindi-mt5-base-v1
+doc2query/msmarco-indonesian-mt5-base-v1
+doc2query/msmarco-italian-mt5-base-v1
+doc2query/msmarco-japanese-mt5-base-v1
+doc2query/msmarco-portuguese-mt5-base-v1
+doc2query/msmarco-russian-mt5-base-v1
+doc2query/msmarco-spanish-mt5-base-v1
+benjamin/gpt2-large-wechsel-ukrainian
+benjamin/gpt2-wechsel-ukrainian
+umarkhalid96/t5-small-trainings
+doc2query/msmarco-vietnamese-mt5-base-v1
+Siddhart/t5-small-finetuned-xsum
+tonydiana1/distilgpt2-finetuned-wikitext2
+BigSalmon/CoverLetter
+dropout05/lfom_distilt5_realnewslike
+ChrisZeng/t5-v1_1-base-detox
+obokkkk/mt5-base_2_3
+huggingtweets/itstomrobinson
+hugo/byt5-mono-hierarchical-v1
+astremo/JAINU
+Muennighoff/t5-small-finetuned-xsum
+captainswiftfox/rickandmorty
+Barkavi/totto_base_10K
+ChrisZeng/t5-base-detox
+radicalrascal/DialoGPT-medium-jimmy
+pszemraj/mGPT-Peter-2E
+BigSalmon/Concise
+PHISSTOOD/codet5-small-code-summarization-python
+huggingtweets/chubbiverse
+Muennighoff/t5-small-finetuned-xsum-512
+huggingtweets/sandspiel_feed
+huggingtweets/umakomptonrose
+huggingtweets/a_ergt-sausifaktai-suuiluap
+huggingtweets/fana
+mikeliou/hello-model
+JBW/da_en_translation
+dmoz47/DialoGPT-small-peterparker
+Gergoe/mt5-small-finetuned-amazon-en-es
+rbesaleli/t5-regex-summarization
+anshr/distilgpt2_reward_model_final
+anshr/distilgpt2_supervised_model_final
+niprestige/GPT-small-DusabeBot
+spasis/mt5-small-finetuned-amazon-en-es
+Shakerlicious/DialoGPT-small-descentbot
+imumtozee/DA-ctrl-bot
+huggingtweets/wliiyum
+Dizzykong/gpt2-quests
+czw/gpt2-base-chinese-finetuned-job-resume
+atomsspawn/DialoGPT-small-shelbot
+huggingtweets/hot_domme
+milyiyo/paraphraser-spanish-t5-small
+kyryl0s/gpt2-uk-zno-edition
+hugo/byt5-mono-sw-v1
+maesneako/gpt2-fr_orfeo-cid-paco-cheese_e3
+huggingtweets/angelinacho-stillconor-touchofray
+maesneako/gpt2-fr_paco-cheese_e3
+doc2query/msmarco-14langs-mt5-base-v1
+maesneako/gpt2-fr_paco-cheese_e1
+Dizzykong/gpt2-quests-100
+masakhane/afri-mt5-base
+masakhane/afri-byt5-base
+Willow/DialoGPT-medium-willow
+mikeliou/test-gpt
+huggingtweets/usrsistakenhelp
+IsekaiMeta/dapprf
+huggingtweets/alessandramakes
+pfactorial/checkpoint-22500-epoch-20
+laituan245/molt5-base-caption2smiles
+huggingtweets/lonelythey18
+huggingtweets/irenegellar
+efederici/it5-efficient-small-lfqa
+tau/false_large_t5_lm_8_1024_0.15_epoch1
+0x7194633/BulgakovLM-tur
+kravchenko/uk-mt5-base
+farjvr/DialoGPT-small-Mortyfar
+efederici/it5-efficient-small-fanpage
+madatnlp/ke-t5-math-py
+huggingtweets/joejoinerr
+masakhane/afrimt5_hau_en_news
+masakhane/afrimt5_en_hau_news
+masakhane/afribyt5_en_hau_news
+masakhane/afribyt5_hau_en_news
+masakhane/byt5_hau_en_news
+masakhane/byt5_en_hau_news
+masakhane/mt5_en_hau_news
+masakhane/mt5_hau_en_news
+chebmarcel/sun2
+InSaiyan/DialoGPT-small-harrypotter
+spasis/test-bert-finetuned-squad-accelerate
+IsekaiMeta/dapprf3
+pietrolesci/t5v1_1-base-mnli_snli_anli
+pietrolesci/t5v1_1-base-mnli
+mak109/distilgpt2-finetuned-lyrics
+laituan245/molt5-large-caption2smiles
+laituan245/molt5-small-smiles2caption
+laituan245/molt5-large-smiles2caption
+laituan245/molt5-small-caption2smiles
+laituan245/molt5-base-smiles2caption
+laituan245/molt5-large
+anshr/distilgpt2_trained_policy_model_final
+laituan245/molt5-base
+laituan245/molt5-small
+pere/north
+BigSalmon/ConciseAndFormal
+BigSalmon/InformalToFormalLincoln41
+Cuprum/GPT2-Cyp
+eastmountaincode/generate
+Dizzykong/gpt2-quests-eos
+hugo/byt5-mono-ko-v1
+eastmountaincode/newDuneModel
+emolyscheisse/DialoGPT-small-mandybot
+huggingtweets/dril-nycguidovoice-senn_spud
+IsekaiMeta/dapprf4
+datauma/mt5-small-finetuned-amazon-en-es
+ghabin/test_Huxley_Orwell
+chebmarcel/modern_nature
+qgdmonilla/DialoGPT-small-harrypotter
+yvesconst/mt5-ftune-edu-qg-fr
+NHStudios/DialoGPT-small-jake
+kravchenko/uk-t5-compressed-gec
+simonnedved/codet5-large-v2
+huggingtweets/cpulisic_10-usmnt-zacksteffen_
+huggingtweets/zacksteffen_
+huggingtweets/andrewf301
+domenicrosati/question_converter-3b
+huggingtweets/usmnt-zacksteffen_
+huggingtweets/kanyewest-usmnt
+kravchenko/uk-mt5-gec
+huggingtweets/kanyewest-usmnt-zlisto
+BigSalmon/GPT2InformalToFormalLincoln42
+BigSalmon/MediumInformalToFormalLincoln4
+yangdong/t5-ni
+brennan-richards/gpt2-finetuned-academic-topics
+laituan245/t5-v1_1-small-caption2smiles
+laituan245/t5-v1_1-small-smiles2caption
+laituan245/t5-v1_1-base-caption2smiles
+laituan245/t5-v1_1-base-smiles2caption
+laituan245/t5-v1_1-large-caption2smiles
+laituan245/t5-v1_1-large-smiles2caption
+laituan245/t5-v1_1-small-smiles2caption-ft-from-pretrained-c4
+laituan245/t5-v1_1-small-caption2smiles-ft-from-pretrained-c4
+laituan245/t5-v1_1-small-caption2smiles-ft-from-pretrained-zinc
+laituan245/t5-v1_1-small-smiles2caption-ft-from-pretrained-zinc
+maesneako/gpt2-maptask-GF
+schorndorfer/distilgpt2-finetuned-wikitext2
+maesneako/gpt2-fr-space-paco-cheese
+maesneako/gpt2-fr-eos-paco-cheese
+maesneako/gpt2-fr-space-orfeo-cid-paco-cheese
+imxly/t5-copy
+imxly/t5-copy-summary
+maesneako/gpt2-fr-eos-orfeo-cid-paco-cheese
+fabiochiu/t5-base-medium-title-generation
+adityay1221/cat.5.32
+fabiochiu/t5-small-medium-title-generation
+masakhane/afrimt5_lug_en_news
+masakhane/afrimt5_en_lug_news
+masakhane/afribyt5_en_lug_news
+masakhane/afribyt5_lug_en_news
+masakhane/byt5_lug_en_news
+masakhane/byt5_en_lug_news
+masakhane/mt5_en_lug_news
+masakhane/mt5_lug_en_news
+ghabin/dystopian_romans
+alexjercan/codet5-base-buggy-code-repair
+benjamin/gpt2-wechsel-malagasy
+Shakerlicious/DialoGPT-small-raquelbot
+benjamin/gpt2-wechsel-uyghur
+benjamin/gpt2-wechsel-scottish-gaelic
+benjamin/gpt2-wechsel-sundanese
+tau/False_large_pmi_para0_sent1_span2_itTrue_sargmax_rrFalse_8_1024_0.15_1
+tau/False_large_pmi_paraNone_sentNone_span0_itTrue_sargmax_rrFalse_8_1024_0.15_1
+tau/False_large_random_para0_sent1_span2_itFalse_sargmax_rrFalse_8_1024_0.15_1
+tau/False_large_rouge_para0_sent1_span2_itTrue_sargmax_rrFalse_8_1024_0.15_1
+tau/False_large_t5_8_1024_0.15_1
+tau/False_large_random_paraNone_sentNone_span0_itFalse_sargmax_rrFalse_8_1024_0.15_1
+tau/False_large_t5_lm_8_1024_0.15_1
+tau/False_large_pmi_para0_sent1_span2_itFalse_sargmax_rrFalse_8_1024_0.15_1
+tau/False_large_pmi_para0_sent1_span2_itFalse_ssoftmax_rrFalse_8_1024_0.15_1
+tau/False_large_rouge_paraNone_sent0_spanNone_itFalse_sargmax_rrFalse_8_1024_0.15_1
+hugo/byt5-mono-en-v2
+annasham/DialoGPT-small-myneighborTotoro
+allenai/tk-instruct-11b-def
+malteos/gpt2-wechsel-german-ds-meg
+allenai/tk-instruct-11b-def-pos
+ekimz/t5_ttmodel
+huggingtweets/theovalpawffice
+CaptAdorable/RickBot
+eastmountaincode/duneGenerationNoUser
+huggingtweets/mikedolanvevo
+allenai/tk-instruct-11b-def-pos-neg-expl
+nizamudma/t5-base-finetuned-cnn-2
+guhuawuli/distilgpt2-finetuned-wikitext2
+yhavinga/t5-eff-large-8l-dutch-english-cased
+huggingtweets/justinsaas
+guhuawuli/gpt2-imdb
+huggingtweets/trancentrall
+allenai/tk-instruct-3b-def
+huggingtweets/finnegansreader
+davidsantiago1011/gpt2-small-spanish
+huggingtweets/csbible
+allenai/tk-instruct-3b-def-pos
+allenai/tk-instruct-3b-pos
+allenai/tk-instruct-3b-def-pos-neg
+allenai/tk-instruct-3b-def-pos-neg-expl
+allenai/mtk-instruct-3b-def-pos
+SSI/gpt-2sentence-bot
+VoltaicDaniel/distilgpt2-finetuned-wikitext2
+chainyo/t5-base-sede-txt2sql
+huggingtweets/murahokusai-tszzl
+huggingtweets/spacecatssgb
+huggingtweets/doodles
+huggingtweets/murahokusai
+camiloa2m/gpt2-spanish-finetuned-gpt2-spanish
+retextly/t5-small-finetuned-xsum
+huggingtweets/drmichaellevin
+Willow/DialoGPT-large-willow
+BigSalmon/InformalToFormalLincoln43
+huggingtweets/brutedeforce
+eliwill/distilgpt2-finetuned-final-project
+sam999/t5-end2end-questions-generation
+Jiexing/spider_relation_t5_3b-2624
+madatnlp/ke-t5-scratch
+Jiexing/spider_relation_t5_3b-3392
+Jiexing/sparc_add_coref_t5_3b-2432
+Jiexing/sparc_add_coref_and_depen_t5_3b-2304
+Jiexing/sparc_add_depen_t5_3b-1344
+eslamxm/mt5-base-finetuned-persian
+nestoralvaro/t5-small-finetuned-xsum
+Kabutopusu/DialoGPT-medium-NITWMae
+vinaykudari/t5-acled-ie-a
+lvwerra/gpt2-imdb-pos-v2
+nestoralvaro/mT5_multilingual_XLSum-finetuned-xsum
+eslamxm/mt5-base-finetuned-persian-finetuned-persian-arabic
+HarmlessTarget/DialoGPT-medium-Bender
+BigSalmon/InformalToFormalLincoln44
+huggingtweets/auto_nietzsche
+huggingtweets/computerforever
+soni69/DialoGPT-medium-holmes
+huggingtweets/malnote
+huggingtweets/jamesliao333
+eslamxm/mt5-base-arabic
+jeremyccollinsmpi/autotrain-inference_probability_2-840226804
+ml6team/keyphrase-generation-t5-small-openkp
+Jiexing/cosql_add_coref_t5_3b-1280
+captainswiftfox/DialoGPT-small-rick
+masakhane/afrimt5_en_pcm_news
+masakhane/afrimt5_pcm_en_news
+Jiexing/spider_relation_t5_3b-4160
+huggingtweets/schizo_freq
+uaritm/df_lik_n_mg_221
+mikeliou/test-gpt-seq512-ep10-bs64
+eslamxm/mt5-base-finetuned-urdu
+arjunpatel/distilgpt2-finetuned-wikitext2
+masakhane/afribyt5_pcm_en_news
+masakhane/afribyt5_en_pcm_news
+masakhane/byt5_en_pcm_news
+masakhane/byt5_pcm_en_news
+Sultannn/gpt2-ft-id-puisi
+masakhane/mt5_pcm_en_news
+masakhane/mt5_en_pcm_news
+masakhane/afrimt5_en_swa_news
+masakhane/afrimt5_swa_en_news
+masakhane/afribyt5_swa_en_news
+masakhane/afribyt5_en_swa_news
+masakhane/byt5_en_swa_news
+masakhane/byt5_swa_en_news
+masakhane/mt5_swa_en_news
+masakhane/mt5_en_swa_news
+huggingtweets/marcfriedrich7
+madatnlp/ket5-config-scratch
+huggingtweets/broductmanager
+huggingtweets/_avichalp_
+masakhane/afrimt5_en_yor_news
+masakhane/afrimt5_yor_en_news
+masakhane/afribyt5_yor_en_news
+masakhane/afribyt5_en_yor_news
+masakhane/byt5_en_yor_news
+masakhane/byt5_yor_en_news
+masakhane/mt5_yor_en_news
+masakhane/mt5_en_yor_news
+domenicrosati/QA2D-t5-small
+akozlo/con_gpt_med
+akozlo/lib_gpt_med
+masakhane/afrimt5_en_tsn_news
+masakhane/afrimt5_tsn_en_news
+masakhane/afribyt5_tsn_en_news
+masakhane/afribyt5_en_tsn_news
+masakhane/byt5_en_tsn_news
+masakhane/byt5_tsn_en_news
+masakhane/mt5_tsn_en_news
+masakhane/mt5_en_tsn_news
+domenicrosati/QA2D-t5-base
+BenasSabalys/gpt2-lithuanian-wiki
+KenP/mt5-small-finetuned-amazon-en-es
+KenP/codeparrot-ds
+eslamxm/mt5-base-finetuned-english
+UBC-NLP/turjuman
+madatnlp/mt5-kormath
+CEBaB/gpt2.CEBaB.sa.2-class.exclusive.seed_42
+CEBaB/gpt2.CEBaB.sa.3-class.exclusive.seed_42
+CEBaB/gpt2.CEBaB.sa.5-class.exclusive.seed_42
+CEBaB/gpt2.CEBaB.sa.2-class.exclusive.seed_66
+CEBaB/gpt2.CEBaB.sa.3-class.exclusive.seed_66
+CEBaB/gpt2.CEBaB.sa.5-class.exclusive.seed_66
+ablam/distilgpt2_fine_tuned_gcode
+huggingtweets/cdrsuperheroga1
+CEBaB/gpt2.CEBaB.sa.2-class.exclusive.seed_77
+CEBaB/gpt2.CEBaB.sa.3-class.exclusive.seed_77
+CEBaB/gpt2.CEBaB.sa.5-class.exclusive.seed_77
+CEBaB/gpt2.CEBaB.sa.2-class.exclusive.seed_88
+cocoshe/gpt2-chinese-gen-ads-by-keywords
+CEBaB/gpt2.CEBaB.sa.3-class.exclusive.seed_88
+CEBaB/gpt2.CEBaB.sa.5-class.exclusive.seed_88
+dreamerdeo/da-large
+dreamerdeo/da-xlarge
+CEBaB/gpt2.CEBaB.sa.2-class.exclusive.seed_99
+CEBaB/gpt2.CEBaB.sa.3-class.exclusive.seed_99
+CEBaB/gpt2.CEBaB.sa.5-class.exclusive.seed_99
+malteos/gpt2-xl-wechsel-german
+Elfsong/ArtQuest
+kathywu/DialoGPT-small-kathy
+huggingtweets/elonmusk-kimkardashian
+facebook/opt-125m
+facebook/opt-350m
+facebook/opt-1.3b
+facebook/opt-2.7b
+tau/False_large_pmi_para0_sent1_span2_itTrue_sargmax_rrFalse_8_1024_0.3_epoch1
+masakhane/afrimt5_en_twi_news
+masakhane/afrimt5_twi_en_news
+masakhane/afrimt5_zul_en_news
+masakhane/afrimt5_en_zul_news
+masakhane/afribyt5_twi_en_news
+masakhane/afribyt5_en_twi_news
+masakhane/afribyt5_en_zul_news
+masakhane/afribyt5_zul_en_news
+masakhane/byt5_twi_en_news
+masakhane/byt5_en_twi_news
+masakhane/byt5_en_zul_news
+masakhane/byt5_zul_en_news
+masakhane/mt5_twi_en_news
+masakhane/mt5_en_twi_news
+masakhane/mt5_zul_en_news
+masakhane/mt5_en_zul_news
+huggingtweets/alice_lbl-lotrbookquotes-theprincess_lbl
+wvangils/DistilGPT2-Beatles-Lyrics-finetuned
+huggingtweets/alice_lbl-lotrbookquotes
+SebastianS/mt5-finetuned-amazon-en-es-accelerate
+alk/mt5-small-mt5-small-finetuned-billsum-en-es
+CleveGreen/FieldClassifier_v3_gpt
+CleveGreen/JobClassifier_v3_gpt
+alk/mt5-small-finetuned-cnn_dailymail-en-es
+huggingtweets/nft_redlist
+eduardopds/mt5-small-finetuned-amazon-en-es
+Dizzykong/gpt2-large-quests
+eslamxm/mt5-base-finetuned-urdu-arabic
+guhuawuli/gpt2-poem_key_words
+withU/kogpt2-emotion-chatbot
+RonEliav/QA_discourse
+yogeshchandrasekharuni/t5-small-finetuned-xsum
+madatnlp/prefix-ket5-scratch
+VietAI/vit5-large-vietnews-summarization
+huggingtweets/_is_is_are-newscollected
+mybot/DialoGPT-medium-harrypotter
+Dizzykong/gpt2-large-quests-5
+Dedemg1988/DialoGPT-small-michaelscott
+alk/t5-small-finetuned-cnn_dailymail-en-es
+pedrobaiainin/DialoGPT-small-harrypotter
+kathywu/DialoGPT-medium-kathy
+tomhavy/t5-small-finetuned-spider
+eat-great-food/t5-efficient-tiny-d3st-t5-efficient-tiny
+shenyi/gpt2-wikitext2
+madatnlp/sk-kogptv2-kormath-causal
+peggyhuang/gpt2-qrecc
+eslamxm/mt5-base-finetuned-english-finetuned-english-arabic
+peggyhuang/t5-base-qrecc
+Dizzykong/gpt2-example
+SebastianS/codeparrot-ds
+SNCannon/DialoGPT-medium-merc
+SebastianS/codeparrot-ds-accelerate
+SSI/dirtybot4bot
+Metformin/T5model_medFineTune
+huggingtweets/vrsoloviev
+huggingtweets/dnouri
+ruiqi-zhong/t5proposer_0514
+THE-DDLM/DialoGPT-sebastian
+ruiqi-zhong/t5verifier_0514
+huggingtweets/spacex
+jtang9001/skynet_gpt2_1
+jtang9001/skynet_gpt2_2
+menglingbei/t5-small-finetuned-xsum
+prodm93/gpt2-kbkw-abstract-model-v1
+prodm93/t5-kbkw-abstract-model-v1
+fatirali/DialoGPT-medium-harrypotter
+Finnish-NLP/t5-small-nl24-casing-punctuation-correction
+TejasARathod/DialoGPT-medium-BatmanBot
+Zohar/distilgpt2-finetuned-negative-restaurant-reviews-clean
+huggingtweets/medvedevrussia
+loubnabnl/codeparrot-small-scale
+huggingtweets/dclblogger-loopifyyy
+nttoanh/t5vi-finetuned-en-to-vi
+prodm93/T5Dynamic_text_model_v1
+CEBaB/t5-base.CEBaB.sa.2-class.inclusive.seed_42
+CEBaB/t5-base.CEBaB.sa.3-class.inclusive.seed_42
+CEBaB/t5-base.CEBaB.sa.5-class.inclusive.seed_42
+CEBaB/t5-base.CEBaB.sa.2-class.inclusive.seed_66
+CEBaB/t5-base.CEBaB.sa.3-class.inclusive.seed_66
+CEBaB/t5-base.CEBaB.sa.5-class.inclusive.seed_66
+CEBaB/t5-base.CEBaB.sa.2-class.inclusive.seed_77
+CEBaB/t5-base.CEBaB.sa.3-class.inclusive.seed_77
+CEBaB/t5-base.CEBaB.sa.5-class.inclusive.seed_77
+CEBaB/t5-base.CEBaB.sa.2-class.inclusive.seed_88
+CEBaB/t5-base.CEBaB.sa.3-class.inclusive.seed_88
+CEBaB/t5-base.CEBaB.sa.5-class.inclusive.seed_88
+prodm93/T5Dynamic_title_model_v1
+CEBaB/t5-base.CEBaB.sa.2-class.inclusive.seed_99
+CEBaB/t5-base.CEBaB.sa.3-class.inclusive.seed_99
+CEBaB/t5-base.CEBaB.sa.5-class.inclusive.seed_99
+CEBaB/t5-base.CEBaB.sa.2-class.exclusive.seed_42
+CEBaB/t5-base.CEBaB.sa.3-class.exclusive.seed_42
+CEBaB/t5-base.CEBaB.sa.5-class.exclusive.seed_42
+CEBaB/t5-base.CEBaB.sa.2-class.exclusive.seed_66
+CEBaB/t5-base.CEBaB.sa.3-class.exclusive.seed_66
+CEBaB/t5-base.CEBaB.sa.5-class.exclusive.seed_66
+CEBaB/t5-base.CEBaB.sa.2-class.exclusive.seed_77
+CEBaB/t5-base.CEBaB.sa.3-class.exclusive.seed_77
+CEBaB/t5-base.CEBaB.sa.5-class.exclusive.seed_77
+CEBaB/t5-base.CEBaB.sa.2-class.exclusive.seed_88
+CEBaB/t5-base.CEBaB.sa.3-class.exclusive.seed_88
+CEBaB/t5-base.CEBaB.sa.5-class.exclusive.seed_88
+CEBaB/t5-base.CEBaB.sa.2-class.exclusive.seed_99
+CEBaB/t5-base.CEBaB.sa.3-class.exclusive.seed_99
+CEBaB/t5-base.CEBaB.sa.5-class.exclusive.seed_99
+CEBaB/t5-base.CEBaB.absa.inclusive.seed_42
+CEBaB/t5-base.CEBaB.absa.inclusive.seed_66
+CEBaB/t5-base.CEBaB.absa.inclusive.seed_77
+CEBaB/t5-base.CEBaB.absa.inclusive.seed_88
+CEBaB/t5-base.CEBaB.absa.inclusive.seed_99
+CEBaB/t5-base.CEBaB.absa.exclusive.seed_42
+CEBaB/t5-base.CEBaB.absa.exclusive.seed_66
+CEBaB/t5-base.CEBaB.absa.exclusive.seed_77
+CEBaB/t5-base.CEBaB.absa.exclusive.seed_88
+CEBaB/t5-base.CEBaB.absa.exclusive.seed_99
+Gnosky/distilgpt2-finetuned-wikitext2
+SreyanG-NVIDIA/distilgpt2-finetuned-wikitext2
+paust/pko-t5-small
+anes-saidi/aragpt2-base-finetuned-wikitext2
+SreyanG-NVIDIA/gpt2-wikitext2
+paust/pko-t5-base
+paust/pko-t5-large
+Varick/dialo-jarvis
+ankitkupadhyay/mt5-small-finetuned-multilingual-xlsum
+Robinsd/HarryBot
+Mathilda/T5-paraphrasing
+echarlaix/t5-small-onnx
+peggyhuang/gpt2-canard
+evolvingstuff/gpt2-wikitext2
+dipstheman/DialoGPT-small-humanconversation
+yelpfeast/byt5-base-english-ocr-correction
+dipstheman/DialoGPT-small-humanconversationpart
+huggingtweets/whoisaddison
+LinkTheSinger/DialoGPT-small-Kannav4
+madatnlp/skgpt-base-kormath
+MariaZafar/distilgpt2-finetuned-wikitext2
+huggingtweets/cryptanime
+Robinsd/HarryBot4
+pietrolesci/t5v1_1-large-mnli
+SomeRandomGuy/tony
+tau/False_large_pmi_para0_sent1_span2_itTrue_sargmax_rrFalse_7_1024_0.3_best
+ankitkupadhyay/mt5-small-finetuned-multilingual-xlsum-new
+chanind/frame-semantic-transformer-base
+MrBananaHuman/prompt_gpt2
+Harsit/mt5-small-finetuned-multilingual-xlsum-new
+Mathilda/T5-para-Quora
+tau/False_large_pmi_para0_sent1_span2_itTrue_sargmax_rrFalse_8_1024_0.3_best
+huggingtweets/gduvivier-guilhermeboulos-ptbrasil
+huggingtweets/lulaoficial-ptbrasil
+Dizzykong/gpt2-medium-commands
+Tazar/distilgpt2-finetuned-tazar
+CEBaB/gpt2.CEBaB.absa.exclusive.seed_42
+CEBaB/gpt2.CEBaB.absa.exclusive.seed_66
+CEBaB/gpt2.CEBaB.absa.exclusive.seed_77
+CEBaB/gpt2.CEBaB.absa.exclusive.seed_88
+CEBaB/gpt2.CEBaB.absa.exclusive.seed_99
+marcoperez/DialoGPT-small-rickandmorty
+Dizzykong/gpt2-medium-commands-chunked
+CEBaB/gpt2.CEBaB.absa.inclusive.seed_42
+CEBaB/gpt2.CEBaB.absa.inclusive.seed_66
+CEBaB/gpt2.CEBaB.absa.inclusive.seed_77
+CEBaB/gpt2.CEBaB.absa.inclusive.seed_88
+CEBaB/gpt2.CEBaB.absa.inclusive.seed_99
+TrevorAshby/WoW-1hr
+MariaZafar/gpt2-finetuned-wikitext2
+Rivenatte/summarize_ruby_codet5_base
+ibm/qcpg-captions
+ibm/qcpg-questions
+ibm/qcpg-sentences
+Dizzykong/gpt2-medium-chunked-eos
+BigSalmon/InformalToFormalLincoln45
+chanind/frame-semantic-transformer-small
+huggingtweets/barterblex
+huggingtweets/lightcrypto-sergeynazarov
+charsiu/g2p_multilingual_mT5_small
+charsiu/g2p_multilingual_byT5_small
+charsiu/g2p_multilingual_byT5_tiny_16_layers
+charsiu/g2p_multilingual_byT5_tiny_12_layers
+charsiu/g2p_multilingual_byT5_tiny_8_layers
+GiordanoB/mT5_multilingual_XLSum-finetuned-summarization
+sarakolding/daT5-base
+LaplacesDemon/t5-small-finetuned-xsum
+fabiochiu/t5-base-tag-generation
+wooglee/gpt2-imdb-pos-v2
+Boglinger/mt5-small-klex
+marksverdhei/unifiedqa-large-reddit-syac
+huggingtweets/pmadhavv
+okwach/mawaidhaChatbot
+Boglinger/mt5-small-german-finetune-mlsum-klex
+bigscience/bloom-560m
+bigscience/bloom-1b1
+bigscience/bloom-1b7
+bigscience/bloom-3b
+bigscience/bloom-7b1
+bigscience/bloom
+aiassociates/t5-small-grammar-correction-german
+Boglinger/mt5-small-german-finetune-mlsum-klexv2
+jonfrank/mt5-small-finetuned-amazon-en-es
+pszemraj/opt-350m-email-generation
+zuu/grammar-error-correcter
+LooksLikeIveLost/DialoGPT-medium-me
+hugo/byt5-mono-fr-v1
+hugo/byt5-mono-ja-v1
+okwach/mawaidhaChatbot2
+huggingtweets/vgdunkey
+utkarshsaboo45/ClearlyDefinedLicenseSummarizer
+prodm93/t5_sum1_modelchkpnt1
+thebyy/DialoGPT-small-mortyisarick
+huggingtweets/connorhvnsen
+umanlp/mt5-mlm-16
+umanlp/mt5-mlm-wiki14
+Rostlab/prot_t5_xl_half_uniref50-enc
+huggingtweets/welcomeunknown
+valurank/t5-paraphraser
+allenai/tk-instruct-large-def-pos
+allenai/tk-instruct-base-def-pos
+allenai/tk-instruct-small-def-pos
+rongina/DialoGPT-small-cartman
+marksverdhei/t5-large-reddit-syac
+fransoa/arrombado-dms
+huggingtweets/slayersiu
+ey211/mt5-base-finetuned-dimensions-polisci
+Dizzykong/gpt2-medium-final
+huggingtweets/mrquinnzard
+huggingtweets/darcywubot
+Dizzykong/gpt2-medium-recipes
+huggingtweets/annebottz
+LanglAdr/t5-base-medium-title-generation
+north/t5_small_NCC_lm
+north/t5_small_NCC_modern
+north/t5_small_NCC
+north/t5_base_NCC_lm
+north/t5_base_NCC_modern
+north/t5_base_NCC
+north/t5_large_NCC_lm
+north/t5_large_NCC_modern
+north/t5_large_NCC
+north/t5_xl_NCC_lm
+north/t5_xl_NCC_modern
+north/t5_xl_NCC
+north/t5_xxl_NCC_lm
+north/t5_xxl_NCC
+ThePixOne/gptcb
+assamim/mt5-small-indonesian
+north/byt5_base_NCC
+sanjay-m1/informal-to-formal
+Dizzykong/gpt2-large-final
+prodm93/rn_gpt2_customdata_model.json
+sanjay-m1/active-to-passive
+sanjay-m1/passive-to-active
+huggingtweets/morrowind_rtf
+ionite/DialoGPT-medium-MarkAI
+prodm93/T5Dynamic_text_model_v2
+prodm93/T5Dynamic_title_model_v2
+prodm93/t5-rn-abstract-model-v1
+prodm93/gpt2-sum-abstract-model-v1
+prodm93/t5-sum-abstract-model-v1
+eslamxm/mt5-base-finetuned-arur
+SamuelMiller/qa_squad
+ddrmaster1000/DialoGPT-medium-rick
+PeritusDux/DialoGPT-small-rick
+JeffreyLau/SikuGPT2-v1
+JeffreyLau/SikuGPT2-poem
+SamuelMiller/sum_sum
+d4niel92/t5-reddit
+sanjay-m1/grammar-corrector
+aspis/gpt2-genre-story-generation
+kirillka/rut5-small-finetuned-gen-description-2
+eslamxm/mt5-base-finetuned-arfa
+mrm8488/t5-small-finetuned-squad-qgen
+jppaolim/v35_Baseline
+spital/gpt2-small-czech-cs
+prodm93/rn_gpt2_customdata_model
+prodm93/gpt2_rn_ep2_model
+HomerChatbot/HomerSimpson
+sumedh/t5-base-amazonreviews
+Dizzykong/Gusteau
+IDEA-CCNL/Wenzhong-GPT2-110M
+SamuelMiller/lil_sum_sum
+GiordanoB/mT5_multilingual_XLSum-finetuned-summarization-V2
+eslamxm/mt5-base-finetuned-ar-sp
+prodm93/gpt2-rn-abstract-model-v1
+SamuelMiller/lil_sumsum
+t8oo/DialoGPT-small-zeni
+csebuetnlp/banglat5
+t8oo/DialoGPT-small-zenigata
+NlpHUST/gpt2-vietnamese
+mismayil/comet-gpt2-ai2
+jimypbr/t5-base-test
+tursunali/bpt-2
+birdringxD/SSAP_ckpt
+tursunali/bpt2
+fabianmmueller/deep-haiku-gpt-2
+strombergnlp/dant5-small
+jeremyccollinsmpi/autotrain-inference_probability_3-900329401
+transformertroy/t5-small-finetuned-tds
+sexomq/DialoGPT-medium-TeoBot
+strombergnlp/dant5-large
+BigSalmon/InformalToFormalLincoln46
+AntoDono/DialoGPT-Bopy-Patch1
+huggingtweets/elonmusk-fchollet-steak_umm
+stephenleejm/T5_yoda_translator
+teppei727/mt5-small-finetuned-amazon-en-es
+arjunpatel/distilgpt2-finetuned-pokemon-moves
+Char135/DialoGPT-medium-sebastian
+HomerChatbot/DialoGPT-small-HomerSimpson
+madatnlp/codet5-kormath
+oliverguhr/spelling-correction-german-base
+EddieChen372/distilGPT2-finetuned-jest
+Clinton/gpt2-finetuned-wikitext2
+trev/Twilight-Sparkle
+huggingtweets/respctclub-utsavsingla
+mrm8488/t5-small-finetuned-qgsquad-qgen
+castorini/afriteva_small
+gigikenneth/family-guy-bot
+castorini/afriteva_base
+castorini/afriteva_large
+huggingtweets/bladeecity-jerma985
+AntoDono/DialoGPT-Bopy-Patch2
+ulises801/DialoGPT-medium-rick
+fujuta/DialoGPT-medium-HarryPotter
+fujuta/DialoGPT-medium-RonWeasley
+fujuta/DialoGPT-medium-HermioneGrander
+ChrisKalahiki/mt5-small-finetuned-amazon-en-es
+AfnanAl/mT5small-ArabicSummary
+jihae/kogpt2news
+PontifexMaximus/mt5-small-finetuned-fa-to-en
+orzhan/rut5-base-detox-v2
+madatnlp/trinity-kormath
+usama98/arabic_poem_gen
+deepparag/Aeona-Beta
+castorini/monot5-small-msmarco-10k
+castorini/monot5-small-msmarco-100k
+huggingtweets/sickziii
+MadFace/t5-arxiv
+HomerChatbot/DialoGPT-small-homersimpsonbot
+madatnlp/not_class_trinity-kormath
+sayanmandal/t5-small_6_3-hi_en-to-en
+chanind/frame-semantic-transformer-large
+mynti/plainly-v1
+Kashni/damontvd
+redcy/FrasierBotv1
+Gergoe/t5-small-booksum-finetuned-booksum-test
+ElMuchoDingDong/DialoGPT-medium-AudreyHepburn
+andidu/paraphrase-ru
+prodm93/GPT2Dynamic_text_model_v1
+prodm93/GPT2Dynamic_title_model_v1
+natdon/DialoGPT_Michael_Scott
+ElMuchoDingDong/DialoGPT-medium-AudreyHepburn_v3
+kurapy/t5-small-finetuned-xsum
+deathmite/DiabloGPT-small-potaru
+huggingtweets/terrybroad
+huggingtweets/mit_istnews
+huggingtweets/isaac_a_arthur
+huggingtweets/campbellclaret
+huggingtweets/dlputin
+huggingtweets/meliksahtas
+huggingtweets/david_lynch
+huggingtweets/donhertzfeldt
+huggingtweets/ancientorigins
+huggingtweets/lolesports
+huggingtweets/parishilton
+huggingtweets/alejodorowsky
+huggingtweets/mrbean
+huggingtweets/neinquarterly
+huggingtweets/emilythornberry
+huggingtweets/liwenliang
+lmqg/mt5-base-jaquad-qg
+huggingtweets/eyeofjackiechan
+allenai/mtk-instruct-11b-def-pos
+huggingtweets/rumi_quote
+sanbohork/Caso3_T5
+ElMuchoDingDong/DialoGPT-medium-AudreyHepburn_v4
+DaBaap/Chat-Bot-Batman
+huggingtweets/algodtrading
+huggingtweets/0xgaut
+Julietheg/checkpoint-1000
+sanbohork/t5
+edharepe/T5_generacion_titulos
+LinaR/t5-base-medium-title-generation
+autoevaluate/summarization
+badlawyer/DialoGPT-medium-sherlock-bot
+Jefferson/PruebaPLN
+huggingtweets/vox_akuma
+JuanForeroNeme/ES_UC_MODELO_NPL_E3
+JuanForeroNeme/ES_UC_MODELO_NPL_E3_V0
+voidful/phoneme_byt5_g2p_v1
+JuanForeroNeme/ES_UC_MODELO_NPL_E3_V1
+JuanForeroNeme/ES_UC_MODELO_NPL_E3_V2
+huggingtweets/protectandwag
+Anjoe/german-poetry-gpt2
+thanhchauns2/DialoGPT-medium-Luna
+BigSalmon/InformalToFormalLincoln47
+BigSalmon/InformalToFormalLincoln48
+bigmorning/distilgpt2-lektay2-firstpos
+bigmorning/distilgpt2-lektay2-secondpos
+Flem/DialoGPT-medium-alastor
+bigscience-data/sgpt-bloom-1b7-nli
+north/demo-nynorsk-base
+north/demo-deuncaser-base
+inkoziev/rugpt_interpreter
+keans/DialoGPT-small-highjacker
+uygarkurt/gpt2-poet
+ahmeddbahaa/mT5_multilingual_XLSum-finetuned-fa
+jadkheirallah/DialoGPT-med-wie
+jppaolim/v36_Naive
+jayklaws0606/dgpt-small-jaybot
+GiordanoB/ptt5-base-portuguese-vocab-summarizacao-PTT-BR
+CodeMaestro/DialoGPT-small-TChalla
+hugo/byt5-mono-fi-v1
+AbhilashDatta/T5_qgen-squad-marco
+AbhilashDatta/T5_qgen-squad_v1
+PrimeQA/t5-base-table-question-generator
+huggingtweets/ultrafungi
+cewinharhar/iceCream
+eslamxm/mT5_multilingual_XLSum-finetuned-en-cnn
+Jiexing/sparc_add_coref_t5_3b_order_0514_ckpt-4224
+Jiexing/sparc_add_coref_t5_3b_order_0514_ckpt-5696
+huggingtweets/erinkhoo
+sarakolding/daT5-summariser
+jppaolim/v37_Best2Epoch
+huggingtweets/billieeilish-nakedbibii-unjaded_jade
+huggingtweets/sun_soony-unjaded_jade-veganhollyg
+UBC-NLP/ptsm_t5_paraphraser
+stfuowned/rickfinal
+BigSalmon/InformalToFormalLincoln49
+DuskSigma/DialogGPTHomerSimpson
+AbhilashDatta/T5_qgen-squad_v2
+jamie613/mt5_fill_puntuation
+Jiexing/cosql_add_coref_t5_3b_order_0519_ckpt-576
+Jiexing/cosql_add_coref_t5_3b_order_0519_ckpt-2624
+hireddivas/dialoGPT-small-sonic2
+madatnlp/class_provided_trinity-kormath
+N0NAne/DialoGPT-small-harrypotter
+GiordanoB/mt5-base-finetuned-summarization-V2
+huggingtweets/skeptikons
+huggingtweets/hellokitty
+huggingtweets/xvbones
+huggingtweets/binance-dydx-magiceden
+huggingtweets/magiceden
+huggingtweets/botphilosophyq-philosophical_9-philosophy_life
+tzq0301/mT5-news-title-generation
+Dizzykong/test-recipe
+huggingtweets/gretathunberg
+Dizzykong/test-charles-dickens
+jppaolim/v39_Best20Epoch
+GiordanoB/mT5_multilingual_XLSum-sumarizacao-PTBR
+erickfm/t5-small-finetuned-bias
+jiseong/mt5-small-finetuned-news
+jiseong/mt5-small-finetuned-news-ab
+tau/False_large_pmi_para0_sent1_span2_itTrue_sargmax_rrFalse_8_1024_0.3_seed2_epoch1
+tau/False_large_pmi_para0_sent1_span2_itTrue_sargmax_rrFalse_8_1024_0.3_seed1_epoch1
+erickfm/t5-base-finetuned-bias
+tau/False_large_pmi_para0_sent1_span2_itTrue_sargmax_rrFalse_7_1024_0.3_seed1_epoch1
+tau/False_large_pmi_para0_sent1_span2_itTrue_sargmax_rrFalse_7_1024_0.3_seed2_epoch1
+STAM/agricore
+memyprokotow/rut5-REBEL-base
+devprisha/DialoGPT-small-cassandroid
+VanessaSchenkel/unicamp-finetuned-en-to-pt-dataset-ted
+huggingtweets/disgustingact84-kickswish
+huggingtweets/disgustingact84-kickswish-managertactical
+lmqg/t5-large-subjqa-restaurants-qg
+lmqg/t5-large-subjqa-books-qg
+huggingtweets/mls_buzz-mlstransfers-transfersmls
+lmqg/t5-large-subjqa-tripadvisor-qg
+lmqg/t5-large-subjqa-grocery-qg
+lmqg/t5-large-subjqa-movies-qg
+lmqg/t5-large-subjqa-electronics-qg
+lmqg/t5-base-subjqa-books-qg
+lmqg/t5-base-subjqa-restaurants-qg
+lmqg/t5-small-subjqa-restaurants-qg
+lmqg/t5-base-subjqa-electronics-qg
+lmqg/t5-base-subjqa-tripadvisor-qg
+lmqg/t5-small-subjqa-books-qg
+lmqg/t5-small-subjqa-grocery-qg
+lmqg/t5-small-subjqa-movies-qg
+lmqg/t5-base-subjqa-grocery-qg
+lmqg/t5-base-subjqa-movies-qg
+lmqg/t5-small-subjqa-electronics-qg
+lmqg/t5-small-subjqa-tripadvisor-qg
+MadFace/t5-cnn
+bbelgodere/codeparrot
+wapari/KoGPT-trinity-tales
+SSI/Godless_GPT2_Bot
+wawaup/MengziT5-Comment
+erickfm/t5-large-finetuned-bias-m
+huggingtweets/contextmemlab-jeremyrmanning
+huggingtweets/paxt0n4
+huggingtweets/eurovision
+huggingtweets/esfinn
+huggingtweets/gaytimes-grindr
+huggingtweets/eurunuela
+huggingtweets/claregrall
+huggingtweets/willsavino
+wvangils/DistilGPT2-Beatles-Lyrics-finetuned-newlyrics
+huggingtweets/caballerogaudes
+huggingtweets/quora-reddit
+huggingtweets/vborghesani
+huggingtweets/ppinheirochagas
+Bistolero/nl_one_ep
+huggingtweets/rauschermri
+huggingtweets/davemomi
+etmckinley/BOTHALTEROUT
+erickfm/t5-large-finetuned-bias
+huggingtweets/mrikasper
+huggingtweets/the_dealersh1p
+huggingtweets/marazack26
+huggingtweets/joanacspinto
+huggingtweets/chewschaper
+hananajiyya/mt5-small-summarization
+DVillada/T5_fine_tunning_NLP_test
+madatnlp/torch-trinity
+lewtun/t5-small-finetuned-arxiv
+kleinay/qasrl-seq2seq-model
+huggingtweets/mundodeportivo
+madatnlp/not_class_trinity-kormath-128
+kleinay/qanom-seq2seq-model-order-invariant
+Bistolero/en_ge_20_20
+PontifexMaximus/mt5-small-parsinlu-opus-translation_fa_en-finetuned-fa-to-en
+jppaolim/v47_Move2PT
+huggingtweets/washirerpadvice
+wvangils/GPT2-Beatles-Lyrics-finetuned-newlyrics
+huggingtweets/calamitiddy
+malmarjeh/t5-arabic-text-summarization
+jppaolim/v48_GPT2Medium_PT
+Worldman/t5_70_articles
+clhuang/t5-hotel-review-sentiment
+sayanmandal/t5-small_6_3-hinglish
+juancavallotti/t5-grammar-corruption
+santiviquez/mt5-small-finetuned-samsum-en
+huggingtweets/ww_bokudyo
+huggingtweets/katieoneuro
+ClassCat/gpt2-base-japanese-v2
+LinaR/Prediccion_titulos
+ssantanag/pasajes_de_la_biblia
+Yama/yamavi
+bubblecookie/samsum_trained_t5_model
+newlife/AlQgen
+newlife/openq-generator
+mezes/my_awsome_model
+mezes/my_awsome_model_epoch_3
+psyche/KoT5
+huggingtweets/orc_nft
+mgfrantz/distilgpt2-finetuned-reddit-tifu
+huggingtweets/centraldamiku
+huggingtweets/tomcooper26-tomncooper
+sayanmandal/t5-small_6_3-en-hi_en_LinCE
+huggingtweets/thundering165
+juancavallotti/t5-small-gec
+SmartPy/mt5-small-finetuned-amazon-en-es
+nestoralvaro/mT5_multilingual_XLSum-finetuned-xsum-xsum
+huggingtweets/cboldisor
+nestoralvaro/mT5_multilingual_XLSum-finetuned-xsum-mlsum
+Cirilaron/DialoGPT-medium-raiden
+jppaolim/v52_Large
+juancavallotti/t5-base-gec
+BlackSamorez/rudialogpt3_medium_based_on_gpt2_2ch
+psyche/KoT5-paraphrase-generation
+lmqg/mt5-small-dequad-qg
+jppaolim/v53_Large_AdaMW
+rg089/gpt2_mwp
+lmqg/mt5-small-dequad-qg-ae
+huggingtweets/philwornath
+erfangc/mt5-small-finetuned-amazon-en-es
+sayanmandal/t5-small_6_3-en-hi_en_bt
+Bistolero/nl_GA_32b
+EmileEsmaili/gpt2-p4k
+nestoralvaro/mT5_multilingual_XLSum-finetuned-xsum-mlsum___summary_text
+Bistolero/german_2EP
+jppaolim/v54_Large_AdaMW
+Nehc/AGIRussia
+Bistolero/ge_nl_64B_25K
+huggingtweets/cz_binance
+victorlifan/autotrain-song_title_generate-939531516
+lmqg/mt5-small-itquad-qg
+juancavallotti/t5-grammar-corruption-edits
+jppaolim/v55_Large_2E
+erfangc/mt5-small-sandbox1
+lucataco/DialogGPT-med-Rick
+PontifexMaximus/mt5-base-parsinlu-opus-translation_fa_en-finetuned-fa-to-en
+lmqg/mt5-small-koquad-qg
+jppaolim/v56_Large_2E
+sayanmandal/t5-small_6_3-en-hi_en_LinCE_bt
+huggingtweets/byelihoff
+huggingtweets/bigmanbakar
+huggingtweets/briangrimmett
+lmqg/mt5-small-esquad-qg
+VRT/mT5_initial
+logoyazilim/mt5-logo-qg-qa-turkish
+huggingtweets/dkostanjsak-nonewthing
+huggingtweets/aksumfootball-geirjordet-slawekmorawski
+sayanmandal/t5-small_6_3-en-hi_en__noBT
+huggingtweets/jeffwhou
+huggingtweets/mattcocco
+huggingtweets/nonewthing
+huggingtweets/russellriesjr
+nestoralvaro/mt5-base-finetuned-xsum-mlsum___summary_text_google_mt5_base
+huggingtweets/mcbrideace-sorarescp-thedonofsorare
+jppaolim/v57_Large_3E
+nestoralvaro/mt5-small-finetuned-google_small_for_summarization_TF
+Stratum/DialoGPT-small-funhouse
+lmqg/mt5-small-ruquad-qg
+huggingtweets/hopedavistweets
+huggingtweets/heylookaturtle
+huggingtweets/sofiaazeman
+BigSalmon/InformalToFormalLincoln50
+huggingtweets/sophiadonis10
+huggingtweets/ryang73
+twieland/VN_ja-en_mt5_small
+muchad/idt5-base
+SmartPy/fine-tuned-t5-small-accelerate
+jppaolim/v58_Large_2E
+eunsour/en-ko-transliterator
+nestoralvaro/mt5-base-finetuned-xsum-mlsum___topic_text_google_mt5_base
+ziq/depression_suggestion
+spy24/autotrain-expand-parrot-956131825
+nestoralvaro/mt5-base-finetuned-xsum-data_prep_2021_12_26___t55_403.csv___topic_text_google_mt5_base
+giolisandro/t5-small-finetuned-en-to-ro
+huggingtweets/aoc-itsjefftiedrich-shaun_vids
+jppaolim/v59_Large_2E
+josh-oo/german-gpt2-easy
+lucataco/DialoGPT-medium-rafa
+huggingtweets/arthur_rimbaud
+gloomyworm/DialoGPT-small-ortho
+santiviquez/t5-small-finetuned-samsum-en
+huggingtweets/mizefian
+kozlovtsev/DialoGPT-medium-harrypotter
+nestoralvaro/mt5-base-finetuned-xsum-data_prep_2021_12_26___t22027_162754.csv___topic_text_google_mt5_base
+Stratum/Funhouse-small60k
+huggingtweets/jeanswayy
+huggingtweets/irodori7
+jppaolim/v60_Large_2E
+Anjoe/kant-gpt2
+vaibhavagg303/T5-test
+mezes/finetuned-mt5
+huggingtweets/jpegmafia
+huggingtweets/bladeecity-lil_icebunny
+huggingtweets/0pn-lil_icebunny
+lindsayng/t5-base-lindsaytest-bias
+huggingtweets/dwr-elonmusk-maccaw
+jppaolim/v61_Large_2E
+lmqg/mt5-small-koquad-qg-ae
+twieland/VN_ja-en_byt5
+twieland/VN_ja-en_byt5_small
+huggingtweets/_pancagkes
+huggingtweets/benny_thejet_11
+IDEA-CCNL/Wenzhong2.0-GPT2-3.5B-chinese
+huggingtweets/vufewequ
+lmqg/mt5-small-esquad-qg-ae
+chanifrusydi/t5-dialogue-summarization
+huggingtweets/gnu_amir
+vaibhavagg303/T5-test2
+huggingtweets/qiamast
+nestoralvaro/mt5-base-finetuned-xsum-data_prep_2021_12_26___t1_162754.csv___topic_text_google_mt5_base
+lindsayng/t5-base-base-fulltrainingset-bias
+IDEA-CCNL/Randeng-T5-77M
+bubblecookie/t5-small-finetuned-cnndm-samsum
+jppaolim/v62_Large_2E
+huggingtweets/conspiracymill
+oftshsl/t5_ua_gec
+ehcalabres/distilgpt2-abc-irish-music-generation
+tzq0301/T5-Pegasus-news-title-generation
+IDEA-CCNL/Randeng-T5-784M
+ahmeddbahaa/mT5_multilingual_XLSum-finetuned-en-cnn
+huggingtweets/elukkaj
+assamim/mt5-pukulenam-summarization
+ahmeddbahaa/mT5_multilingual_XLSum-finetuned-fa-finetuned-ar
+huggingtweets/ripvillage
+chido/vggAI-offlinechat
+huggingtweets/makimasdoggy
+nestoralvaro/mt5-base-finetuned-xsum-data_prep_2021_12_26___t2981_22026.csv___topic_text_google_mt5_base
+huggingtweets/kentcdodds-richardbranson-sikiraamer
+DancingIguana/codeparrot-ds
+huggingtweets/mephytis
+huggingtweets/verizon
+huggingtweets/beepunz
+huggingtweets/oddapt
+huggingartists/headie-one
+huggingtweets/killthenoise
+huggingtweets/itsnovaherev2
+thaonh/vietnews-summarization
+huggingtweets/usao926
+nestoralvaro/mt5-base-finetuned-xsum-data_prep_2021_12_26___t8_54.csv___topic_text_google_mt5_base
+nestoralvaro/mt5-base-finetuned-xsum-data_prep_2021_12_26___t404_2980.csv___topic_text_google_mt5_base
+saitishmukhametov/ruGTP2-P
+santiviquez/ssr-base-finetuned-samsum-en
+rifkat/GPTuz
+huggingtweets/osanseviero
+huggingtweets/aylesim
+huggingtweets/politifact
+Cirilaron/DialoGPT-medium-jetstreamsam
+huggingtweets/bbclaurakt
+huggingtweets/zaidalyafeai
+wvangils/GPT-Medium-Beatles-Lyrics-finetuned-newlyrics
+huggingtweets/elrichmc
+huggingtweets/mrbeast
+huggingtweets/sorcehri
+huggingtweets/medscape
+Anjoe/german-poetry-gpt2-large
+huggingtweets/midudev
+lak/poem
+ajsmith201/t5-small-finetuned-bias-267d8789
+lak/poem_project_1
+lak/poem_project_2
+lak/poem_project_3
+GonzoJurezz/gpt2-horo
+lucataco/DialoGPT-medium-omar
+KES/caribe-capitalise
+nestoralvaro/mt5-base-finetuned-xsum-data_prep_2021_12_26___t1_7.csv___topic_text_google_mt5_base
+lucataco/DialoGPT-medium-milo
+huggingtweets/artificialbuttr
+huggingtweets/wick_is_tired
+Wikram/Legal-key-to-text
+BigSalmon/InformalToFormalLincoln51
+huggingtweets/burkevillemama
+huggingtweets/wickdedaccount
+huggingtweets/loganpaul
+ahmeddbahaa/mt5-base-finetuned-wikilingua-ar
+ahmeddbahaa/mT5_multilingual_XLSum-finetuned-wikilingua-ar
+ajsmith201/t5-large-finetuned-bias-2e10ce74
+ajsmith201/t5-small-finetuned-bias-72bc782c
+huggingtweets/mcdonalds
+huggingtweets/macarena_olona
+bubblecookie/t5-small-finetuned-cnndm_trained
+huggingtweets/ralee85
+BettyFei/t5-small-finetuned-xsum
+huggingtweets/atrioc
+Jayaprakash/Grammar_correction
+assamim/t5-small-english
+lindsayng/t5-base-allwnc-4epoch-bias-3292d5c9
+becher/t5-small-finetuned-arxiv
+daedalus2003/HouseBot
+ajsmith201/t5-base-finetuned-bias-99c3c657
+juancopi81/mt5-small-finetuned-amazon-en-es
+AnyaSchen/rugpt3_pushkin
+ahmeddbahaa/t5-arabic-base-finetuned-wikilingua-ar
+huggingtweets/malzliebchen
+huggingtweets/smallmutuals
+huggingtweets/jana_aych_ess
+huggingtweets/ninjasexparty
+huggingtweets/boopysaur
+huggingtweets/jedwill1999
+huggingtweets/theanything_bot
+huggingtweets/froliki2108
+huggingtweets/tonebot_
+huggingtweets/yomancuso
+ahmeddbahaa/t5-arabic-base-finetuned-xlsum-ar
+huggingtweets/waffle_64
+SallyXue/DialoGPT-small-harrypotter
+huggingtweets/gustholomulers
+huggingtweets/dekotale
+huggingtweets/adrianramy
+huggingtweets/nosuba_13
+lindsayng/t5-base-fullwnc-epoch-4e91e125
+evangeloc/t5-small-finetuned-xsum
+huggingtweets/elonmusk-iamjohnoliver-neiltyson
+huggingtweets/mdoukmas
+huggingtweets/rshowerthoughts-stephenking
+huggingtweets/conanobrien-mikemancini-wendymolyneux
+ahmeddbahaa/mT5_multilingual_XLSum-finetune-ar-xlsum
+huggingtweets/elonmusk-rshowerthoughts-stephenking
+ahmeddbahaa/mt5-base-finetune-ar-xlsum
+DancingIguana/music-generation
+AntoDono/DialoGPT-Bopy-Alpha
+huggingtweets/laserboat999
+huggingtweets/cancer_blood69
+lindsayng/t5-base-fullwnc-5epoch-31e6b1e1
+hckhck/buda_learning
+spuun/kekbot-mini
+huggingtweets/tayplaysgaymes
+Averium/DialoGPT-medium-TailsBot
+hangyulmd/t5-squad
+donmaclean/dfm_test
+huggingtweets/bosstjanz
+nestoralvaro/mt5-base-finetuned-xsum-RAW_data_prep_2021_12_26___t22027_162754.csv__google_mt5_base
+nestoralvaro/mt5-base-finetuned-xsum-RAW_data_prep_2021_12_26___t55_403.csv__google_mt5_base
+huggingtweets/manfightdragon
+kravchenko/uk-mt5-small
+huggingtweets/eitapau
+kravchenko/uk-mt5-large
+lindsayng/t5-base-fullwnc-5epoch2-2dc8dc72
+evangeloc/t5-small-finetuned-xsum_3epoch_batch8
+huggingtweets/warriors
+ahmeddbahaa/AraT5-base-finetune-ar-xlsum
+nlokam99/ada_sample
+huggingtweets/dodecahedra
+nlokam99/ada_sample_2
+nlokam99/ada_sample_3
+nlokam/adanimals_V1
+huggingtweets/pandershirts
+spuun/kekbot-beta-4-medium
+huggingtweets/gronkh
+lmqg/mt5-small-frquad-qg
+huggingtweets/liebdog1224
+lmqg/mt5-small-ruquad-qg-ae
+hckhck/AI_Education
+huggingtweets/145gomez
+huggingtweets/elonmusk-jack
+huggingtweets/fbinegotiator
+nestoralvaro/mt5-base-finetuned-xsum-RAW_data_prep_2021_12_26___t22027_162754.csv__g_mt5_base_L5
+huggingtweets/demondicekaren
+huggingtweets/ruinsman
+lmqg/mt5-small-itquad-qg-ae
+lmqg/mt5-small-frquad-qg-ae
+quirkys/DialoGPT-small-harrypotter
+crumb/gpt2-regular-large
+lindsayng/t5-base-base-sweep-b3acbf3b
+huggingtweets/salgotrader
+huggingtweets/egbertchannel
+kravchenko/uk-mt5-small-gec
+kravchenko/uk-mt5-base-gec
+kravchenko/uk-mt5-large-gec
+nestoralvaro/mt5-base-finetuned-xsum-RAW_data_prep_2021_12_26___t22027_162754.csv__g_mt5_base_L2
+Fdu4e/oryzhach
+eslamxm/AraT5-base-finetune-ar-wikilingua
+eslamxm/mt5-base-finetuned-en-cnn
+Anjoe/kant-gpt2-large
+huggingtweets/honiemun
+huggingtweets/horse_js
+ahmeddbahaa/mt5-base-finetuned-fa
+markofhope/DialoGPT-medium-HarringtonBot
+AnyaSchen/rugpt3_mayakovskij
+lmqg/t5-small-squadshifts-new_wiki-qg
+lmqg/t5-small-squadshifts-nyt-qg
+lmqg/t5-small-squadshifts-reddit-qg
+lmqg/t5-small-squadshifts-amazon-qg
+Yama/yamaen
+huggingtweets/iamekagra
+huggingtweets/duckybhai
+huggingtweets/imrankhanpti
+armandnlp/gpt2-TOD_finetuned_SGD
+Salvatore/mt5-finetuned-amazon-en-es
+AntoDono/DialoGPT-Bopy-Alpha-1.01
+Hermite/DialoGPT-large-hermite
+huggingtweets/lukaesch
+AntoDono/DialoGPT-Bopy-Alpha-1.03
+voidful/phoneme-mt5
+eslamxm/mt5-base-finetuned-Spanish
+robinhad/gpt2-uk-conversational
+DemocracyStudio/generate_nft_content
+Browbon/DialoGPT-small-LucaChangretta
+kravchenko/uk-mt5-small-gec-tokenized
+kravchenko/uk-mt5-base-gec-tokenized
+huggingtweets/rangersfc
+gloomyworm/DialoGPT-medium-ortho
+lbox/lcube-base
+lmqg/t5-base-squadshifts-new_wiki-qg
+lmqg/t5-base-squadshifts-nyt-qg
+lmqg/t5-base-squadshifts-reddit-qg
+lmqg/t5-base-squadshifts-amazon-qg
+SSI/art_GPT2_bot
+erickfm/neutrally
+phunc/t5-small-finetuned-xsum
+huggingtweets/mysteriousgam54
+huggingtweets/danny_macaskill-martynashton
+ApoTro/slovak-t5-small
+huggingtweets/wikisignpost
+parinzee/mT5-small-thai-multiple-e2e-qg
+Browbon/DialoGPT-medium-LucaChangretta
+huggingtweets/ravenel_jeremy
+Salvatore/t5-finetuned-xsum
+roscazo/gpt2-covid
+huggingtweets/contrapoints-iamcardib
+big-kek/medium-korzh
+AnyaSchen/rugpt3_esenin
+Fluffypillow/DialoGPT-small-Rem
+Hermite/DialoGPT-large-hermite2
+AnyaSchen/rugpt3_blok
+AnyaSchen/rugpt3_tyutchev
+ouiame/bert2gpt2Summy
+ouiame/T5_mlsum
+huggingtweets/asadabukhalil
+huggingtweets/_mohamads
+lmqg/t5-large-squadshifts-new_wiki-qg
+lmqg/t5-large-squadshifts-nyt-qg
+crystina-z/mGTR-mt5-base-mmarco-ru.epoch-5.enc-mean
+lmqg/t5-large-squadshifts-reddit-qg
+huggingtweets/yemeen
+huggingtweets/hotdogsladies
+huggingtweets/skysports
+huggingtweets/43folders-hotdogsladies
+kravchenko/uk-mt5-large-gec-tokenized
+huggingtweets/pronewchaos
+huggingtweets/acai28
+huggingtweets/fushidahardy
+huggingtweets/shammytv
+sayanmandal/t5-small_6_3-hi_en-en_mix
+huggingtweets/minusgn
+Afework/t5_boolq
+anantoj/T5-summarizer-simple-wiki
+Yvanzhu/Data-to-text-generation-accelerate
+google/ul2
+Bman/DialoGPT-medium-peppapig
+cahya/abstract-generator
+huggingtweets/unknownco123
+anantoj/T5-summarizer-simple-wiki-v2
+huggingtweets/basilhalperin-ben_golub-tylercowen
+Afework/t5-mcq
+huggingtweets/netflixinator
+huggingtweets/alanrmacleod-karl_was_right-yaboihakim
+huggingtweets/chrishemsworth-deadpoolmovie
+huggingtweets/chrisevans-robertdowneyjr
+huggingtweets/leisha_hailey
+ZipperXYZ/DialoGPT-medium-TheWorldMachine
+huggingtweets/jbsalvagno
+AlyxTheKitten/DialoGPT-medium-AgedBlaine-2
+huggingtweets/rihanna
+Averium/DialoGPT-medium-TailsBot1.1
+Elijah629/DialoGPT-mrsanai
+huggingtweets/fawfulthgreat64
+huggingtweets/tomcruise
+huggingtweets/tomhanks
+damianruel/DialoGPT-medium-MySon
+huggingtweets/mcdonaldsuk-potus-tomcruise
+mindwrapped/gpt2-lotr-fellowship
+lmqg/t5-large-squadshifts-amazon-qg
+Suva/uptag-url-model-v2
+smjain/code
+shibing624/mengzi-t5-base-chinese-correction
+huggingtweets/iantdr
+huggingtweets/techreview
+huggingtweets/aiww-bbcworld-elonmusk
+sasuke/gpt2-wikitext2
+gengp/gpt-2-komodoh
+huggingtweets/hillaryclinton
+huggingtweets/pdchina
+huggingtweets/itsamedevdev
+loubnabnl/codeparrot-small-near-dedup
+huggingtweets/datgameryolo
+ZipperXYZ/DialoGPT-medium-TheWorldMachineExpressive
+Elijah629/DialoGPT-shrek
+AlyxTheKitten/DialoGPT-medium-Jimmis-2
+huggingtweets/andrewdoyle_com-conceptualjames-titaniamcgrath
+dennis-fast/DialoGPT-ElonMusk
+nestoralvaro/mt5-small-test-amazon
+nestoralvaro/mt5-small-test-amazon-v2
+lmqg/mt5-small-squad-qg
+research-backup/t5-small-squadshifts-vanilla-new_wiki-qg
+research-backup/t5-base-subjqa-vanilla-books-qg
+research-backup/t5-small-squadshifts-vanilla-nyt-qg
+research-backup/t5-small-squadshifts-vanilla-reddit-qg
+research-backup/t5-base-subjqa-vanilla-electronics-qg
+research-backup/t5-small-squadshifts-vanilla-amazon-qg
+research-backup/t5-base-subjqa-vanilla-grocery-qg
+research-backup/t5-base-subjqa-vanilla-movies-qg
+research-backup/t5-base-subjqa-vanilla-restaurants-qg
+research-backup/t5-base-subjqa-vanilla-tripadvisor-qg
+research-backup/t5-small-subjqa-vanilla-books-qg
+research-backup/t5-small-subjqa-vanilla-electronics-qg
+research-backup/t5-small-subjqa-vanilla-grocery-qg
+nestoralvaro/mt5-small-test-ged-RAW_data_prep_2021_12_26___t1_7.csv_max_target_length_10
+research-backup/t5-small-subjqa-vanilla-movies-qg
+research-backup/t5-small-subjqa-vanilla-restaurants-qg
+research-backup/t5-small-subjqa-vanilla-tripadvisor-qg
+anibahug/mt5-small-finetuned-amazon-en-de
+nestoralvaro/mt5-small-test-ged-mlsum_max_target_length_10
+AmitBHuji/mt5-small-finetuned-mt5-simplification-1epoch
+huggingtweets/svelounsegreto
+eslamxm/AraT5-base-title-generation-finetune-ar-xlsum
+CodeIvy/distilgpt2-finetuned-wikitext2
+nicolasfeyer/t5-small-finetuned-la-to-en
+huggingtweets/alpharad
+Onlydrinkwater/t5-small-de-en-mt
+research-backup/t5-large-squadshifts-vanilla-new_wiki-qg
+crystina-z/mGTR-mt5-base-mmarco-all.epoch-10.enc-mean
+huggingtweets/mysta_rias
+ryota/newsCreate
+Lvxue/distilled_mt5-base_20ep
+huggingtweets/shxtou
+ryota/newsModelRe
+huggingtweets/rsapublic
+diversifix/diversiformer
+research-backup/t5-large-squadshifts-vanilla-nyt-qg
+parinzee/mT5-small-thai-multiple-e2e-qg-numsep
+research-backup/t5-base-squadshifts-vanilla-new_wiki-qg
+research-backup/t5-base-squadshifts-vanilla-nyt-qg
+research-backup/t5-base-squadshifts-vanilla-reddit-qg
+research-backup/t5-base-squadshifts-vanilla-amazon-qg
+Mikune/text-sum-po1
+amritpattnaik/mt5-small-amrit-finetuned-amazon-en
+Sealgair/DialoGPT-medium-Eyden
+huggingtweets/aktualnecz-lidovky-respekt_cz
+huggingtweets/notch
+huggingtweets/g2esports
+huggingtweets/thenoelmiller
+huggingtweets/soundersfc
+huggingtweets/carboxylace
+huggingtweets/borisjohnson-elonmusk-majornelson
+huggingtweets/fabrizioromano
+huggingtweets/bts_twt
+crystallyzing/DialoGPT-small-nishikiyama
+crystallyzing/DialoGPT-small-kiryu
+research-backup/t5-large-squadshifts-vanilla-reddit-qg
+huggingtweets/grassmannian
+huggingtweets/bartoszmilewski
+huggingtweets/alpha_convert
+NikkiTiredAf/DialoGPT-small-billy2
+huggingtweets/arstechnica
+crystina-z/mGTR-mt5-base-mmarco-all.epoch-2.87.enc-mean
+hugo/byt5-mono-en-v3
+donmaclean/dfm_cosql
+research-backup/t5-large-squadshifts-vanilla-amazon-qg
+optimum/t5-small
+research-backup/t5-large-subjqa-vanilla-books-qg
+huggingtweets/dougjballoon
+Evokus/DialoGPT-small-harrypotter
+VietAI/envit5-base
+mcimmy/DialoGPT-small-bob
+huggingtweets/dav_erage
+huggingtweets/dav_erage-dozendav
+huggingtweets/maxfitemaster
+anonsubms/msrp_length
+anonsubms/msrp_ratio
+anonsubms/msrp_length_sb
+anonsubms/msrp_ratio_sb
+anonsubms/lm_giga
+anonsubms/t5pretrain
+parinzee/mT5-small-thai-multiple-e2e-qg-aug-numsep
+crystina-z/mGTR-mt5-base-mmarco-all.epoch-1.gpu
+huggingtweets/coinmamba
+research-backup/t5-large-subjqa-vanilla-electronics-qg
+research-backup/t5-large-subjqa-vanilla-grocery-qg
+kravchenko/uk-mt5-small-gec-synthetic
+research-backup/t5-large-subjqa-vanilla-movies-qg
+kravchenko/uk-mt5-small-gec-synthetic-2
+research-backup/t5-large-subjqa-vanilla-restaurants-qg
+mikeliou/gpt-oscar_grcorpus_wiki-seq512-ep10-bs64
+research-backup/t5-large-subjqa-vanilla-tripadvisor-qg
+Laggrif/DialoGPT-medium-Luke
+Laggrif/DialoGPT-medium-3PO
+ZipperXYZ/DialoGPT-medium-TheWorldMachineExpressive2
+sasuke/mt5-small-finetuned-amazon-en-es
+prprakash/DialoGPT-small-TonyStark
+micrem73/GePpeTto-finetuned-ricettetrentine
+Mizew/autotrain-avar-1016534299
+Mizew/EN-RSK
+elena-soare/docu-t5-large-FK
+elena-soare/docu-t5-large-SD
+shaneweisz/DialoGPT-finetuned-multiCONAN
+wiselinjayajos/t5-end2end-questions-generation
+atendstowards0/codeparrot-ds
+atendstowards0/testing0
+sexomq/TeoBot-Romanian-medium
+Bman/DialoGPT-medium-dora
+JdThe65th/GPT2-Glitchfur-Zenith-JD
+sonalily/distilgpt2-finetuned-wikitext2
+BigSalmon/InformalToFormalLincoln52
+bencodehard/mt5-small-finetuned-thaisum
+WindowsRegedit/zuowen
+iaanimashaun/distilgpt2-finetuned-wikitext2
+mikegarts/distilgpt2-erichmariaremarque
+Hermite/DialoGPT-large-hermite3
+DingosGotMyBaby/uhn-twitch-chat
+wiselinjayajos/t5-end2end-questions-generation-squadV2
+Averium/FabioBot
+JamesD/DialoGPT-medium-joshua
+arem/DialoGPT-medium-rickandmorty
+voidful/phoneme-longt5
+jwang/tuned-t5
+jackcarey/t5-small-finetuned-qgsquad-qgen
+AlfredLeeee/testmodel_classifier
+soProf1998/DialoGPT-small-chattyrick
+soProf1998/DialoGPT-medium-chattyrick
+doraemon1998/distilgpt2-finetuned-wikitext2
+Splend1dchan/t5lephone-small-textsquad
+mousaazari/t5-small-finetuned-wikisql
+amorfati/mt5-small-finetuned-amazon-en-es
+akhisreelibra/t5-small-finetuned-xsum
+bigscience/test-bloomd
+tlin123/DialoGPT-Bopy-Alpha-1.04
+kennbyee25/trundlebot-poc
+KukuyKukuev/gpt2-wikitext2
+BigSalmon/TextbookInformalFormalEnglish
+shuidun/test1
+imxly/t5-copy-med-qa
+EddieChen372/longT5-js2jest
+dbaranchuk/test-bloom-6bd
+rpgz31/jibber
+rpgz31/tiny-nfl
+cambridgeltl/simctgt5_small_xsum
+lunde/gpt2-snapsvisor
+KES/TEC-English
+ClassCat/gpt2-base-spanish
+cambridgeltl/mle_wikitext103
+alistairmcleay/UBAR-distilgpt2
+mbshr/urt5-base-init
+alistairmcleay/user-simulator-gpt2
+p123/autotrain-my-sum-1040935781
+Dorin/DialoGPT-small-Rick
+documatic/codetrans_t5_small_mt_ft_git_diff_7k_dataset
+mbshr/urt5-base
+shubhamsalokhe/distilgpt2-finetuned-wikitext2
+sanjay-m1/grammar-corrector-v2
+TheRensselaerIDEA/gpt2-large-covid-tweet-response
+zyxzyx/autotrain-sum-1042335811
+TheRensselaerIDEA/gpt2-large-vaccine-tweet-response
+Moo/kogpt2-proofreader
+samroni/gpt-2
+gopalkalpande/t5-small-finetuned-xsum
+chisun/mt5-small-finetuned-amazon-en-es-accelerate
+chisun/mt5-small-finetuned-amazon-en-es-accelerate2
+azaninello/GPT2-icc
+hamziqureshi/t5-small-finetuned-amazon-en-es
+Gods/discord_test
+gopalkalpande/t5-small-finetuned-bbc-news-summarization
+plncmm/gpt2-wl-base-es
+elliotthwang/t5-small-finetuned-xlsum-chinese-tradition
+OptimalHoiboy/DialoGPT-small-kasumai
+hf-internal-testing/tiny-random-bloom
+hidude562/gpt2-discordgpt2
+Dizzykong/charles-dickens
+cambridgeltl/mlet5_small_xsum
+Abdelmageed95/distilgpt2-finetuned-wikitext2
+huggingtweets/reallifemera
+chisun/mt5-small-finetuned-amazon-en-es-accelerate3
+Aalaa/distilgpt2-finetuned-wikitext2
+Mindstorm314/AI-Camp-JS
+Hartmann/DialoGPT-small-koishikomeiji
+JulesBelveze/t5-small-headline-generator
+cambridgeltl/simctg_one_billion_word
+cambridgeltl/mle_one_billion_word
+cambridgeltl/mle_enwik8
+cambridgeltl/simctg_enwik8
+brjezierski/german-gpt2-easy
+huggingtweets/gregorian000-levelsio
+huggingtweets/g__j
+anahitapld/t5-DBD
+Akihiro2/mt5-small-finetuned-amazon-en-es
+fxtentacle/tevr-token-entropy-predictor-de
+Konbai/DialoGPT-small-akagi2
+samroni/model_gpt
+JazzyLucas/DialoGPT-small-TonyStark
+czearing/article-title-generator
+Aalaa/opt-125m-wikitext2
+czearing/story-to-title
+gexai/marvin-optimized-base
+huggingtweets/elonmusk-mrbeast
+elliotthwang/mt5-small-finetuned-xlsum-chinese-tradition
+ubikpt/t5-small-finetuned-cnn
+Leo2001/ArmSpellChecker
+psyche/KoT5-summarization
+harunkuf/mlsum_tr_en_mt5-small
+svalabs/mt5-large-german-query-gen-v1
+PrimeQA/mt5-base-tydi-question-generator
+radi-cho/poetry-bg
+huggingtweets/benshapiro
+elliotthwang/mt5-small-finetuned-tradition-zh
+mystery/DialoGPT-small-pinkiepie
+sexomq/TeoBot-Romanian-medium2
+SivilTaram/tapex-t5-xl-lm-adapt
+SivilTaram/tapex-t5-large-lm-adapt
+SivilTaram/tapex-t5-xl-finetuned-wtq
+SivilTaram/tapex-t5-small-lm-adapt
+SivilTaram/tapex-t5-large-finetuned-wtq
+alexjercan/codet5-base-masked-buggy-code-repair
+ubikpt/t5-small-finetuned-cnn-v2
+zhifei/autotrain-chinese-title-summarization-1060936832
+dddb/title_generator
+huggingtweets/orangebook_
+pserna/mt5-small-spanish-paraphraser
+Skelebor/book-descriptions
+kmkarakaya/turkishReviews-ds
+huggingtweets/codyko-thenoelmiller
+luffycodes/t5_base_v2
+erikycd/chatbot_hadita
+luffycodes/t5_base_v52
+huggingtweets/enusec-lewisnwatson
+huggingtweets/lewisnwatson
+luffycodes/t5_base_v1
+loubnabnl/apps-1.5B-model
+BigSalmon/InformalToFormalLincoln53
+mmdjiji/gpt2-chinese-idioms
+kzkymn/autotrain-livedoor_news_summarization-1065437005
+Tritkoman/EN-ROM
+Lvxue/finetuned-mt5-small-10epoch
+huggingtweets/tacticalmaid-the_ironsheik
+huggingtweets/the_ironsheik
+mousaazari/t5-test2sql
+huggingtweets/tacticalmaid
+huggingtweets/dril-tacticalmaid
+mousaazari/t5-text2sql
+Abdelmageed95/opt-125m-economy-data
+crystina-z/mGTR-mt5-base-mmarco-all.epoch-3.enc-mean.adafactor
+huggingtweets/lexisother
+huggingtweets/o_strunz
+xenergy/gpt2-indo
+huggingtweets/pldroneoperator-superpiss
+tilomichel/mT5-base-GermanQuAD-e2e-qg
+javind/t5-base-ytubenewssum
+huggingtweets/crimseyvt
+infinix/Sheldon-bot
+ZakaryaRouzki/t5-punctuation
+AntoDono/DialoGPT-Bopy-Human-v0.1
+BigSalmon/InformalToFormalLincoln54
+Gorilla115/t5-austen
+Akito1961/DialoGPT-small-C3PO
+TestZee/t5-small-finetuned-xum-test
+Naturealbe/DialoGPT-small-Technoblade
+xzhang/distilgpt2-finetuned-wikitext2
+xzhang/distilgpt2-finetuned-spam
+codeparrot/codeparrot-small-multi
+cambridgeltl/simctg_cnwikitext
+cambridgeltl/mle_cnwikitext
+huggingtweets/mattysino
+romainlhardy/t5-small-booksum
+zhifei/autotrain-chinese-title-summarization-1-1084539138
+TestZee/t5-small-finetuned-xlsum-india-test
+documatic/code_t5_small_git_diff_7k_dataset
+kuttersn/dailydialog-distilgpt2
+bigscience/bloom-intermediate
+dbaranchuk/test-bloomd-6b3
+jakka/t5-small-finetuned-xsum
+Chirayu/subject-generator-t5-base
+theojolliffe/t5-small-fb
+jakka/t5_small_NCC-finetuned-sv-frp-classifier
+youa/CpmTest
+reso/DialoGPT-medium-v3ga
+huggingtweets/mattyglesias
+zhifei/autotrain-chineses-title-summarization-3-1087939403
+Bismi/t5_squad
+dddb/autotrain-test-1088139436
+wvangils/BLOOM-350m-Beatles-Lyrics-finetuned-newlyrics
+HUPD/hupd-t5-small
+Danish-summarisation/DanSumT5-pilot
+Cymoh/Dialogue-HuTaoBot
+jakka/t5_small_NCC_lm-finetuned-sv-frp-classifier-3
+tho-clare/autotrain-Text-Generate-1089139622
+akhisreelibra/mt5-small-finetuned-amazon-en-es
+sanchit-gandhi/bloom-350m-scan
+Nakul24/YC_Bot
+DeividasM/gpt2_lithuanian_small
+ClassCat/gpt2-base-french
+huggingtweets/donaldtusk
+wiselinjayajos/t5-end2end-questions-generation-cv-squadV2
+Salesforce/codet5-large
+crystina-z/mGTR-mt5-base-mmarco-all.epoch-10.enc-mean.adafactor
+Salesforce/codet5-large-ntp-py
+saekomdalkom/t5-small-finetuned-xsum
+TestZee/t5-small-finetuned-custom-wion-test
+huggingtweets/frnsw-nswrfs-nswses
+huggingtweets/zanza47
+BlazeLlama/piwpaw_medium
+mbshr/urt5-base-finetuned
+crystina-z/mGTR-mt5-base-mmarco-all.epoch-3.enc-mean.adafactor.lr-1e-3
+huggingtweets/joviex
+huggingtweets/carterhiggins
+justheuristic/test-bloomd-350m
+bigscience/test-bloomd-6b3
+casperthegazer/DiabloGPT-medium-lukedot
+IIC/mt5-large-lfqa-es
+sanchit-gandhi/bloom-760m-scan
+sanchit-gandhi/bloom-1b3-scan
+sanchit-gandhi/bloom-6b3-scan
+its5Q/rugpt3large_mailqa
+zhifei/autotrain-chinese-title-summarization-8-1101140174
+TestZee/t5-small-finetuned-custom-wion-test-BIG
+mideind/yfirlestur-icelandic-correction-byt5
+zhifei/autotrain-autotrain-chinese-title-summarization-9-1101340178
+kakife3586/Ekastestest
+juanna/gptdc
+huggingtweets/dinidu
+RonEliav/QA_discourse_v2
+kmkarakaya/turkishReviews-ds-mini
+kuttersn/gpt2-finetuned-redditComments
+Aayesha/t5-end2end-questions-generation
+samroni/puisi_model_gpt2_small
+juanna/kogpt2_godspell
+juanna/kogpt2_krpoem
+akhisreelibra/malayalam-summariser
+pszemraj/grammar-synthesis-large
+sanchit-gandhi/bigscience-small-testing-scan
+huggingtweets/mcconaughey
+huggingtweets/gassy_dragon
+FelipeAD/mt5-small-finetuned-amazon-en-es
+huggingtweets/fairytale_bot23
+JamesStratford/PLord-bot-DialoGPT-medium
+CaptPyrite/DialoGPT-small-cat
+sdotmac/SimeBot
+jourlin/wiki2json
+SafeTorpedo/DialoGPT-small-MichaelBot
+huggingtweets/markzero
+malteos/gpt2-xl-german-covid-19
+skytnt/gpt2-japanese-lyric-medium
+s-nlp/GenChal_2022_nigula
+saadob12/t5_C2T_big
+saadob12/t5_C2T_autochart
+sanchit-gandhi/bigscience-small-testing-scan-t5x
+sanchit-gandhi/bloom-6b3-scan-t5x
+sanchit-gandhi/bloom-350m-scan-t5x
+huggingtweets/_anushkasharmaa
+huggingtweets/redo
+QuoQA-NLP/KE-T5-En2Ko-Base
+abecode/t5-small-finetuned-xsum
+Bistolero/en_de_64_25k
+huggingtweets/bobdylan-elonmusk-moogmusic
+domsebalj/GPcroaT
+MCFeli/new-booru-t5
+huggingtweets/bro_b619
+steeldream/letov
+jorge-henao/gpt2-small-spanish-historias-conflicto-col
+huggingtweets/dagsen
+Bistolero/nl_6_32b_linear_t612_240
+pszemraj/grammar-synthesis-small
+brianveebee/DialoGPT-medium-bender
+pszemraj/opt-125m-email-generation
+kakife3586/Null
+huggingtweets/06melihgokcek
+faebots/image-gpt2
+myynirew/DialoGPT-medium-shouko01
+casasdorjunior/t5-small-finetuned-xlsum
+dsivakumar/text2sql
+Langame/distilgpt2-starter-classification
+huggingtweets/bardissimo
+ShooterRon/mt5-small_summarization
+myynirew/2-0OKUOHS
+kakife3586/Eka.mini
+edumunozsala/mt5-small-summarization-mlsum-es
+smmzhu/DialoGPT-medium-sam
+myynirew/shouko0-3
+myynirew/dumbbot
+luffycodes/t5_small_v1_bb
+rajkumarrrk/t5-base-fine-tuned-on-cnn-dm
+rajkumarrrk/gpt-2-fine-tuned-on-cnn-dm
+KeLiu/QETRA_Python
+joaoalvarenga/bloom-8bit
+s-nlp/t5-informal
+ignatius/cyT5-small
+Lamia/DialoGPT-small-Sundrop
+p-christ/testrepo
+jorge-henao/gpt2-small-spanish-historias-conflicto-colpoetry-historias-conflicto-col
+abecode/t5-small-finetuned-emo20q
+ashtrindade/chatbot-stacey
+samroni/puisi_gpt2
+camilag/t5-end2end-questions-generation
+lmqg/mt5-base-esquad-qg
+huggingtweets/hhelafifi
+Lvxue/finetuned-mt5-base-10epoch
+QuoQA-NLP/KE-T5-Ko2En-Base
+murtaza-jafri/DialoGPT-medium-Joshua
+Chirayu/mt5-multilingual-sentiment
+dim/dialogpt-medium-persona-chat
+JasonXu/lab4
+Khoa/t5-small-finetuned-xsum
+Artem1/t5_squad_v1
+Artem1/t5_squad_v1_onnx
+shaneweisz/DialoGPT-finetuned-gab-multiCONAN
+huggingtweets/piotrikonowicz1
+tinkoff-ai/ruDialoGPT-small
+neulab/gpt2-finetuned-wikitext103
+huggingtweets/scottduncanwx
+tinkoff-ai/ruDialoGPT-medium
+neulab/gpt2-med-finetuned-wikitext103
+neulab/gpt2-large-finetuned-wikitext103
+neulab/distilgpt2-finetuned-wikitext103
+huggingtweets/masonhaggerty
+huggingtweets/ydouright
+huggingtweets/dylanfromsf
+FelipeAD/mt5-small-SENTENCE_COMPRESSION
+huggingtweets/reillocity
+crystina-z/mGTR-mt5-base-mmarco-all.epoch-10.enc-mean.adafactor.lr-1e-3
+huggingtweets/majigglydoobers
+kuttersn/gpt2_chatbot
+huggingtweets/burdeevt
+dafraile/Clini-dialog-sum-T5
+casasdorjunior/t5-small-finetuned-cc-news-es-titles
+sandervg/gpt-beatroots
+KeLiu/QETRA_Java
+lmqg/mt5-base-koquad-qg
+KeLiu/QETRA_JavaScript
+KeLiu/QETRA_CSharp
+KeLiu/QETRA_PHP
+KeLiu/QETRA_HTML
+roscazo/BNE-conv-v1
+kuttersn/test-clm
+huggingtweets/angelsexytexty-janieclone
+24adamaliv/DialoGPT-medium-Will
+jamie613/mt5_correct_puntuation
+ClassCat/gpt2-small-catalan-v2
+shivaniNK8/mt5-small-finetuned-amazon-en-es
+zeehen/dummy-model
+shivaniNK8/mt5-small-finetuned-cnn-news
+peerawatchomp/t5-base-grammar-mcq
+big-kek/large-korzh
+JoonJoon/t5-small-finetuned-xsum
+cybertelx/DialoGPT-small-drunkic0n
+eltonpan/codeparrot-ds-2
+mhdr78/finetuned_parsinlu_en_fa
+Artem1/grammar_error_correcter_v1
+Fagen/TrueNeuromiron1
+Fagen/TrueNeuromiron2
+JoonJoon/gpt2-wikitext2
+domenicrosati/t5-paraphrase-paws-msrp-opinosis-finetuned-parasci
+Rick-C137/DialoGPT-small-rick
+doraemon1998/t5-small-finetuned-en-to-ro
+doraemon1998/t5-small-finetuned-labels-to-caption
+BigSalmon/InformalToFormalLincoln55
+Hardik1313X/mt5-small-finetuned-amazon-en-es
+lmqg/mt5-base-itquad-qg
+huggingtweets/thomastrainrek
+debyve/dumbbot
+Amir-UL/JimBot
+SyedArsal/rttt
+codeparrot/codeparrot-small-complexity-prediction
+codeparrot/codeparrot-small-text-to-code
+AlexWortega/T5_potter
+huggingtweets/juncassis
+huggingtweets/thes_standsfor
+lmqg/mt5-base-dequad-qg
+RobertoFont/gpt2-large-bne-milunanoches
+huggingtweets/amityexploder
+abecode/t5-base-finetuned-emo20q
+Bachstelze/Rapgenerator
+MultiTrickFox/bloom-2b5_Zen
+Lvxue/distilled_mt5-base_10epoch
+manhan/GPT-Tour
+BoxCrab/DialoGPT-small-Strider
+artemnech/enrut5-base
+shengnan/v-shean-visualize-202207162206
+mohammedbriman/t5-small-finetuned-tf-xsum
+AbdalK25/DialoGPT-small-TheWiseBot
+casperthegazer/DialoGT-gandalf-urdot
+lmqg/mt5-base-ruquad-qg
+pineappleSoup/DialoGPT-medium-707
+ClassCat/gpt2-small-basque-v2
+mtreviso/ct5-small-en-wiki-l2r
+shengnan/visualize-v0-pre10w-preseed1-ft2w-seed1
+Nakul24/AD_ChatBot
+lewiswu1209/gpt2-chinese-composition
+mrm8488/bloom-6b3-8bit
+mrm8488/bloom-1b3-8bit
+cointegrated/rut5-base-labse-decoder
+olgaduchovny/t5-base-ner-conll
+pszemraj/grammar-synthesis-base
+lmqg/mt5-base-frquad-qg
+shengnan/visualize-v0-pre10w-preseed1
+shengnan/visualize-v1-pre10w-preseed1
+shengnan/visualize-v2-pre10w-preseed1
+shengnan/visualize-cst-v0-pre10w-preseed1
+shengnan/visualize-cst-v1-pre10w-preseed1
+shengnan/visualize-cst-v2-pre10w-preseed1
+shengnan/visualize-v0-pre1k-preseed1
+anahitapld/dbd_t5
+bigscience/distill-bloom-1b3
+bigscience/distill-bloom-1b3-10x
+TestZee/t5-small-finetuned-kaggle-data-t5-v2.0
+loubnabnl/codeparrot-small-multi-small-near-dedup
+Fagen/OxxxyBlok
+icity/distilgpt2-finetuned-wikitext2
+huggingtweets/repmtg
+shivaniNK8/t5-small-finetuned-cnn-news
+huggingtweets/yashar
+fqw/mt5-small-finetuned-test
+nev/byt5-song-lyrics
+monobyte/byt5-mono-pt-v1
+mingu/mt5-base-finetuned-korquad
+monobyte/byt5-mono-en-v1
+monobyte/byt5-mono-de-v1
+monobyte/byt5-mono-vi-v1
+monobyte/byt5-mono-zh-v1
+monobyte/byt5-mono-ru-v1
+monobyte/byt5-mono-ar-v1
+Tahsin-Mayeesha/t5-end2end-questions-generation
+monobyte/byt5-mono-bn-v1
+monobyte/byt5-mono-nonsense-v1
+monobyte/byt5-mono-sw-v1
+monobyte/byt5-mono-ko-v1
+monobyte/byt5-mono-hierarchical-v1
+monobyte/byt5-mono-es-v1
+monobyte/byt5-mono-fr-v1
+saadob12/t5_autochart_2
+monobyte/byt5-mono-ja-v1
+monobyte/byt5-mono-fi-v1
+codeparrot/codeparrot-small-code-to-text
+abecode/t5-base-finetuned-emo20q-classification
+rapid3/gpt2-wikitext2
+Ahmed007/T5-as-chat-bot
+roscazo/Covid-conv-v1
+praeclarum/cuneiform
+TeaTM/DialoGPT-small-bushcat
+bigmorning/distilgpt_oscarth_0020
+Kwaku/gpt2-finetuned-banking77
+kalpeshk2011/rankgen-t5-base-all
+kalpeshk2011/rankgen-t5-large-all
+kalpeshk2011/rankgen-t5-xl-all
+bigmorning/distilgpt_oscarth_0040
+ClassCat/gpt2-small-greek-v2
+huggingartists/rage-against-the-machine
+kalpeshk2011/rankgen-t5-xl-pg19
+ionite/DialoGPT-medium-NakaAI
+Ecosmob555/t5-small-finetuned-on-800-records-samsum
+bigmorning/distilgpt_oscarth_0060
+liton10/mt5-small-finetuned-amazon-en-es
+azaninello/GPT2-icc-new
+oMateos2020/t5-small_adafactor
+bigmorning/distilgpt_oscarth_0080
+huggingtweets/kchonyc
+Creepton/DDLCYuri-DialoGPT-small
+BigSalmon/InformalToFormalLincoln56
+Dizzykong/large-commands
+bigmorning/distilgpt_new_0020
+christofid/pgt
+Ahmed007/T5-ibn-Shaddad-v2
+Ahmed007/mt5-small-ibn-Shaddad-v3
+bigmorning/distilgpt_new_0040
+Ahmed007/mt5-small-ibn-Shaddad-v4
+lakshaywadhwa1993/mt5-small-finetuned-hindi-mt5
+huggingtweets/evetixx
+mtreviso/ct5-small-en-wiki
+mehdidn/finetuned_translation_fa_en
+Muennighoff/bloom-tiny-random
+TestZee/t5-small-finetuned-kaggle-data-t5-v3.0
+maesneako/ES_corlec
+bigmorning/distilgpt_new_0060
+cjvt/legacy-t5-sl-small
+huggingtweets/lpachter
+bigmorning/distilgpt_new_0080
+Ian-AI/EalAIn
+vamsibanda/sbert-onnx-gtr-t5-xl
+TeaTM/DialoGPT-large-bushcat
+lakshaywadhwa1993/mt5-base-finetuned-hindi-mt5-base
+kakife3586/Hmm
+yazinga/DialoGPT-medium-scout
+succinctly/text2image-prompt-generator
+bigmorning/distilgpt_new2_0020
+huggingtweets/hotwingsuk
+bigmorning/distilgpt_new2_0040
+throwaway112358112358/DialoGPT-medium-script
+bigmorning/distilgpt_new2_0060
+huggingtweets/thenextweb
+tahercoolguy/gpt-neox-bit
+bigmorning/distilgpt_new2_0080
+huggingtweets/deepleffen-tsm_leffen
+huggingtweets/deepleffen-falco-tsm_leffen
+huggingtweets/leadermcconnell
+anonchickenlegs/sartoshi-bot
+huggingtweets/luciengreaves-seanhannity
+huggingtweets/hillaryclinton-maddow-speakerpelosi
+huggingtweets/luciengreaves-pontifex
+shahidul034/text_generation_bangla_model
+huggingtweets/aoc-kamalaharris
+huggingtweets/kremlinrussia_e
+Frikallo/vgdunkey
+huggingtweets/vgdunkey-vgdunkeybot
+shiulian/t5-end2end-questions-generation
+Ahmed007/google-mt5-small-ibn-Shaddad-v1
+kmkarakaya/turkishReviews-ds-finetuned
+nishita/results
+xander-cross/DialoGPT-small-EvilMortyTheBot
+oMateos2020/XSum_t5-small_800_adafactor
+huggingtweets/vgdunkey-vgdunkeybot-videobotdunkey
+huggingtweets/bicyclingmag-bike24net-planetcyclery
+lewiswu1209/Winnie
+Splend1dchan/t5-large-squad
+bigmorning/distilgpt_new3_0005
+bigmorning/distilgpt_new3_0010
+bigmorning/distilgpt_new3_0015
+bigmorning/distilgpt_new3_0020
+bigmorning/distilgpt_new3_0025
+bigmorning/distilgpt_new3_0030
+bigmorning/distilgpt_new3_0035
+bigmorning/distilgpt_new3_0040
+sushrut58/my-finetuned-t5
+bigmorning/distilgpt_new3_0045
+bigmorning/distilgpt_new3_0050
+bigmorning/distilgpt_new3_0055
+Bman/DialoGPT-medium-shrek
+bigmorning/distilgpt_new3_0060
+bigmorning/distilgpt_new3_0065
+arminmehrabian/distilgpt2-finetuned-wikitext2-agu
+bigmorning/distilgpt_new3_0070
+benjamyu/autotrain-ms-2-1174443640
+Yuetian/T5-finetuned-storyCommonsense
+bigmorning/distilgpt_new3_0075
+Yank2901/DialoGPT-small-Rick
+bigmorning/distilgpt_new3_0080
+microsoft/codereviewer
+akshatpandeyme/DialoGPT-small-manpreet
+Jenwvwmabskvwh/DialoGPT-small-josh444
+akshatpandeyme/DialoGPT-small-parthiv
+akshatpandeyme/DialoGPT-small-ParthivBot
+huggingtweets/bwahwtfbwah
+seeksery/DialoGPT-calig
+mtreviso/ct5-base-en-wiki
+akshatpandeyme/DialoGPT-small-AnyaBot
+crumb/gpt-joke
+huggingtweets/csjonas1mical-gunkbrain1-moeterpussy
+hadidev/gpt2-urdu-smallest
+huggingtweets/fireship_dev-hacksultan-prathkum
+anzorq/kbd_lat-835k_ru-3M_t5-small
+BigSalmon/InformalToFormalLincoln57Paraphrase
+kaj/evoker
+huggingtweets/vithederg
+Frikallo/output
+Frikallo/Dodo82J-vgdunkey
+Frikallo/elonmusk
+weijiahaha/t5-small-summarization
+uaritm/ukrt5-base
+bigmorning/distilgpt_new4_0005
+sysresearch101/t5-large-finetuned-xsum-cnn
+Frikallo/Dodo82J
+Jordine/shitter
+metamyth/jenny_prod
+model-attribution-challenge/bloom-350m
+model-attribution-challenge/distilgpt2
+model-attribution-challenge/DialoGPT-large
+model-attribution-challenge/gpt2-xl
+seeksery/DialoGPT-calig2
+huggingtweets/acrasials_art
+sysresearch101/t5-large-finetuned-xsum
+huggingtweets/tojibaceo-tojibawhiteroom
+Den4ikAI/rugpt3_2ch
+huggingtweets/jockforbrains
+spicard/small-10
+huggingtweets/bearfoothunter1-jockforbrains-recentrift
+huggingtweets/surlaroute
+huggingtweets/hiddenlure
+bigmorning/distilgpt_new5_0010
+bigmorning/distilgpt_new5_0020
+huggingtweets/rubberpomade
+asi/igpt-fr-cased-base
+huggingtweets/khorax
+wiselinjayajos/t5-end2end-questions-generation-cvqualtrics-squad-V1
+bigmorning/distilgpt_new5_0030
+huggingtweets/archdigest
+BigSalmon/InformalToFormalLincoln58Paraphrase
+huggingtweets/dream
+obl1t/DialoGPT-medium-Jotaro
+mlegls/codeparrot-ds
+bigmorning/distilgpt_new5_0040
+huggingtweets/lookinmyeyesboy-mcstoryfeed-mono93646057
+anzorq/ru-kbd_lat-t5-small
+Kamrani/t5-large
+trickstters/DialoGPT-small-evanbot
+srivatsavaasista/textgenerator
+Langboat/mengzi-t5-base-mt
+huggingtweets/jordo4today-paddedpossum-wrenfing
+Ahmed007/t5-base-ibn-Shaddad-v6
+huggingtweets/interiordesign
+AriakimTaiyo/gpt2-chat
+Yank2901/DialoGPT-small-Harry
+lizz27/DialoGPT-small-baymax
+schnell/gpt2-xl-japanese
+obl1t/DialoGPT-medium-Jolyne
+seeksery/DialoGPT-calig3
+Jenwvwmabskvwh/DialoGPT-small-josh445
+OMARS200/Traductor
+huggingtweets/penguinnnno
+razhan/codeqmul-tokenizer
+Lvxue/finetuned-mt5-base
+razhan/codeqmul-large
+Lvxue/finetuned-mt5-small
+nealtao/gpt2-chinese-scifi
+sonoisa/t5-base-english-japanese
+maesneako/ES_corlec_DeepESP-gpt2-spanish
+Jenwvwmabskvwh/DialoGPT-small-josh450
+lizz27/DialoGPT-medium-BaymaxBot
+soop/DialoGPT-medium-BaymaxBot
+abelblue3/DialoGPT-medium-baymax
+priyankac/DialoGPT-medium-BaymaxBot
+huggingtweets/ottorothmund
+ckb/c-deobfuscate-mt
+SafiUllahShahid/EnGECmodel
+Frikallo/out
+tosin/dialogpt_afriwoz_pidgin
+Frikallo/vgdunkey-vgdunkeybot
+anzorq/kbd_lat-ru_char_tokenizer
+IlyaGusev/t5-base-filler-informal
+Amine007/distilgpt2-finetuned-wikitext2
+huggingtweets/onlythesexiest_
+Anon25/DialoGPT-Medium-BaymaxBot
+schnell/gpt2-xl-japanese2
+huggingtweets/zk_faye
+Frikallo/DeepDunk
+huggingtweets/dags
+BigSalmon/InformalToFormalLincoln59Paraphrase
+huggingtweets/timdalrymple_
+huggingtweets/oooo_honey
+yhavinga/byt5-small-dutch-english
+ManqingLiu/codeparrot
+abdulmatinomotoso/t5_large_headline_generator_testing_1
+ManqingLiu/codeparrot-small
+Frikallo/vgdunkeybot
+Frikallo/DeepLeffen-TSM_Leffen
+huggingtweets/brickware
+GoldenRedstone/DialoGPT-medium-Phoenix-Wright
+Okyx/finetuned-amazon-en-es
+huggingtweets/akhund_bilal1
+PyroJack/rp-recap-model
+Primobot/DialoGPT-small-harrypotter
+Zamachi/t5-for-summarization
+abdulmatinomotoso/t5_large_headline_generator_testing_3
+huggingtweets/philo_trainer
+kakife3586/test
+huggingtweets/ravikiranprao
+Lyem/LyemBotv1
+leslyarun/bloom_ncbi_finetuned
+huggingtweets/kantegory
+Jordine/scp
+JamesSantosxx/DialoGPT-small-harrypotter
+echarlaix/t5-small-int8-dynamic
+huranokuma/es
+Yuetian/T5-finetuned-storyCommonsense-noPrompt
+Lyem/LyemBotv2
+BigSalmon/InformalToFormalLincoln60Paraphrase
+CennetOguz/gpt2-kit-TLDR_100
+cansen88/turkishReviews_5_topic
+CennetOguz/gpt2-kit-TLDR_30
+Ironpanther1/ArtoriaBot
+huggingtweets/itsjefftiedrich
+OMARS200/mt5-small-finetuned-amazon-en-es-Resumen-2
+Swervin7s/DialoGPT-medium-anakin
+LawalAfeez/en-fr-translation
+huggingtweets/iamsamirarora-naval-vivek_investor
+huggingtweets/metaprophet
+DogH2O/DialoGPT-small-naruto
+NoPeanuts/DialoGPT-small-po
+Gravitygaming/homerai
+arvkevi/python-bytes-distilgpt2
+lucy666/t5_small_ent_v1
+ksuncho/t5-small-finetuned-xsum
+BlackKakapo/t5-small-paraphrase-ro
+arinze/t5_finetuned_xsum
+niuca/T5-learning
+farofang/t5-small-finetuned-thai-informal-to-formal
+dquisi/story_spanish_category
+huggingtweets/yeshuaissavior
+huggingtweets/elonmusk-srinithyananda-yeshuaissavior
+huggingtweets/elonmusk-srinithyananda
+imjeffhi/syllabizer
+ritwikm/gandhi-gpt
+shengnan/visualize-v0-pre10w-preseed1-ft2w-seed1-freeze2layers
+bloom-testing/test-bloomd-350m-main
+aaronwan/ButcherBot-v1
+Lyem/LyemBotv3
+BlackKakapo/t5-base-paraphrase-ro
+SSI/NatureBoy_GPT2
+laymanyet/mt5-small-finetuned-en-to-ro
+celine45688/LuTing
+huggingtweets/dominic_w-lastmjs-vitalikbuterin
+WYHu/cve2cpe_gpt2
+arinze/t5_finetuned_xsum_eval
+huggingtweets/calm
+Reiyo/japanese-docT5kw-test-v1
+huggingtweets/calm-headspace
+ahmedbilal5/t5-base-QG-finetuned-FairytaleQA
+arinze/t5_finetuned_xsum_hr
+KoenBaak/mychat
+Jinchen/gpt2-wikitext2
+kevincstowe/prompts
+Jinchen/my-awesome-model
+huggingtweets/skobae7
+KoenBaak/koenbot-old
+LeviWadd/hall_of_famers_english_to_cypher
+BigSalmon/InformalToFormalLincoln61Paraphrase
+huggingtweets/chipflake
+huggingtweets/sama
+huggingtweets/shyamalanadkat
+yewwdunsay/t5-end2end-questions-generation
+postbot/distilgpt2-emailgen
+qiaoyi/Comment_Summarization4DesignTutor
+kkuramitsu/mt5-kogi-regio
+huggingtweets/chai_ste
+huggingtweets/xnicoleanistonx
+Einmalumdiewelt/MT5_small_sum-de_GNAD
+huggingtweets/jimmie_graham
+huggingtweets/jimmie_graham-twittels
+BigSalmon/InformalToFormalLincoln62Paraphrase
+RAYZ/t5-pegasus-cmrc2018
+sherwinseah/Fine-tuned-T5-for-MCQGenerator
+kh4dien/distilgpt2-convo
+sherwinseah/Fine-tuned-T5-for-MCQGenerator-2
+antwortemir/shouko04
+erikanesse/great-books-bot
+ttwj-sutd/multilingual-question-generator
+shamweel/mt5-small-summarizer-finetuned
+mikesun112233/t5-base-finetuned-question-generation-ap
+mikesun112233/hugging1
+mikesun112233/hugging3
+huggingtweets/apesahoy-chai_ste-punishedvirgo
+SebastianS/MetalSebastian
+huggingtweets/donalds28__-dril-kommmipakk
+huggingtweets/apesahoy-jrc1921-spicymoregano
+huggingtweets/apesahoy-dril_gpt2-nigella_lawson
+Einmalumdiewelt/10k_MT5_small_sum-de_GNAD
+bigscience/bloom-7b1-intermediate
+bigscience/bloom-3b-intermediate
+bigscience/bloom-1b7-intermediate
+bigscience/bloom-1b1-intermediate
+bigscience/bloom-560m-intermediate
+notaproblem00/DialoGPT-small-bakugou
+myodoctor/DIALOGPT-medium-HarryPotterBot
+BigSalmon/InformalToFormalLincoln63Paraphrase
+amartyobanerjee/mt5-small-finetuned-amazon-en-es
+aniketface/DialoGPT-medium-elon
+eliwill/distilgpt2-discursive-krishna
+Lvxue/distilled-mt5-small-0.5
+Lvxue/distilled-mt5-small-0.9
+gaussalgo/mt5-base-priming-QA_en-cs
+gaussalgo/mt5-base-generative-QA_en-cs
+Jinchen/t5-small-finetuned-xsum
+KPHippe/codeparrot-ds
+erikanesse/great-books-bot-4
+olgaduchovny/t5-base-ner-mit-movie
+olgaduchovny/t5-base-ner-mit-restaurant
+mlegls/usv3_usdc_predictor_0
+tanmaybakshi/autolyricist
+model-attribution-challenge/gpt2
+huggingtweets/apesahoy-dril-dril9999-dril_gpt2-gptmicrofic-tanakhbot
+SharpAI/mal-tls-t5-l3
+SharpAI/mal-tls-t5-l12
+Lvxue/distilled-mt5-small-009901
+Lvxue/distilled-mt5-small-900010
+Lvxue/distilled-mt5-small-010099
+Lvxue/distilled-mt5-small-hiddentest
+Lvxue/distilled-mt5-small-010099-full
+huranokuma/es2
+rajkumarrrk/t5-common-gen
+Bhumika-kumaran/t5-small-finetuned-xsum
+href/gpt2-schiappa
+aks234/t5-small-finetuned-xsum
+Gorilla115/t5-shakespearify-lite
+model-attribution-challenge/bloom-2b5
+anki08/t5-small-finetuned-text2log-finetuned-nl-to-fol
+Lvxue/distilled-mt5-small-00001b
+RAYZ/t5-pegasus-mixed
+Lvxue/distilled-mt5-small-1t9901
+noiseBase/DialoGPT-small-HarryPotter
+Lvxue/distilled-mt5-small-010099_1
+Lvxue/distilled-mt5-small-1b0000
+Lvxue/distilled-mt5-small-010099_8
+TMUUED/t5_fcg_2022
+Lvxue/distilled-mt5-small-test
+Lvxue/distilled-mt5-small-010099-0.5
+Lvxue/distilled-mt5-small-010099-0.75
+Lvxue/distilled-mt5-small-010099-1.5
+Lvxue/distilled-mt5-small-010099-5
+Lvxue/distilled-mt5-small-010099-10
+Bhumika-kumaran/dummy-model
+Jordine/scpoo
+karan21/DialoGPT-medium-rickandmorty
+AlekseyKorshuk/gpt2-4m-1799
+Qilex/t5-base-EN-ME-standardized
+radhikabansal/mt5-small-finetuned-amazon-en-es
+AkashKhamkar/InSumT510k
+wendy416/focus_class_mT5_danjiaodian416
+Lvxue/distilled-mt5-small-010099-0.2
+Lvxue/distilled-mt5-small-010099-0.25
+Jinchen/gpt2-finetuned-wikitext2
+Meowren/CapBot
+enteramine/mt5-base-finetuned-v1
+huggingtweets/apesahoy-dril9999-dril_gpt2-fakeshowbiznews-gptupaguy-nsp_gpt2
+huggingtweets/apesahoy-dril-dril_gpt2-fakeshowbiznews-gptupaguy-nsp_gpt2
+huggingtweets/apesahoy-chai_ste-fakeshowbiznews-gptupaguy-nsp_gpt2-powerdril_gpt2
+cansen88/PromptGenerator_5_topic
+huggingtweets/anime
+huggingtweets/apesahoy-nsp_gpt2-powerdril_gpt2
+karan21/DialoGPT-medium-guin
+cansen88/PromptGenerator_32_topic
+Lvxue/distilled-mt5-small-0.2-1
+Lvxue/distilled-mt5-small-0.2-0.25
+Lvxue/distilled-mt5-small-0.2-5
+Lvxue/distilled-mt5-small-0.2-2
+Lvxue/distilled-mt5-small-0.2-0.5
+Lvxue/distilled-mt5-small-0.4-0.5
+Lvxue/distilled-mt5-small-0.4-1
+Lvxue/distilled-mt5-small-0.4-0.25
+Lvxue/distilled-mt5-small-0.4-2
+Lvxue/distilled-mt5-small-0.4-5
+amartyobanerjee/codeparrot-ds
+Lvxue/distilled-mt5-small-0.6-0.25
+Lvxue/distilled-mt5-small-0.6-1
+Lvxue/distilled-mt5-small-0.6-0.5
+Lvxue/distilled-mt5-small-0.6-5
+Lvxue/distilled-mt5-small-0.0-0.5
+Lvxue/distilled-mt5-small-0.8-1
+Lvxue/distilled-mt5-small-0.8-2
+Lvxue/distilled-mt5-small-0.8-0.5
+Lvxue/distilled-mt5-small-0.8-0.25
+Lvxue/distilled-mt5-small-0.03-1
+Lvxue/distilled-mt5-small-0.03-0.5
+Lvxue/distilled-mt5-small-0.05-0.25
+Lvxue/distilled-mt5-small-0.03-0.25
+human/lm-colab-tutorial
+ybelkada/t5-v1_1-xl-sharded
+Lvxue/distilled-mt5-small-0.05-0.5
+Lvxue/distilled-mt5-small-0.07-0.25
+Lvxue/distilled-mt5-small-0.07-0.5
+Lvxue/distilled-mt5-small-0.05-1
+Sophiejs/DialoGPT-small-BlaineBot
+harish/t5-e2e-10epochs-lr1e4-alpha0-1
+shashanksingh944/t5-english-to-sql-generator
+harish/t5-e2e-10epochs-lr1e4-alpha0-1PLUSalpha0-9-e10
+harish/t5-e2e-10epochs-lr1e4-alpha0-1PLUSalpha0-9-e20
+harish/t5-e2e-10epochs-lr1e4-alpha0-1PLUSalpha0-9-e30
+harish/t5-e2e-5epochs-lr1e4-alpha0-5-BLANKS
+harish/t5-e2e-10epochs-lr1e4-alpha0-5
+unicamp-dl/mt5-3B-mmarco-en-pt
+ybelkada/t5-3b-sharded
+harish/t5-e2e-10epochs-lr1e4-alpha0-9
+harish/t5-e2e-2epochs-lr1e4-alpha0-5
+shashanksingh944/t5-english-to-python-generator
+huggingtweets/henryfarrell
+huggingtweets/pilgrimbeart
+cansen88/PromptGenerator_32_topic_finetuned
+dquisi/story_spanish_gpt2_by_category
+dquisi/story_spanish_gpt2_v2
+cansen88/PromptGenerator_5_topic_finetuned
+BigSalmon/InformalToFormalLincoln64Paraphrase
+Lvxue/distilled-mt5-small-0.02-0.5
+Lvxue/distilled-mt5-small-0.02-1
+Lvxue/distilled-mt5-small-0.02-0.25
+Lvxue/distilled-mt5-small-0.005-0.25
+Lvxue/distilled-mt5-small-1-0.5
+Lvxue/distilled-mt5-small-1-0.25
+Lvxue/distilled-mt5-small-0.005-1
+Lvxue/distilled-mt5-small-1-1
+skouras/DialoGPT-small-swda
+Lvxue/distilled-mt5-small-0.005-0.5
+Lvxue/distilled-mt5-small-1-2
+skouras/DialoGPT-small-maptask
+Lvxue/distilled-mt5-small-0.01-0.5-full
+huggingtweets/shaanvp
+Intel/distilgpt2-wikitext2
+ybelkada/t5-11b-sharded
+VanessaSchenkel/padrao-unicamp-finetuned-news_commentary
+sonoisa/t5-base-japanese-v1.1
+muchad/idt5-qa-qg
+huggingtweets/20pointsbot-apesahoy-nsp_gpt2
+huggingtweets/20pointsbot-apesahoy-chai_ste-deepfanfiction-nsp_gpt2-pldroneoperated
+huggingtweets/apesahoy-chai_ste-deepfanfiction-nsp_gpt2-pldroneoperated
+huggingtweets/xelanater
+huggingtweets/vitamoonshadow
+huranokuma/es_IT
+Huaibo/t5_dialog_jp
+AkashKhamkar/T5-base-v2
+AlbedoAI/DialoGPT-large-Albedo
+AlbedoAI/DialoGPT-large-Albedo2
+VanessaSchenkel/padrao-unicamp-finetuned-opus_books
+huggingtweets/amber08007635
+huggingtweets/elonmusk-pornhub
+arvkevi/nba_pbp_distilgpt2
+huggingtweets/markythefluffy
+BigSalmon/InformalToFormalLincoln65Paraphrase
+BigSalmon/InformalToFormalLincoln66Paraphrase
+residentalien/DialoGPT-small-doctor
+BigSalmon/SmallerGPT2InformalToFormalLincoln67Paraphrase
+huggingtweets/ianflynnbkc
+AlbedoAI/DialoGPT-medium-Albedo
+sysresearch101/t5-large-xsum-cnn-8-2
+willmay/DialoGPT-medium-will2
+huggingtweets/palestinepound
+shashanksingh944/sql-model-generator
+shashanksingh944/sql-large-model
+huranokuma/es_financial
+awesometeng/TGL-3
+iceshadow/huggingface_T5_QA
+bearbearchu/mt5-small-finetuned-wikipedia-summarization-jp
+chulainn/DialoGPT-medium-Zuko
+RAYZ/t5-pegasus-masked
+ctoner2653/DialoGPT-medium-RickBoty
+harish/SMALL-t5-eSNLI-limited-eFigSNLI-e10-alpha-0-1
+harish/eSNLI-limited-e-10-alpha-0-5
+harish/eSNLI-limited-eFigSNLI-e10-a0-9
+harish/eSNLI-limited-eFigSNLI-e10-a0-9-eFigSNLI-e20-a-0-1
+harish/IMPLI-T5-e10
+harish/eSNLI-e10-a-0-5-IMPLI-e10-eFig-e10-a0-1
+mousaazari/t5-text2sql_v1
+harish/eSNLI-e10-a-0-5-IMPLI-e10-eFig-e10-a0-1-eFig-e20-a-0-9
+Number4/DialoGPT-medium-harrypotter
+bdunnette/derbynames-aitextgen
+bearbearchu/mt5-small-finetuned-wikipedia-summarization-jp-larger-summary
+harish/IMPLI-e10-eFigSNLI-e10-a-0-1
+harish/IMPLI-e10-eFigSNLI-e10-a-0-1-eFigSNLI-e20-a-0-9
+harish/T5-Large-eFigSNLI-e10-a-0-1
+huggingtweets/buffer-fastcompany-thinkwithgoogle
+Cailean/Korean_SKT_200
+harish/T5-Large-eFigSNLI-e10-a-0-1-eFigSNLI-e20-a-0-9
+wesbeaver/test-summarization
+wesbeaver/test_model1
+Cailean/DutchML6_1500
+Cailean/DutchML6_2500
+BigSalmon/InformalToFormalLincoln68Paraphrase
+huggingtweets/apesahoy-botphilosophyq-chai_ste-marxhaunting-nsp_gpt2-shrekscriptlol-theofficialkeir-xannon199
+huggingtweets/apesahoy-chai_ste-nsp_gpt2-shrekscriptlol-theofficialkeir-xannon199
+huggingtweets/nickjr
+huggingtweets/nickelodeon
+huggingtweets/apesahoy-hannibalscript-nsp_gpt2-peepscript-shrekscriptlol-toywhole
+huggingtweets/rocktwithapockt
+huggingtweets/risefallnickbck
+huggingtweets/paramountplus
+huggingtweets/apesahoy-nsp_gpt2-peepscript-shrekscriptlol
+RAYZ/t5-mengzi-mixed
+huggingtweets/pornosexualiza1
+huggingtweets/nomia2011
+huggingtweets/hordemommy
+chisun/mt5-small-finetuned-amazon-en-es
+yhavinga/norwegian-t5-base
+chieunq/mt5-small-finetuned-en-to-vi
+harish/T5-Large-eFigSNLI-e10-a-0-1-eFigSNLI-e20-a-0-999
+harish/IMPLI-e10-eSNLI-e10-a0-5
+harish/IMPLI-e10-eSNLI-e10-a0-5-eFigSNLI-e10-a-0-1
+harish/IMPLI-e10-eSNLI-e10-a0-5-eFigSNLI-e10-a-0-1-eFigSNLI-e20-a-0-9
+anki08/t5-small-finetuned-text2log-finetuned-nl-to-fol-finetuned-nl-to-fol
+harish/eSNLI-e10-a0-5-eFigSNLI-e10-a-0-1
+harish/eSNLI-e10-a0-5-eFigSNLI-e10-a-0-1-eFigSNLI-e20-a-0-9
+harish/TEST
+ElnaggarLab/ankh-base
+anki08/t5-small-finetuned-text2log-finetuned-nl-to-fol-finetuned-nl-to-fol-finetuned-nl-to-fol
+anki08/t5-small-finetuned-text2log-finetuned-nl-to-fol-finetuned-nl-to-fol-finetuned-nl-to-fol-version2
+athairus/codeparrot
+athairus/codeparrot-small
+elliotthwang/mt5_chinese_model
+Lvxue/distilled-mt5-small-b0.05
+Lvxue/distilled-mt5-small-test2
+Lvxue/distilled-mt5-small-b0.1
+Lvxue/distilled-mt5-small-b0.5
+Lvxue/distilled-mt5-small-b1
+Lvxue/distilled-mt5-small-b0.01
+yuewu/T5_title2abstract
+Lvxue/distilled-mt5-small-b2
+Lvxue/distilled-mt5-small-b10
+Lvxue/distilled-mt5-small-b20
+Lvxue/distilled-mt5-small-b50
+Lvxue/distilled-mt5-small-b100
+Lvxue/distilled-mt5-small-b5
+pbwt/turkishReviews-ds-mini
+BlackKakapo/t5-small-paraphrase-ro-v2
+Sehong/t5-large-QuestionGeneration
+Bachstelze/poetryRapGPT
+Lvxue/distilled-mt5-small-b0.02
+Lvxue/distilled-mt5-small-b0.03
+Lvxue/distilled-mt5-small-b0.04
+Lvxue/distilled-mt5-small-b0.75
+Lvxue/distilled-mt5-small-b1.25
+Lvxue/distilled-mt5-small-b1.5
+NilsDamAi/nils-nl-to-rx-pt-v3
+wendy416/test-model
+huggingtweets/apesahoy-discoelysiumbot-jzux
+malteos/bloom-350m-german
+nafisehNik/mt5-persian-summary
+cambridgeltl/simctg_medium_wikitext103
+cambridgeltl/simctg_large_wikitext103
+microsoft/bloom-deepspeed-inference-fp16
+huggingtweets/karemaki
+huggingtweets/henrytcontreras
+huggingtweets/nazar1328
+bearbearchu/mt5-small-finetuned-wikipedia-summarization-jp-t5-limitations
+EllyPony/flutterbot
+shibing624/t5-chinese-couplet
+sepiosky/ParsT5_QA
+AlekseyKorshuk/first-5-v1-epoch1
+AlekseyKorshuk/first-5-v2-epoch2
+gbharathi80/mt5-small-finetuned-amazon-en-es
+bigscience/bloom-petals
+gaussalgo/mt5-large-priming-QA_en-cs
+Finnish-NLP/t5-small-nl16-finnish
+huggingtweets/timgill924
+ndemoes/distilgpt2-finetuned-eap
+huggingtweets/pseud0anon
+mphamsioo/lol
+huggingtweets/n8jonesy
+Suryansh-23/DialoGPT-small-MichaelScottOffice
+Someman/gpt2-medium-ne
+elliotthwang/CMT5l
+huggingtweets/moxxisfinest
+Cirilaron/DialoGPT-medium-vergil
+microsoft/bloom-deepspeed-inference-int8
+wyu1/FiD-NQ
+KoboldAI/GPT-NeoX-20B-Skein
+huggingtweets/theyeezybot
+wyu1/FiD-TQA
+lightbansal/autotrain-metadata_postprocess-1277848897
+lightbansal/autotrain-metadata_postprocess-1277848909
+lightbansal/autotrain-metadata_postprocess-1277848903
+Akoo/mpbbLM
+CarryNid/mt5-small-finetuned-multilingual-xlsum-new
+Izuuk/izuuk
+huggingtweets/jeffreykofman
+BlackKakapo/t5-base-paraphrase-ro-v2
+whatdhack/mt5-small-finetuned-amazon-en-es
+mrm8488/bloom-560m-finetuned-news-summarization-cnn
+FrostAura/gpt-neox-20b-fiction-novel-generation
+afif-fahim/mt5-small_xlsum-bans
+zuu/t5-small-sinhala-english-nmt
+afif-fahim/banglat5_xlsum-bans
+afif-fahim/mt5-base_xlsum-bans
+afif-fahim/bengali-t5-base-xlsum-bans
+shungyan/Diablo-small-harrypotter
+yhavinga/byt5-small-ccmatrix-en-nl
+bhavyasharma/DialoGPT-small-harrypotter
+csebuetnlp/banglat5_nmt_bn_en
+csebuetnlp/banglat5_nmt_en_bn
+youa/wujian
+maveriq/my_gpt2_owt_step10k
+nishita/outputs
+nintwentydo/rickbot
+wilame/jobdescription
+fractalego/conversation-qa
+BigSalmon/InformalToFormalLincoln69Paraphrase
+abaldaniya29/t5-small-finetuned-wikiSQL
+BigSalmon/InformalToFormalLincoln70Paraphrase
+Yihui/t5-small-text-summary-generation
+whatdhack/mt5-small-finetuned-amazon-en-es-1
+Waynehillsdev/Wayne_mT5
+BigSalmon/InformalToFormalLincoln71Paraphrase
+RAYZ/play1
+SSI/GhostWriter_Bot
+RAYZ/play2
+Langboat/bloom-389m-zh
+AlekseyKorshuk/gpt2-4m-2652
+gayanin/t5-small-paraphrasing-mlm-med-mask-filling-cm0
+laurabernardy/LuxGPT2
+laurabernardy/LuxGPT2-basedGER
+laurabernardy/LuxGPT-basedEN
+mrm8488/bloom-7b1-8bit
+uripper/AVA
+VanHoan/mt5-small-finetuned-amazon-en-ja
+yuewu/T5_abstract2title
+VanHoan/codeparrot-ds
+tylersfoot/DialoGPT-medium-rick
+Shamus/mt5-base-finetuned-ar-to-en
+unicamp-dl/mt5-3b-mmarco-100k-kdd-alltrain-4.5e
+unicamp-dl/mt5-3b-mmarco-100k-kdd-alltrain-4e
+unicamp-dl/mt5-3b-mmarco-100k-kdd-wo_documents-task12-6000-5e
+huggingtweets/dadjokeapibot
+llongpre/DialoGPT-small-miles
+llongpre/DialoGPT-small-mbot
+nguyenkhoa2407/gpt2-NER-favsbot
+wvangils/BLOOM-560m-Beatles-Lyrics-finetuned
+RyanQin/k2j
+Sohini17/mt5-small-finetuned-amazon-en-es
+NilsDamAi/nils-nl-to-rx-pt-v4
+PascalNotin/Tranception_Small
+unicamp-dl/mt5-13b-mmarco-100k-kdd-alltrain-5e
+unicamp-dl/mt5-13b-mmarco-100k-kdd-alltrain-4.5e
+Lvxue/distilled-mt5-base-pseudo-labeling
+NilsDamAi/nils-nl-to-rx-pt-v5
+unicamp-dl/mt5-13b-mmarco-100k-kdd-alltrain-4e
+imen11111/Pretrained_araT5_unlabeled
+Zamachi/t5-for-translation
+EJoftheVern/DialoGPT-medium-shaggy
+s-nlp/lewit-informal
+mbarnig/T5-mt5-tatoeba-en-lb
+xtraXpert/DialoGPT-small-RickAndMorty2
+d0r1h/t5_cnn_dailymail
+Hyeoni/t5-e2e-questions-generation-KorQuAD
+PascalNotin/Tranception_Medium
+huggingtweets/bmrf_alerts
+huggingtweets/gladosystem
+PascalNotin/Tranception_Large
+ANIKEThash/DialoGPT-medium-character
+theojolliffe/T5-model-1-d-1
+hamishivi/t5-xl-lm-adapt-encoder
+ucinlp/diabetes-t5-small
+ucinlp/diabetes-t5-large
+d0r1h/testt5
+ucinlp/compas-t5-small
+ucinlp/compas-t5-large
+ucinlp/german-t5-large
+ucinlp/german-t5-small
+Mcy/t5-small-finetuned-xsum
+bigscience/sgpt-bloom-7b1-msmarco
+gokceuludogan/t2t-adeX-prompt
+aiknowyou/mt5-base-it-paraphraser
+SharpAI/t5_l12_large_dataset
+theojolliffe/T5-model-1-d-2
+theojolliffe/T5-model-1-feedback
+theojolliffe/T5-model-1-d-4
+Noonw/DialoGPT-small-hijackersexurmom
+theojolliffe/T5-model-1-d-6
+BigSalmon/Infill
+BigSalmon/InformalToFormalLincoln72Paraphrase
+DylanJHJ/monot5m-large-msmarco-100k
+huggingtweets/noagencynewyork
+fat32man/elon_answers
+sonoisa/t5-base-japanese-adapt
+huggingtweets/nickelodeon-nickjr-sesamestreet
+huggingtweets/nickjr-paramountplus-sesamestreet
+dquisi/T5-story-keys
+charsiu/g2p_multilingual_byT5_tiny_8_layers_100
+charsiu/g2p_multilingual_byT5_tiny_12_layers_100
+charsiu/g2p_multilingual_byT5_tiny_16_layers_100
+charsiu/g2p_multilingual_byT5_small_100
+fractalego/creak-sense
+BigSalmon/Infill2
+caffsean/t5-small-finetuned-keyword-to-text-generation
+caffsean/t5-base-finetuned-keyword-to-text-generation
+sagawa/CompoundT5
+sagawa/PubChem-10m-t5
+huggingtweets/pink_rodent
+huggingtweets/cant_piss
+yirmibesogluz/t2t-assert-ade-balanced
+yirmibesogluz/t2t-ner-ade-balanced
+mayjul/t5-small-finetuned-xsum
+huggingtweets/giorgiameloni
+Noonw/DialoGPT-small-ladenflyplane
+Noonw/DialoGPT-small-ladenonjet
+Bistolero/nl_ge_new_17ksamples
+BigSalmon/InformalToFormalLincoln73Paraphrase
+Jaren/DialoT5
+MinhP/DialoGPT-small-franco
+caffsean/gpt2-dzongkha-text
+GAIR/rst-fact-retrieval-11b
+abeja/gpt2-large-japanese
+Bistolero/nl_ge_25_25_4b_se
+ibm/regen-disambiguation
+artemnech/dialoT5-base
+p-christ/text2text_12345
+Karan59/DialoGPT-small-evaModel
+cemilcelik/distilgpt2_pubmed
+ukr-models/uk-summarizer
+huggingtweets/apesahoy-deepleffen-ripeacsky
+Einmalumdiewelt/T5-Base_GNAD_MaxSamples
+echarlaix/t5-small-openvino
+Dizzykong/Aristotle-8-29
+huggingtweets/actbrigitte
+huggingtweets/chrishildabrant
+phpaiola/ptt5-base-summ-wikilingua
+GroNLP/T0pp-sharded
+phpaiola/ptt5-base-summ-xlsum
+phpaiola/ptt5-base-summ-temario
+phpaiola/ptt5-base-summ-cstnews
+caffsean/t5-large-finetune-keyword-to-text-generation
+SharpAI/net-traffic-t5-l12
+anki08/t5-small-finetuned-text2log-compute-metrics-v5-400
+marblyso/DialoGPT-medium-marblesbagel
+jannatul17/squad-bn-qgen-banglat5
+adroble/kogpt2-movie
+lersouza/monobyte-en-v5
+imen11111/araT5-baseline
+imen11111/araT5-freezed
+GAIR/rst-information-extraction-11b
+GAIR/rst-intent-detection-11b
+GAIR/rst-natural-language-inference-11b
+GAIR/rst-sentiment-classification-11b
+GAIR/rst-summarization-11b
+GAIR/rst-temporal-reasoning-11b
+GAIR/rst-topic-classification-11b
+GAIR/rst-word-sense-disambiguation-11b
+huggingtweets/doaenel
+Jojo17/DialoGPT-small-RickAndMorty
+npc-engine/t5-base-mse-summarization
+npc-engine/t5-small-mse-summarization
+abhitopia/question-answer-generation
+huggingtweets/joped
+jannatul17/squad-bn-qgen-mt5-all-metric
+LongNN/TextSummarization
+GAIR/rst-all-11b
+rinna/japanese-gpt-neox-small
+Langboat/bloom-800m-zh
+Langboat/bloom-1b4-zh
+mpapucci/it5-gender-classification-tag-it
+Langboat/bloom-2b5-zh
+Langboat/bloom-6b4-zh
+ai-forever/mGPT-armenian
+juancopi81/mutopia_guitar_mmm
+Johannes/code-generation-model-fine-tuned-to-produce-good-code-snippets
+huggingtweets/chrisjbakke
+BigSalmon/Backwards
+theojolliffe/T5-model-1-feedback-e1
+SharpAI/mal-net-traffic-t5-l12
+Waynehillsdev/Wayne_mT5_case1
+whatdhack/mt5-small-finetuned-amazon-en-es-20220901_001521
+mpapucci/it5-topic-classification-tag-it
+jaimin/T5_ParaPhrase
+jaimin/T5-Small-ParaPhrase
+GItaf/gpt2-finetuned-mbti-0901
+GAIR/rst-gaokao-cloze-11b
+jaimin/T5-ParaPhrase-Pytorch-Lightning
+mrm8488/bloom-560m-finetuned-news-summarization-xsum
+GAIR/rst-gaokao-rc-11b
+RyanQin/k2c
+SharpAI/benign-net-traffic-t5-l12
+deseipel/medium-LucyClarke_
+mpapucci/it5-age-classification-tag-it
+GAIR/rst-gaokao-writing-11b
+mpapucci/it5-multitask-classification-topic-age-gender-tag-it
+BigSalmon/InformalToFormalLincoln74Paraphrase
+bingyinh/pretrained_t5_polymer_composite_caption
+umm-maybe/DumplingBot
+shed-e/Summary
+KoboldAI/GPT-NeoX-20B-Erebus
+clam004/emerg-intent-gpt2-v2
+clam004/emerg-intent-gpt2-v3
+DiscordBackup/model0000
+uripper/ChatbotTrainingBot
+Neo87z1/STEKGramarChecker
+yoonhero/kogpt2-chat
+prikarsartam/Chatelet
+Cc618/distilgpt2-finetuned-lyrics
+AmolSatsangi/t5-small-finetuned-xsum
+rosetta/summarization_trial_model
+huggingtweets/barackobama-elonmusk-taylorswift13
+nschenone/metal-distil
+nschenone/rap-distil
+SirSpiffy/IvanModel
+BigSalmon/InformalToFormalLincoln75Paraphrase
+Jaren/EntityT5
+hieule/mt5-small-finetuned-amazon-en-es
+woodmtaylor/DialoGPT-small-Heej
+Trevawhateva/AACM_Generator
+huggingtweets/reda_getachew
+pedramyamini/ku_t5_base
+huggingtweets/weecalrobot
+hieule/codeparrot-ds
+pedramyamini/ku_t5_base-finetuned-rudaw-ku
+huggingtweets/getfactet
+Penguins184/UntrainedDiabloGPTmedium
+General/my-awesome-model222
+SamuelAllen1234/testing
+General/my-awesome-model-unplugged
+General/my-awesome-model-unplugged-gpt2
+orhanxakarsu/turkishReviews-ds-mini-model
+woodmtaylor/DialoGPT-medium-Heej
+OctaviusI/marisaV0
+pedramyamini/ku_t5_base-finetuned-rudaw-ku-1024-128
+farleyknight-org-username/arxiv-summarization-t5-small
+lmqg/mt5-base-squad-qg
+farleyknight/cnn_dailymail-summarization-t5-small-2022-09-05
+huggingtweets/suppernickbroth
+bs-la/bloom-560m_az_bitfit_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_az_bitfit_10000samples_-1vocab_original-frozen
+bs-la/bloom-560m_az_bitfit_1000samples_-1vocab_original-frozen
+zchowdhury/t5-base-cfpb
+bs-la/bloom-560m_az_sft_1000samples_-1vocab_original-frozen
+bs-la/bloom-560m_az_sft_10000samples_-1vocab_original-frozen
+bs-la/bloom-560m_az_sft_100000samples_-1vocab_original-frozen
+zchowdhury/t5-base-amazon-us-review
+zchowdhury/t5-base-cc-news
+haoanh98/Vit5-base
+huggingtweets/anandmahindra-opensea-rs5_eth
+rifkat/distilgpt2uz
+CaoHaiNam/demo-1
+bs-la/bloom-560m_az_fish_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_az_fish_10000samples_-1vocab_original-frozen
+bs-la/bloom-560m_az_fish_1000samples_-1vocab_original-frozen
+cemilcelik/de-fr-news
+ChloeMJM/DialoGPT-small-rick
+whatdhack/mt5-small-finetuned-amazon-en-es-20220906_091928
+BigSalmon/InformalToFormalLincoln76Paraphrase
+theojolliffe/t5-model1-feedback
+VietAI/vit5-base-vietnews-summarization
+huggingtweets/funfacts
+uripper/Gordon
+Valkyries15/tf_demo
+clam004/emerg-intent-consistent-good-gpt2-xl-v2
+davidFD19/mt5-base-es-qg
+davidFD19/mt5-base-es-aex
+davidFD19/mt5-base-es-dg
+rajkumarrrk/t5-base-fine-tuned-on-totto
+rewsiffer/distilgpt2-finetuned-wikitext2
+huggingtweets/mariojpenton-mjorgec1994-sanmemero
+nschenone/pop-punk-distil
+VanessaSchenkel/padrao-unicamp-vanessa-finetuned-handscrafted
+Armandoliv/t5-small-summarizer-scitldr
+nschenone/pop-distil
+nschenone/rat-pack-distil
+tianyisun/gpt2-finetuned-cola
+huggingtweets/sanmemero
+huggingtweets/mariojpenton-mjorgec1994
+dh-unibe/gpt2-larger-walser
+farleyknight/cnn_dailymail-summarization-t5-small-2022-09-08
+truongpdd/vietnews-gpt2
+huggingtweets/tristandross
+JDesignEra/DialoGPT-small-Anya
+huggingtweets/piemadd
+orhanxakarsu/turkisPoes-ds-mini-model
+GItaf/gpt2-gpt2-finetuned-mbti-0909
+marcus2000/fine_tuned_t5_model
+tianyisun/opt-350m-finetuned-cola
+MrE/DialoGPT-medium-SARGER4
+boyuanzheng010/t5-small-finetuned-xsum
+huggingtweets/amouranth
+MJ199999/gpt3_model
+Farnazgh/QA2D
+aarya-c111/DialoGPT-small-Rogers
+rafiuddin/t5-end2end-questions-generation
+orhanxakarsu/turkishPoe-generation
+EleutherAI/polyglot-ko-3.8b
+BigSalmon/InformalToFormalLincoln77Paraphrase
+orhanxakarsu/turkishPoe-generation-1
+BigSalmon/Infill3
+huggingtweets/frankdegods
+huggingtweets/apesahoy-daftlimmy-women4wes
+huggingtweets/apesahoy-daftlimmy-starmerout
+huggingtweets/apesahoy-dril_gpt2-stefgotbooted
+huggingtweets/altgazza-apesahoy-stefgotbooted
+huggingtweets/apesahoy-groanbot-mirrorceleb
+BigSalmon/InformalToFormalLincoln76ParaphraseXL
+orhanxakarsu/turkish-poem-generation
+bozlucas/DialoGPT-medium-HermioneBot
+kriton/greek-title-generator
+aisuneko/kyubey-ai
+orhanxakarsu/turkish-poem-generation-1
+LasseVKP/DialoGPT-Mogens
+theojolliffe/T5-model-1-feedback-1109
+Padomin/t5-base-TEDxJP-0front-1body-0rear
+Padomin/t5-base-TEDxJP-5front-1body-0rear
+Padomin/t5-base-TEDxJP-10front-1body-0rear
+Padomin/t5-base-TEDxJP-3front-1body-0rear
+Padomin/t5-base-TEDxJP-8front-1body-0rear
+AntoDono/DialoGPT-Bopy-Human-Conversational-v0.1
+shaurya0512/distilgpt2-finetuned-wikitext2
+Padomin/t5-base-TEDxJP-2front-1body-0rear
+Padomin/t5-base-TEDxJP-1front-1body-0rear
+Padomin/t5-base-TEDxJP-4front-1body-0rear
+huggingtweets/hermelatv
+Padomin/t5-base-TEDxJP-6front-1body-0rear
+Padomin/t5-base-TEDxJP-9front-1body-0rear
+Padomin/t5-base-TEDxJP-7front-1body-0rear
+micrem73/GePpeTto-finetuned-gastro
+jaimin/T5-Large
+metaloopa/DialoGPT-medium-Rintaro
+huggingtweets/gbianchi404
+Narrativaai/bloom-560m-finetuned-totto-table-to-text
+Padomin/t5-base-TEDxJP-0front-1body-10rear
+Padomin/t5-base-TEDxJP-0front-1body-9rear
+KES/GEC-English
+Padomin/t5-base-TEDxJP-0front-1body-8rear
+ingen51/DialoGPT-medium-GPT4
+eaglewatch/gpt2-ko-wikipedia
+HanSSH/mt5-small-finetuned-amazon-en-es
+Padomin/t5-base-TEDxJP-0front-1body-7rear
+Padomin/t5-base-TEDxJP-0front-1body-6rear
+shaurya0512/distilgpt2-finetune-acl22
+Padomin/t5-base-TEDxJP-0front-1body-5rear
+Padomin/t5-base-TEDxJP-0front-1body-4rear
+Padomin/t5-base-TEDxJP-0front-1body-3rear
+akashchauhan/GrammarCorrector
+Padomin/t5-base-TEDxJP-0front-1body-1rear
+Padomin/t5-base-TEDxJP-0front-1body-2rear
+tsaed/gpt-sept-12
+pedramyamini/ku_t5_base-finetuned-rudaw-ku-512-128
+Padomin/t5-base-TEDxJP-5front-1body-5rear
+Padomin/t5-base-TEDxJP-4front-1body-4rear
+Padomin/t5-base-TEDxJP-2front-1body-2rear
+Padomin/t5-base-TEDxJP-3front-1body-3rear
+Padomin/t5-base-TEDxJP-1front-1body-1rear
+rajpurkar/distilgpt2-finetuned-wikitext2
+huggingtweets/rachelzegler
+huggingtweets/zendaya
+huggingtweets/lingua_ignota_
+huggingtweets/c9mang0
+huggingtweets/39daph
+huggingtweets/piercetheveil
+huggingtweets/nickiminaj
+huggingtweets/zodiac_mf
+huggingtweets/1gunnagunna-iamcardib-pnbrock
+huggingtweets/burgerking-elonmusk
+huggingtweets/mariahcarey
+huggingtweets/sanbenito
+huggingtweets/metallica
+huggingtweets/burgerking
+huggingtweets/elonmusk-heychadmasters-jess
+huggingtweets/elonmusk-mcdonalds-subway
+BigSalmon/Infill04
+BigSalmon/InformalToFormalLincoln78Paraphrase
+Divyesh/DialoGPT-medium-harrypotter
+Padomin/t5-base-TEDxJP-6front-1body-6rear
+Padomin/t5-base-TEDxJP-7front-1body-7rear
+Padomin/t5-base-TEDxJP-8front-1body-8rear
+Padomin/t5-base-TEDxJP-9front-1body-9rear
+Padomin/t5-base-TEDxJP-10front-1body-10rear
+rajpurkar/results
+Waynehillsdev/Wayne_NLP_T5
+Hugherinit/hi
+Roy029/mPyT5-epoch5
+micrem73/GePpeTto-finetuned-gastro-finetuned-bolo
+canovich/myprivateee
+pedramyamini/ku_t5_base-finetuned-rudaw-ku-512-128-finetuned-rudaw-ku-512-128-20epochs
+GItaf/gpt2-gpt2-TF-weight1-epoch5
+tnieva/engg4811-ds
+kabilanp942/t5-finetuned-amazon-english
+Guen/t5-large-generate
+SSI/singularity-bot
+huggingtweets/ashoswai
+tnieva/engg48112-ds
+rajpurkar/distilgpt2-squad
+rajpurkar/gpt2-squad
+mrm8488/t5-small-finetuned-turk-text-simplification
+mrm8488/t5-base-finetuned-turk-text-simplification
+abyerly2jh/t5-small-finetuned-xsum
+mrm8488/t5-small-finetuned-text-simplification
+Padomin/t5-base-TEDxJP-0front-1body-10rear-order-RB
+Padomin/t5-base-TEDxJP-0front-1body-5rear-order-RB
+mesolitica/gpt2-117m-bahasa-cased
+HanSSH/test-bert-finetuned-squad-accelerate
+EleutherAI/polyglot-ko-1.3b
+inkoziev/rugpt_chitchat
+oeg/esT5s-base
+micrem73/GePpeTto-finetuned-bolo2.0
+VanessaSchenkel/pt-unicamp-news-t5
+hadifar/openstax_qg_agno
+lewtun/tiny-random-mt5
+huggingtweets/pranshuj73
+hf-internal-testing/tiny-random-onnx-mt5
+marcus2000/ru_t5_model_forlegaltext_rouge
+mikedodge/t5-small-finetuned-xsum
+VanessaSchenkel/pt-unicamp-handcrafted
+Wi/gptp
+huggingtweets/eeriemachine
+ntkuhn/lean-parrot
+Natsuki-Chan/DialoGPT-medium-luz
+abyerly2jh/t5-base-finetuned-eli5
+yogeshchandrasekharuni/parrot_paraphraser_on_T5-finetuned-xsum-v0
+ElnaggarLab/ankh-large
+AtharvaaPatil/t5_model_v1
+MGanesh29/parrot_paraphraser_on_T5-finetuned-xsum-v5
+gauravshivs/t5-small-finetuned-xsum
+abyerly2jh/t5-small-finetuned-eli5
+rosamondthalken/t5-base-sci-names
+rosamondthalken/t5-small-sci-names
+spacemanidol/t5-base-nq-grammar-prefix
+Armandoliv/gpt2-tweetml-generator
+hadifar/dutch_qg
+marcderbauer/vice-headlines
+akira2001/DialoGPT-medium-harrypotter
+bigscience/bloomz
+bigscience/bloomz-p3
+huggingtweets/arrington-jespow-lightcrypto
+ashiqabdulkhader/GPT2-Malayalam
+spacemanidol/t5-base-all-rewrite-correct-unchaged-grammar-prefix
+jose-canedo/gpt2-squad
+kriton/greek-text-summarization
+Bistolero/1ep_seq_25_6b
+Gustavosta/MagicPrompt-Stable-Diffusion
+Gustavosta/MagicPrompt-Dalle
+ssharm87/t5-small-finetuned-xsum-ss
+morenolq/distilgpt2-fables-demo
+huggingtweets/perpetualg00se
+LanYiU/codeparrot-ds
+Jordine/purplechair
+Bistolero/nl_ge_25_6b_3ep_se
+osueng02/DialoGPT-small-STAN_BOT
+RAYTRAC3R/fanfic-chat
+hululuzhu/chinese-poem-t5-mengzi-finetune
+osueng02/DialoGPT-medium-STAN_BOT
+SandraB/mt5-small-mlsum_training_sample
+ImadAziz/DialoGPT-Sheldon
+huynguyen208/fantastic4-finetuned-vi-to-en-PhoMT-demo-T5-NLPHUST-Small
+Abdulmateen/mt5-small-finetuned-amazon-en-es
+huggingtweets/chriscantino
+spacemanidol/t5-base-all-rewrite-correct-unchaged-no-prefix
+farleyknight/patent-summarization-t5-base-2022-09-20
+huggingtweets/markiplier-mrbeast-xqc
+HanSSH/mt5-small-finetuned-amazon-en-es-0920
+DunnBC22/sentence-t5-base-FT-Quora_Sentence_Similarity-LG
+CareerNinja/t5_large_1e-4_on_V3dataset
+PrimeQA/t5-base-hybrid-question-generator
+numercial/t5-large-drop
+minminzi/t5-base-finetuned-eli5
+Xinrui/t5-small-finetuned-eli5
+RehanP123/DialoGPT-medium-kermit.old
+Silvers-145/khayal-generate
+BigSalmon/InformalToFormalLincoln79Paraphrase
+evanthebouncy/cad-llm
+codestylist/combined_code_style_transformer
+SharpAI/benign-net-traffic-v2-t5-l12
+codestylist/docstring_code_style_transformer
+codestylist/comment_code_style_transformer
+codestylist/comprehension_code_style_transformer
+codestylist/class_code_style_transformer
+Samuel-Fipps/t5-efficient-large-nl36_fine_tune_sum_V2
+codestylist/casing_code_style_transformer
+rajkumarrrk/gpt2-fine-tuned-on-imdb-positive-reviews
+huggingtweets/houstonhotwife-thongwife
+huggingtweets/celcom
+GItaf/gpt2-gpt2-TF-weight1-epoch10
+GItaf/gpt2-gpt2-TF-weight2-epoch5
+GItaf/gpt2-gpt2-TF-weight0.5-epoch5
+rohansadaphule/DialoGPT-small-Batman
+QyQy/VietAi-FinalProject-VIT5
+GItaf/gpt2-gpt2-TF-weight1-epoch15
+CommunityLM/republican-twitter-gpt2
+CommunityLM/democrat-twitter-gpt2
+farleyknight/arxiv-summarization-t5-base-2022-09-21
+alyssahuang02/distilgpt2-squad
+ashiqabdulkhader/GPT2-Poet
+sincerelyoobin/t5-small-finetuned-scan_v2
+BigSalmon/InformalToFormalLincoln80Paraphrase
+0ys/mt5-small-finetuned-amazon-en-es
+EleutherAI/polyglot-ko-5.8b
+voidful/phoneme_byt5_v2
+MGanesh29/parrot_paraphraser_on_T5-finetuned-xsum-v6
+MGanesh29/parrot_paraphraser_on_T5-finetuned-xsum-v7
+Abdelmageed95/caption_model
+Intel/t5-small-xsum-int8-dynamic
+marilenagougoula/mt5-small-finetuned-amazon-en-es
+CaoHaiNam/demo-2
+neelmehta00/t5-base-finetuned-eli5
+jamiehuang/t5-base-finetuned-xsum
+minminzi/t5-small-finetuned-eli5
+CaoHaiNam/demo-3
+rajammanabrolu/t5_supervised_en_de_wmt16
+ryuno25/t5-base-finetuned-eli-5
+Nakul24/SM_Bot
+ScriptEdgeAI/MarathiSentiment-Bloom-560m
+tkuye/t5-dd
+tkuye/reinforce-dd
+j0hngou/t5-small-finetuned-en-to-it
+hadifar/tqa_qg_agno
+Sila97/T5-small-finetuned-en-to-ro
+tkuye/reinforce-ost
+bs-la/bloom-560m_my_bitfit_100000samples_-1vocab_original-frozen
+mideind/yfirlestur-icelandic-classification-byt5
+adroble/kogpt2-movie-long
+tkuye/t5-ost
+neelmehta00/t5-small-finetuned-eli5-neel
+Fadil-1/t5-small-finetuned-ELI5
+chulainn/DialoGPT-medium-Ragnar
+huggingtweets/rossimiano
+lcw99/t5-base-korean-text-summary
+huggingtweets/marketsmeowmeow
+huggingtweets/it_airmass
+huggingtweets/cl207
+huggingtweets/beranewsnetwork
+huggingtweets/pentosh1
+aniketface/DialoGPT-product
+huggingtweets/kingboiwabi
+din0s/t5-small-finetuned-en-to-fr
+din0s/t5-small-finetuned-en-to-ro
+din0s/t5-small-finetuned-en-to-de
+ckiplab/gpt2-tiny-chinese
+din0s/t5-small-finetuned-en-to-it
+macavaney/it5-base-istella-title_url
+macavaney/it5-base-istella-title_url_text
+CaoHaiNam/demo-0.1
+CaoHaiNam/demo-4
+jamiehuang/t5-small-finetuned-xsum
+hujiazhen/t5-small-finetuned-eli5
+neelmehta00/t5-small-finetuned-eli5-neel-final
+huggingtweets/sadbutchhours
+nikhilsk/t5-base-finetuned-eli5
+anirudhkashyap/t5-base-eli5_model1
+gur509/t5-small-finetuned-eli5
+BigSalmon/InformalToFormalLincoln81ParaphraseMedium
+neelmehta00/t5-small-finetuned-eli5-neel-final-again
+jamesesguerra/mt5-small-finetuned-1.0.0
+ninellninell/distilgpt2-finetuned-wikitext2
+kaverikale/finetuned-t5
+rajkumarrrk/t5-fine-tuned-on-wmt14
+hadifar/tqa_qg_v2
+hadifar/tqa_qg_t5
+shohanursobuj/DialoGPT
+kkotkar1/t5-small-t5-base
+ammarpl/t5-small-finetuned-xsum
+eliwill/stoic-generator-distil-gpt2
+Lagstill/GPT-2-Tamil
+marblyso/DialoGPT-medium-hero
+marblyso/DialoGPT-medium-kel
+marblyso/DialoGPT-medium-aubrey
+eliwill/stoic-generator-10e
+huggingtweets/donni-dril
+ammarpl/t5-base-finetuned-elif-attempt1
+ssharm87/t5-small-finetuned-eli5
+Bistolero/nl_ge_DP_6BX5_3
+ammarpl/t5-base-finetuned-elif-attempt2
+kritiasdev1/kcogpt2_emotion_chatbot
+jamiehuang12/t5-small-finetuned-xsum
+VietAI/gptho
+Sandipan1994/t5-small-finetuned-eli5
+sejalarya/Story-Generator
+mesolitica/t5-3x-super-tiny-standard-bahasa-cased
+prikarsartam/Olga
+jamesesguerra/mt5-small-finetuned-1.0.2
+mesolitica/t5-base-bahasa-cased
+Ghani-25/predy
+huggingtweets/dolceragazza26-femdomfusion-mistressleiaa
+rajkumarrrk/t5-fine-tuned-on-wmt16-news-commentary
+rajkumarrrk/t5-fine-tuned-on-iwslt2017en_de
+kp9z2/distilgpt2-finetuned-wikitext2
+jamieai/t5-small-finetuned-xsum
+kk4real/t5-small-finetuned-eli5
+ammarpl/t5-base-finetuned-xsum-a
+ammarpl/t5-base-finetuned-eli5-a
+anas-awadalla/gpt2-large-span-head-finetuned-squad
+anas-awadalla/gpt2-medium-span-head-finetuned-squad
+AntoDono/DialoGPT-Bopy-Human-Conversational-v0.2
+huggingtweets/alexspoodiary-apesahoy-nsp_gpt2
+anas-awadalla/gpt2-span-head-few-shot-k-16-finetuned-squad-seed-0
+anas-awadalla/gpt2-span-head-few-shot-k-16-finetuned-squad-seed-2
+anas-awadalla/gpt2-span-head-few-shot-k-16-finetuned-squad-seed-4
+anas-awadalla/gpt2-span-head-few-shot-k-32-finetuned-squad-seed-0
+anas-awadalla/gpt2-span-head-few-shot-k-32-finetuned-squad-seed-2
+anas-awadalla/gpt2-span-head-few-shot-k-32-finetuned-squad-seed-4
+anas-awadalla/gpt2-span-head-few-shot-k-64-finetuned-squad-seed-0
+anas-awadalla/gpt2-span-head-few-shot-k-64-finetuned-squad-seed-2
+anas-awadalla/gpt2-span-head-few-shot-k-64-finetuned-squad-seed-4
+anas-awadalla/gpt2-span-head-few-shot-k-128-finetuned-squad-seed-0
+anas-awadalla/gpt2-span-head-few-shot-k-128-finetuned-squad-seed-2
+anas-awadalla/gpt2-span-head-few-shot-k-128-finetuned-squad-seed-4
+CaoHaiNam/demo-5
+huggingtweets/naval-rossimiano-vancityreynolds
+bigscience/bloomz-7b1
+bigscience/bloomz-7b1-p3
+akil191/small-test-harryakakakaka
+anas-awadalla/gpt2-span-head-few-shot-k-256-finetuned-squad-seed-0
+anas-awadalla/gpt2-span-head-few-shot-k-256-finetuned-squad-seed-2
+anas-awadalla/gpt2-span-head-few-shot-k-256-finetuned-squad-seed-4
+anas-awadalla/gpt2-span-head-few-shot-k-512-finetuned-squad-seed-0
+anas-awadalla/gpt2-span-head-few-shot-k-512-finetuned-squad-seed-2
+anas-awadalla/gpt2-span-head-few-shot-k-512-finetuned-squad-seed-4
+anas-awadalla/gpt2-span-head-few-shot-k-1024-finetuned-squad-seed-0
+anas-awadalla/gpt2-span-head-few-shot-k-1024-finetuned-squad-seed-2
+anas-awadalla/gpt2-span-head-few-shot-k-1024-finetuned-squad-seed-4
+anas-awadalla/gpt2-medium-span-head-few-shot-k-16-finetuned-squad-seed-0
+anas-awadalla/gpt2-medium-span-head-few-shot-k-16-finetuned-squad-seed-2
+jelber2/codeparrot-small
+anas-awadalla/gpt2-medium-span-head-few-shot-k-16-finetuned-squad-seed-4
+Jerfey/text2text_sparql
+mrm8488/bloom-560m-finetuned-sd-prompts
+anas-awadalla/gpt2-medium-span-head-few-shot-k-32-finetuned-squad-seed-0
+anas-awadalla/t5-small-few-shot-k-16-finetuned-squad-seed-0
+Voicelab/vlt5-base-keywords
+anas-awadalla/gpt2-medium-span-head-few-shot-k-32-finetuned-squad-seed-2
+anas-awadalla/t5-small-few-shot-k-16-finetuned-squad-seed-2
+anas-awadalla/t5-small-few-shot-k-16-finetuned-squad-seed-4
+anas-awadalla/t5-small-few-shot-k-32-finetuned-squad-seed-0
+anas-awadalla/t5-small-few-shot-k-32-finetuned-squad-seed-2
+anas-awadalla/gpt2-medium-span-head-few-shot-k-32-finetuned-squad-seed-4
+anas-awadalla/t5-small-few-shot-k-32-finetuned-squad-seed-4
+anas-awadalla/t5-small-few-shot-k-64-finetuned-squad-seed-0
+mrm8488/bloom-560m-finetuned-common_gen
+anas-awadalla/t5-small-few-shot-k-64-finetuned-squad-seed-2
+anas-awadalla/t5-small-few-shot-k-64-finetuned-squad-seed-4
+anas-awadalla/gpt2-medium-span-head-few-shot-k-64-finetuned-squad-seed-0
+anas-awadalla/t5-small-few-shot-k-128-finetuned-squad-seed-0
+anas-awadalla/t5-small-few-shot-k-128-finetuned-squad-seed-2
+anas-awadalla/t5-small-few-shot-k-128-finetuned-squad-seed-4
+anas-awadalla/t5-small-few-shot-k-256-finetuned-squad-seed-0
+anas-awadalla/t5-small-few-shot-k-256-finetuned-squad-seed-2
+anas-awadalla/gpt2-medium-span-head-few-shot-k-64-finetuned-squad-seed-2
+anas-awadalla/t5-small-few-shot-k-256-finetuned-squad-seed-4
+anas-awadalla/t5-small-few-shot-k-512-finetuned-squad-seed-0
+anas-awadalla/gpt2-medium-span-head-few-shot-k-64-finetuned-squad-seed-4
+anas-awadalla/t5-small-few-shot-k-512-finetuned-squad-seed-2
+anas-awadalla/gpt2-medium-span-head-few-shot-k-128-finetuned-squad-seed-0
+sanpellegrino/CoryBot
+anas-awadalla/t5-small-few-shot-k-512-finetuned-squad-seed-4
+anas-awadalla/gpt2-medium-span-head-few-shot-k-128-finetuned-squad-seed-2
+mrm8488/bloom-560m-finetuned-samsum
+anas-awadalla/gpt2-medium-span-head-few-shot-k-128-finetuned-squad-seed-4
+anas-awadalla/t5-small-few-shot-k-1024-finetuned-squad-seed-0
+anas-awadalla/gpt2-medium-span-head-few-shot-k-256-finetuned-squad-seed-0
+anas-awadalla/gpt2-medium-span-head-few-shot-k-256-finetuned-squad-seed-2
+anas-awadalla/t5-small-few-shot-k-1024-finetuned-squad-seed-2
+anas-awadalla/gpt2-medium-span-head-few-shot-k-256-finetuned-squad-seed-4
+anas-awadalla/t5-small-few-shot-k-1024-finetuned-squad-seed-4
+anas-awadalla/gpt2-medium-span-head-few-shot-k-512-finetuned-squad-seed-0
+anas-awadalla/t5-base-few-shot-k-16-finetuned-squad-seed-0
+anas-awadalla/t5-base-few-shot-k-16-finetuned-squad-seed-2
+anas-awadalla/t5-base-few-shot-k-16-finetuned-squad-seed-4
+anas-awadalla/t5-base-few-shot-k-32-finetuned-squad-seed-0
+anas-awadalla/t5-base-few-shot-k-32-finetuned-squad-seed-2
+anas-awadalla/t5-base-few-shot-k-32-finetuned-squad-seed-4
+anas-awadalla/t5-base-few-shot-k-64-finetuned-squad-seed-0
+anas-awadalla/t5-base-few-shot-k-64-finetuned-squad-seed-2
+anas-awadalla/t5-base-few-shot-k-64-finetuned-squad-seed-4
+anas-awadalla/t5-base-few-shot-k-128-finetuned-squad-seed-0
+anas-awadalla/t5-base-few-shot-k-128-finetuned-squad-seed-2
+anas-awadalla/t5-base-few-shot-k-128-finetuned-squad-seed-4
+anas-awadalla/t5-base-few-shot-k-256-finetuned-squad-seed-0
+alpineai/cosql
+anas-awadalla/t5-base-few-shot-k-256-finetuned-squad-seed-2
+anas-awadalla/t5-base-few-shot-k-256-finetuned-squad-seed-4
+anas-awadalla/t5-base-few-shot-k-512-finetuned-squad-seed-0
+anas-awadalla/t5-base-few-shot-k-512-finetuned-squad-seed-2
+anas-awadalla/t5-base-few-shot-k-512-finetuned-squad-seed-4
+anas-awadalla/t5-base-few-shot-k-1024-finetuned-squad-seed-0
+Kevin123/t5-small-finetuned-xsum
+anas-awadalla/t5-base-few-shot-k-1024-finetuned-squad-seed-2
+anas-awadalla/t5-base-few-shot-k-1024-finetuned-squad-seed-4
+BigSalmon/InformalToFormalLincoln82Paraphrase
+bkim12/t5-small-finetuned-eli5
+SSI/Fvckbot_v2
+huggingtweets/hackersepulveda-zappsepulveda
+huggingtweets/adarsh_nft-digitalartchick-themooncarl
+sejalarya/Kahani
+irenepap/t5-small-asqa-cb
+bigscience/bloomz-7b1-mt
+sejalarya/kahaani2
+Heatz/free-small-1epoch
+irenepap/t5-small-asqa-ob
+huggingtweets/sensanders
+navjordj/t5_nb_nn
+sdadas/polish-gpt2-small
+sdadas/polish-gpt2-medium
+radm/rugpt3medium-tathagata
+huggingtweets/theweirdworld
+huggingtweets/thepunnyworld
+huggingtweets/biblebot_
+postbot/distilgpt2-emailgen-V2
+Heatz/free-small-3epoch
+lcw99/t5-base-korean-chit-chat
+huggingtweets/elmo-potus
+Arqhero/DialoGPT-small-adventuretime
+huggingtweets/mecookiemonster
+CPMs/cpm.hi.gpt2.layer.12.size.192
+huggingtweets/orangepaulp-sarahschauer-tyler02020202
+huggingtweets/sarahschauer
+yoooon/t5-small-finetuned-yoon
+huggingtweets/garyvee-nftfreaks-nftmillionaire
+MrBananaHuman/en_ko_translator
+MrBananaHuman/ko_en_translator
+chulainn/DialoGPT-medium-Tyrion
+Intel/t5-small-finetuned-cnn-news-int8-dynamic
+GItaf/gpt2-gpt2-ML-weight1-epoch5
+ClueAI/PromptCLUE-base
+mrm8488/bloom-560m-finetuned-aeslc
+huggingtweets/elonmusk-evilonmusk-garin
+postbot/gpt2-medium-emailgen
+anakib1/ria-gpt
+tsaed/rc
+jinhybr/text-summarization-t5base-xsum
+FlightBlaze/name-to-ingr
+FlightBlaze/ingr-to-steps
+huggingtweets/apandahvevo-apandeez
+FlightBlaze/food-qa
+huggingtweets/apandahvevo
+mrm8488/bloom-560m-finetuned-aeslc-subject-generation
+cointegrated/rut5-small-style-lm
+hzgz/ZymCTRL
+lcw99/t5-large-korean-text-summary
+nbroad/fix_punct_uncased_t5_small
+nbroad/fix_punct_cased_t5_small
+Bistolero/nlge24mixed
+huggingtweets/tally_lyrics
+huggingtweets/lovely_lads
+huggingtweets/pukicho
+Suva/uptag-keyphrase-model
+marcus2000/ru_t5_model_for_law_simplification
+Heatz/dial-small-3epoch
+Heatz/cmd-small-3epoch
+paarthmadan/distilgpt2-squad
+Imran1/gpt2-urdu-news
+huggingtweets/googleoodledude
+tsaditya/GPT-Kalki
+irenepap/t5-base-asqa-ob
+din0s/t5-base-asqa-cb
+mrm8488/bloom-560m-finetuned-wikilingua-spanish-summarization
+jamesesguerra/mt5-small-finetuned-1.0.3
+Bistolero/italian2ep
+huggingtweets/0100sick
+thucdangvan020999/generating-docstrings-from-Ruby
+Bistolero/german4ep_4b
+huggingtweets/nebula876
+luminolblue/HomunculusGPT-testbot
+abu2sid/my-awesome-model
+abu2sid/t5-small-finetuned-xsum_v3
+huggingtweets/dominasnow-kinkyfetishviv-mistresslhush
+Bistolero/genlen2ep
+marcus2000/T5-RLS500
+Bistolero/german_dutchall_mixed2ep
+lcw99/ko-dialoGPT-korean-chit-chat
+mirfan899/usum
+huggingtweets/elonmusk-nftfreaks-nftgirl
+Tabaxi3K/FrankenFlic
+din0s/t5-base-msmarco-nlgen-cb
+ksotek/DialoGPT-small-ricksanchez
+Paulina354/DialoGPT-small-rickandmorty
+din0s/t5-base-asqa-ob
+din0s/t5-base-msmarco-nlgen-ob
+Bistolero/nl_2ep
+huggingtweets/luisbetx9-microversoslt
+Bistolero/nl3
+Bistolero/du_ge_all_2
+pedrocaribe/DialoGPT-medium-LL
+Sandipan1994/t5-small-finetuned-eli5-extra-finetune
+rainasong/polymorphism-fact-checking
+rainasong/inheritance-fact-checking
+rainasong/abstractclasses-fact-checking
+rainasong/overriding-fact-checking
+rainasong/specialisation-fact-checking
+rainasong/polymorphism-crowdsourced-fact-checking
+rainasong/inheritance-crowdsourced-fact-checking
+huggingtweets/b1oodstains
+rainasong/abstractclasses-crowdsourced-fact-checking
+huggingtweets/evelynisepic
+rainasong/overriding-crowdsourced-fact-checking
+rainasong/specialisation-crowdsourced-fact-checking
+jamesesguerra/mt5-small-finetuned-1.1.0
+haesun/codeparrot
+haesun/codeparrot-small
+PartiallyTyped/answerable_tydiqa_lm_pretrained_japanese
+PartiallyTyped/answerable_tydiqa_lm_pretrained_english
+KES/ENG-TEC
+PartiallyTyped/answerable_tydiqa_lm_pretrained_finnish
+GItaf/gpt2-gpt2-mc-weight1-epoch15
+seonghyeonye/direct_3B
+helliun/conversational-qgen
+din0s/t5-base-pt-asqa-ob
+din0s/t5-small-de-finetuned-en-to-it
+din0s/t5-small-ro-finetuned-en-to-it
+din0s/t5-small-fr-finetuned-en-to-it
+stanford-crfm/levanter-gpt
+GItaf/gpt2-gpt2-mc-weight2-epoch15
+marcus2000/ru_t5absum_for_legaltext
+DaehanKim/KoUL2
+anas-awadalla/gpt2-span-head-finetuned-squad
+GItaf/gpt2-gpt2-mc-weight0.25-epoch15
+bigscience/bloomz-mt
+Bistolero/es_40k
+andreaolmos1990/retrained
+tomekkorbak/training_output
+tomekkorbak/training_output2
+huggingtweets/dril-drilbot_neo
+huggingtweets/elonmusk-medvedevrussia
+huggingtweets/medvedevrussia-morgen__shtern
+huggingtweets/morgen__shtern
+MarianaLC/mt5-en-summaries
+Muzzi/t5-base-finetuned-eli5
+seonghyeonye/flipped_3B
+GItaf/gpt2-gpt2-mc-weight0-epoch15
+queenaccila/DialoGPT-small-kashiwagi
+jaimin/T5-Large-ONNX
+matthh/gpt2-poetry-model
+hisaoka/dataset_radiology_20220912.tsv
+lmqg/t5-large-squad-qg-ae
+rexoscare/sd-prompt-generator-gpt-2
+PartiallyTyped/gpt2-english-pretrained-answerable-tydiqa
+PartiallyTyped/gpt2-finnish-pretrained-answerable-tydiqa
+PartiallyTyped/gpt2-japanese-pretrained-answerable-tydiqa
+FrostLi/codeparrot
+huggingtweets/breedlove22
+GarfExit/DialogGPT-medium-707
+anas-awadalla/gpt2-large-lr-1e5-span-head-finetuned-squad
+impira/text2iql-byt5
+huggingtweets/irys_en
+shjwudp/reading-bird
+huggingtweets/anandmahindra-elonmusk-sahilbloom
+Turkish-NLP/t5-efficient-base-turkish
+Turkish-NLP/t5-efficient-large-turkish
+din0s/t5-base-eli5-ob
+j0hngou/t5-base-finetuned-en-to-fr
+j0hngou/t5-base-finetuned-en-to-ro
+lewtun/distilgpt2-finetuned-shakespeare
+juanarturovargas/mt5-small-finetuned-amazon-en-es
+theojolliffe/T5-model-1-feedback-0510
+lewtun/distilgpt2-finetuned-shakespeare-2
+UlisesGarcia/Dialog-wizard-prueba
+shensq0814/DIALECT
+marblyso/DialoGPT-medium-shepherd
+Nithiwat/mt5-thai_reverse_dictionary
+Spectre29/DialoGPT-small-Kaisa
+GItaf/gpt2-gpt2-mc-weight0-epoch5
+GItaf/gpt2-gpt2-mc-weight0.25-epoch5
+GItaf/gpt2-gpt2-mc-weight0.25-epoch2
+GItaf/gpt2-gpt2-mc-weight1-epoch5
+GItaf/gpt2-gpt2-mc-weight1-epoch2
+GItaf/gpt2-gpt2-mc-weight0-epoch2
+impira/textquery
+guma/distilgpt2-finetuned-shakespeare
+Sandipan1994/t5-small-mathT5-finetune_qatoexp
+VietAI/envit5-translation
+mesolitica/t5-small-bahasa-cased
+mesolitica/t5-tiny-bahasa-cased
+mesolitica/t5-super-tiny-bahasa-cased
+Splend1dchan/wav2vecu2-t5lephone-small-NMSQA
+meowterspace42/codeparrot
+Waraporn/finetuned_yelp
+BigSalmon/InformalToFormalLincoln83Paraphrase
+jannatul17/squad-bn-qgen-mt5-small-v1
+nguyenkhoa2407/favsbot_filtersort_using_t5_summarization
+rawrick/johnny-cash-generator
+Spectre29/Kaisa-converse-model
+Chakita/MathBloom
+jamesesguerra/mt5-small-finetuned-1.1.1
+huggingtweets/imnotpeeing-moss_sounds
+huggingtweets/moss_sounds-walt_knows_best
+ZedTheUndead/Raphael_Fragment
+ZedTheUndead/Rick_fragment
+huggingtweets/wearedevs
+CarperAI/FIM-NeoX-1.3B
+ADELIB/ANQG
+jimypbr/gpt2-finetuned-wikitext2
+saikatc/NatGen
+debarghabhattofficial/t5-small-squad-finetuned
+mrm8488/bloom-560m-ft-summarization-cnn
+marblyso/DialoGPT-medium-mari
+Mihakram/AraT5-base-question-generation
+Delicious/DialoGPT-small-harrypotter
+Splend1dchan/g2p-t5lephone-small_textsquad
+hululuzhu/chinese-couplet-t5-mengzi-finetune
+nancy-zwx/t5-base-medium-title-generation
+theojolliffe/T5-model-1-feedback-0810
+achrekarom/grammar_correction
+bigscience/bloomz-560m
+bigscience/bloomz-1b1
+matnun/distilgpt2-finetuned-wikitext2
+bigscience/bloomz-3b
+anas-awadalla/t5-small-finetuned-squad-infilling-lr-3e-5
+BBHKR/DialoGPT-small-jacksparrow
+huggingtweets/uneventual
+huggingtweets/elymitra_
+anas-awadalla/t5-small-finetuned-squad-infilling-lr-1e-4
+huggingtweets/punishedlink
+anas-awadalla/t5-base-few-shot-k-16-finetuned-squad-infilling-seed-0
+anas-awadalla/t5-base-few-shot-k-16-finetuned-squad-infilling-seed-2
+anas-awadalla/t5-base-few-shot-k-16-finetuned-squad-infilling-seed-4
+anas-awadalla/t5-small-finetuned-squad-infilling-lr-5e-5
+anas-awadalla/t5-base-few-shot-k-32-finetuned-squad-infilling-seed-0
+anas-awadalla/t5-base-few-shot-k-32-finetuned-squad-infilling-seed-2
+anas-awadalla/t5-base-finetuned-squad-infilling-lr-1e-4
+anas-awadalla/t5-base-few-shot-k-32-finetuned-squad-infilling-seed-4
+bigscience/bloomz-1b7
+anas-awadalla/t5-base-few-shot-k-64-finetuned-squad-infilling-seed-0
+anas-awadalla/t5-base-few-shot-k-64-finetuned-squad-infilling-seed-2
+anas-awadalla/t5-base-few-shot-k-64-finetuned-squad-infilling-seed-4
+anas-awadalla/t5-base-few-shot-k-128-finetuned-squad-infilling-seed-0
+anas-awadalla/t5-base-finetuned-squad-infilling-lr-5e-5
+anas-awadalla/t5-base-few-shot-k-128-finetuned-squad-infilling-seed-2
+din0s/t5-base-finetuned-en-to-it
+din0s/t5-base_fr-finetuned-en-to-it
+anas-awadalla/t5-base-few-shot-k-128-finetuned-squad-infilling-seed-4
+anas-awadalla/t5-base-few-shot-k-256-finetuned-squad-infilling-seed-0
+MIIB-NLP/Arabic-question-generation
+anas-awadalla/t5-base-few-shot-k-256-finetuned-squad-infilling-seed-2
+anas-awadalla/t5-base-few-shot-k-256-finetuned-squad-infilling-seed-4
+anas-awadalla/t5-base-few-shot-k-512-finetuned-squad-infilling-seed-0
+anas-awadalla/t5-base-few-shot-k-512-finetuned-squad-infilling-seed-2
+anas-awadalla/t5-base-few-shot-k-512-finetuned-squad-infilling-seed-4
+anas-awadalla/t5-base-few-shot-k-1024-finetuned-squad-infilling-seed-0
+BigSalmon/InformalToFormalLincoln84Paraphrase
+anas-awadalla/t5-base-finetuned-squad-infilling-lr-3e-5
+anas-awadalla/t5-base-few-shot-k-1024-finetuned-squad-infilling-seed-2
+anas-awadalla/t5-base-few-shot-k-1024-finetuned-squad-infilling-seed-4
+jannatul17/squad-bn-qgen-banglat5-v1
+huggingtweets/playlostark
+Keynes/codeparrot-ds
+din0s/t5-base_ro-finetuned-en-to-it
+Jeevesh8/t5-small_cogs_35
+din0s/t5-small-finetuned-en-to-it-b32
+Jeevesh8/t5-small_re-cogs_24
+Jeevesh8/t5-small_re-cogs_12
+Jeevesh8/t5-small_re-cogs_22
+Jeevesh8/t5-small_re-cogs_18
+Jeevesh8/t5-small_re-cogs_23
+Jeevesh8/t5-small_re-cogs_19
+Jeevesh8/t5-small_re-cogs_16
+Jeevesh8/t5-small_re-cogs_4
+Jeevesh8/t5-small_re-cogs_14
+Jeevesh8/t5-small_re-cogs_17
+Jeevesh8/t5-small_re-cogs_21
+Jeevesh8/t5-small_re-cogs_9
+Jeevesh8/t5-small_re-cogs_8
+Jeevesh8/t5-small_re-cogs_13
+Jeevesh8/t5-small_re-cogs_1
+Jeevesh8/t5-small_re-cogs_0
+Jeevesh8/t5-small_re-cogs_5
+Jeevesh8/t5-small_re-cogs_2
+Jeevesh8/t5-small_re-cogs_15
+Jeevesh8/t5-small_re-cogs_3
+Jeevesh8/t5-small_re-cogs_7
+Jeevesh8/t5-small_re-cogs_20
+Jeevesh8/t5-small_re-cogs_11
+Jeevesh8/t5-small_re-cogs_10
+Jeevesh8/t5-small_re-cogs_6
+Kogasa/SCRIPBOZO
+tianyisun/opt-350m-finetuned-sst2
+huggingtweets/bittynox
+huggingtweets/notykcud628
+din0s/t5-base-finetuned-en-to-it-hrs
+din0s/t5-base-finetuned-it-to-en
+din0s/t5-base-finetuned-en-to-it-lrs
+huggingtweets/thisislux
+BigSalmon/Infill05
+MingZhong/unieval-sum
+huggingtweets/eugenemarinelli
+GhifSmile/mt5-base-finetuned
+sujatha2502/DialogRPT-updown-finetuned-wnli
+huggingtweets/vixenmoder
+Guwon/DialoGPT-small-Quincy
+huggingtweets/emmarkgadgets
+krm/mt5-small-MY-amazon-en-es
+krm/mt5-small-OrangeSum-Summarizer
+huggingtweets/angelicismbj
+din0s/t5-base-finetuned-en-to-it-lrs-back
+din0s/t5-small-finetuned-en-to-it-lrs
+din0s/t5-small-finetuned-it-to-en
+krm/mt5-small-finetunedOn-OrangeSum-PT
+epeicher/DialoGPT-small-homer-2
+MingZhong/unieval-dialog
+timmychanga/DialoGPT-small-ashley
+seonghyeonye/flipped_11B
+huggingtweets/paramsiddharth
+LYTinn/gpt2-finetuning-sentiment-model-3000-samples
+LYTinn/bloom-finetuning-sentiment-model-3000-samples
+mywateriswet/ShuanBot
+huggingtweets/khalkeiongenos-schizo_freq
+seonghyeonye/channel_3B
+BigSalmon/FormalInformalConcise-FIM-NeoX-1.3B
+epeicher/DialoGPT-small-flanders
+EdBianchi/T5-finetuned-abstracts
+din0s/t5-small-finetuned-en-to-it-lrs-back
+stevhliu/my_awesome_billsum_model
+enryu43/anifusion_augmenter
+stevhliu/my_awesome_opus_books_model
+guidoivetta/mt5-small-mlsum_domain-specific-paraphraser_V1
+guidoivetta/mt5-small-mlsum_domain-specific-paraphraser_V2
+MingZhong/unieval-fact
+binxu/Ziyue-GPT2
+MingZhong/unieval-intermediate
+bs-la/bloom-560m_si_continual-pretrain-reinit_100000samples_-1vocab_original
+bs-la/bloom-560m_az_continual-pretrain_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_si_continual-pretrain_100000samples_-1vocab_original
+bs-la/bloom-560m_de_bitfit_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_de_fish_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_de_continual-pretrain-reinit_100000samples_-1vocab_original
+bs-la/bloom-560m_de_sft_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original
+bs-la/bloom-560m_si_fish_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_si_bitfit_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_si_sft_100000samples_-1vocab_original-frozen
+bs-la/bloom-1b1_az_bitfit_100000samples_-1vocab_original-frozen
+bs-la/bloom-560m_az_continual-pretrain_100000samples_-1vocab_original
+bs-la/bloom-560m_az_continual-pretrain-reinit_100000samples_-1vocab_original
+huggingtweets/deepleffen-the_dealersh1p
+rkp74/t5_automated_mcq
+Digitalwitness/distilgpt2-finetuned-shakespeare
+Super-McTea/DialoGPT-small-McTea
+Eronzin/meuBotzindoEron
+simonosgoode/bloom-560m-finetuned-cdn_law
+EdBianchi/GPT-2-finetuned-papers
+huggingtweets/ugroyp
+huggingtweets/modus_irrumandi
+juanarturovargas/t5-small-finetuned-xsum
+huggingtweets/roizmangbn
+huggingtweets/nickjr-nickschedules
+huggingtweets/adultswim
+stevhliu/my_awesome_eli5_clm-model
+Techdra/DialoGPT-large-theboy
+din0s/t5-small-finetuned-en-to-it-hrs
+Eronzin/DialoGPT-small-Frodo
+sxxyxn/kogpt2_reduced_vocab
+GyuBeen/gpt2-wikitext2
+gtgillott/gib
+kamileyagci/t5small-finetuned-opusbooks-en-fr
+shibing624/gpt2-dialogbot-base-chinese
+AwesomeDWNJ/EmiBot
+north/t5_base_scand3M
+huggingtweets/boredapeyc-garyvee-opensea
+huggingtweets/beeple-farokh-punk6529
+j0hngou/2teachersdistillbacktranslation-en-it
+simonosgoode/bloom-560m-finetuned-cdn_law-finetuned-cdn_law_6epochs
+binxu/Ziyue-GPT2-deep
+huggingtweets/pilltoledo
+KarelDO/gpt2.CEBaB_confounding.observational.sa.5-class.seed_42
+KarelDO/gpt2.CEBaB_confounding.observational.sa.5-class.seed_43
+KarelDO/gpt2.CEBaB_confounding.observational.sa.5-class.seed_44
+KarelDO/gpt2.CEBaB_confounding.uniform.sa.5-class.seed_42
+KarelDO/gpt2.CEBaB_confounding.uniform.sa.5-class.seed_43
+KarelDO/gpt2.CEBaB_confounding.uniform.sa.5-class.seed_44
+KarelDO/gpt2.CEBaB_confounding.price_food_ambiance_negative.sa.5-class.seed_42
+KarelDO/gpt2.CEBaB_confounding.price_food_ambiance_negative.sa.5-class.seed_43
+KarelDO/gpt2.CEBaB_confounding.price_food_ambiance_negative.sa.5-class.seed_44
+KarelDO/gpt2.CEBaB_confounding.food_service_positive.sa.5-class.seed_42
+KarelDO/gpt2.CEBaB_confounding.food_service_positive.sa.5-class.seed_43
+KarelDO/gpt2.CEBaB_confounding.food_service_positive.sa.5-class.seed_44
+KarelDO/gpt2.CEBaB_confounding.observational.absa.5-class.seed_42
+KarelDO/gpt2.CEBaB_confounding.observational.absa.5-class.seed_43
+KarelDO/gpt2.CEBaB_confounding.observational.absa.5-class.seed_44
+KarelDO/gpt2.CEBaB_confounding.uniform.absa.5-class.seed_42
+KarelDO/gpt2.CEBaB_confounding.uniform.absa.5-class.seed_43
+KarelDO/gpt2.CEBaB_confounding.uniform.absa.5-class.seed_44
+mriggs/mt5-small-finetuned-1epoch-opus_books-en-to-it
+mriggs/mt5-small-finetuned-2epochs-opus_books-en-to-it
+mriggs/mt5-small-finetuned-4epochs-opus_books-en-to-it
+sultan/ArabicT5-17GB-base
+j0hngou/1teacherdistilllowresource
+j0hngou/1teacherdistillbacktranslate
+sultan/ArabicT5-17GB-large
+j0hngou/2teachersdistilllowresource
+hakurei/bloom-1b1-arb-thesis
+CPMs/cpm.in.gpt2.inclusive.seed66
+CPMs/cpm.in.gpt2.approximate.seed66
+CPMs/cpm.in.gpt2.approximate.seed77
+CPMs/cpm.in.gpt2.inclusive.seed42
+codestylist/baseline_code_style_transformer
+CPMs/cpm.in.gpt2.inclusive.seed77
+CPMs/cpm.in.gpt2.approximate.seed42
+KarelDO/gpt2.CEBaB_confounding.price_food_ambiance_negative.absa.5-class.seed_43
+KarelDO/gpt2.CEBaB_confounding.price_food_ambiance_negative.absa.5-class.seed_44
+KarelDO/gpt2.CEBaB_confounding.food_service_positive.absa.5-class.seed_42
+KarelDO/gpt2.CEBaB_confounding.food_service_positive.absa.5-class.seed_43
+KarelDO/gpt2.CEBaB_confounding.food_service_positive.absa.5-class.seed_44
+CJ3/DialoGPT-medium-amber3
+huggingtweets/quotes_sticky
+huggingtweets/rrollplaying
+hamishivi/T0_3Bp
+EleutherAI/polyglot-ko-12.8b
+GamerMan02/DialoGPT-medium-gamerbot2
+binxu/mengzi-t5-base-finetuned-punctuation
+GamerMan02/DialoGPT-medium-gamerbot1
+csebuetnlp/banglat5_banglaparaphrase
+GengRuotong/T5_base_pegasus
+GengRuotong/T5_small_pegasus
+mriggs/mt5-small-finetuned-8epochs-opus_books-en-to-it
+ralphmyers/t5-end2end-questions-answers-generation
+mriggs/mt5-small-finetuned-1epoch-kde4-en-to-it
+huggingtweets/pkmnwaifuhentai-tosk_toskm
+krm/BARTkrame-abstract-mT5
+Finnish-NLP/ul2-small-nl16-finnish
+mriggs/mt5-small-finetuned-2epochs-kde4-en-to-it
+bs-la/bloom-560m_my_continual-pretrain_100000samples_-1vocab_original
+luisespinosa/t5-base-protoqa-v1
+Joom/questiongenerator
+visheratin/t5-efficient-mini-grammar-correction
+visheratin/t5-efficient-tiny-grammar-correction
+din0s/t5-base-pt-asqa-cb
+huggingtweets/_adam_barker
+huggingtweets/schizo_freq-tszzl
+RichelieuGVG/model_neuroplay
+tomrb/bettercallbloom-560m
+huggingtweets/brendaneich-ethereumjoseph-muneeb
+huggingtweets/gavinandresen-satoshilite-vitalikbuterin
+EleutherAI/pythia-160m-v0
+EleutherAI/pythia-1.4b-v0
+EleutherAI/pythia-1b-v0
+EleutherAI/pythia-70m-v0
+huggingtweets/th3nfthunt3r
+EleutherAI/pythia-410m-v0
+EleutherAI/pythia-12b-v0
+BigSalmon/FormalInformalConcise2-FIM-NeoX-1.3B
+EleutherAI/pythia-6.9b-v0
+BigSalmon/InformalToFormalLincoln85Paraphrase
+Insomnic/DialoGPT-small-harrypotter
+RichelieuGVG/reply_model
+nschenone/metalcore-distil
+Super-McTea/DialoGPT-small-McTeaV2
+eliwill/alan-watts-8e
+kadasterdst/querygenerator
+grauc/mt5-small-finetuned-amazon-en-es
+PSW/t5-base-tweetsumm-seed42
+PSW/t5-base-tweetsumm-seed33
+hisaoka/t5-large_dataset_radiology_20220912.tsv
+PSW/t5-base-tweetsumm-seed17
+mriggs/t5-small-finetuned-1epoch-opus_books-en-to-it
+PSW/t5-base-tweetsumm-seed36
+PSW/t5-base-dialogsum-seed42
+PSW/t5-base-tweetsumm-seed55
+PSW/t5-base-samsum-seed42
+PSW/t5-base-dialogsum-seed33
+PSW/t5-base-samsum-seed33
+bs-la/bloom-560m_my_sft_100000samples_-1vocab_original-frozen
+d2niraj555/mt5-eng2nep
+PSW/t5-base-dialogsum-seed17
+PSW/t5-base-samsum-seed17
+PSW/t5-base-dialogsum-seed36
+hodashajari/gpt2-wikitext2
+PSW/t5-base-samsum-seed36
+PSW/t5-base-dialogsum-seed55
+mariopeng/phoneT5
+joancipria/gpt2-base-bne-FineTunedEmoEvent
+joancipria/gpt2-large-bne-FineTunedEmoEvent
+PSW/t5-base-samsum-seed55
+KarelDO/gpt2.CEBaB_confounding.price_food_ambiance_negative.absa.5-class.seed_42
+FelipeJoazeiro/chatbot-morty
+EleutherAI/pythia-160m-deduped-v0
+EleutherAI/pythia-1.4b-deduped-v0
+EleutherAI/pythia-6.9b-deduped-v0
+EleutherAI/pythia-1b-deduped-v0
+EleutherAI/pythia-12b-deduped-v0
+SSI/hindu-gpt2-bot
+mriggs/byt5-small-finetuned-2epoch-opus_books-en-to-fr
+adieyal/maltese-to-english
+AI4PD/ZymCTRL
+malteos/bloom-1b5-clp-german
+huggingtweets/cryptoanglio
+huggingtweets/exxonmobil-tencentglobal-wef
+adit94/nlpcharade
+huggingtweets/__emmamme__-shell_nigeria-wef
+huggingtweets/tvman000
+allenai/DREAM
+mriggs/byt5-small-finetuned-2epoch-opus_books-en-to-it
+microsoft/GODEL-v1_1-base-seq2seq
+allenai/System1_FigLang2022
+allenai/System2_FigLang2022
+allenai/System3_DREAM_FLUTE_emotion_FigLang2022
+allenai/System3_DREAM_FLUTE_motivation_FigLang2022
+allenai/System3_DREAM_FLUTE_consequence_FigLang2022
+allenai/System3_DREAM_FLUTE_social_norm_FigLang2022
+allenai/System3_DREAM_FLUTE_all_dimensions_FigLang2022
+allenai/System4_explain_FigLang2022
+allenai/System4_classify_FigLang2022
+microsoft/GODEL-v1_1-large-seq2seq
+vparytskyy/lucy-small
+vparytskyy/lucy-base
+Passion/t5-small-finetuned-multinews-custom
+GhifSmile/mT5_multilingual_XLSum-finetuned-xlsum-coba
+SSI/christian-gpt2-bot
+readerbench/RoSummary-base
+readerbench/RoSummary-medium
+readerbench/RoSummary-large
+Rencist/DialoGPT-small-rick
+mriggs/byt5-small-finetuned-1epoch-batch16-opus_books-en-to-it
+wujia/mt5-small-finetuned-amazon-en-es
+Aunsiels/ChildGPT
+TestZee/t5-small-baseline_summary_zee_v1.0
+dumitrescustefan/mt5-base-romanian
+dumitrescustefan/mt5-large-romanian
+ThomasNLG/CT0-11B
+huggingtweets/moonideograph
+PSW/t5-base-mediasum-seed42
+huggingtweets/konradha_
+snorkelai/sdnet
+allenai/entailer-large
+bigscience/mt0-xxl
+allenai/entailer-11b
+chrisjay/cos801-802-hf-workshop-mt5-small
+PSW/t5-base-samsumgen-xsum-conv-samsum-seed42
+scorpiofrens/DialoGPT-medium-ergon
+RamAnanth1/distilgpt2-sd-prompts
+BigSalmon/Infill06
+Afia14/t5_Bangla_punctuation_restoration_model
+debbiesoon/t5-small-T5_summarise
+somemusicnerdwoops/DialoGPT-small-shadow
+amanneo/mail-generator-mini
+tzytzytzy/t5_4248
+NinedayWang/PolyCoder-0.4B
+NinedayWang/PolyCoder-160M
+NinedayWang/PolyCoder-2.7B
+noahkim/KoT5_news_summarization
+PSW/t5-base-dialogsumgen-xsum-conv-dialogsum-seed33
+philschmid/t5-11b-sharded
+amanneo/mail-generator-mini-v2
+alisu7008/distilgpt2-finetuned-squad
+Rachneet/T5-large-esnli-impli-figurative
+tsei902/t5-small-finetuned-xsum
+PSW/t5-base-tweetsummgen-xsum-conv-tweetsumm-seed33
+theojolliffe/T5-model-1-feedback-2010-e4
+devozs/israeli_soccer_news
+tomrb/bettercallbloom-3b
+dominguesm/positive-reframing-ptbr
+msclar/referee-control_iter-3
+koolKat/iro_model
+Moxis/Harry_Potter_text_generation
+msclar/referee-control_iter-2
+PSW/t5-base-samsumgen-xsum-conv-samsum-seed33
+hidude562/Walter
+msclar/referee-control_iter-4
+msclar/referee-control_iter-5
+msclar/referee-control_iter-6
+msclar/referee-control_iter-7
+msclar/referee-control_iter-1
+9meo/monoQA
+huggingtweets/jiswooning-the3ammusician
+hidude562/Walter-L
+huashen218/convxai-quality-model
+consciousAI/question-generation-auto-t5-v1-base-s
+huggingtweets/levelsio
+huggingtweets/elonmusk-mar15sa-sergiorocks
+powchang/DialoGPT2-medium-CAiFE
+amanneo/distilgpt2-finetuned-custom-mail
+amanneo/distilgpt2-emailgen-finetuned-custom-mail
+ratneshrt/DialoGPT-small-Artico
+PSW/t5-base-dialogsumgen-xsum-conv-dialogsum-seed17
+mariopeng/phoneT5base
+IDEA-CCNL/Randeng-T5-784M-QA-Chinese
+IDEA-CCNL/Randeng-DELLA-226M-Chinese
+google/flan-t5-small
+google/flan-t5-base
+google/flan-t5-large
+SSI/muslim-gpt2-bot
+PSW/t5-base-tweetsummgen-xsum-conv-tweetsumm-seed17
+ashish23993/t5-small-finetuned-xsum-a
+IDEA-CCNL/Randeng-T5-784M-MultiTask-Chinese
+SSI/buddhist_gpt2_bot
+ss000045/gpt2-large-bne-poesiaHispanica
+GhifSmile/mT5_multilingual_XLSum-finetuned-indosum-coba
+huggingtweets/iangabchri-nisipisa-tyler02020202
+google/flan-t5-xl
+google/flan-t5-xxl
+Finnish-NLP/ul2-base-nl36-finnish
+phqlong/evjvqa_mt5_vit
+tomekkorbak/test-test
+stanford-crfm/levanter-gpt2-7B
+PSW/t5-base-samsumgen-xsum-conv-samsum-seed17
+tomekkorbak/cocky_spence
+tomekkorbak/amazing_mahavira
+hatanp/gpt-fi
+srsawant34/t5_3b_750task
+sultan/ArabicT5-17GB-small
+consciousAI/question-generation-auto-t5-v1-base-s-q
+huggingtweets/alivegirl001101
+dslack/t5-flan-small
+msclar/referee-distill_iter-1
+msclar/referee-distill_iter-2
+msclar/referee-distill_iter-3
+msclar/referee-distill-with-context-filter_iter-1
+msclar/referee-distill-with-context-filter_iter-2
+msclar/referee-distill-with-context-filter_iter-3
+PSW/t5-base-dialogsumgen-xsum-conv-dialogsum-seed36
+rahul77/t5-small-finetuned-thehindu1
+PSW/t5-base-tweetsummgen-xsum-conv-tweetsumm-seed36
+PSW/t5-base-mediasum-seed33
+somemusicnerdwoops/DialoGPT-medium-shadow
+somemusicnerdwoops/DialoGPT-distilgpt2-shadow
+somemusicnerdwoops/DialoGPT-distilgpt2-sonicfandub
+IDEA-CCNL/Randeng-T5-77M-MultiTask-Chinese
+IDEA-CCNL/Randeng-T5-Char-57M-MultiTask-Chinese
+tomthekkan/mt5-small-finetuned-amazon-en-es
+huggingtweets/ouvessvit
+PSW/t5-base-samsumgen-xsum-conv-samsum-seed36
+IDEA-CCNL/Randeng-T5-Char-57M-Chinese
+IDEA-CCNL/Randeng-T5-Char-700M-Chinese
+PSW/t5-base-dialogsumgen-xsum-conv-dialogsum-seed55
+PSW/t5-base-tweetsummgen-xsum-conv-tweetsumm-seed55
+consciousAI/question-generation-auto-hints-t5-v1-base-s-q
+BigSalmon/InformalToFormalLincoln86Paraphrase
+liujxing/distilgpt2-finetuned-wikitext2
+DylanJHJ/mt5-large-mmarco-v2-temp
+DylanJHJ/mt5-large-mmarco-v2-clf
+PSW/t5-base-samsumgen-xsum-conv-samsum-seed55
+IDEA-CCNL/Randeng-T5-Char-700M-MultiTask-Chinese
+huggingtweets/drjliver
+IDEA-CCNL/Randeng-DELLA-CVAE-226M-NER-Chinese
+Tsec-Research/DialoGPT-chandler-penny
+neonon/DialoGPT-medium-cloy
+huggingtweets/o91_bot
+ctu-aic/mt5-base-multilingual-summarization-multilarge-cs
+cabir40/t5-dutch-grammar-correction
+huggingtweets/civickey
+mariopeng/phoneT5large
+mrmoor/cti-t5-NER-NYT
+cj7s1/DialoGPT-large-BMO
+huggingtweets/16pxl
+mrmoor/cti-t5-NER-CTI
+MarianaLC/mt5-en-rr-50-nb
+declare-lab/dialect
+mossfarmer/VRANAK
+haoanh98/mGPT_base
+haoanh98/phoGPT_base
+PSW/t5-base-mediasum-seed17
+malteos/bloom-6b4-clp-german-init
+patrikz/mt5-small-finetuned-amazon-en-kitchen-reviews
+mrmoor/cti-t5-RE-NYT
+huggingtweets/memoryhussie
+mrmoor/cti-t5-RE-CTI
+huggingtweets/ronfunches
+huggingtweets/big___oven
+huggingtweets/codeinecucumber
+huggingtweets/jfest
+bs-la/bloom-1b7_de_continual-pretrain_100000samples_-1vocab_original
+Pxdang/codeparrot
+huggingtweets/marsisfars
+Pxdang/codeparrot-small
+huggingtweets/unboundflesh
+huggingtweets/transfempuppy
+Matax/Aristrathor3000
+strikertweny/t5-base-medium-title-generation
+israel/byt5_en_am
+brownanchovy/Harry
+mrmoor/cti-t5-RE-CTI-all
+Overlrd/DialoGPT-small-cartman
+huggingtweets/infinidriftgame
+huggingtweets/jhermann
+huggingtweets/kathyalexx
+huggingtweets/azulthesnail-kathyalexx-marudecinco
+huggingtweets/mickyc_1
+huggingtweets/vacuumacumen
+mesolitica/finetune-paraphrase-t5-small-standard-bahasa-cased
+mesolitica/finetune-paraphrase-t5-tiny-standard-bahasa-cased
+huggingtweets/anemoniadium
+huggingtweets/hubziii
+huggingtweets/martydreamy
+huggingtweets/kaito_dva
+huggingtweets/dencarr_
+ser-mei/borges-gpt
+huggingtweets/raspberryl0ver
+huggingtweets/big___oven-raspberryl0ver
+jasoneden/bloom560m-squad-helloworld
+huggingtweets/prathgodbole
+huggingtweets/tykesinties
+huggingtweets/big___oven-codeinecucumber
+epeicher/DialoGPT-large-homer
+huggingtweets/ok_0s
+mzhou08/t5-base-finetuned-context-dataset
+mariopeng/phoneT5seg
+mesolitica/finetune-paraphrase-t5-base-standard-bahasa-cased
+MarkGG/Romance-cleaned-1
+huggingtweets/kubiekit
+OpenMatch/t5-ance
+aiautomationlab/german-news-title-gen-mt5
+huggingtweets/michiokaku
+huggingtweets/alberteinstein-physicstoday-physicstweet
+Blazeolmo/GPT-RO-LITE
+santoshvutukuri/dummy-model
+mesolitica/finetune-ttkg-t5-small-standard-bahasa-cased
+reynxzz/dialogpt-medium-zyo
+leslyarun/grammatical-error-correction
+huggingtweets/glowrillazart
+CharlieP/t5-small-nlpfinalproject-xsum
+GhifSmile/mT5_multilingual_XLSum-finetuned-indosum
+huggingtweets/gretathotburg
+huggingtweets/nuclearkatie
+huggingtweets/gretathotburg-snobrights
+huggingtweets/the_boolaidman
+huggingtweets/big___oven-schizo_freq
+Kristijan/gpt2_wt103-40m_12-layer
+huggingtweets/snobrights
+mismayil/comet-gpt2
+huggingtweets/simerino1
+huggingtweets/big___oven-naamitee
+bs-la/bloom-1b1_de_continual-pretrain_100000samples_-1vocab_original
+yk2678/t5-small-finetuned-yoon_1014
+AkashM/t5-small-finetuned-xsum
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original_bsz1
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original_bsz2
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original_bsz4
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original_bsz8
+huggingtweets/nearcyan
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original_bsz16
+tomekkorbak/amazing_janusz
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original_bsz32
+msterbentz/t5-base-break-high
+huggingtweets/_a_bat
+huggingtweets/unormal
+tomekkorbak/priceless_cori
+tomekkorbak/vigilant_saha
+yoooon/t5-small-scan-finetuned-yoon-1026
+bishalbaaniya/bishalbaaniya-finetuned-myaamia-to-english
+huggingtweets/daymoded-menthalovely-scolopendridaes
+huggingtweets/ferret_gf
+huggingtweets/daymoded-drsunrosa-menthalovely
+huggingtweets/incelproust
+Shang37/distilgpt_edgel1
+hatanp/gpt-fi-distill
+hatanp/gpt-fi-small
+consciousAI/question-generation-auto-t5-v1-base-s-q-c
+consciousAI/question-generation-auto-hints-t5-v1-base-s-q-c
+bs-la/bloom-560m_de_continual-pretrain_100000samples_-1vocab_original_fp16
+TingChenChang/t5-end2end-questions-generation
+mesolitica/finetune-ttkg-t5-base-standard-bahasa-cased
+bs-la/bloom-1b7_de_continual-pretrain_100000samples_-1vocab_original_fp16
+huggingtweets/nft_god-notthreadguy-theehustlehouse
+huggingtweets/nft_god
+macavaney/doc2query-t5-base-msmarco
+comradesocrates/DialoGPT-medium-stranger
+bigscience/mt0-base
+bigscience/mt0-small
+bigscience/mt0-large
+bigscience/mt0-xl
+KiRiLLBEl/MovieDescriptionGen
+bigscience/mt0-xxl-mt
+ankur-gupta/dummy
+huggingtweets/sadieyay
+huggingtweets/revmaxxing
+huggingtweets/f1_nn0
+digit82/gpt2-chat-sample
+huggingtweets/missalykatt
+huggingtweets/shinononetu
+bs-la/bloom-1b1_ru_adpt_bitfit_original-frozen_100_000samples
+bs-la/bloom-560m_ru_adpt_continual-pretrain-reinit_original-frozen_100_000samples
+ComCom/gpt2-small
+bs-la/bloom-560m_ru_adpt_continual-pretrain_original-frozen_100_000samples
+bs-la/bloom-560m_ru_adpt_sft_original-frozen_100_000samples
+bs-la/bloom-560m_ru_adpt_bitfit_original-frozen_100_000samples
+MarkGG/Romance-cleaned-2
+NilsDamAi/nils-nl-to-rx-pt-v6
+mattymchen/nli-synthesizer-t5-base
+ashish23993/t5-small-finetuned-xsum-ashish
+consciousAI/question-answering-generative-t5-v1-base-s-q-c
+bigscience/mt0-xxl-p3
+leslyarun/grammatical-error-correction-quantized
+yacine-djm/t5-ALL-1-Epoch
+yacine-djm/t5-ALL-10-Epoch
+VMware/t5-small-question-generator
+Moofington/Tf5Base-story-key-generation
+huggingtweets/ike_eveland
+ytzi/codeparrot-ds
+AndrewR/distilgpt2-finetuned-imdb-lm
+huggingtweets/vacantbyron
+CarperAI/randomwalks
+tomekkorbak/optimistic_swanson
+Rakublu/DialoGPT-small-yasuo
+CogComp/l2d
+huggingtweets/davidad
+huggingtweets/oidworldromance
+MarkGG/Romance-cleaned-3
+mesolitica/finetune-ttkg-t5-tiny-standard-bahasa-cased
+ydshieh/tiny-random-GPT2LMHeadModel
+ydshieh/tiny-random-GPT2ForSequenceClassification
+ydshieh/tiny-random-GPT2ForTokenClassification
+ydshieh/tiny-random-GPT2Model
+huggingtweets/donvesh
+neonon/DialoGPT-medium-htccc
+tomekkorbak/priceless_kalam
+tomekkorbak/silly_shockley
+mesolitica/finetune-summarization-t5-small-standard-bahasa-cased
+huggingtweets/socpens
+huggingtweets/wayneradiotv
+huggingtweets/mcpeachpies
+Alt41r/gpt-simpson
+Nimit-Jjw/DialoGPT-chandler-penny
+prakharz/DIAL-T0
+huggingtweets/615_btc
+BigSalmon/InformalToFormalLincoln87Paraphrase
+mattymchen/gense-base
+mattymchen/gense-base-plus
+mesolitica/finetune-summarization-t5-base-standard-bahasa-cased
+huggingtweets/tree_of_alpha
+cocacol4123/gpt_chat_model
+huggingtweets/devxoid
+Quoc123/DialoGPT-small-AQUA
+Gozdi/t5-efficient-small-nl16-samsum-exp1
+Gozdi/t5-efficient-small-nl16-samsum-exp2
+MarianaLC/mt5-en-rr-100-nb
+huggingtweets/fireminji-jiswooning-mainvocaldawon
+huggingtweets/artirkel
+stochastic/flan-t5-small-finetuned
+marblyso/DialoGPT-medium-pearl
+BigSalmon/InformalToFormalLincoln88Paraphrase
+LYTinn/finetuning-sentiment-model-tweet-bloom
+LYTinn/finetuning-sentiment-model-tweet-gpt2
+aopstudio/my-summary
+huggingtweets/theysaymaurya
+ashish23993/t5-small-finetuned-xsum-ashishkhandelwal
+OpenDungeon/bloom-7b1-8bit
+huggingtweets/notzer0c
+Finnish-NLP/ul2-tiny-nl6-finnish
+huggingtweets/v_language
+huggingtweets/news_mbs
+prakharz/DIAL-FLANT5-XL
+huggingtweets/_is_is_are-big___oven
+huggingtweets/big___oven-heart2starr
+theojolliffe/T5-model-1-feedback-3110
+huggingtweets/big___oven-mobydickatsea
+rexwang8/test
+liujch1998/rainier-large
+huggingtweets/big___oven-y2kenlee
+estus2/rick-superu-rick
+estus2/rick-superu-rick2
+EleutherAI/pythia-70m-deduped-v0
+EleutherAI/pythia-6.9b-deduped-v0-seed42
+EleutherAI/pythia-410m-deduped-v0
+fanpu/model_output_subreddit-wallstreetbets_new
+crumb/fake-gpt-j-17m
+kkotkar1/t5-base-finetuned-eli5
+marblyso/DialoGPT-medium-marina
+NTQAI/viT5-v1.1
+huggingtweets/_electricviews_
+BigSalmon/History
+BigSalmon/InformalToFormalLincoln89Paraphrase
+huggingtweets/fienddddddd
+huggingtweets/codeinecucumber-fienddddddd
+Isotonic/informal_to_formal
+daspartho/prompt-extend
+GItaf/gpt2-gpt2-mc-weight0.25-epoch15-new
+GItaf/gpt2-gpt2-mc-weight0.25-epoch15-new-nosharing
+mikegarts/distilgpt2-lotr
+miguelgargallo/huggingtweets
+rovenmusic/DialoGPT-small-melodybot
+huggingtweets/manjhunathravi
+huggingtweets/oliverjumpertz
+huggingtweets/glxymichael-mayku
+deseipel/small-LucyClarke_
+Lucapro/test-model
+kaejo98/t5_base_question_generation
+bs-la/bloom-7b1_ru_continual-pretrain_100000samples_-1vocab_original
+bs-la/bloom-7b1_de_continual-pretrain_100000samples_-1vocab_original
+bs-la/bloom-7b1_th_continual-pretrain_100000samples_-1vocab_original
+dumitrescustefan/t5-v1_1-base-romanian
+dumitrescustefan/t5-v1_1-large-romanian
+Deigant/t5-base-finetuned-qg-context-dataset
+huggingtweets/trashfil
+huggingtweets/liverightananda
+rovenmusic/DialoGPT-small-melodybotv2
+rovenmusic/DialoGPT-small-melodybotv3
+tomekkorbak/amazing_goldstine
+huggingtweets/angelfacepeanu3
+huggingtweets/callmecarsonyt-jerma985-vgdunkey
+munjulurik/autoShots
+amphora/FinABSA
+shed-e/scipaper-summary
+mesolitica/finetune-mnli-t5-small-standard-bahasa-cased
+north/fine_North_large
+north/fine_North_base
+north/fine_North_large_8bit
+epeicher/DialoGPT-medium-homer
+lilouuch/t5-small-finetuned-xsum_epoch4
+mesolitica/finetune-mnli-t5-tiny-standard-bahasa-cased
+iliemihai/mt5-base-romanian-diacritics
+ashish23993/t5-small-finetuned-xsum-B
+huggingtweets/nickichlol
+huggingtweets/chaddraven-nickichlol-saware7
+huggingtweets/nickichlol-saware7
+MarianaLC/mt5-en-rr-1000-nb
+huggingtweets/t4tclussy
+tomekkorbak/nifty_janusz
+VanessaSchenkel/pt-unicamp-handcrafted-puro
+heegyu/kodialogpt-v0
+andrewkroening/GalaxyFarAway-DialoGPT-HanSolo
+huggingtweets/swan_of_tuonela
+nvaikun-cmu/output_test
+mesolitica/finetune-mnli-t5-super-tiny-standard-bahasa-cased
+mesolitica/finetune-mnli-t5-base-standard-bahasa-cased
+kejian/debug-push
+postbot/bloom-1b1-emailgen
+GItaf/gpt2-gpt2-mc-weight0.25-epoch2-new
+nams/nams-bot
+GItaf/gpt2-gpt2-mc-weight0.25-epoch2-new-nosharing
+north/fine_North_xl
+ashish23993/t5-small-finetuned-xsum-AB
+Dagar/t5-small-science-papers
+arincon/mt5-paraphrase-es
+Wannita/PyCoder
+ssmisya/zh-jp_translator
+nhanv/vit5-v1.1-base-vietnews-1024
+huggingtweets/cosm1cgrandma
+huggingtweets/cosm1cgrandma-raptv
+huggingtweets/docstranding-yatanew
+gogzy/t5-base-finetuned_renre_item1
+Finnish-NLP/ul2-mini-nl8-finnish
+NlpHUST/vit5-v1.1-base-1024
+huggingtweets/jldevezas
+Anishsavla2/distilgpt2-finetuned-wikitext2
+huggingtweets/deltazulu14
+arincon/gpt2-paraphrase-es
+hazrulakmal/distilgpt2-ecb-finetuned
+huggingtweets/kristincarolw
+huggingtweets/akamos_33
+mmazuecos/gpt2-fierro
+huggingtweets/pastapixels
+amphora/KorFin-ABSA
+tomekkorbak/confident_shaw
+amphora/FinABSA-Longer
+Nicktherat/DialoGPT-medium-endella
+fxmarty/t5-large-finetuned-xsum-clone
+rob06/t5-large-fine-tuned
+rob06/t5-base-fine-tuned
+alfirsaafauzulh/DialoGPT-small-KamuiBastion
+gogzy/t5-base-finetuned_renre_2021_item1
+rovenmusic/DialoGPT-small-melodyv10
+Arnavaz/gpt2-arnavaz-beta
+somesh212/Harry_Potter-BOT
+gogzy/t5-base-finetuned_renre_2021_70_item1
+mesolitica/finetune-isi-penting-generator-t5-base-standard-bahasa-cased
+somesh212/Harry_Potter_botDialoGPT_Som
+unicamp-dl/mt5-13b-mmarco-100k
+kabilanp942/t5-finetuned-cnn-dailymail-english
+huggingtweets/itsbludood
+nhanv/vit5-absum
+geinitz/gpt2-medium-hemingway
+huggingtweets/hellgirl2004
+huggingtweets/00daniponie
+mesolitica/finetune-isi-penting-generator-t5-small-standard-bahasa-cased
+huggingtweets/transgirltoking
+MarkGG/Romance-baseline
+huggingtweets/pcbg9
+somesh212/Harry_Potter_botDialoGPT_Som2
+huggingtweets/damienleevoice
+Finnish-NLP/ul2-small-nl24-finnish
+jmagine/DialoGPT-small-metahead
+nqhuy/tmp
+moizumi/blog-title-generator
+somesh212/Harry_Potter_botDialoGPT_Som3
+huggingtweets/_akhaliq-cyalm-iluminatibot
+huggingtweets/aeronautblue
+huggingtweets/sama-willmanidis
+heegyu/kodialogpt-v1
+huggingtweets/ibdwssbm-kodorinssb-tsm_leffen
+sagawa/PubChem-10m-t5-v2
+sagawa/ZINC-t5-v2
+jrtec/jrtec-gpt2-text-generation-quotes-jonathan-vargas
+huggingtweets/alexabliss_wwe
+huggingtweets/jdfromny206
+rovenmusic/DialoGPT-small-melodyvfinal
+theojolliffe/T5-model-1-feedback-0611-4e
+jmagine/DialoGPT-small-jmagine
+jmagine/DialoGPT-small-funded
+jmagine/DialoGPT-small-jimj
+alimazhar-110/T5-finetuned-CNN-dailymail-english
+awinml/tf_sec_costco
+andrewkroening/GalaxyFarAway-DialoGPT-LukeSkywalker
+andrewkroening/GalaxyFarAway-DialoGPT-Threepio
+andrewkroening/GalaxyFarAway-DialoGPT-Vader
+andrewkroening/GalaxyFarAway-DialoGPT-LeiaOrgana
+tgummadi/t5-11785
+andrewkroening/GalaxyFarAway-DialoGPT-Yoda
+ser-mei/borges-gpt-collab
+Wizardd/DialoGPT-small-sheldon
+huggingtweets/gleampt2-h3xenbrenner2-kidddozer
+huggingtweets/thebuddha_3
+huggingtweets/h3xenbrenner2-s4m31p4n-tallbart
+huggingtweets/finessafudges-h3xenbrenner2-tallbart
+kkotkar1/t5-small-finetuned-eli5
+rymaju/t5-small-finetuned-en-to-regex
+sreddy1/t5-end2end-questions-generation
+jrtec/jrtec-gpt2-text-generation-quotes-base-jonathan-vargas
+huggingtweets/mhhmmad_
+mesolitica/finetune-zeroshot-ner-t5-tiny-standard-bahasa-cased
+luanngo/evjvqa_mt5_vit_16
+Shyam-311/distilgpt2-finetuned-wikitext2
+svjack/prompt-extend-chinese
+DeepPavlov/rudialogpt3_medium_based_on_gpt2_v2
+mesolitica/finetune-zeroshot-ner-t5-small-standard-bahasa-cased
+mesolitica/finetune-zeroshot-ner-t5-base-standard-bahasa-cased
+mqymmayy/mt5-small-finetuned-amazon-en-es
+BenKJH/DialoGPT-small-lucybotasg
+malteos/bloom-6b4-clp-german
+tomekkorbak/detoxify_toxicity
+Ananjas/AwooAI
+kkotkar1/t5-small-finetuned-eli5-new
+mahotaka/gpt2-ja-custom
+rajistics/informal_formal_style_transfer
+BigSalmon/InformalToFormalLincoln90Paraphrase
+Ananjas/AwooV2
+inkoziev/t5_interpreter
+kookyklavicle/gpt-sean-diaz
+kookyklavicle/SeanDiazBot2
+JuanCadavid/t5-small-finetuned-NL2ModelioMQ
+Chakita/multivariable_baseline-stage1
+ashish23993/t5-small-finetuned-xsum-ashish-5000
+marah99/t5-end2end-questions-generation-v0
+cjvt/gpt-sl-base
+Ananjas/AwooV3
+Overlrd/DialoGPT-medium-cartman
+Ananjas/AwooV6
+mesolitica/finetune-segmentation-t5-super-tiny-standard-bahasa-cased
+mesolitica/finetune-segmentation-t5-tiny-standard-bahasa-cased
+docmparker/t5-small-finetuned-xsum
+mrm8488/flan-t5-large-finetuned-gsm8k
+mrm8488/flan-t5-base-finetuned-gsm8k
+mesolitica/finetune-segmentation-t5-small-standard-bahasa-cased
+devansh71/news-sum-dev-ai5
+kejian/improved-filter
+kejian/improved-condition
+kejian/improved-mle
+kejian/improved-ul-64-0.1
+Bitsy/subbie00
+pszemraj/opt-350m-magicprompt-SD
+tomekkorbak/boring_lovelace
+Chakita/multivariable_baseline-stage2
+kejian/ul-128-10
+huggingtweets/prafulfillment
+GItaf/GPT2-LM-Finetuned-MBTI
+huggingtweets/dailystoic-thestoicemperor-thetweetofgod
+huggingtweets/mumukshusavitri
+GItaf/GPT2-CLS-Finetuned-MBTI
+CareerNinja/T5-Base-data-v3-model-v1
+pszemraj/tiny-gpt2-magicprompt
+pszemraj/distilgpt2-magicprompt-SD
+CareerNinja/T5-Large-data-v3-model-v1
+devansh71/ai5_sum_model
+tomekkorbak/friendly_hypatia
+tomekkorbak/pii_toxicity
+gogzy/t5-base-finetuned_renre_2021_40
+tomekkorbak/test-pii-253
+mesolitica/finetune-extractive-qa-t5-base-standard-bahasa-cased
+GItaf/GPT2-CLS-Finetuned-MBTI-gpt2-mc-weight0.25-epoch5-CLS-ppl
+GItaf/JointGPT2-warmup-from-CLS
+fjungstedt/t5-criteria-text-to-json
+GItaf/PELM-JointGPT
+GuillenLuis03/GPT2-Spanish_Poem_Generation
+GuillenLuis03/GPT2-Spanish-Title-Generation
+mathecas/HarryPotterBotAI
+huggingtweets/angelicism0666
+kejian/ul-128-0.1
+Qilex/t5-small-en-me
+mwp/keybert-gpt2-phase1-demo
+model-attribution-challenge/gpt2-chinese-cluecorpussmall
+model-attribution-challenge/german-gpt2
+krohak/QuoteGen
+huggingtweets/bong_iverr
+kejian/oldsig-condition
+huggingtweets/bradsprigg
+huggingtweets/wyld
+Karina256/DialoGPT-small-dory
+model-attribution-challenge/bloom-560m
+mesolitica/finetune-extractive-qa-t5-small-standard-bahasa-cased
+kejian/again-mle
+kejian/finetune-condition-noscale
+mesolitica/finetune-extractive-qa-t5-tiny-standard-bahasa-cased
+kejian/cond-median-noscale
+kejian/cond-0-misaligned
+mrm8488/flan-t5-xl-finetuned-gsm8k
+Qiliang/t5-small-finetuned-xsum
+huggingtweets/sbe_sus
+huggingtweets/barkmeta-lb22_sus-nft_god
+tokeron/TRBLLmaker
+huggingtweets/barkmeta-lb22_sus-nftherder
+mesolitica/finetune-extractive-qa-flan-t5-small
+Qilex/t5-base-en-me
+pinxi/bloom-560m-igpt3
+pinxi/bloom-560m-bloom
+pinxi/bloom-1b7-igpt3
+bs-la/bloom-1b1_ru_continual-pretrain_100000samples_-1vocab_original
+pinxi/bloom-1b7-bloom
+bs-la/bloom-1b7_ru_continual-pretrain_100000samples_-1vocab_original
+graphcore-rahult/gpt2-finetuned-wikitext2
+EhtashamNQ/mt5-small-finetuned-amazon-en-es
+huggingtweets/googlepoetics
+huggingtweets/paulg
+Qilex/mt5-small-en-me
+Qilex/mt5-base-en-me
+Qilex/t5-large-en-me
+tgummadi/t5-11785-bert-reinforce
+Qilex/mt5-large-en-me
+mesolitica/finetune-extractive-qa-flan-t5-base
+Qiliang/flan-t5-large-finetuned-xsum
+joycj/t5-small-finetuned-xsum
+rifkiaputri/mt5-base-id-finetune-unans-qg
+Qiliang/flan-t5-small-finetuned-xsum
+TestZee/t5-small-finetuned-pytorch-final
+geek1024/prompt-extend
+lezend777/t5-small-finetuned-wikisql
+Chakita/UniBloom
+pe65374/PromptCLUE-base
+internetoftim/gpt2-finetuned-wikitext2
+Qiliang/flan-t5-large-summarization-finetuned-xsum
+huggingtweets/fede_boss
+Tahsin-Mayeesha/squad-bn-mt5-base2
+ctkang/gpt2-xl-10
+debarghabhattofficial/t5-small-squad-finetuned-a2c-avg_batch_gleu-batch_training-latest
+debarghabhattofficial/t5-small-squad-finetuned-a2c-avg_batch_gleu-batch_training-best
+GuiSales404/e10_lr0.0001
+ctkang/gpt2-xl_10
+ctkang/gpt2-xl_50
+ctkang/gpt2-xl_90
+ctkang/gpt2-xl_95
+huggingtweets/ralphnader
+ctkang/gpt2-xl_99
+ArtifactAI/flan-t5-xxl-sharded-fp16
+ctkang/test_gpt_xl
+kejian/cond-normandy
+ArtifactAI/t5-11b-sharded-fp16
+KeriYuu/t5-base-qa2d-d2qa
+tgummadi/t5-11785-hybrid_loss
+BigSalmon/ConvertLowercaseToUppercase2
+huggingtweets/babyquakes524
+cocacol4123/lotto
+Chakita/MathBloom-2
+Tony8657/DialoGPT-small-TonyStarkBot
+DylanJHJ/t5-base-clariq-ccqg
+nlp-waseda/comet-t5-base-japanese
+ctkang/a_gpt2-xl_10
+ctkang/a_gpt2-xl_50
+SmartPy/t5-base-finetuned-amazon-en-es
+ctkang/a_gpt2-xl_90
+meongracun/nmt-ted-id-en-lr_1e-3-ep_30-seq_128-bs_64
+vikras/rugpt3small_shtirlitz_joke
+ctkang/b_gpt2-xl_10
+huggingtweets/pitsch
+ctkang/b_gpt2-xl_50
+mesolitica/finetune-true-case-t5-tiny-standard-bahasa-cased
+mesolitica/finetune-true-case-t5-super-tiny-standard-bahasa-cased
+mesolitica/finetune-true-case-t5-small-standard-bahasa-cased
+ctkang/test_b
+ArtifactAI/t5-3b-sharded-fp16
+dnrkdnrk/kogpt2test-finetuned-wikitext2
+pszemraj/opt-350m-multiprompt
+josh-oo/german-gpt2-easy-contrastive
+huggingtweets/imyawnny
+huggingtweets/socialaskan
+huggingtweets/pepsi
+huggingtweets/bet365
+huggingtweets/palantirtech
+cabir40/t5-dutch-invers-grammar-correction
+SebastianS/my_mim
+huggingtweets/bookingcom
+huggingtweets/lockheedmartin
+TFS668/DialoGPT-small-Rick
+huggingtweets/baesystemsinc
+huggingtweets/officialuom
+huggingtweets/disney
+huggingtweets/unicsmcr_
+spoiled/t5_large_epoch_1_comve_triple
+huggingtweets/bbcbreaking-bbcnews-bbcworld
+huggingtweets/sergio_coma
+huggingtweets/bbcnews
+huggingtweets/badbanana
+shahidul034/Bangla_text_summarization_model
+huggingtweets/joelycett
+huggingtweets/manmetuni
+huggingtweets/darthvader
+mwp/MultiBloom
+transZ/ViT5-repara
+pszemraj/distilgpt2-multiprompt
+kimy1119/GCU_T5_1
+kimy1119/GCU_T5_2
+kimy1119/GCU_T5_3
+kimy1119/GCU_T5_4
+kimy1119/GCU_T5_5
+kimy1119/GCU_T5_6
+lmqg/t5-base-tweetqa-qag
+Tj/RickBot
+tgummadi/t5-11785-t5-20-reinforce-bertscore
+MarianaLC/mt5-en-rr-1000
+tgummadi/t5-11785-20-reinforce-meteor
+huggingtweets/apesahoy-bierincognito-elonmusk-fesshole-jonmao___-meat__hook-ripeacsky-troovus-unfetteredmind1
+huggingtweets/apesahoy-bierincognito-fesshole-jonmao___-meat__hook-ripeacsky-theseandiamond-unfetteredmind1
+huggingtweets/omershapira
+testorgusername/test_t5_xxl
+vikram15/t5-small-finetuned-newsSummary
+ChiefTheLord/codeparrot-ds
+josetapia/HyGpt-trainer
+lmqg/t5-large-tweetqa-qag
+Python/cls_en2zh
+Python/cls_zh2en
+rajkumarrrk/gpt2-fine-tuned-on-daily-dialog
+josetapia/HyGpt-trainer-2
+logoyazilim/qna_model_0000
+rajkumarrrk/dialogpt-fine-tuned-on-daily-dialog
+Den4ikAI/rugpt3-QA-old
+fav-kky/gpt2-small-cs
+svjack/squad_gen_qst_zh_v0
+Payoto/gpt2-finetuned-wikitext2
+breadlicker45/gpt-ya
+josetapia/HyGpt-trainer-3
+meongracun/nmt-ted-id-en-lr_1e-2-ep_30-seq_128-bs_64
+josetapia/HyGpt-trainer-4
+huggingtweets/elonmusk-julicq
+ibibek/t5-small-finetuned-xsum
+meongracun/nmt-ted-id-en-lr_1e-3-ep_30-seq_128-bs_32
+Payoto/gpt2-wikitext2
+Payoto/t5-small-finetuned-xsum
+amagzari/old
+huggingtweets/apesahoy-bierincognito-fesshole-ken_stonger-theseandiamond-unfetteredmind1
+meongracun/nmt-ted-id-en-lr_1e-3-ep_10-seq_128-bs_32
+pratultandon/recipe-nlg-gpt2-train11_14
+SGaleshchuk/t5-large-ua-news
+debarghabhattofficial/t5-small-squad-finetuned-a2c-avg_batch_gleu-critic_pre_training-latest
+debarghabhattofficial/t5-small-squad-finetuned-a2c-avg_batch_gleu-critic_pre_training-best
+huggingtweets/ianflynnbkc-maniacxvii-spiritsonic
+Halit/distilgpt2-witcherbooks-clm
+josetapia/HyGpt-trainer-5
+redhoff/DialoGPT-Medium-RedBot
+Tristan/olm-bloom-oct-2022-old
+josetapia/HyGpt-trainer-6
+pratultandon/recipe-nlg-gpt2-train11_15
+pratultandon/recipe-nlg-gpt2
+josetapia/HyGpt-trainer-7
+GhifSmile/mT5_multilingual_XLSum-finetuned-liputan6-coba
+nlp-waseda/comet-gpt2-small-japanese
+josetapia/HyGpt-trainer-8
+nightalon/distilgpt2-finetuned-wikitext2
+Mohan515/t5-small-finetuned-medical
+josetapia/HyGpt-trainer-9
+krlvi/sentence-t5-base-nlpl-code-x-glue
+zachkrooz/gpt2small-indonesian-recipe-522M
+khoon485/x-x
+HURIDOCS/mt5-small-spanish-es
+egorulz/malayalam-news
+atlijas/byt5-is-ocr-post-processing-old-texts
+CaoHaiNam/idea-generation-dataset_v1-0
+CaoHaiNam/description-LM-dataset_v1-0
+hyunussarioglu/tr-paraphrase-mt5-base-ost
+atlijas/byt5-is-ocr-post-processing-modern-texts
+hyunussarioglu/tr-paraphrase-mt5-base-tat
+yeeb/distilgpt2_trading-fours
+EnglishVoice/t5-base-keywords-to-headline
+sreddy1/t5-end2end-questions-generation-full
+EnglishVoice/t5-base-uk-to-us-english
+brwillia/distilgpt2-finetuned-wikitext2
+Danog/diabtest-ds
+FeriVOQ/DialoGPT-small-joshua
+meongracun/nmt-mpst-id-en-lr_1e-4-ep_10-seq_128_bs-64
+meongracun/nmt-mpst-id-en-lr_1e-3-ep_20-seq_128_bs-32
+meongracun/nmt-mpst-id-en-lr_1e-3-ep_30-seq_128_bs-32
+huggingtweets/h3xenbrenner2-s4m31p4n-wnbagirlfriend
+debarghabhattofficial/t5-small-squad-finetuned-a2c-avg_batch_gleu-joint_training-latest
+debarghabhattofficial/t5-small-squad-finetuned-a2c-avg_batch_gleu-joint_training-best
+naman632/t5-paraphraser-paranmt
+Tristan/olm-bloom-560m-oct-2022
+huggingtweets/_etdev
+CaoHaiNam/description-generation-dataset_v1-0
+lmqg/t5-small-tweetqa-qag
+EnglishVoice/t5-base-us-to-uk-english
+andreaschandra/unifiedqa-v2-t5-base-1363200-finetuned-causalqa-squad
+mesolitica/finetune-tatabahasa-t5-small-standard-bahasa-cased
+jcmc/aw-gpt
+krlvi/sentence-t5-base-nlpl-code_search_net
+BigSalmon/InformalToFormalLincolnMedium
+research-backup/t5-small-tweetqa-qag-np
+Den4ikAI/rugpt3-QA
+Hailemicael/paraphrase_tool
+josetapia/hygpt2-cml
+huggingtweets/aespalyric-ao3tagsbot-itzyrics
+nbnb50/qsans
+naman632/NLP_team_gedi_discriminator_JigsawDataset_gpt2based
+tomekkorbak/zealous_sammet
+heegyu/kogpt-neox-tiny
+edmundmills/consequence-generator-01
+mesolitica/finetune-tatabahasa-t5-tiny-standard-bahasa-cased
+lcw99/t5-base-korean-paraphrase
+kejian/cond-lovingly
+nikaashpuri/codeparrot-ds
+devanshipatel/t5-gec-english
+dominguesm/positive-reframing-en
+Bhgbz/football_hockey_ruGPT3large
+cocacol4123/gpt_chat_model_train
+tomekkorbak/crazy_kant
+tomekkorbak/crazy_kant1
+Intel/t5-large-finetuned-xsum-cnn-int8-dynamic
+tomekkorbak/sad_dubinsky
+tomekkorbak/crazy_kant2
+tomekkorbak/crazy_kant3
+josetapia/hygpt-compress-class
+milyiyo/paraphraser-spanish-t5-base
+annadmitrieva/rut5-base-par-simp
+ChiefTheLord/t5-small-opus_books-en_fr
+tomekkorbak/epic_panini
+research-backup/t5-base-tweetqa-qag-np
+Triobloid/DialoGPT-small-lianaharrypotter
+mesolitica/gpt2-117m-bahasa-cased-v2
+huggingtweets/rundizzy-s4m31p4n-tyler02020202
+purplecat24/GPT2_Russel
+huggingtweets/dril-s4m31p4n-wnbagirlfriend
+OctaviusI/marisaV08
+vegeta/distilgpt2-finetuned-legal-nlp-125m
+Intel/t5-base-cnn-dm-int8-dynamic
+rayendito/mt5-small-finetuned-xl-sum-indonesia
+kejian/mle-lovingly-2
+Davlan/bloom-560m_am_continual-pretrain_10000samples
+dvitel/h1
+dvitel/h0
+dvitel/h2
+quinnzie/DialoGPT-small-sinister
+DemeCane/t5-small-finetuned-es-to-pt
+josetapia/hygpt2-cml-gen
+dvitel/h0-1
+research-backup/t5-large-tweetqa-qag-np
+juancopi81/distilgpt2-finetuned-yannic-test-1
+dvitel/h3
+Alred/t5-small-finetuned-summarization-cnn
+Joon2/gpt_chat_model
+meongracun/nmt-mpst-id-en-lr_0.0001-ep_30-seq_128_bs-32
+meongracun/nmt-mpst-id-en-lr_1e-05-ep_30-seq_128_bs-32
+meongracun/nmt-mpst-id-en-lr_0.001-ep_30-seq_128_bs-16
+meongracun/nmt-mpst-id-en-lr_0.0001-ep_30-seq_128_bs-16
+meongracun/nmt-mpst-id-en-lr_1e-05-ep_30-seq_128_bs-16
+meongracun/nmt-mpst-id-en-lr_1e-05-ep_20-seq_128_bs-32
+meongracun/nmt-mpst-id-en-lr_0.0001-ep_20-seq_128_bs-32
+meongracun/nmt-mpst-id-en-lr_0.001-ep_20-seq_128_bs-16
+haining/sas_baseline
+meongracun/nmt-mpst-id-en-lr_1e-05-ep_20-seq_128_bs-16
+meongracun/nmt-mpst-id-en-lr_0.0001-ep_20-seq_128_bs-16
+meongracun/nmt-mpst-id-en-lr_1e-05-ep_10-seq_128_bs-32
+meongracun/nmt-mpst-id-en-lr_0.0001-ep_10-seq_128_bs-32
+meongracun/nmt-mpst-id-en-lr_0.001-ep_10-seq_128_bs-16
+meongracun/nmt-mpst-id-en-lr_0.0001-ep_10-seq_128_bs-16
+meongracun/nmt-mpst-id-en-lr_1e-05-ep_10-seq_128_bs-16
+mesolitica/finetune-tatabahasa-t5-base-standard-bahasa-cased
+Enes3774/tr_mt5
+AndrewZeng/S2KG-base
+devanshipatel/t5-gec-english-125k
+4eJIoBek/ruGPT3_small_nujdiki_stage1
+4eJIoBek/ruGPT3_small_nujdiki_fithah
+huggingtweets/kalousekm
+huggingtweets/0xirenedao-irenezhao_
+AleBurzio/distilgpt2_jje
+Alred/t5-small-finetuned-summarization-cnn-ver2
+juancopi81/gpt2-finetuned-yannic-test
+Alred/t5-small-finetuned-summarization-cnn-ver3
+EleutherAI/pythia-2.8b-v0
+tuananh18/DialoGPT-Eng
+hashketh/gpt2-data-science-job-description
+kejian/cond-lovingly-25
+kejian/cond-lovingly-50
+kejian/cond-lovingly-base-drop
+kejian/cond-lovingly-base
+FarziBuilder/DialoGPT-medium-harrypotter
+IDEA-CCNL/Yuyuan-GPT2-110M-SciFi-Chinese
+huggingtweets/paulcamuso-williamshatner
+huggingtweets/paulcamuso
+huggingtweets/doveywan-irenezhao_-layahheilpern
+huggingtweets/esaagar
+huggingtweets/krystalball
+gigabrain/cag
+huggingtweets/chamath-davidsacks-friedberg
+huggingtweets/friedberg
+huggingtweets/theallinpod
+huggingtweets/jason
+huggingtweets/bretweinstein
+huggingtweets/bretweinstein-ericrweinstein
+dkagramanyan/horoscope_rugpt3small
+cabir40/t5-v1.1-base-dutch-cased_inversion
+sohampatil/DialoGPT-small-mentalchatbot
+huangtuoyue/GPT2-GOT1
+huangtuoyue/GPT2-GOT-finetuned
+Alred/t5-v1_1-small-finetuned-summarization-cnn-ver1
+huangtuoyue/GPT2-GOT2-finetuned
+SWQ/GECgpt2finetune
+vegeta/distilgpt2-finetuned-legal-nlp-125m-finetuned-legal-nlp-125m
+power-greg/super-fast-llm
+fanzru/t5-small-finetuned-xsum-introduction
+fusing/gpt2_optimus
+taozexi/distilgpt2-finetuned-wikitext2
+GhifSmile/mt5-base-finetuned-liputan6-coba-coba
+sarakolding/mt5-da-small
+fanzru/t5-small-finetuned-xsum-conclusion
+fanzru/t5-small-finetuned-xsum-purpose-system
+sarakolding/mt5-da-base
+Gillner/SciGPT2
+WillHeld/t5-small-vanilla-mtop
+sarakolding/mt5-da-large
+WillHeld/t5-base-vanilla-mtop
+huangtuoyue/GPT2-GOT4-finetuned
+Dantesparda17/t5-small-finetuned-ta-to-en
+totem37/DocuT5-Large-SD
+pritoms/gpt2-finetuned-transcriptSteve
+davidlandry933/distilgpt2-finetuned-wikitext2
+huggingtweets/adamscochran-fehrsam-taschalabs
+gigabrain/cypto-tweets
+chloeliu/finetuned-GPT2
+MarianaLC/mt5-en-rr-300
+staccdotsol/DialoGPT-large-stacc-horror
+gtkarber/DialoGPT-medium-columbo
+jaimin/Informal_to_formal
+WillHeld/t5-small-vanilla-top_v2
+mesolitica/gpt2-355m-bahasa-cased
+cocacol4123/gpt_chat_model_one_category
+cocacol4123/gpt_chat_model_one_category_train
+Roy029/mpyt5_e20
+tomekkorbak/silly_lamarr
+jaimin/formal_to_informal
+Roy029/mpyt5_e5
+optimum/gpt2
+tomekkorbak/ecstatic_wescoff
+Roy029/mpyt5_e10
+Roy029/mpyt5_e15
+ChronicTronic/distilgpt2_finetuned_hacks
+jaimin/Active_to_passive
+jaimin/Passive_to_active
+juancopi81/gpt2-finetuned-yannic-large
+ML-Projects-Kiel/tweetyface
+huggingtweets/oryxspioenkop
+utkarshbelkhede/t5-small-sec-10K
+thivy/t5-base-finetuned-en-to-no
+ser-mei/chile-gpt
+staccdotsol/DialoGPT-large-stacc-horror-funny
+alryan1478/gpt2-wikitext2
+Kirili4ik/neural_yandex_jobs
+kejian/condbase-drop0.25
+kejian/condbase-drop0.05
+kejian/condbase-drop0.1
+kpriyanshu256/distilgpt2-the_verge-linustechtips-two_min
+WillHeld/t5-small-vanilla-cstop_artificial
+kejian/cond-lovingly-50drop0.1
+WillHeld/t5-small-adv-mtop
+Junkan/DialoGPT-medium-Bilbo
+mathemakitten/olm-gpt2-baseline-oct-2022
+Jellywibble/gpt2_dalio_reward_model_v0
+wyu1/GenRead-3B-TQA
+wyu1/GenRead-3B-NQ
+mayank-soni/mt5-small-finetuned-amazon-en-es
+dscoursetechnion/t5-small-finetuned-xsum
+EddieChen372/vit5-dot
+Den4ikAI/rugpt3_large_qa
+SalvatoreRaieli/GPT2_lyrics_finetuned
+ThatSkyFox/DialoGPT-medium-whatsapp
+kwojtasik/keyword-pl5t-large
+tomekkorbak/test23
+tomekkorbak/test9485844
+juancopi81/GPT-Y
+jy60/t5-qg-finetuned-hotpotqa
+Roy029/codefix_e20
+EleutherAI/pythia-2.8b-deduped-v0
+SnehaS/mt5-small-finetuned-amazon-en-es
+hf-internal-testing/tiny-random-BloomForCausalLM
+hf-internal-testing/tiny-random-BloomForQuestionAnswering
+hf-internal-testing/tiny-random-BloomForSequenceClassification
+hf-internal-testing/tiny-random-BloomForTokenClassification
+hf-internal-testing/tiny-random-BloomModel
+hf-internal-testing/tiny-random-GPT2ForSequenceClassification
+hf-internal-testing/tiny-random-GPT2ForTokenClassification
+hf-internal-testing/tiny-random-GPT2LMHeadModel
+hf-internal-testing/tiny-random-GPT2Model
+hf-internal-testing/tiny-random-GPTNeoXForCausalLM
+hf-internal-testing/tiny-random-GPTNeoXModel
+mx4alex/best_model
+hf-internal-testing/tiny-random-T5ForConditionalGeneration
+hf-internal-testing/tiny-random-T5Model
+tomekkorbak/lucid_varahamihira
+tomekkorbak/pedantic_wright
+tomekkorbak/vigorous_saha
+tomekkorbak/heuristic_shannon
+Ar4ikov/DialogAgentGPT2
+51la5/T5-summary
+huggingtweets/josephflaherty
+lfuchs/desctension
+ajitjadhav/t5-small-finetuned-t5-summarization
+huggingtweets/ttunguz
+kazzand/gpt2-large-yoda
+huggingtweets/boredelonmusk-brycent_-loopifyyy
+kazzand/ent5-base-yoda
+huggingtweets/americanair
+minhtoan/t5-small-wikilingua-vietnamese
+MadMarx37/mt5-small-finetuned-cnn-dailywire
+heegyu/kogpt-neox-small
+jasoneden/BLOOM-560-QuestionAnswering-CDC-Covid19-Tuned
+Deigant/t5-base-finetuned-qg-context-dataset-2
+minhtoan/t5-small-vietnamese-news
+reallygoodtechdeals/Bingocat-ai-Dialo-GPT-medium
+TestZee/t5-base-finetuned-kaggle-data-t5-base
+huggingtweets/pacsjam
+huggingtweets/dril-pacsjam
+huggingtweets/horse_luvr_47
+su157/t5-small-qg-german-01
+huggingtweets/sauruslino
+su157/t5-small-qg-german-02
+su157/t5-small-qg-german-00
+kpriyanshu256/gpt-ya2
+RobertoFont/gpt2-large-fairytales
+kpriyanshu256/gpt-ya2-v2
+cj7s1/DialoGPT-medium-BMO
+huggingtweets/horse_luvr_47-pacsjam
+huggingtweets/parker_gibbons
+bernhardtandy/music_CLM
+SnehaS/test-bert-finetuned-squad-accelerate
+huggingtweets/screenmix
+ConvLab/t5-small-nlg-multiwoz21
+ConvLab/t5-small-nlg-sgd
+BigSalmon/InformalToFormalLincoln91Paraphrase
+ConvLab/t5-small-nlg-tm1_tm2_tm3
+ConvLab/t5-small-nlg-multiwoz21_sgd_tm1_tm2_tm3
+ConvLab/t5-small-nlu-multiwoz21
+ConvLab/t5-small-nlu-sgd
+ConvLab/t5-small-nlu-tm1_tm2_tm3
+ConvLab/t5-small-nlu-multiwoz21_sgd_tm1_tm2_tm3
+thmauler/crashed
+rahul77/t5-small-finetuned-xsum-rahul2
+Hoax0930/summary_tutorial
+ConvLab/t5-small-goal2dialogue-multiwoz21
+ConvLab/t5-small-dst-multiwoz21
+ConvLab/t5-small-dst-sgd
+nzwii/model_11061963
+mei2505/MedWeb-model
+ConvLab/t5-small-dst-tm1_tm2_tm3
+ConvLab/t5-small-dst-multiwoz21_sgd_tm1_tm2_tm3
+kindly-generous/codet5-codeg
+kejian/final-rwr
+kejian/final-mle
+kejian/final-cond-25-0.05
+kejian/final-cond-10-0.01
+kejian/final-awr
+kejian/final-ul
+channotte/gpt2-Georges-sand
+tomekkorbak/wonderful_keller
+tomekkorbak/hungry_saha
+tomekkorbak/goofy_pasteur
+tomekkorbak/nifty_banach
+zhuimengshaonian/gpt2-ancient-base
+kejian/final-cond-10-0.1
+huggingtweets/niu_yozuna
+OptionaI/DialoGPT-small-beepboopy
+kejian/final-mle-again
+kejian/final-cond-10-0.01-again
+kejian/final-cond-25-0.05-again
+kejian/final-cond-10-0.05
+kejian/final-filter
+bnunticha/t5-small-en-to-th
+kbalde/mt5-small-finetuned-amazon-en-es
+kejian/final-cond-10-0.1-again
+staccdotsol/DialoGPT-medium-horror
+lmqg/mt5-base-jaquad-qg-ae
+huggingtweets/a_0_o_1-gentlest_alive
+davebathhews/DialoGPT-OTIS
+kbalde/codeparrot-ds
+dzadvornov/fin-mt5-long-extract
+GGOM/SipBotGGOM
+JoyDaJun/DialoGPT-Elon_Yuelyu
+davebathhews/DialoGPT-OTISBOT
+pszemraj/flan-t5-large-grammar-synthesis
+Rschmaelzle/gpt_fol_full_v1
+khanhpd2/sbert-vietai-t5-base
+GGOM/WillBotGGOM
+fanpu/final_model_output_subreddit-wallstreetbets
+GGOM/ElyasBotGGOM
+NYAO-Lab/fakepaperbot
+kejian/final-cond-25-0.1
+AleBurzio/gpt2-large-riddles
+Sandipan1994/t5-small-finetuned_entailment_inference
+AtulSingh31/t5-small-finetuned-xsum
+tsmatz/mt5_summarize_japanese
+4ytk3/fakepaperbot_gpt-2
+ashishkat/questionAnswer
+kejian/final-cond-10-0.01-again-2
+kejian/final-cond-10-0.1-again-2
+kejian/final-cond-10-0.25-again
+kejian/final-cond-25-0.01
+Keerthan/reverse_dictionary-t5-small
+WillHeld/t5-base-vanilla-top_v2
+huggingtweets/davidhornik
+ajitjadhav/t5-small-finetuned-t5-summarization_3
+imanand/MINOR-I_T5
+fanpu/final_model_output_subreddit-wallstreetbets_1
+Rschmaelzle/gpt_quotes
+huggingtweets/andruyeung-hackwithzach
+amagzari/t5-v1_1-small-finetuned-samsum
+huggingtweets/autogynefiles-s4m31p4n-tyler02020202
+WillHeld/t5-base-vanilla-cstop_artificial
+huangtuoyue/GPT2-AddToken-finetuned
+huggingtweets/elonmusk-realdonaldtrump
+fanpu/final_model_output_subreddit-wallstreetbets_2
+amagzari/t5-base-finetuned-samsum-v2
+reallygoodtechdeals/steve-ai-Dialo-GPT-medium
+radhikabansal/t5-base-finetuned-news-summary
+Den4ikAI/DLM_125m
+raileymontalan/results
+Rschmaelzle/gpt2-imdb-ctrl
+asifhugs/distilgpt2-finetuned-distilgpt2
+huggingtweets/jakeyngblood
+fanpu/final_model_output_subreddit-wallstreetbets_3
+PhanHuy/T5-base
+VvVitekVvV/everlasting_summer_small
+Sandipan1994/t5-small-entailement-Writer-T5-small
+erkanxyzalaca/turkishReviews-ds-mini
+dlwh/filtered_pile_gpt2
+Alred/t5-base-finetuned-summarization-cnn-ver2
+premsuresh/t5-small-finetuned-xsum
+kejian/final-filter-again
+kejian/final-cond-25-0.25
+huggingtweets/tarunchitra
+Crushtoe/DialoGPT-small-vangluss
+lmqg/mt5-base-dequad-qg-ae
+mesolitica/finetune-summarization-ms-t5-base-standard-bahasa-cased
+mesolitica/finetune-summarization-ms-t5-small-standard-bahasa-cased
+rahul77/t5-small-finetuned-rahul-rough
+shreyasharma/t5-small-ret-conceptnet
+pkachhad/t5-small-finetuned-parth
+leaver2000/gpt2-taf-0.1.5
+shreyasharma/t5-small-ret-conceptnet2
+huggingtweets/bobkerns
+pkachhad/t5-base-finetuned-parth
+JapaNLP/t5-efficient-xl-nl6-japanese
+thivy/flan-t5-base-finetuned-en-to-no-test
+rexwang8/py125
+akmmsr/mt5-small-finetuned-amazon-en-es_akmmsr
+ajitjadhav/t5-large-finetuned-summarization
+Dagar/t5-small-science-papers-NIPS
+aiautomationlab/wtwm-gpt2-based-mentions-detector
+regisss/t5-3b-summarization-gaudi-2
+CogComp/l2d-decomp
+rahul77/t5-small-finetuned-rahul-summariza
+KSz/t5-small-finetuned-xsum
+supermy/poetry
+Deigant/t5-base-finetuned-qg-context-dataset-2-hard-medium
+romendiratta/fin-unsupersvised-mt5-4000
+Den4ikAI/DLM_500m
+smilton/mt5-large-qasrl-es-p1-question
+olm/olm-gpt2-oct-2022
+Deigant/t5-base-finetuned-qg-hard-medium
+tomekkorbak/clever_goodall
+smilton/mt5-large-qasrl-es-p2-question
+smilton/mt5-large-qasrl-es-p1-role
+ShishckovA/results
+SiriRRR/mt5-small-finetuned-test
+bencebago/t5-small-climate-articles-right
+apotempest/DialoGPT-medium-geralt
+huggingtweets/mullen_usa-nasdaq
+jas-ho/rome-edits-louvre-rome
+DiogoSabec/DialoGPT-small-joshua
+mzhou08/t5-base-finetuned-qg-medium-hard-qns
+thivy/flan-t5-base-finetuned-opus_books-en-to-no-test
+KPEKEP/rugpt_chitchat
+kejian/debug-pt-conditional
+pedrogarcias/t5-small-finetuned-wikisql-sql-nl-nl-sql
+kejian/immaculate-mle
+kejian/immaculate-conditional
+kejian/immaculate-ul
+kejian/immaculate-rwr
+kejian/immaculate-awr
+kejian/immaculate-filtering
+vegeta/GPT2_NLP_model_pytorch
+asifhugs/Testing
+ser-mei/borges-gpt-collab-finetuned
+lyhhhhhh/mt5-small-finetuned-test
+WaleedArif/DialoGPT-small-Micheal
+ririying/mt5-small-finetuned-test
+fanpu/model_output_sorted_by_upvotes_subreddit-wallstreetbets_1
+lmqg/mt5-base-frquad-qg-ae
+graphcore-rahult/gpt2-wikitext2
+tomekkorbak/compassionate_hypatia
+paragon-analytics/t5_para
+graphcore-rahult/t5-small-finetuned-xsum
+tomekkorbak/amazing_shannon
+huggingtweets/elonmusk-lexfridman-watcherguru
+lmqg/mt5-base-esquad-qg-ae
+huggingtweets/billym2k-elonmusk-lexfridman
+huggingtweets/sarahjoycore
+lyhhhhhh/mt5-small-finetuned-test-class2
+ririying/my-finetuned-mt5-class0
+lyhhhhhh/mt5-small-finetuned-test-class3
+huggingtweets/kill_lil_
+WillHeld/t5-base-adv-mtop
+Crushtoe/DialoGPT-medium-vangluss
+varunlpai/unifiedqa-cbs
+nlp-waseda/gpt2-xl-japanese
+ianbarber/t5-small-finetuned-xsum
+umm-maybe/ey_lw_posts
+Sachinkelenjaguri/sa_T5_Table_to_text
+fanpu/model_output_sorted_by_upvotes_positive_subreddit-wallstreetbets_1
+huggingtweets/robotnews
+ririying/mt5-small-finetuned-mt5-class1
+NoNameForMe/safechat-gpt2
+supermy/couplet-gpt2
+juierror/text-to-sql-with-table-schema
+gavin124/gpt2-finetuned-cnn-summarization-v1
+vishakhpk/t5-11b-copoet
+raj26000/gpt2-arxiv-cs.CL
+Crushtoe/GODEL-v1_1-base-seq2seq-vangluss
+fanpu/model_output_original_subreddit-wallstreetbets_1
+Tristan/olm-gpt2-oct-2022-140k
+ChandlerU11/GPT-2_Target_Real
+huggingtweets/blewglass
+huggingtweets/poisonjr
+huggingtweets/kelseyhightower-mipsytipsy-rakyll
+varunlpai/t5-base-cbs
+wyu1/GenRead-3B-WebQ
+MadMarx37/mt5-small-finetuned-amazon-en-es
+DiogoSabec/BOT
+hoskinson-center/proofGPT-v0.1
+gavin124/gpt2-finetuned-cnn-summarization-v2
+wyu1/FiD-WebQ
+Yanjie24/t5-samsung
+paust/pko-t5-base-finetuned-korquad
+minhtoan/t5-finetune-cnndaily-news
+fanpu/model_output_original_subreddit-cmu_1
+fanpu/model_output_original_subreddit-AskScienceFiction_1
+KPEKEP/rudialogpt3_medium_based_on_gpt2
+crumb/bloom-560m-RLHF-SD2-prompter
+josetapia/hygpt2-clm
+huggingtweets/mobytism
+bibekyess/qcpg-parabk2-mt5
+bibekyess/qcpg-parabk2-t5-base
+AhiyaB/mt5-small-finetuned-Big-Patent-h
+fxmarty/t5-small-onnx
+crumb/bloom-560m-RLHF-SD2-prompter-aesthetic
+goatest123/poetryGenT51
+clp/t5-small-finetuned-xsum
+fanpu/model_output_original_subreddit-piano_1
+fanpu/model_output_original_subreddit-poker_1
+MJS2022/t5-small-finetuned-giga
+Le033/DialoGPT-small-rickmorty
+romendiratta/fin-unsupersvised-mt5-250
+Xxanderr/taleoftwocities
+ajitjadhav/t5-small-finetuned-summarization-app
+Xxanderr/ScraperTrainer
+RaymondLi/custom_gpt2_mqa
+kejian/mighty-ul
+kejian/mighty-conditional
+lmqg/mt5-base-ruquad-qg-ae
+marca116/twitter_reply_generator
+rahul77/t5-small-finetuned-rahul-summariza1
+kejian/mighty-rwr
+kejian/mighty-mle
+EP9/mt5-small-MT5-Intento1
+EP9/mt5-small-MT5-Intento2
+kejian/mighty-awr
+jasoneden/BLOOM-560-QA-CDC_Covid19-100epochs
+Nivetha/test1
+kejian/mighty-filtering
+bibekyess/t5-base-korean
+MJS2022/t5-small-finetuned-giga-test
+romendiratta/fin-unsupersvised-mt5-7000
+NaoS2/pre-bi50
+fanpu/model_output_sorted_reversed_subreddit-wallstreetbets_1
+vaibhav19341/NLP_Project_t5-small-finetuned-newsSummary
+huggingtweets/nikitabier-realjonahblake-shl
+LawJarp/token-absolute-lm-freeze-stage1
+lmqg/mt5-base-koquad-qg-ae
+tomekkorbak/peaceful_cori
+kmakhlina/kmakhlina
+kmakhlina/sports-detox
+sports-ru/sports-detox
+autoevaluate/summarization-not-evaluated
+tomekkorbak/hungry_pasteur
+dzadvornov/fin-mt5-long-extract4000
+navjordj/tst-translation
+navjordj/flan-t5-small_en-no
+bigcode/santacoder
+Den4ikAI/DLM_CHITCHAT_700M
+Filosofas/DialoGPT-medium-PALPATINE2
+LawJarp/token-absolute-stage1
+ctkang/ft_models
+JadansTower/jobot
+EP9/mt5-small-finetuned-amazon-en-es
+navjordj/flan-t5-base_en-no
+MadMarx37/mt5-small-finetuned-cnn-dailymail
+navjordj/flan-t5-large_en-no
+dzadvornov/fin-mt5-long-extract7000
+EP9/mt5-small-tuto-mt5-small-1
+JadansTower/DialoGPT-small-jobot
+huangtuoyue/GPT2-xl-GOTfinetuned
+huangtuoyue/GPT2-xl-GOTfinetuned_v2
+dzadvornov/fin-mt5-long-absbsl
+BigSalmon/InformalToFormalLincolnMediumParaphraseConcise
+fanpu/model_output_non_neg_subreddit-wallstreetbets_1
+neulab/docprompting-codet5-python-doc-retriever
+supermy/jinyong-gpt2
+MJS2022/t5-small-finetuned-giga-test-full
+NTMNathan/DialoGPT-small-harrypotter
+MJS2022/t5-small-finetuned-giga-test-default-masking
+Luffyt/t5-small-gec-new_data
+Luffyt/t5-small-gec-combine_data
+dzadvornov/fin-mt5-long-abs250
+dzadvornov/fin-mt5-long-abs4000
+dzadvornov/fin-mt5-long-abs7000
+dzadvornov/fin-mt5-long-extract250
+bibekyess/mt5-korean
+CogComp/l2d-entail
+Luffyt/t5-base-gec-new_data
+Luffyt/t5-base-gec-combine_data
+StonyBrookNLP/t5-large-drop
+StonyBrookNLP/t5-large-iirc-gold
+StonyBrookNLP/t5-large-iirc-retrieved
+StonyBrookNLP/t5-large-numglue
+StonyBrookNLP/t5-large-tatqa
+StonyBrookNLP/t5-3b-drop
+StonyBrookNLP/t5-3b-iirc-gold
+StonyBrookNLP/t5-3b-iirc-retrieved
+StonyBrookNLP/t5-3b-numglue
+StonyBrookNLP/t5-3b-tatqa
+StonyBrookNLP/nt5-small-drop
+StonyBrookNLP/nt5-small-iirc-gold
+StonyBrookNLP/nt5-small-iirc-retrieved
+StonyBrookNLP/nt5-small-numglue
+StonyBrookNLP/nt5-small-tatqa
+StonyBrookNLP/preasm-large-drop
+StonyBrookNLP/preasm-large-iirc-gold
+StonyBrookNLP/preasm-large-iirc-retrieved
+StonyBrookNLP/preasm-large-numglue
+StonyBrookNLP/preasm-large-tatqa
+StonyBrookNLP/teabreac-t5-large-drop
+StonyBrookNLP/teabreac-t5-large-iirc-gold
+StonyBrookNLP/teabreac-t5-large-iirc-retrieved
+StonyBrookNLP/teabreac-t5-large-numglue
+StonyBrookNLP/teabreac-t5-large-tatqa
+StonyBrookNLP/teabreac-t5-3b-drop
+lmqg/t5-base-tweetqa-qa
+Den4ikAI/DLM_CHITCHAT_500M
+darshkk/t5-small-finetuned-xsum
+Den4ikAI/DLM_CHITCHAT_100M
+may-s-d/t5-finetuned-NYT
+WillHeld/byt5-small-mtop
+asifhugs/distillgpt2-BittensorTuned4
+lmqg/t5-small-tweetqa-qa
+VinayN/t5-small-finetuned-xsum
+lmqg/t5-small-squad-ae
+ignacioxz/big111
+SWQ/gpt2-medium-combine
+huggingtweets/lucawashenko
+StonyBrookNLP/teabreac-t5-large
+StonyBrookNLP/teabreac-t5-3b
+huangtuoyue/GPT2-large-GOTfinetuned_v1
+StonyBrookNLP/teabreac-t5-3b-iirc-gold
+StonyBrookNLP/teabreac-t5-3b-iirc-retrieved
+StonyBrookNLP/teabreac-t5-3b-numglue
+StonyBrookNLP/teabreac-t5-3b-tatqa
+StonyBrookNLP/teabreac-nt5-small
+StonyBrookNLP/teabreac-nt5-small-drop
+StonyBrookNLP/teabreac-nt5-small-iirc-gold
+StonyBrookNLP/teabreac-nt5-small-iirc-retrieved
+StonyBrookNLP/teabreac-nt5-small-numglue
+StonyBrookNLP/teabreac-nt5-small-tatqa
+StonyBrookNLP/teabreac-preasm-large
+StonyBrookNLP/teabreac-preasm-large-drop
+StonyBrookNLP/teabreac-preasm-large-iirc-gold
+StonyBrookNLP/teabreac-preasm-large-iirc-retrieved
+StonyBrookNLP/teabreac-preasm-large-numglue
+StonyBrookNLP/teabreac-preasm-large-tatqa
+nfagone/t5-small-finetuned-xsum
+Matthewww/mt5_NytNews
+huangtuoyue/GPT2-large-GOTfinetuned_v2
+sagawa/ReactionT5-product-prediction
+breadlicker45/gpt-something
+huangtuoyue/GPT2-large-GOTfinetuned_v3
+BigSalmon/InformalToFormalLincoln92Paraphrase
+SWQ/gpt2-medium-new
+hyorea1/KoT5-test
+WillHeld/byt5-small-top_v2
+WillHeld/byt5-small-cstop_artificial
+ConvLab/t5-small-nlu-multiwoz21-context3
+ConvLab/t5-small-nlu-tm1-context3
+ConvLab/t5-small-nlu-tm2-context3
+ConvLab/t5-small-nlu-tm3-context3
+alima/chatbot_xinli
+bs-la/bloomz-7b1-500m-ru
+bs-la/bloomz-7b1-4b-xp3ru
+kejian/spectacular-awr
+Ashypaws/DialoGPT-medium-Ashybot
+WillHeld/byt5-base-mtop
+AtherMob/my_Med
+Tristan/olm-gpt2-oct-2022-420k
+brutusxu/t5-base-finetuned-xsum
+michelecafagna26/t5-base-finetuned-sst2-sentiment
+Paligonshik/mt5-small-finetune-sumsum
+huangtuoyue/GPT2-large-GOTfinetuned_v4
+wenjalan/my_awesome_eli5_clm-model
+huggingtweets/cj_johnson17th-lucawashenko-lukealexxander-roguewealth
+neulab/reatt-large-nq-fiqa
+wmdosborne/DialoGPT-medium-kyritebot
+rymaju/NL-RX-Synth-t5-small-finetuned-en-to-regex
+gokuls/distilgpt2-finetuned-wikitext2
+tripplyons/flan-t5-base-xsum
+huangtuoyue/GPT2-large-GOTfinetuned_v5
+GhifSmile/mt5-base-coba-coba-coba
+rymaju/KB13-t5-small-finetuned-en-to-regex
+WillHeld/byt5-base-top_v2
+hanyee/distilgpt2-finetuned-wikitext2
+SEUNGWON1/distilgpt2-finetuned-wikitext2
+rymaju/NL-RX-Synth-t5-base-finetuned-en-to-regex
+ECE1786-AG/lyrics-generator
+bs-la/bloomz-7b1-4b-ru
+soorya12/t5-small-finetuned-on-cloudsek-data-assignment
+rymaju/Redex-t5-small-finetuned-en-to-regex
+tum-nlp/german-gpt2_easy
+nzwii/model_11244029
+tum-nlp/gerpt2_easy
+tum-nlp/gpt2-wechsel-german_easy
+Hichnick/ex_bot
+tum-nlp/gpt2-medium-german-finetune-oscar_easy
+huggingtweets/cl207-elonmusk
+tum-nlp/mGPT_easy
+fanzru/t5-small-finetuned-xsum-xlsum
+pedrogarcias/t5-base-ppt
+hisaoka/t5-large_dataset_radiology_summary20221129.tsv
+soorya12/t5-small-finetuned-on-cloudsek_data
+EmnaBou/t5-small-disfluent-fluent
+rymaju/Redex-NL-RX-Synth-t5-small-finetuned-en-to-regex-finetuned-en-to-regex
+qkou/distilgpt2-fda
+lmqg/mt5-base-itquad-qg-ae
+pedramyamini/ku_t5_base-finetuned-rudaw-ku-1024-256
+mei2505/model_11250112
+adldtd/distilgpt2-quotes
+team-lucid/t5-v1_1-base-ko
+bergum/rank-T5-flan
+worms3402/DialoGPT-small-automata2
+danurahul/codeparrot-ds
+tomekkorbak/upbeat_ramanujan
+tomekkorbak/musing_hoover
+jinujinu99/t5-ep6-parabk2
+jinujinu99/mt5-korean-ep6
+jinujinu99/t5-ep3-mscoco
+jinujinu99/t5-ep3-parabk2
+jinujinu99/t5-ep3-wikians
+tomekkorbak/affectionate_wescoff
+tomekkorbak/gifted_hugle
+tomekkorbak/nervous_wozniak
+tomekkorbak/confident_knuth
+tomekkorbak/cocky_carson
+tomekkorbak/boring_mcclintock
+conorhastings/stillconor
+WillHeld/t5-small-pointer-mtop
+WillHeld/t5-base-pointer-mtop
+huggingtweets/jellynatelli-raspberryl0ver
+Pi3141/DialoGPT-small-elon
+AleBurzio/bloom-560M-riddles
+wenjalan/starbot-transformers
+WillHeld/t5-small-pointer-top_v2
+WillHeld/byt5-base-cstop_artificial
+WillHeld/t5-small-pointer-cstop_artificial
+ClueAI/PromptCLUE-base-v1-5
+shiyue/wikitext_train50K_gpt2-large_mix1.0
+anikethjr/PromoGen_K562_GPT2_8000_tokens_2080Ti_x4
+nfagone/t5-small-finetuned-billsum
+neulab/reatt-large-nq
+neulab/reatt-large-nq-bioasq
+shiyue/wikitext_train50K_gpt2-large_mix0.1
+shiyue/webtext_train50K_gpt2-large_mix1.0
+FredZhang7/distilgpt2-stable-diffusion
+shiyue/webtext_train50K_gpt2-large_mix0.3
+shiyue/writingPrompts_train50K_gpt2-large_mix1.0
+shiyue/writingPrompts_train50K_gpt2-large_mix0.7
+pratultandon/recipe-nlg-gpt2-ingredient-fixer
+Grendar/Dialo-GPT-medium-shiro
+stacked-summaries/flan-t5-large-stacked-samsum-1024
+huggingtweets/julian-shaanvp-trungtphan
+huggingtweets/emilyhxrrera-floguo-lucy_guo-saraduit-shrawberryy
+Delcos/redditpull00
+madhavsankar/qcpg-mscoco-sbert-lr1e-4
+lmqg/t5-base-squad-ae
+hyorea1/KoT5-test-add-data-from5ep
+EmnaBou/t5-base-disfluent-fluent
+FINDA-FIT/mT5_Large_False_SentFin_None_None
+FINDA-FIT/mT5_Large_True_SentFin_None_None
+pratultandon/recipe-nlg-gpt2-ingredient-to-recipe-model
+WillHeld/t5-base-pointer-top_v2
+WillHeld/t5-base-pointer-cstop_artificial
+krlng/t5-question-generation-de
+Hayoung/my_awesome_ko_en_model
+gamallo/gpt2-galician-alpha
+Umarpreet/argumentGPT2-large
+fanzru/t5-small-finetuned-xlsum-concat-multi-news
+WillHeld/t5-small-pointer-adv-mtop
+Tristan/olm-gpt2-oct-2022-one-epoch
+WillHeld/t5-base-pointer-adv-mtop
+NaoS2/multi-kogi
+Pi3141/DialoGPT-medium-elon
+gamallo/paraphrases_tuned_from_gpt2-galician
+alighasemi/fa-t5-base
+Pi3141/DialoGPT-medium-elon-2
+EP9/mt5-small-tuto-mt5-small-2
+anikethjr/PromoGen_K562_GPT2_4096_tokens_2080Ti_x4
+Tristan/olm-gpt2-oct-2022-exactly-one-epoch
+GhifSmile/mt5-base-coba
+haining/scientific_abstract_simplification
+90sUI/rw
+CareerNinja/T5-Small-data-v4-model-v2
+CareerNinja/T5-Base-data-v4-model-v1
+manashxml/identify_CP_hin-eng
+mooncat-is/bloom-1b7-finetuned-hdg-2
+momo/KLUE-TOD
+Tristan/olm-gpt2-oct-2022-one-epoch-only-exact-dedup
+gbarone77/t5-small-finetuned-wikisql-with-cols
+anikethjr/PromoGen_HepG2_GPT2_4096_tokens_2080Ti_x4
+fanzru/t5-small-finetuned-xlsum-concat-multi-news-withlm
+marianna13/mt5-small-finetuned-audio-text-cc
+augustocsc/gpt-m
+google/t5_xxl_true_nli_mixture
+Tristan/olm-gpt2-oct-2022-exactly-one-epoch-only-exact-dedup
+Tristan/olm-gpt2-oct-2022-one-epoch-no-bigscience-filter
+alanila/fbt-new-tokenizer
+lmqg/t5-large-tweetqa-qa
+alanila/fbt
+JoshuaPawlik/DialoGPT-medium-joshua
+mrm8488/bloom-560m-finetuned-the-stack-cobol
+rymaju/KB13-t5-base-finetuned-en-to-regex
+EP9/t5-base-finetuned-summarize-news-tuto-noticias
+Tristan/olm-gpt2-oct-2022-exactly-one-epoch-no-bigscience-filter
+Tristan/olm-gpt2-oct-2022-one-epoch-with-bookcorpus
+Pi3141/DialoGPT-medium-elon-3
+lixiangchun/transcriptome-gpt-1024-8-16-64
+lixiangchun/transcriptome-gpt-1024-8-16-128
+shaynekaiser/Gutenberg_Poetry_Distil
+josephthen3320/DialoGPT-small-walter
+huggingtweets/tomscott
+YtBig/tag-caption-v2
+sphchen/EHR_ML_simulation_1
+ccol/spacing-small
+soap945/test
+huggingtweets/jhenzi-potus
+khaidoan25/test_model
+robbiegwald/Rick
+whitemouse84/my_awesome_opus_books_model
+sphchen/EHR_ML_simulation_2
+Tristan/olm-gpt2-oct-2022-exactly-one-epoch-with-bookcorpus
+medidocs/t5-paraphrase
+AleBurzio/bloom-better-riddles
+shaoyuyoung/QTC4SO
+zhuimengshaonian/gpt2-ancient-medium
+huggingtweets/puma
+loubnabnl/rho-loss-baseline-model
+Anjoe/Bundestag-gpt2-large
+mrm8488/bloom-560m-finetuned-the-stack-brainfuck
+huggingtweets/thechosenberg
+soap945/docstring
+huggingtweets/herzogsm
+Tristan/olm-gpt2-oct-2022-one-epoch-perplexity-filters
+Sandipan1994/t5-small-entailement-Writer-T5-base
+Sandipan1994/t5-small-entailement-Writer
+soap945/funcom1
+Tristan/olm-gpt2-oct-2022-exactly-one-epoch-perplexity-filters
+enzord2001/t5-new
+FredZhang7/distilgpt2-stable-diffusion-v2
+CareerNinja/T5-Base-data-v4c-model-v1
+CareerNinja/T5-Small-data-v4c-model-v1
+mrm8488/bloom-560m-finetuned-the-stack-prolog
+Gurtej/Drbot
+marianna13/t5-small-finetuned-audio-text-cc
+soap945/ncsJava
+FINDA-FIT/mT5-KO_LARGE_FALSE_FALSE_FALSE_FULL
+rwl4/flan-t5-xxl-sharded-fp16
+FINDA-FIT/mT5-KO_LARGE_TRUE_FALSE_FALSE_FULL
+mesolitica/finetune-keyword-t5-small-standard-bahasa-cased
+mesolitica/finetune-keyword-t5-base-standard-bahasa-cased
+FINDA-FIT/mT5_LARGE_TRUE_SentFiN_FALSE_FULL
+Farras/mt5-small-kompas
+FINDA-FIT/mT5_LARGE_FALSE_SentFiN_FALSE_FULL
+Hereward/DialoGPT_medium_ObiWan_Kenobi
+yeeb/gpt2_trading-fours
+Tristan/olm-gpt2-oct-2022-one-epoch-suffix-array-dedup
+FINDA-FIT/mT5_LARGE_FALSE_SentFiN_FALSE_FULL_5
+FINDA-FIT/KE-T5-KO_LARGE_TRUE_FALSE_FALSE_FULL
+FINDA-FIT/mT5_LARGE_FALSE_SentFiN_FALSE_FULL-5
+IDEA-CCNL/Wenzhong2.0-GPT2-110M-BertTokenizer-chinese
+FINDA-FIT/KE-T5-KO_LARGE_FALSE_FALSE_FALSE_FULL
+tomekkorbak/keen_clarke
+FINDA-FIT/KE-T5-KO_LARGE_FALSE_KOFINSA_FALSE_FULL
+pgfeldman/model_explorer_hello_world
+Yanjie24/t5-samsung-5e
+FINDA-FIT/KE-T5-KO_LARGE_FALSE_KOABSA_FALSE_FULL
+Tristan/olm-gpt2-oct-2022-exactly-one-epoch-suffix-array-dedup
+FINDA-FIT/KE-T5-KO_LARGE_TRUE_KOABSA_FALSE_FULL
+Giu888/DialoGPT-small-sao
+Reverb/GPyT
+alighasemi/fa-t5-paraphraser
+alighasemi/test-erfan
+luiz826/MichaelScottGen
+huggingtweets/cantliveinpeace
+lee1111/foodparser
+parinzee/mt5-base-finetuned-qg
+hisaoka/t5-large_radiology-ai-cardiothoracic-imagingcancer-0.8
+huggingtweets/mirko_ross
+JapaNLP/ul2-base-japanese
+madhavsankar/qcpg-mscoco-bleurt-lr1e-4
+JuanCadavid/t5-small-finetuned-NL2ModelioMQ-FR
+JapaNLP/ul2-large-japanese
+loresanso99/t5-small-finetuned-xsum
+irenepap/t5-base-qasper
+huggingtweets/fhuszar
+EmnaBou/t5-large-disfluent-fluent
+FINDA-FIT/KE-T5-KO_LARGE_TRUE_KOFINSA_KoABSA_FULL
+EmnaBou/t5-large-disfluent-jdf
+FINDA-FIT/KE-T5-KO_LARGE_FALSE_KOFINSA_KoABSA_FULL
+mjun/mt5-small-finetuned-amazon-en-es
+WillHeld/t5-base-pointer-adv-cstop_artificial
+WillHeld/t5-base-adv-cstop_artificial
+htmai-880/my_awesome_opus_books_model
+huggingtweets/openai
+hisaoka/t5-large_radiology-ai-cardiothoracic-0.9
+guyhadad01/t5-fine-tuned-large-hub
+minhtoan/t5-finetune-bbc-news
+luiz826/MichaelGen
+soap945/codenn
+keeg8/Book-0-1500
+luiz826/MichaelScottGeneration
+lmqg/t5-large-squad-ae
+keeg8/Book-1500-1700
+keeg8/Book-1850-1900
+keeg8/Book-1700-1850
+luiz826/MichaelScottGenFinal
+caiochacon/MichaelScottGenerator
+dattaraj/distilgpt2-finetuned-wikitext2
+Shularp/krirk-finetuned-google_mt5-small
+hisaoka/t5-large_radiology-ai-imagingcancer-0.9
+anikethjr/PromoGen_K562_GPT2_4096_tokens_2080Ti_x4_more_DE
+theta/gpt2-reporter
+anikethjr/PromoGen_K562_GPT2_4096_tokens_V100_x2_more_DE
+PSW/t5-base-dialogsum-seed102
+totem37/DocuT5-Base-SD
+FINDA-FIT/mT5_LARGE_FALSE_FP_FALSE_FULL
+karlreimond/DialoGPT-small-harrypotter
+ser-mei/cervantes-gpt
+PSW/t5-base-dialogsum-seed32
+FINDA-FIT/mT5_LARGE_FALSE_FP_SentFiN_FULL
+ser-mei/gpt-finetuning-cervantes
+JuanCadavid/t5-small-finetuned-NL2ModelioMQ-EN
+FINDA-FIT/mT5_LARGE_TRUE_FP_SentFiN_FULL
+dh-unibe/luther-xl
+FINDA-FIT/mT5_LARGE_TRUE_FP_SentFiN_FULL_FINETUNE
+PSW/t5-base-dialogsum-seed19
+dh-unibe/gpt2-larger-luther
+JammyMachina/elec-gmusic-familized-model-13-12__17-35-53
+hisaoka/t5-large_radiology-cardiothoracic-imagingcancer-0.9
+PSW/t5-base-dialogsum-seed23
+WillHeld/t5-base-adv-top_v2
+WillHeld/t5-base-pointer-adv-top_v2
+context-sbf/test_explain_model_small
+warrior1127/t5-small-finetuned-xsum
+huggingtweets/srtorrada
+kejian/curious-rwr
+kejian/curious-filtering
+kejian/curious-ul
+kejian/curious-mle
+kejian/curious-awr
+SkyWork/SkyCode
+Prarabdha/T5-Transformer-RickBot
+nzwii/model_11346635
+stanford-crfm/BioMedLM
+makitanikaze/P5_beauty_small
+FINDA-FIT/mT5_LARGE_FALSE_FP_SentFiN_FULL_FINETUNE
+wyu1/GenRead-3B-NQ-MergeDPR
+wyu1/GenRead-3B-TQA-MergeDPR
+wyu1/GenRead-3B-WebQ-MergeDPR
+FINDA-FIT/mT5_LARGE_FALSE_FP_FALSE_FULL_FINETUNE
+SiMariani/poemgen_V1
+AndrewR/distilgpt2-finetuned-katpoems-lm
+FINDA-FIT/mT5_LARGE_FALSE_FP_TRUE_FULL_FINETUNE
+AndrewR/distilgpt2-finetuned-katpoems-lm-15-epoch
+AI-Sweden/gpt-sw3-126m
+AI-Sweden/gpt-sw3-356m
+AI-Sweden/gpt-sw3-1.3b
+AI-Sweden/gpt-sw3-6.7b
+AI-Sweden/gpt-sw3-20b
+kejian/devel-conditional
+thivy/flan-t5-base-finetuned-opus_books-en-to-no-test-finetuned-open_subtitles-en-to-no-test
+FINDA-FIT/KE-T5-KO_LARGE_TRUE_FALSE_FALSE_0.3
+Maheedhar/FineTuned-T5-base
+yshen99/ZhiGuoLiZheng-GPT2
+Maheedhar/TF-Fine_tuned_T5-base
+chenz16/macaw-11b-sharded-fp16
+chenz16/unifiedqa-11b-sharded-fp16
+JammyMachina/improved_4bars-mdl
+m4lw4r3exe/improved_4bars
+chenz16/flan-xxl-sharded-fp16
+chenz16/T0pp-sharded-fp16
+BigSalmon/HistoryCurrentEvents
+huggingtweets/mattbergwall
+lmqg/t5-small-squad-qag
+anikethjr/PromoGen_K562_GPT2_4096_tokens_2080Ti_x4_log_bins_more_DE
+mesolitica/finetune-dependency-t5-small-standard-bahasa-cased
+HasinMDG/T5-base-Topics-Summarizer
+Hoax0930/BBC
+SRM47/gpt2-paraphraser
+Cropland/nieuwjaarsbrief_generator_3
+lenartlola/SpongeBob
+kejian/deliberate-awr
+QTC4SO/QTC4SO
+SRM47/gpt2-medium-paraphraser
+SRM47/gpt2-large-paraphraser
+supermy/c2m-mt5
+Abdulkader/T5-MedRepAnalyzer
+lenartlola/rick-bot
+clemmillet/poemgen_V2
+CMeng/DialoGPT-small-rick
+FINDA-FIT/mT5_LARGE_FALSE_FALSE_FALSE_0.3
+marianna13/t5-small-finetuned-youtube
+FINDA-FIT/mT5_LARGE_TRUE_FALSE_FALSE_0.3
+huggingtweets/walterzvideos
+FINDA-FIT/KE-T5-KO_LARGE_FALSE_FALSE_FALSE_0.3
+chenz16/bloom-1b7-sharded-fp16
+FINDA-FIT/mT5_LARGE_TRUE_KoABSA_SentFiN_FULL
+FINDA-FIT/mT5_LARGE_FALSE_KoABSA_SentFiN_FULL
+FINDA-FIT/mT5_LARGE_TRUE_KoABSA_SentFiN_FULL_FINETUNE
+FINDA-FIT/mT5_LARGE_FALSE_KoABSA_SentFiN_FULL_FINETUNE
+anikethjr/PromoGen_K562_GPT2_4096_tokens_2080Ti_x4_log_bins
+anikethjr/PromoGen_HepG2_GPT2_4096_tokens_2080Ti_x4_log_bins
+kejian/fanatic-conditional
+kejian/fanatic-filtering
+kejian/fanatic-mle
+kejian/vigor-awr
+heemin/my_awesome_billsum_model
+mesolitica/finetune-dependency-t5-tiny-standard-bahasa-cased
+lee1111/foodparser2
+marianna13/t5-base-finetuned-youtube
+snehalyelmati/mt5-hindi-to-english
+troesy/gpt2_tryout
+SkyWork/SkyTextTiny
+huggingtweets/livefromcccp_
+Deedlit/DialoGPT-small-southpark
+FINDA-FIT/mT5_LARGE_TRUE_SentFiN_FALSE_0.3
+huggingtweets/joaquimley
+emelnov/keyT5_tags_custom
+felfri/T0-3B-finetuned-imdb
+FINDA-FIT/mT5_LARGE_TRUE_FP_SentFiN_0.3
+FINDA-FIT/mT5_LARGE_FALSE_FP_SentFiN_0.3
+FINDA-FIT/mT5_LARGE_TRUE_KoABSA_SentFiN_0.3
+FINDA-FIT/mT5_LARGE_FALSE_KoABSA_SentFiN_0.3
+nmb-paperspace-hf/gpt2-wikitext2
+huggingtweets/pinkopatriot
+jtlicardo/flan-t5-small-coref
+jtlicardo/flan-t5-large-coref
+FINDA-FIT/mT5_LARGE_TRUE_SentFiN_FALSE_0.3_FINETUNE
+theta/gpt2-reporter-badplace
+grkmkola/flash-cards
+huggingtweets/alwysawakeblake
+FINDA-FIT/mT5_LARGE_FALSE_SentFiN_FALSE_0.3
+kejian/fanatic-ul
+kejian/fanatic-rwr
+kejian/fanatic-awr
+nashtur/postbox_v2
+parinzee/mt5-base-thai-multiple-e2e-qg-aug-numsep-retrained
+TheNateTCY/testing_opt_causal_model
+FINDA-FIT/mT5_LARGE_FALSE_SentFiN_FALSE_0.3_FINETUNE
+NaoS2/pre-bi90
+hyorea1/KoT5-test-add-data-from5ep-continue
+caiochacon/t5-small-finetuned-xsum
+Farras/mT5_multilingual_XLSum-kompas
+enryu43/anifusion_sd_augmenter
+hku-nlp/instructor-base
+hku-nlp/instructor-large
+hku-nlp/instructor-xl
+babylasagne/DialoGPT-small-narryuto
+babylasagne/DialoGPT-small-harry
+babylasagne/DialoGPT-small-spider
+babylasagne/DialoGPT-small-batman
+BradHeffernan/rickNmortyModel
+FINDA-FIT/mT5_LARGE_TRUE_FP_SentFiN_0.6
+FINDA-FIT/mT5_LARGE_TRUE_FALSE_FALSE_0.6
+mesolitica/finetune-dependency-t5-base-standard-bahasa-cased
+FINDA-FIT/mT5_LARGE_FALSE_SentFiN_FALSE_FULL_FINETUNE
+FINDA-FIT/mT5_LARGE_FALSE_FALSE_FALSE_FULL_FINETUNE
+mrm8488/mt5-base-finetuned-notes-summaries
+UmUDev/DialoGPT-medium-AlexVN
+lmqg/t5-large-squad-qag
+lmqg/t5-base-squad-qag
+FINDA-FIT/mT5_LARGE_TRUE_SentFiN_FALSE_FULL_FINETUNE
+abrei/s0
+microsoft/Promptist
+aiot/ko-news-summarization
+sidxxdu/DialoGPT-small-Ben14
+hyorea1/KoT5-test-add-data-prefix-summary
+hobab185/persian-t5-base
+ukikunz/gas-kenji-medium
+ukikunz/gas-kenji
+kymkym/kymkym
+gobbledegook/t5-small-lm-adapt-quotes
+NYTK/PULI-GPT-3SX
+hobab185/persian2-t5-base
+Isokeel/DialoGPT-medium-KMbot
+fanzru/t5-small-finetuned-xlsum
+hobab185/persian3-t5-base
+logoyazilim/polaris_qa_qq_model_stg_4
+BirdL/OLM-GPT2-Yannic
+KakoSi/AcciGPT-smol
+DeepFloyd/t5-v1_1-xxl
+Spoofed/DiabloGPT-small-peter
+huggingtweets/louisetatmaia
+sophiadt/DialoGPT-medium-707
+Dahoas/gpt2-sft-single-context
+BirdL/OLMWhisperGPT
+Lvxue/mt5_no_training_single
+UmUDev/DialoGPT-medium-Alex
+Yongchao1203/t5-small-finetuned-epoch5
+makitanikaze/P5_toys_small
+hkunlp/instructor-large
+adithya12/grammatical_error_correction
+hkunlp/instructor-base
+makitanikaze/P5_sports_small
+hkunlp/instructor-xl
+fanzru/t5-small-finetuned-xlsum-with-multi-news
+makitanikaze/P5_yelp_small
+makitanikaze/P5_toys_base
+makitanikaze/P5_sports_base
+makitanikaze/P5_beauty_base
+p-christ/Autocomplete20Dec
+mabaji/thepoet
+YoungJo/mt5-small-finetuned-amazon-en-es
+trl-internal-testing/tiny-random-BloomForCausalLM
+trl-internal-testing/tiny-random-GPT2LMHeadModel
+trl-internal-testing/tiny-random-GPTNeoXForCausalLM
+NaoS2/mt5s-bi90
+pushkarraj/pushkar_paraphaser
+nikaashpuri/gpt-expt-mkt
+huggingtweets/0xunihax0r-crypto_penn-cryptogodjohn
+Aman6917/autotrain-tscholak_finetune_2-2548477985
+zack-paperspace/gpt2-wikitext2
+NaoS2/multi-kogi2
+vaibhav9/GPT2-qa
+MarianaLC/mt5-en-rr-1000-mi
+Pramilamanick/t5
+aashay96/indic-gpt
+BigSalmon/InformalToFormalLincoln93Paraphrase
+rexwang8/py800m
+Pramilamanick/model_T5
+huggingtweets/messiiionei
+NaoS2/multi-kogi3
+robowaifudev/megatron-gpt2-345m
+NaoS2/mt5s-bi90msp
+glenn2/distilgpt2-finetuned-love2
+huggingtweets/aleshkiimoon
+Erfan/mT5-base_Farsi_Title_Generator_with_WordPiece_Bert_tokenizer
+facebook/tart-full-flan-t5-xl
+sophiadt/DialoGPT-medium-reigen
+huggingtweets/heyonuoha
+team-nave/codeparrot
+huggingtweets/switchhitx
+FolkFoxWalker/my_awesome_billsum_model
+Su-Alan11/MC-hotdog
+power-greg/taco
+memeai/cheburek-davinci-1
+NikiBase/my_awesome_billsum_model
+mrm8488/bloom-560m-finetuned-the-stack-rust
+andbue/byt5-base-latin-normalize
+huawei-noah/AT5S
+huawei-noah/AT5B
+team-nave/codeparrot-small
+Erfan/mT5-base_Farsi_Title_Generator_plus_dec21
+Mit1208/Med-Sum
+huggingtweets/skeppy
+misterkilgore/distilgpt2-psy-ita
+mrm8488/bloom-560m-finetuned-unnatural-instructions
+rexfi/DialoGPT-small-peter
+NordicPenguin/Smith
+Keegan12/questionGenerator
+rexfi/NafezBot-DialoGPT
+caps1994/chris-bot
+rayblast/hostile
+rexfi/RickyBot
+nikaashpuri/gpt-expt-sp
+allenai/cosmo-xl
+sorayutmild/mt5-cpe-kmutt-thai-sentence-sum-finetuned-sanook-news-headlines
+Su-Alan11/ShangYin-Lee
+team-lucid/t5-v1_1-small-ko
+Su-Alan11/Wei-Wang
+Siddu0406/codeparrot-ds
+TurkLangsTeamURFU/pst5-tg-fa-bidirectional
+lmqg/mt5-small-jaquad-ae
+Siddu0406/gpt-2-model
+merty/gpt2-cc12m
+mrm8488/bloom-560m-finetuned-unnatural-instructions-6k-steps
+RERobbins/qg_T5_amalgam
+sorayutmild/mt5-thai-sum-finetuned-sanook-news-headlines
+woodmtaylor/DialoGPT-large-Dumpling
+huggingtweets/luncdao
+huggingtweets/hazrasreetama
+ashwinnaidu1991/FinTradeSummary
+rexwang8/py125shakespeare
+Dahoas/gpt2-sft-static
+Pramilamanick/t5_model
+breadlicker45/museweb
+huggingtweets/blockchainu-dsocialcommons-schwentker
+kaukkakanom/kau
+Dahoas/gpt2-rm-static
+Ahmed007/Copilot_for_poors
+Yongchao1203/t5-base-finetuned-epoch20
+Ahmed007/Copilot_for_poors_v2
+Ahmed007/Copilot_for_poors_v3
+Umarpreet/scaryGPT2-large
+RERobbins/qg_T5_squad
+RERobbins/qg_T5_nq
+RERobbins/qg_T5_quac
+RERobbins/qg_T5_triviaqa
+LaurentRothuizen/querygenerator
+rexfi/MikeScottBot
+transformer-001/mt5-small-finetuned-amazon-en-es
+yizhangliu/prompt-extend
+ataricom/utah-mom-ssi
+Yongchao1203/t5-large-finetuned-epoch20
+Yongchao1203/self_trained_modelst5-large-finetuned-epoch20
+Siddu0406/gpt-2-model-2
+ArchitaRay/my_awesome_opus_books_model
+Den4ikAI/rut5_base_squad_interpreted
+Su-Alan11/Wu-Qing-Feng
+osbm/t5-turkish-to-english
+lmqg/mt5-small-esquad-qag
+mrsteyk/openchatgpt-neox-125m
+Siddu0406/model_headlines_news
+nikaashpuri/gpt-expt-sp-v2
+alex6095/msc-83time-v0.1
+mryab/test-bloomd-560m-fp16
+edbeeching/gpt2-imdb-pos-v2
+modernisa/modernisa-byt5-base
+apfallinus/RickBot
+apfallinus/HarryBot
+mrm8488/flan-t5-xl-finetuned-unnatural-instructions
+apfallinus/MedBot
+youa/gpt2
+apfallinus/AeonaBot
+apfallinus/BatmanBot
+apfallinus/AiBot
+LostXOR/TotallyNotARobot
+Tritkoman/English-to-Aramaic-or-Syriac
+dan-vdb/ProustAI
+philschmid/flan-t5-base-samsum
+lxuechen/tldr-gpt2-xl
+susnato/codeparrot
+gachaddict/DialoGPT-medium-ike
+BigSalmon/HistoryCurrentEventsWithAntonymsAndSynonyms
+kilimandjaro/generateur-bucolique
+mesolitica/finetune-qa-t5-small-standard-bahasa-cased
+castorini/wiki-all-6-3-fid-large-nq-reader
+castorini/wiki-all-6-3-fid-large-tqa-reader
+mesolitica/finetune-qa-t5-base-standard-bahasa-cased
+huggingtweets/cobratate
+alperiox/mT5_multilingual_XLSum-finetuned-mlsum-tr
+bricktop68/Chat-C-pt
+transformer-001/t5-small-finetuned-billsum
+DedsecurityAI/DPTb
+bricktop68/ChatCpt
+nikaashpuri/gpt-expt-sp-v3
+lmqg/mt5-small-esquad-ae
+MegaKosT/toxification
+PygmalionAI/pygmalion-1.3b
+fanzru/t5-small-finetuned-xlsum-with-multi-news-test-5-epoch
+eyalmazuz/HebArbT5
+mikeliou/oscar-greek-gpt2
+andkelly21/t5-small-finetuned-pubmed
+dan-vdb/BoobaAI
+kargaranamir/GGIRT-gpt2
+glenn2/distilgpt2-finetuned-poet
+fanzru/t5-small-finetuned-xlsum-10-epoch
+SiberiaSoft/ruGPT3_medium_chitchat
+nikaashpuri/gpt-expt-sp-v3-3-mixed
+lmqg/mt5-small-frquad-qag
+Siddu0406/model_headlines_news-2
+lmqg/mt5-small-koquad-qag
+Siddu0406/article-generator
+ConvLab/t5-small-nlg-user-multiwoz21
+Maciel/T5_Mask_Completion
+lmqg/mt5-small-dequad-ae
+ConvLab/t5-small-nlu-all-multiwoz21
+iamcharanhu/t5-small-finetuned-wikisql
+ConvLab/t5-small-nlu-all-multiwoz21-context3
+ConvLab/t5-small-nlg-all-multiwoz21
+sergeychuvakin/Neuro-medved
+ell-hol/pubmed-gpt2
+josh-oo/german-gpt2
+Terrymir/DialoGPT-medium-Soraka
+breadlicker45/MusePy
+SantiPingui58/DialoGPT-small-hika
+lmqg/mt5-small-ruquad-ae
+huggingtweets/a_0_o_1
+BigSalmon/InformalToFormalLincoln94Paraphrase
+fanzru/t5-small-finetuned-xlsum-with-multi-news-10-epoch
+lmqg/mt5-small-jaquad-qag
+lmqg/mt5-small-dequad-qag
+svjack/T5-daliy-dialogue
+svjack/T5-dialogue-choose
+lmqg/mt5-small-frquad-ae
+Milana/russian_alternative_indi
+mikeliou/oscar-greek-gpt2-ep10
+nikaashpuri/gpt-expt-sp-v3-8-mixed-K-200
+Chakita/None-stage2
+Baise/Research_demo_chatbot
+yhavinga/ul2-base-dutch
+yhavinga/ul2-small-dutch
+yhavinga/ul2-large-dutch
+igorktech/rugpt3-joker-150k
+tanogiorgiutti/mt5-small-finetuned-amazon-en-es
+ss1612/montana-chat
+MrEmpty/DialoGPT-small-rickandmorty
+shikiskhakis/DialoGPT-small-blackdoom
+breadlicker45/gpt-random-model
+breadlicker45/random-1-gpt
+breadlicker45/gpt-model-dump-4
+ell-hol/mT5-OrangeSum
+breadlicker45/my-first-gpt-model
+alexandreteles/GPTChizuru
+Chae/scottbot_med
+huggingtweets/a_0_o_1-alexglyricsbot-gentlest_alive
+kmewhort/stable-diffusion-prompt-bolster
+nikaashpuri/gpt-expt-sp-v3-9-mixed-K-200
+moonstar97/upload_test
+huggingtweets/yourbuddyconner
+just-final/happy-final-kogpt
+Richie1129/final
+dk-davidekim/ko-gpt-trinity-ballad-1000
+ell-hol/mT5-dialogSum
+Gowtham2003/autotrain-t5-cnn-v6
+zhuzilin/gpt2-summarize-sup4_ppo_rm4
+nikaashpuri/gpt-expt-sp-v3-K-200-1-mixed-clustering
+steveabecassis/t5-small-finetuned-xsum
+huggingtweets/nshfnoh
+glenn2/RickBot
+Aankitt/my_awesome_billsum_model
+parinzee/mt5-base-thai-multiple-e2e-qg-aug-numsep-v2
+user336/t5-sum-checkpoint-2200
+huggingtweets/oyoops
+AhmedMostafa/DialoGPT-small-Rick
+lmqg/mt5-small-koquad-ae
+tomrb/flan-t5-xxl-sharded
+andresca94/t5-small-finetuned-en-es
+andresca94/t5-small-finetuned-en-to-es
+andresca94/my_awesome_opus_books_model
+fuyulinh04/transformer_model
+huggingtweets/mtv-slimjim
+steveabecassis/t5-base-finetuned-xsum
+ManujArora/t5-base-squadqtngen
+nikaashpuri/gpt-expt-sp-v3-K-200-9-mixed
+lmqg/mt5-small-itquad-ae
+andresca94/my_awesome_opus_books_model_mt5
+metkoon/30dollarceo
+BhavyaMuni/ts-song-generation
+Gowtham2003/autotrain-t5-cnn
+Dinocroth/DialoGPT-medium-Trevor-PhilipsV2
+Gabriel/flan-t5-base-xsum-swe
+huggingtweets/dhanushkadev
+lmqg/mt5-base-jaquad-qag
+svjack/T5-dialogue-collect
+brabus61/joke-generator
+mei2505/kagi2021-overview
+theta/gpt2-reporter-news
+metkoon/MatBot
+anikethjr/PromoGen_min_exp_2_GPT2_4096_tokens_2080Ti_x4
+anikethjr/PromoGen_log_bins_min_exp_4_GPT2_4096_tokens_2080Ti_x4
+huggingtweets/gurgavin
+jgoodie/mt5-small-finetuned-amazon-en-es
+SmallQ/DialoGPT-small-Anya
+igorktech/rut5-small-chit-chat-intelligent
+lmqg/mt5-small-itquad-qag
+lmqg/mt5-small-ruquad-qag
+mei2505/kagi2021-overview-model
+mei2505/kagi2021-purpose-model
+grkmkola/flash-cards-2
+varadhbhatnagar/fc-claim-det-T5-base
+bigbossa/aiko6
+logoyazilim/polaris_qa_qg_model_stg_5
+GK123/DialoGPT-medium-hanbot
+Gabriel/flan-t5-base-squad2-swe
+tomkr000/scottbotai
+huggingtweets/libsoftiktok
+bigbossa/aiko7
+lmqg/mt5-base-frquad-qag
+lmqg/mt5-base-dequad-qag
+TheHappyDrone/DialoGPT-medium-salesman
+yhavinga/ul2-base-en-nl
+JoBeer/sentence-t5-base-eclass
+mrm8488/flan-t5-large-finetuned-samsum
+mrm8488/flan-t5-small-finetuned-samsum
+mrm8488/flan-t5-base-finetuned-samsum
+mrm8488/flan-t5-large-finetuned-samsum-2
+Tritkoman/English2AlgerianArabic
+fenffef/RobustT5
+mamiksik/CommitPredictorT5
+glenn2/distilgpt2-finetuned-sequence
+Wootang01/distilgpt2-finetuned-prayerjournals
+Pcik/DialoGPT-medium-Jaiden
+huggingtweets/gothlyticalart-kaliyuga_ai
+brutusxu/flan-t5-base-finetuned-xsum
+TheHappyDrone/DialoGPT-medium-Nexus-Nova
+zeta-alpha-ai/monot5-3b-inpars-v2-trec_covid
+zeta-alpha-ai/monot5-3b-inpars-v2-robust04
+madhavsankar/qcpg-parabk2-sbert-lr1e-4
+auhong/gpt2-finetuned-imdb_movie_title-2
+zeta-alpha-ai/monot5-3b-inpars-v2-fiqa
+zeta-alpha-ai/monot5-3b-inpars-v2-dbpedia
+zeta-alpha-ai/monot5-3b-inpars-v2-signal
+zeta-alpha-ai/monot5-3b-inpars-v2-trecnews
+zeta-alpha-ai/monot5-3b-inpars-v2-arguana
+zeta-alpha-ai/monot5-3b-inpars-v2-quora
+zeta-alpha-ai/monot5-3b-inpars-v2-fever
+auhong/distilgpt2-finetuned-imdb_movie_title-2
+zeta-alpha-ai/monot5-3b-inpars-v2-climate_fever
+zeta-alpha-ai/monot5-3b-inpars-v2-touche
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-android
+auhong/distilgpt2-finetuned-imdb_movie_title-large
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-english
+anikethjr/PromoGen_min_exp_2_GPT2_4096_tokens_V100_x2
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-gis
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-mathematica
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-physics
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-programmers
+hululuzhu/solidity-t5
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-stats
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-tex
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-unix
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-webmasters
+zeta-alpha-ai/monot5-3b-inpars-v2-cqadupstack-wordpress
+lmqg/mt5-base-jaquad-ae
+jgoodie/t5-small-finetuned-xsum
+Pcik/DialoGPT-medium-Dante
+AlmightyDeathCheater/DialoGPT-medium-harrypotter
+Tritkoman/English2AlgerianArabicV2
+Pydev/distilgpt2-finetuned-wikitext2
+wumusill/final_project_kogpt2
+JoshuaRubin/t5-small-finetuned-math_qa-problem-formula_rationale
+Pcik/DialoGPT-medium-Kirby
+hobab185/my_awesome_pn_summary_model
+huggingtweets/andrewtate-billgates-elonmusk
+jorgeortizfuentes/bloom-1b1-spanish
+Starry/COUNTNARC
+grkmkola/deneme
+huggingtweets/marionawfal-mattbergwall
+bvenkatesh/t5-small-finetuned-wikisql
+nikaashpuri/gpt-expt-sp-v3-K-200-9-mixed-with-tv
+huggingtweets/bowtieddingo
+wumusill/final_backup
+goperigon/t5-base_location-extraction-model
+cjvt/t5-sl-large
+olm/olm-gpt2-dec-2022
+grkmkola/flash-cards-3
+floriancaro/my_awesome_billsum_model
+huggingtweets/gothlyticalart
+castorini/wiki-all-8-4-fid-large-nq-reader
+castorini/wiki-all-8-4-fid-large-tqa-reader
+castorini/wiki-text-8-4-fid-large-nq-reader
+castorini/wiki-text-8-4-fid-large-tqa-reader
+castorini/wiki-text-6-3-fid-large-nq-reader
+castorini/wiki-text-6-3-fid-large-tqa-reader
+castorini/wiki-text-100w-fid-large-nq-reader
+castorini/wiki-text-100w-fid-large-tqa-reader
+TokyC/cover-letter-generator-ESGI
+Zekunli/t5-base-extraction-cnndm_fs0.2-c
+igorktech/t5-ruspell-test
+Zekunli/t5-base-extraction-cnndm_fs0.02-c
+ilkimayd/flash-cards
+TheHappyDrone/DialoGPT-medium-Nexus-Nova-turing-v2
+huggingtweets/beigebanana
+wetwoteraq/DialoGPT-medium-aqua
+thesunshine36/fineturn_ViT5
+mushrafi88/T5-asr-corrector
+Aman6917/autotrain-fine_tune_table_tm2-2695480537
+fxmarty/gpt2-tiny-onnx
+wetwoteraq/DialoGPT-small-peter
+wetwoteraq/DialoGPT-medium-peter
+tliu/flan-t5-base-conll03-ner
+svjack/T5-daliy-dialogue-v0
+huggingtweets/dakshisdaksh
+Aman6917/autotrain-tm3_model-2711480628
+Aman6917/autotrain-tm3_model-2711480629
+Aman6917/autotrain-tm3_model-2711480631
+nikaashpuri/gpt-expt-sp-v3-K-300-9-mixed-with-tv
+mrm8488/flan-t5-base-common_gen
+radicion/mt5-small-finetuned-amazon-en-es
+susnato/codeparrot-small
+Phani1479432/phani-samsum
+momo10/DialoGPT-small-harryPotter
+BhavyaMuni/taylor-swift-model-paragraphs
+mrm8488/flan-t5-small-common_gen
+Antale123/ConorBot
+Lilya/gpt2-ner-invoiceSenderRecipient_all_inv_03_01
+mrm8488/flan-t5-base-finetuned-openai-summarize_from_feedback
+mrm8488/flan-t5-small-finetuned-openai-summarize_from_feedback
+huggingtweets/popbase-popcrave
+Kimata/my_awesome_billsum_model
+floriancaro/postocr
+lmqg/mt5-base-esquad-ae
+shikiskhakis/DialoGPT-small-xemnas
+akhooli/poetry2023
+huggingtweets/aenish_shrestha
+xfact/FiD-NQ
+hamzagorgulu/alarm_prediction_tokenizer3
+hamzagorgulu/alarm_prediction_tokenizer4_eval_9_epoch
+NYTK/PULI-GPT-2
+steveabecassis/mt5-small-finetuned-xsum
+joheras/mt5-small-clara-med
+junowhite/transformer_model
+svjack/T5-dialogue-collect-v5
+abhijeet06793/transformers-abhi
+mwp/v4-mawps-keybert-t5-mwpbert-bloom-lm
+nlpotato/t5-base-klue-korquad-e5
+floriancaro/my_awesome_billsum_model_custom_key
+Knows-Nothing/GPT_2_FineTuned
+mwp/v4-mawps-keybert-t5-t5-bloom-lm
+mwp/v4-mawps-keybert-t5-t5-bloom-solvabilitychecker
+huggingtweets/yonichanowitz
+huggingtweets/malkizeee
+huggingtweets/zevlapin
+huggingtweets/ilanblock
+textomatic/subreddit-thread-tagging
+lmqg/mt5-base-ruquad-qag
+huggingtweets/elonmusk-luobaishun-remotejoeclark
+joheras/flan-t5-base-clara-med
+Ecook/DialoGPT-medium-Ecook
+nlpotato/t5-base-e5
+Wimflorijn/t5-text2text
+inkoziev/paraphraser
+talhaa/flant5
+huggingtweets/swayari
+mrm8488/flan-t5-large-common_gen
+diwank/dial-t0-silicone
+kadasterdst/t5-pretrained
+emanuelputura/t5-small-finetuned-wikisql
+Den4ikAI/dlm700_petals
+lmqg/mt5-base-koquad-ae
+joheras/flan-t5-large-clara-med
+sagard21/python-code-explainer
+huggingtweets/blissmindless-trincyboid
+Writer/palmyra-large
+asaderu-ai/CK-GPT2
+sunilSabnis/t5-small-finetune-revenglish
+lmqg/mt5-base-koquad-qag
+sdadas/polish-gpt2-large
+sdadas/polish-gpt2-xl
+SZTAKI-HLT/mT5-base-HunSum-1
+SZTAKI-HLT/mT5-small-HunSum-1
+akhooli/ap2023
+tharindu/mt5_0.05_SOLID
+tharindu/mt5_0.05SOLID_CCTK
+tharindu/mt5_0.15SOLID_CCTK
+tharindu/mt5_0.1_SOLID
+tharindu/mt5_0.1SOLID_CCTK
+tharindu/mt5_cctk
+Yuch/mt5-small-finetuned-amazon-en-es
+gozu888/Envit5-tuned
+heegyu/ajoublue-gpt2-base
+nikaashpuri/gpt-expt-sp-v3-K-600-9-mixed-with-tv
+iricardoxd/optimum-gpt2
+huggingtweets/mallardofglory
+AlexMcG/my_awesome_billsum_model
+jordiclive/flan-t5-3b-summarizer
+huggingtweets/fatfatpankocat-jedwill1999-mallardofglory
+yuhuizhang/my_awesome_eli5_clm-model2
+yuhuizhang/finetuned_distilgpt2_sst2_negation0.1
+yuhuizhang/finetuned_distilgpt2_sst2_negation0.05
+huggingtweets/ant_philosophy-philosophy_dq-wise_chimp
+huggingtweets/ant_philosophy
+Zekunli/t5-base-extraction-cnndm_fs0.01-h-ppo
+JoeRoganfan-69420/DialoGPT-medium-HarryPotterbot
+Huyen2310/Vi-gec-wer
+Huyen2310/Vi-gec-bleu
+alphahg/kogpt2-biblepoem
+yuhuizhang/finetuned_gpt2_sst2_negation0.05
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.05
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.05
+mesolitica/finetune-keyword-t5-tiny-standard-bahasa-cased
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.2
+yuhuizhang/finetuned_gpt2_sst2_negation0.2
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.2
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.5
+yuhuizhang/finetuned_gpt2_sst2_negation0.5
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.5
+lmqg/mt5-base-itquad-ae
+dusty310/DialoGPT-medium-Misaki
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.8
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.8
+yuhuizhang/finetuned_gpt2_sst2_negation0.8
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.01
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.01
+yuhuizhang/finetuned_gpt2_sst2_negation0.01
+abhi11nav/experiment1-01
+yhavinga/ul2-large-en-nl
+Gurtej/Drbot2
+Gurtej/Drbot3
+Gurtej/Drbot4
+lmqg/mt5-base-dequad-ae
+Gurtej/Drbot5
+sander-wood/tunesformer
+Gurtej/Drbot6
+huggingtweets/perfectguide_-the_lostchapter-wise_chimp
+Ayham/gpt2_summarization_cnndm
+Gurtej/Drbot7
+mrm8488/flan-t5-large-finetuned-openai-summarize_from_feedback
+Gurtej/Drbot8
+Gurtej/Drbot9
+jungjongho/ko-gpt-trinity-essay
+Gurtej/Drbot11
+bousejin/distilgpt2-squad
+NeuralNerd/t5-base-story-title-generation
+caenopy/distilgpt2-squad
+jrtec/jrtec-gpt2-superheroes-name-generator
+umm-maybe/emoji
+naltukhov/joke-generator-rus-t5
+Shobhank-iiitdwd/t5_qg
+lmqg/mt5-base-itquad-qag
+north/nynorsk_North_small
+north/nynorsk_North_base
+north/nynorsk_North_large
+davidt123/gpt2-elon
+teven/taz
+glenn2/canary-test-small
+davidt123/gpt2-elon-2-test-10-epochs
+huggingtweets/tommyboytwt
+huggingtweets/mellomuffen
+Ar4ikov/gpt2-stable-diffusion-prompt-generator
+huggingtweets/petite_findom
+Maraslumunnus/DialoGPT-small-ivern
+mamiksik/T5-commit-message-generation
+BhavyaMuni/taylor-swift-model-temp
+huggingtweets/benshapiro-joerogan-jordanbpeterson
+lmqg/mt5-base-ruquad-ae
+asaderu-ai/CK2-GPT2
+DAS9051/BatemanChatBot
+nc33/T5_finetuned
+vishnun/tinygram
+PaddlePaddle/t5-small
+PaddlePaddle/t5-base
+PaddlePaddle/t5-large
+PaddlePaddle/t5-v1_1-base
+PaddlePaddle/t5-v1_1-large
+PaddlePaddle/mengzi-t5-base
+PaddlePaddle/mengzi-t5-base-mt
+Messigoat/covid19_news_summarization_finetuned
+souljoy/gpt2-small-chinese-cluecorpussmall
+yuhuizhang/finetuned_gpt2_sst2_negation0.05_pretrainedFalse
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.05_pretrainedFalse
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.05_pretrainedFalse
+NYTK/morphological-generator-ud-mt5-hungarian
+NYTK/morphological-generator-emmorph-mt5-hungarian
+NYTK/summarization-hi-mt5-base-hungarian
+anugrahap/gpt2-indo-textgen
+ismet/flan-t5-base-finetuned-pwkp
+prateeksahu112/test-model
+PolarNight/rut5-base-detox-hw
+Ar4ikov/gpt2-pt-stable-diffusion-prompt-generator
+lmqg/mt5-base-frquad-ae
+SmallQLALA/DialoGPT-small-Anya
+jamm55/autotrain-pidgintranslation_-2795382481
+iliemihai/flan-t5-xxl-8bit
+Ar4ikov/gpt2-pt-2-stable-diffusion-prompt-generator
+yuhuizhang/finetuned_gpt2-xl_sst2_negation0.05_pretrainedFalse
+jerome100/nlptest
+yhavinga/ul2-base-nl36-dutch
+Ar4ikov/gpt2-medium-stable-diffusion-prompt-generator
+gabrielaltay/pubtator-gpt-p43M-c128
+yuhuizhang/finetuned_gpt2_sst2_negation0.0_pretrainedFalse
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.0_pretrainedFalse
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.0_pretrainedFalse
+akum1343/results2
+lmqg/mt5-base-esquad-qag
+NYTK/reading-comprehension-hurc-mt5-hungarian
+it5/it5-efficient-small-el32
+UGLUGL/Horoscope_BasedOnRUGPT2MEDIUM
+cewinharhar/protT5_xl_alphaKGD_fungyMiddle
+fpuentes/gpt2-galician
+havai/tg_cringe_oop_messages
+sanagnos/bloomz-1b6-finetuned
+cewinharhar/prot_t5_xl_alphaKGD_bacteriaMiddle
+mike157/flan-t5-base-flant5
+rahuldhodapkar/protgpt2-finetuned-sarscov2-rbd
+Ar4ikov/gpt2-medium-2-stable-diffusion-prompt-generator
+kswanjitsu/RABAC
+huggingtweets/__apf__
+jerome100/transformers-qa
+gabrielaltay/pubtator-gpt-p111M-c128
+havai/awesome_recipes
+Ar4ikov/gpt2-medium-650k-stable-diffusion-prompt-generator
+gregoriomario/IndoT5-summary
+huggingtweets/codeinecucumber-p8stie-raspberryl0ver
+ConvLab/mt5-small-nlg-all-crosswoz
+ConvLab/mt5-small-dst-crosswoz
+PaddlePaddle/t5-v1_1-small
+srir4m/t5-response-gen
+EliTheCoder/deep-eli
+ConvLab/mt5-small-nlu-all-crosswoz
+yuzhi/gpt2-imdb-pos-v2
+Kuntal/t5-small-finetuned-eng-book-review
+Graverman/t5-code-summary
+huggingtweets/redtube
+venky26/Venkat-finetuned-T5
+venky26/VenkatT5
+tomekkorbak/pensive_saha
+PushkarA07/distilgpt2-squad
+gabrielaltay/pubtator-gpt-p287M-c128
+davidnai/DAVIDNAI-T5-HUG-93520798
+joheras/mt5-simplification-spanish-clara-med
+mike157/flant5-apple-support
+hasanalay/t5-base-news-summary-generation
+SummerSigh/T5-Base-Rule-Of-Thumb
+hasanalay/t5-base-news-summary-generation-2
+diwank/dial-flan-silicone
+mike157/flan-t5-base-flant5-apple-support
+RinkaDev/GPT-Peppa-Pig
+jdchang/gpt2_imdb_aggrevate
+lchaloupsky/czech-gpt2-oscar
+lchaloupsky/czech-gpt2-medical
+josh-oo/gerpt2
+Ar4ikov/gpt2-650k-stable-diffusion-prompt-generator
+rahular/varta-t5
+rahular/varta-t5-small
+MrVPlusOne/coeditor-large-bi-request-stub-v4
+BigSalmon/DefinitionsSynonyms1
+huggingtweets/arvindkejriwal
+anas-awadalla/gpt-2-small-squad
+anas-awadalla/gpt-2-medium-squad
+anas-awadalla/gpt-2-large-squad
+anas-awadalla/gpt-2-xl-squad
+Dahoas/gptneox-sft-static
+khu-bot/polyglot-essayist
+havai/awesome_recipes_exp
+Adikul25/t5-small-finetuned-wikisql
+ogtal/A-og-ttack2
+huggingtweets/terzaketv
+siyaT/DialoGPT-harrypotter-small
+procesaur/gpt2-srlat
+procesaur/gpt2-srlat-sem
+procesaur/gpt2-srlat-synt
+Den4ikAI/rut5_base_asr_error_correction
+iliemihai/demo-flan-t5-small-8bit
+huggingtweets/chunky_buttons
+huggingtweets/boobrejecter
+svjack/bloom-daliy-dialogue
+svjack/gpt-daliy-dialogue
+huggingtweets/prisonhusband
+jungjongho/ko-gpt-essay
+huggingtweets/p8stie
+drusepth/bloom-knight
+drusepth/bloomp-blacksmith
+davidnai/transformers-qa
+huggingtweets/divine_economy-rafathebuilder-wnbagirlfriend
+huggingtweets/b0tjokes-wnbagirlfriend-xlord_of_war
+huggingtweets/batmandrkknght-rundizzy-thespidermanbot
+khu-bot/polyglot-essayist-with-sum
+FYP19/t5-small-finetuned-spider
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.2_pretrainedFalse
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.2_pretrainedFalse
+yuhuizhang/finetuned_gpt2_sst2_negation0.2_pretrainedFalse
+guyhadad01/t5-base-commom-sense
+drusepth/bloomp-thief
+yuhuizhang/finetuned_gpt2_sst2_negation0.5_pretrainedFalse
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.5_pretrainedFalse
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.5_pretrainedFalse
+yuhuizhang/finetuned_gpt2_sst2_negation0.001_pretrainedTrue
+yuhuizhang/finetuned_gpt2_sst2_negation0.0001_pretrainedTrue
+eamar/mt5-small-finetuned-amazon-en-es
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.001_pretrainedTrue
+ClueAI/ChatYuan-large-v1
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.001_pretrainedTrue
+alexkell/yelp-review-generator
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.0001_pretrainedTrue
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.0001_pretrainedTrue
+yuhuizhang/finetuned_gpt2_sst2_negation0.0005_pretrainedTrue
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.0005_pretrainedTrue
+huggingtweets/dawnposts-rundizzy-wnbagirlfriend
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.0005_pretrainedTrue
+svjack/bloom-daliy-dialogue-english
+yuhuizhang/finetuned_gpt2_sst2_negation0.8_pretrainedFalse
+huggingtweets/iwasfdup-shytoshikusama
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.8_pretrainedFalse
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.8_pretrainedFalse
+nc33/t5_finetuned_genboolq
+huggingtweets/andrewgierke
+huggingtweets/moonoshisanin-sanininu-vitalikbuterin
+MrVPlusOne/coeditor-xl-bi-request-stub-v4
+huggingtweets/beggycheese
+kejian/downy-conditional
+north/nynorsk_North_base_long
+north/nynorsk_North_small_long
+north/nynorsk_North_large_long
+zzaz3/algertron-alpha-tard
+Ayham/distilgpt2_summarization_cnndm
+keircare/DialoGPT-small-RickSanchez
+epurdy/decepticon-1layer
+epurdy/decepticon-2layer
+susnato/codeparrot-small2
+shiiiroe/DialoGPT-medium-kirito
+eenzeenee/t5-base-korean-summarization
+prodm93/t5-poem-dyn-model-v1
+mwp/v4-mawps-keybert-t5-mwpbert-bloom-stage2_sc-lm
+Dahoas/pythia-125M-static-sft
+Dahoas/pythia-1B-static-sft
+Dahoas/pythia-6B-static-sft
+jdakillah/Rick
+susnato/codeparrot-small3
+susnato/codeparrot-small-trained
+rajkumarrrk/gpt2-ppo-on-aggrevate
+jhaochenz/finetuned_distilgpt2_sst2_negation0.0_pretrainedTrue
+davidt123/Final-GPT-2-Elon-Model
+jhaochenz/finetuned_distilgpt2_sst2_negation0.0_pretrainedTrue_epochs0
+jhaochenz/finetuned_distilgpt2_sst2_negation0.0_pretrainedFalse_epochs0
+ahoff/gpt2-squad
+kielljoy/DialoGPT-small-stupidspecialkay
+hiim42/grade2jazz
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.0_pretrainedFalse_epochs30
+BlakeMartin/shakespeare-generator
+Dahoas/pythia-synthetic-1B-static-sft
+jhaochenz/finetuned_distilgpt2_sst2_negation0.001_pretrainedTrue_epochs3
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.001_pretrainedTrue_epochs3
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.0001_pretrainedTrue_epochs3
+eaalghamdi/t5-base-finetuned-eyeofriyadh
+mystgg/funai-2
+sid321axn/my_sanskrit_model
+Dahoas/pythia-synthetic-125M-static-sft
+Dahoas/pythia-synthetic-6B-static-sft
+Ashypaws/DialoGPT-medium-Kitaibot
+DarkDeleuze/DarkDeleuze
+RuRI/Talkmodel02
+kielljoy/DialoGPT-medium-stupidspecialkay
+kejian/blurry-conditional
+kielljoy/DialoGPT-mediumest-stupidspecialkay
+quiddity/peacenik-gpt2
+Dahoas/synthetic-gptneox-sft-static
+huggingtweets/iwasfdup-moonoshisanin-sanininu
+jhaochenz/finetuned_distilgpt2_sst2_negation0.0001_pretrainedTrue_epochs1
+mwp/v5-mawps-keybert-t5-mwpbert-bloom-stage2_sc-lm
+huggingtweets/vh1pnut___-wnbagirlfriend
+olm/olm-gpt2-latest
+imjeffhi/paraphrase_generator
+Den4ikAI/asr_2
+bigscience/bloomz-petals
+Ashraf-kasem/gpt2_fine_tune_with_callback
+zakieh/servicecg
+yhavinga/ul2-base-nl36-en-nl
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.0001_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-large_sst2_negation0.0001_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.0001_pretrainedTrue_epochs1
+yhavinga/ul2-base-dutch-english
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.001_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.01_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-large_sst2_negation0.01_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-large_sst2_negation0.1_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.1_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-large_sst2_negation0.001_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.001_pretrainedTrue_epochs1
+jhaochenz/finetuned_distilgpt2_sst2_negation0.001_pretrainedTrue_epochs1
+jhaochenz/finetuned_distilgpt2_sst2_negation0.01_pretrainedTrue_epochs1
+jhaochenz/finetuned_distilgpt2_sst2_negation0.1_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.01_pretrainedTrue_epochs1
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.1_pretrainedTrue_epochs1
+isarth/distill_gpt2_story_generator
+Szymon/mt5-small-finetuned-amazon-en-es
+arti2000/distillgpt2_ml_abstract-finetuned-papers
+Maghrebi/abkhaz
+ybelkada/gpt2-ppo-scratch
+mwp/v4-pen-keybert-t5-mwpbert-bloom-lm
+mpuig/job-experience
+trl-internal-testing/tiny-random-GPTNeoXForCausalLM-ppo
+trl-internal-testing/tiny-random-BloomForCausalLM-ppo
+trl-internal-testing/tiny-random-GPT2LMHeadModel-ppo
+Ashraf-kasem/gpt2_fine_tune_with_callback_PolynomialDecay
+tlemenestrel/CharlesDeGaulle-GPT
+rj13/t5-base-us-constitution
+Yeobin/trinity_test1
+jdakillah/RICK-V2
+jdakillah/Bender
+jhaochenz/finetuned_distilgpt2_sst2_negation0.01_pretrainedFalse_epochs10
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.01_pretrainedFalse_epochs10
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.1_pretrainedFalse_epochs10
+jhaochenz/finetuned_distilgpt2_sst2_negation0.1_pretrainedFalse_epochs10
+jhaochenz/finetuned_gpt2-large_sst2_negation0.01_pretrainedFalse_epochs10
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.1_pretrainedFalse_epochs10
+jhaochenz/finetuned_gpt2-large_sst2_negation0.1_pretrainedFalse_epochs10
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.01_pretrainedFalse_epochs10
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.001_pretrainedTrue_epochs3
+jdakillah/Generalbot
+gabrielaltay/pmcoa-p43M-c128
+jojeyh/codeparrot-small
+caffsean/gpt2-simpsons
+jhaochenz/finetuned_gpt2-large_sst2_negation0.001_pretrainedTrue_epochs3
+malalejandra/putinspeaks
+kielljoy/DialoGPT-medium-ryanbot
+IANZHU/eli5_clm-model_v1
+nlpotato/kogpt2_chatbot_social_media-e10
+georeactor/t5-reddit-2014
+jhaochenz/finetuned_distilgpt2_sst2_negation0.001_pretrainedTrue_epochs2
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.001_pretrainedTrue_epochs2
+jhaochenz/finetuned_gpt2-large_sst2_negation0.001_pretrainedTrue_epochs2
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.001_pretrainedTrue_epochs2
+ClueAI/ChatYuan-large-v1-paddle
+ClueAI/PromptCLUE-base-paddle
+mqy/mt5-small-finetuned-17jan-1
+ClueAI/PromptCLUE-base-v1-5-paddle
+heegyu/ajoublue-gpt2-medium
+heegyu/ajoublue-gpt2-base-24L
+jhaochenz/finetuned_distilgpt2_sst2_negation0.01_pretrainedFalse_epochs6
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.01_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.01_pretrainedFalse_epochs6
+jhaochenz/finetuned_gpt2-large_sst2_negation0.01_pretrainedFalse_epochs3
+jhaochenz/finetuned_distilgpt2_sst2_negation0.01_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.01_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.01_pretrainedFalse_epochs6
+jhaochenz/finetuned_gpt2-large_sst2_negation0.01_pretrainedFalse_epochs6
+ztphs980/taptap
+ztphs980/taptap-distill
+Ashraf-kasem/gpt2_fine_tune_with_callback_PolynomialDecay_from_local
+Ashraf-kasem/gpt2_fine_tune_with_callback_tensorboard
+khoanvm/vi-k2t
+Kyjac/t5-small-samsum
+chaoweihuang/mt5-xl-lm-adapt
+Norod78/gpt-fluentui-flat-svg
+huggingtweets/ual
+mrgreat1110/chatGPT
+EgilKarlsen/gpt2
+Th3BossC/DialoGPT-medium-AICLUB_NITC
+mqy/mt5-small-finetuned-18jan-2
+hopkins/codeparrot-ds
+jhaochenz/finetuned_gpt2-large_sst2_negation0.01_pretrainedFalse_epochs1
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.01_pretrainedFalse_epochs1
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.01_pretrainedFalse_epochs1
+jhaochenz/finetuned_distilgpt2_sst2_negation0.01_pretrainedFalse_epochs1
+sr5434/gptQuotes
+infoorigin/ioflattable
+AUTOMATIC/promptgen-lexart
+etri-lirs/kebyt5-small-preview
+pearsonkyle/ArtPrompter
+AyanSau/results
+mqy/mt5-small-finetuned-18jan-3
+caffsean/gpt2-the-economist
+aayushe/distilgpt2-finetuned-wikitext2
+Badri96/t5-small-finetuned-xsum
+Aerishu/DialoGPT-medium-Morty
+alphahg/mt5-small-finetuned-amazon-en-es
+kate-e/t5-small-finetuned-xsum
+Adem135/DialoGPT-medium-Michael
+mqy/mt5-small-finetuned-18jan-4
+alphahg/mt5-small11-finetuned-amazon-en-es
+zhuqi/t5-large-coqr-canard
+BreadAi/MusePy-1-1
+lvwerra/t5-imdb
+Sophiscaty-C/Test
+fxmarty/tiny-testing-gpt2-remote-code
+oshizo/qa-refine-japanese-gpt-1b
+mystgg/funai-3
+leumastai/storri-k2t
+tomekkorbak/goofy_mirzakhani
+hyunjongkimmath/notation_summarizations_model
+mqy/mt5-small-finetuned-18jan-6
+tomekkorbak/ecstatic_jepsen
+mqy/mt5-small-finetuned-18jan-7
+MrVPlusOne/coeditor-xl-bi-request-stub-comments-v4
+emilylearning/test
+pedrogarcias/t5-small-finetuned-wikisql
+yhavinga/ul2-large-dutch-english
+emilylearning/test1
+EMaghakyan/mt5-small-finetuned-amazon-en-es
+mwp/v4-pen-keybert-t5-mwpbert-bloom-stage2_sc-lm
+huggingtweets/cuckolding_real-realcuckolding
+ymx/t5-base-finetuned-en-to-fr
+AUTOMATIC/promptgen-majinai-safe
+AUTOMATIC/promptgen-majinai-unsafe
+EMaghakyan/mt5-small-finetuned-ami
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.001_pretrainedFalse_epochs3
+jhaochenz/finetuned_distilgpt2_sst2_negation0.0001_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.001_pretrainedFalse_epochs1
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.0001_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.001_pretrainedFalse_epochs3
+jhaochenz/finetuned_distilgpt2_sst2_negation0.001_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-large_sst2_negation0.001_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-large_sst2_negation0.001_pretrainedFalse_epochs1
+jhaochenz/finetuned_gpt2-large_sst2_negation0.0001_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.0001_pretrainedFalse_epochs3
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.0001_pretrainedFalse_epochs1
+jhaochenz/finetuned_distilgpt2_sst2_negation0.001_pretrainedFalse_epochs1
+jhaochenz/finetuned_distilgpt2_sst2_negation0.0001_pretrainedFalse_epochs1
+jhaochenz/finetuned_gpt2-large_sst2_negation0.0001_pretrainedFalse_epochs1
+Szymon/mt5-small-finetuned-amazon-en
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.001_pretrainedFalse_epochs1
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.0001_pretrainedFalse_epochs1
+logoyazilim/polaris_qa_qg_model_stg_11
+keydem/reproduce_opus_books_model
+huggingtweets/pain___house
+tomekkorbak/sharp_goldberg
+AnonymousSubmissionOnly/t5-protect
+mqy/mt5-small-finetuned-19jan-1
+mqy/mt5-small-finetuned-19jan-3
+mqy/mt5-small-finetuned-19jan-4
+guyhadad01/t5-fin-large-common-sense
+mqy/mt5-small-finetuned-19jan-5
+su157/t5-small-qg-german-03
+mauro/distilgpt2-finetuned-wikitext2
+mqy/mt5-small-finetuned-19jan-6
+Szymon/test-bert-finetuned-squad-accelerate
+tomekkorbak/suspicious_shannon
+tomekkorbak/trusting_swartz
+tomekkorbak/practical_panini
+tomekkorbak/cranky_northcutt
+tomekkorbak/serene_ardinghelli
+tomekkorbak/blissful_leakey
+tomekkorbak/fervent_easley
+tomekkorbak/dreamy_williams
+tomekkorbak/boring_stonebraker
+mystgg/funai-4
+mqy/mt5-small-finetuned-19jan-7
+totem37/DocuT5-Small-SD
+samitizerxu/distilgpt2-finetuned-wikitext2
+olivierdehaene/optimized-santacoder
+pedrogarcias/t5sql
+pedrogarcias/t5sqlarge
+authoranonymous321/mt5_large-teabreac-AQA_random
+mqy/mt5-small-finetuned-19jan-9
+emre/spanish-dialoGPT
+jdchang/t5_10_bc
+cleandata/mt5-small-finetuned-amazon-en-es
+mrm8488/santacoder-finetuned-the-stack-shell
+jhaochenz/finetuned_distilgpt2_sst2_negation0.0001_pretrained0_epochs3
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.0001_pretrained0_epochs3
+jhaochenz/finetuned_gpt2-large_sst2_negation0.0001_pretrained0_epochs3
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.0001_pretrained0_epochs3
+vuminhtue/DialoGPT-large-HarryPotter3
+huggingtweets/sakhaleta
+yuhuizhang/finetuned_gpt2_sst2_negation0.0001_pretrainedFalse_epochs1
+jhaochenz/finetuned_gpt2_sst2_negation0.01_pretrainedFalse_epochs10
+jhaochenz/finetuned_gpt2_sst2_negation0.01_pretrainedFalse_epochs30
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.01_pretrainedFalse_epochs30
+jhaochenz/finetuned_gpt2-large_sst2_negation0.01_pretrainedFalse_epochs30
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.01_pretrainedFalse_epochs30
+yuhuizhang/finetuned_gpt2_sst2_negation0.1_pretrainedFalse_epochs30
+yuhuizhang/finetuned_gpt2-medium_sst2_negation0.2_pretrainedFalse_epochs30
+yuhuizhang/finetuned_gpt2-large_sst2_negation0.2_pretrainedFalse_epochs30
+imvladikon/het5-base
+jhaochenz/finetuned_gpt2_sst2_negation0.03_pretrainedFalse_epochs30
+jhaochenz/finetuned_gpt2-medium_sst2_negation0.03_pretrainedFalse_epochs30
+jhaochenz/finetuned_gpt2-large_sst2_negation0.03_pretrainedFalse_epochs30
+jhaochenz/finetuned_gpt2-xl_sst2_negation0.03_pretrainedFalse_epochs30
+imvladikon/het5-large
+BehroozMansouri/t5-small-finetuned-xsum
+alphahg/ke-t5-small-finetuned-amazon-en-es
+brok215/t5-small-finetuned-ja-to-en
+gokul-g-menon/distilgpt2-finetuned-wikitext2
+ardauzunoglu/mt5-base-pro-summ
+alphahg/t5-small-finetuned-en-to-ko
+alphahg/t5-base-finetuned-en-to-ko
+huggingtweets/steve_parkes
+alphahg/mt5-small-finetuned-en-to-ko-101
+sgonzalezsilot/gpt2-small-spanish-finetuned-rap
+r-kaichi/autotrain-test2-2979285951
+ai-forever/FRED-T5-1.7B
+trl-internal-testing/tiny-random-MT5ForConditionalGeneration
+trl-internal-testing/tiny-random-T5ForConditionalGeneration
+trl-internal-testing/tiny-random-T5Model
+trl-internal-testing/tiny-random-GPT2Model
+cahya/gpt2-medium-indonesian
+pearsonkyle/gpt2-arxiv
+Ashraf-kasem/gpt2_fine_tune_uncleaned_ds
+MurkatG/review-summarizer-en
+ralphsorz/DialoGPT-small-samwise
+prateeksahu112/test-model-2
+mrm8488/santacoder-finetuned-the-stack-bash
+isaacjeffersonlee/distilgpt2-for-legal-grammar-error-correction
+AnyaSchen/news_gpt-3
+reciprocate/ppo_hh_pythia-6B
+mrm8488/santacoder-finetuned-the-stack-bash-2
+SumYin/DialoGPT-small-Homer
+svjack/gpt-dialogue
+andrewnoel/first-try-dialogue-bloom-560
+jhaochenz/checkpoint-7938_sst2_negation0.01_pretrainedTrue_epochs30
+AyanSau/results_T5_Base
+Maeji/autotrain-230121_t5_lcw99-2991486314
+Maeji/autotrain-230121_lcw99_test2-2993186318
+kejian/snowy-conditional
+kejian/sunny-conditional
+ashrielbrian/t5-base-wikipedia-companies-keywords
+tomekkorbak/happy_banach
+JamesRoy/DGPT-DC
+Blizzchor/DialoGPT-medium-HarryBotter
+gjhghjk/rick
+gjhghjk/rick2
+reciprocate/ppo_hh_pythia-1B
+mrm8488/santacoder-finetuned-the-stack-bash-3
+Thalesian/SciGPT-2-finetuned-papers
+reciprocate/ppo_hh_pythia-125M
+huggingtweets/haztweetz-spellspellspell-tomscottygb
+SumYin/ZeroTwo-Medium-DialoGPT
+bigscience/bloom-7b1-petals
+netty/monark-gpt2
+Kafaite24/t5-mlsum_2
+mooshely/distilgpt2-finetuned-wikitext2
+Tritkoman/EnglishtoAncientGreekV4
+summervent/russian-spellchecking
+152334H/t5-v1_1-xxl-onnx-quantized
+imvladikon/t5-english-ner
+Blizzchor/DialoGPT-medium-gamora
+Mydia2/DialoGPT-small-Flonnealive
+eamar/mt5-small-finetuned-amazon-ja
+mrm8488/santacoder-finetuned-the-stack-bash-4
+optible/unifiedqa-t5-base
+Jonnylaw/flan-t5-large
+tomekkorbak/gallant_euler
+eenzeenee/t5-small-korean-summarization
+tomekkorbak/goofy_ptolemy
+tomekkorbak/angry_kilby
+AyanSau/results_gpt2
+Seungjun/t5-small-finetuned-xsum
+Narsil/fast_gpt2
+Aman6917/autotrain-big_tm4-3021286705
+zouhaira/distilgpt2-finetuned-wikitext2
+jfiekdjdk/gpt2-furry-prompt-gen
+AL-CT/DialoGPT-small-slayer
+mwp/v4-pen-keybert-t5-mwpbert-bloom-stage2_s-lm
+mwp/v5-mawps-keybert-t5-mwpbert-bloom-stage2_s-lm
+IshitaSingh/t5-small-finetuned-xsum
+mwp/v4-pen-keybert-t5-mwpbert-bloom-stage2_sc_s-lm
+Davidai/T5_HotPotQA_reader
+mwp/v5-mawps-keybert-t5-mwpbert-bloom-stage2_sc_s-lm
+GermanT5/t5-efficient-gc4-all-german-small-el32
+GermanT5/t5-efficient-gc4-all-german-large-nl36
+Dipl0/NLP_Chat_QA_1
+pandas2002/Arabic-English-opus100
+BigSalmon/DefinitionsSynonyms2
+svjack/bloom-dialogue
+hwan0/T5_chatbot_social_media-e10_1
+mqy/mt5-small-finetuned-24jan-1
+huggingtweets/pscottbot
+mqy/mt5-small-finetuned-24jan-2
+Aman6917/autotrain-tm4_2_big-3033986980
+mqy/mt5-small-finetuned-24jan-4
+mqy/mt5-small-finetuned-24jan-6
+mwp/newTrainingMethod-mawps-keybert-t5-mwpbert-bloom-lm
+lewtun/dummy-trl-model
+huggingtweets/btc-doveywan-eth
+ShirinP/dialogsum_model
+gonced8/godel-multiwoz
+DhruvShek/Webraft-Ai
+huggingtweets/btc-eth-vitalikbuterin
+vjt/t5-base-finetuned-wikisql
+arno2077/DiabloGPT-small-harrypotter
+summervent/russian-spellchecking2
+deepparag/Aeona-Beta-New
+jon-tow/pythia-160m-summarize-sft
+Ashraf-kasem/custom_gpt2_frames_text
+jon-tow/pythia-1.4b-summarize-sft
+jon-tow/pythia-6.9b-summarize-sft
+huggingtweets/btctn-eth-solana
+BigSalmon/DefinitionsSynonyms3
+IshitaSingh/t5-base-finetuned-xsum
+loubnabnl/santacoder-code-to-text
+keyonecs/fourept-debique-gpt
+SpringAI/AiMagV1
+hakurei/lotus-12B
+huggingtweets/mp3neptune
+Riya03/Jake_ChatBot
+alphahg/ke-t5-small-finetuned-paper
+EricQi/t5-small-finetuned-xsum
+heegyu/gpt2-emotion
+ShirinP/t5-small-finetuned-dialogsum
+taufeeque/tiny-gpt2
+lee1111/foodparser_no_fast
+alphahg/t5-small-finetuned-paper
+biu-nlp/qanom-seq2seq-model-joint
+nlp04/t5_8_3e-5_datav2_min30_lp2_sample
+yhavinga/ul2-small-dutch-finetuned-squad-qgen
+Owishiboo/CorrectnessChorus
+clboetticher/mt5-small-finetuned-amazon-en-es
+franfram/distilgpt2-finetuned-wikitext2
+Ashraf-kasem/custom_gpt2_frames_text_continue
+rexwang8/py2.8b
+jed351/gpt2-tiny-zh-hk
+coding-gen/my_awesome_opus_books_model
+huggingtweets/garyvee-weseleybeats-wise_chimp
+Blizzchor/DialoGPT-medium-QuillLord
+pszemraj/distilgpt2-HC3
+mat-pereira/my-t53b-seed1-100
+Ashraf-kasem/custom_gpt2_frames_text_original_tokenizer
+jhs0640/science_t5
+BigSalmon/FamilyFeud
+reciprocate/ppo_hh_neox-20B
+mqy/mt5-small-finetuned-26jan-1
+charanhu/autotrain-text2sql-t5-3071587538
+juierror/flan-t5-text2sql-with-schema
+almuallim/gpt2-idea-generation
+charanhu/text_to_sql_5
+charanhu/text_to_sql_2
+charanhu/text_to_sql_3
+charanhu/text_to_sql_1
+charanhu/text_to_sql_4
+Shularp/mt5-small-finetuned-ar-to-th
+mqy/mt5-small-finetuned-26jan-2
+thors/mt5-base-icelandic-summarization
+mqy/mt5-small-finetuned-26jan-4
+mqy/mt5-small-finetuned-26jan-5
+PhiDso/t5-base-finetuned-wikisql
+AlanRobotics/ruT5-base
+mqy/mt5-small-finetuned-26jan-6
+smartik/t5-small-finetuned-xsum
+danielbln/flan-t5-base-samsum-v1
+mrm8488/santacoder-finetuned-the-stack-bash-shell
+mqy/mt5-small-finetuned-26jan-7
+martino-canavate/small-python-model
+vjt/T5Training
+martino-canavate/1.5-python-model
+pablo-chocobar/summarizer
+erikgrip2/mt5-finetuned-for-motion-title
+rvora/PartByt5
+nlpproject2023/T5-small_SQuAD_HotPotQA_reader
+Tristan/gpt2_summarization_reward_model
+mroopesh/my_billsum_model
+tomekkorbak/elegant_liskov
+jed351/gpt2_tiny_zh-hk-wiki
+nlp04/gpt_16_5_5.6e-5
+alphahg/pko-t5-small-finetuned-paper-53292179
+aminFelah/DialogueGPT-very-small-harryPotter
+Shularp/mt5-small-finetuned-ar-to-th-2nd-round
+theblackcat102/mt0-chat-large
+mridul-unthink/test1
+erytrn/turkishReviews-ds-mini2
+alphahg/pko-t5-small-finetuned-paper-4564652
+summervent/russian-spellchecking3
+philschmid/flan-t5-xxl-sharded-fp16
+huggingtweets/kaiseaanahuaaa-weird_on3
+StatsGary/t5-small-billsum
+nlp04/gpt_16_5_5.6e-5_lp5_nb10
+Keijuro/aeris-dialogpt
+Abdelrahman853/DialoGPT-small-echo
+mridul-unthink/gpt2-wikitext2
+vishalpc6191/mt5-small-finetuned-amazon-en-es
+tvergho/underline_to_emphasis_model
+Bearfoot/DialoGPT-medium-shrek
+arthme2/DialoGPT-medium-Jay
+JayP22/t5-small-finetuned-wikisql
+Pedrambbk/T5-base-poll-generation
+mamiksik/T5-commit-message-generator
+huggingtweets/aneternalenigma
+huggingtweets/muzhroommama
+42meow/DialoGPT-medium-42meow
+huggingtweets/rhilever
+huggingtweets/maxylobes
+nlp04/gpt_16_5_3e-5_lp5_nb5
+piyusharma/gpt2-finetuned-lex
+jed351/gpt2_tiny_zh-hk-shikoto
+nlp04/gpt_16_4_3e-5_lp5_nb5
+mqy/mt5-small-finetuned-28jan-1
+summervent/speller-t5
+martino-canavate/small-variedcodelanguages-model
+martino-canavate/small-texttopython-model
+martino-canavate/small-pythontotext-model
+mqy/mt5-small-finetuned-28jan-2
+ruiqi-zhong/d5_t5_validator
+leonpes/qaadj_parser
+cluffa/gitfit-model
+theblackcat102/mt0-chat-xl
+DarwinAnim8or/GPT-Greentext-355m
+postbot/pythia-160m-hq-emails
+gauiru1998/t5-small-finetuned-xsum
+mqy/mt5-small-finetuned-29jan-1
+yhavinga/ul2-small-dutch-english
+almuallim/gpt2-turkish-poem-generation
+mwp/newTrainingMethod-pen-keybert-t5
+balabala12138/gpt2-wikitext2
+mwp/newTrainingMethod-mawps-keybert-t5
+aspoornash/distilgpt2-squad
+HuyenNguyen/Vi-gec2
+aspoornash/distilgpt2-devrev
+taskydata/bloomz-7b1-c4tasky
+Peeepy/Evie
+summervent/speller-t5-ds
+mwp/newTrainingMethod-pen-keybert-t5-mwpbert
+tvergho/highlight_model
+alinde/flan-t5-base-samsum
+salemmarah4/t5-base-finetuned-xsum
+mrm8488/santacoder-finetuned-xlcost-python
+kswanjitsu/MedNoteSummarization
+xzyao/VWGVH0R3H1ZCIV2UGP66XQ5TXDR0Y38HRG394G8GS4DMRUQ3N1
+yinhongliu/recipe_with_plan_gpt2_generator
+hisaoka/t5-large_radiology-ai-cardiothoracic-0.8
+hisaoka/t5-large_radiology-ai-imagingcancer-0.8
+HuyenNguyen/Vigec-V4
+hisaoka/t5-large_radiology-cardiothoracic-imagingcancer-0.8
+nc33/t5_finetuned_gentextSIM
+huggingtweets/lulaoficial
+HuyenNguyen/Vigec-V2
+HuyenNguyen/Vigec-V3
+mwp/newTrainingMethod-pen-keybert-t5-bloom
+vaibhavmehrotra/my_awesome_eli5_clm-model
+mwp/newTrainingMethod-pen-keybert-t5-mwpbert-bloom
+Zuckerbird/RoPE-gpt2
+PDG/gpt2_for_crime_classification
+msalnikov/kgqa_sqwd-tunned_t5-large-ssm-nq
+yhavinga/t5_1_1-small-dutch
+yhavinga/t5_1_1-base-dutch
+yhavinga/t5_1_1-base-nl36-dutch
+yhavinga/t5_1_1-large-dutch
+totem37/DocuT5-Small-SD-Dates
+Pedrambbk/T5-small-poll-generation
+Amitesh007/text_generation-finetuned-gpt2
+summervent/speller-t5-big
+HuyenNguyen/Vigec-V5
+truitt/t5-small-finetuned-xsum
+Dipl0/Model_2_NLP
+bluqiu/t5-small-finetuned-xsum
+adkhamboy/codeparrot
+tomekkorbak/cranky_lichterman
+Anjoe/poetry-gpt2-large-no-hoel
+epinnock/flan-t5-small-samsum
+summervent/spell-rugpt-model
+luispereda/t5-small-finetuned-xsum
+arun-shankar/GPT-2-covid-news-articles
+nijatzeynalov/mT5-based-azerbaijani-summarize
+curt-tigges/gpt2-negative-movie-reviews
+huggingtweets/danidevyt
+PDG/bloom_for_crime_classification
+epinnock/flan-t5-xl-samsum
+el-profesor/code_t5
+HuyenNguyen/Vigec-V6
+huggingtweets/covfefechan-sirquackyy
+noahshinn024/santacoder-ts
+yangdk/t5-base-korean-paraphrase-finetuned-spoken-to-written
+huggingtweets/90snormmcdonald
+yangdk/t5-base-korean-paraphrase-finetuned-written-to-spoken
+shyamsn97/mario-gpt-700-ctx
+epinnock/flan-t5-small-codeparrot-xlcost-text-to-code
+yangdk/t5-base-korean-paraphrase-finetuned-spoken-to-written-v2
+JungHun/codeparrot
+kevinum/t5-small-finetuned-English-to-BASH
+JungHun/codeparrot-small
+yangdk/t5-base-korean-paraphrase-finetuned-written-to-spoken-v2
+Zekunli/t5-base-extraction-cnndm_fs0.01-all
+JoshuaRubin/t5-small-finetuned-math_qa-problem-just_formula
+shyamsn97/mario-gpt-280-ctx
+Zekunli/t5-base-extraction-cnndm_fs0.2-all
+scy99/autotrain-hello_summarization-3171289572
+vandung/my-java-model
+nlp04/gpt_trinity_2_4_3e-5_lp5_nb5
+mqy/mt5-small-finetuned-31jan-1
+venky26/VenkatT51
+Suya03/my_awesome_billsum_model
+Anjoe/poetry-gpt2-large-with-hoel
+mqy/mt5-small-finetuned-31jan-2
+epinnock/flan-t5-xl-codeparrot-xlcost-text-to-code
+gszabo/gpt2_test
+newwater/distilgpt2-squad
+summervent/speller-t5-finetuned
+mqy/mt5-small-finetuned-31jan-3
+michellehbn/brrrr
+GregariousJamie/DialoGPT-small-jamie
+jasondubon/my-first-one
+nikaashpuri/gpt-expt-sp-v3-K-600-9-mixed-with-tv-v3
+Owishiboo/correctnesschorus_v2
+Fuwaguwa/DialoGPT-Medium-AzurLaneMusashi-v8
+mqy/mt5-small-finetuned-31jan-4
+summervent/speller-t5-big-new
+nlpproject2023/T5-small_HotPotQA_reader
+milyiyo/paraphraser-spanish-mt5-small
+shri07/my_awesome_billsum_model
+Shularp/mt5-small-finetuned-ar-to-th-3rd-round
+summervent/speller-t5-big-2
+s3nh/DialoGPT-large-Rick
+s3nh/DialoGPT-large-Morty
+tomekkorbak/nostalgic_jones
+andreaparker/flan-t5-base-samsum
+Crataco/Pythia-70M-Deduped-Adventure
+Zekunli/t5-base-extraction-cnndm_fs0.05-all
+Zekunli/t5-base-extraction-cnndm_fs0.1-all
+nlpotato/pko-t5-base-pretraining_finetuning_temp1
+dfsj/mt5-small-finetuned-amazon-zh-en-es
+r1ck/doc2query-viT5
+Tugay/clickbait_spoiling_multi
+Jellywibble/12m-retry-continue-combined-regressor-epoch-1
+Yiqi/distilgpt2-finetuned-wikitext2
+karthik79/t5model
+hariniiiiiiiiii/finetuned-tamil-text-summarization
+tomekkorbak/sad_chandrasekhar
+tomekkorbak/compassionate_lumiere
+Tugay/clickbait_spoiling_passage
+huggingtweets/kamalaharris
+Tugay/clickbait_spoiling_phrase
+Dmitriy007/rugpt2_gen_news
+concedo/Pythia-70M-ChatSalad
+spursyy/mt5-small-2
+gbarone77/t5flan-small-finetuned-wikisql-with-cols
+summervent/speller-t5-big-3
+kejian/grainy-pep8
+sawishka/t5_squad_v1
+PDG/gpt2_ft_police_articles
+spursyy/mT5_multilingual_XLSum_rust
+lewtun/chip-12B-instruct-alpha
+m3hrdadfi/AuxGPT2-alvis-dd-umt-gpt2-medium-context
+BayesBayes/distilgpt2-finetuned-wikitext2
+s3nh/DialoGPT-small-morty
+Givinghawk/GPT-Morty
+Ashraf-kasem/gpt2_frame_text_predictor
+tombenj/hebrew_bible_ai
+igorktech/ent5-base
+tomekkorbak/jovial_rosalind
+summervent/speller-t5-big-6
+Nour33/model_amazon_reviews_multi
+summervent/speller-t5-4
+Mayhem50/sgpt-bloom-560M-nli
+DhruvShek/swearbot
+Anjoe/poetry-gpt2-large-no_schiller
+tomekkorbak/eloquent_keller
+Jedalc/codeparrot-gp2-finetune
+Tugay/clickbait_spoiling_classification
+Crataco/Pythia-160M-Deduped-Adventure
+BreadAi/gpt-YA-1-1_70M
+summervent/speller-t5-8
+arjunguha/santacoder-lua
+grart/DialoGPT-small-gillion
+Dipl0/best_model_QA
+Pramodith/qa_generator
+tlemenestrel/Churchill-GPT
+mogaio/dialoGPT-medium-imdb-pos
+huggingtweets/wnbagirlfriend
+DiscordRequestsAPI/DialoGPT-small-joshua
+shyamsn97/pretrained-mario-gpt-700-paths-ctx
+Mayhem50/sgpt-bloom-560m-nli-v2
+AgileGrowth/food-parser-t5-base-cased
+AgileGrowth/food-parser-t5-tiny-cased
+summervent/speller-t5-9
+s3nh/DialoGPT-tony-montana
+mqy/mt5-small-finetuned-1feb-2
+s3nh/DialoGPT-small-harry-potter-goblet-of-fire
+s3nh/DialoGPT-small-hermione-granger-goblet-of-fire
+svjack/dialogue-summary
+Anjoe/poetry-gpt2-large-complete
+s3nh/DialoGPT-small-woody-toy-story
+s3nh/DialoGPT-small-buzz-toy-story
+piyusharma/gpt2-medium-lex
+tomekkorbak/pedantic_bhabha
+josh-oo/german-gpt2-easy-mbart
+summervent/speller-t5-18
+summervent/speller-t5-88
+felipeace96/cleaner-restaurant-names
+KarenH/DialoGPT-small-laika
+jed351/gpt2-base-zh-hk
+dinadehaini/distilgpt2-finetuned-wikitext2
+muibk/t5_finetuned_medical_en-de
+juliietth/mt5-small-finetuned-amazon-en-es
+puj0/DialoGPT-small-joshua
+Dm271/rugpt3medium_based_on_gpt2-Kovr
+m3hrdadfi/AuxGPT2-alvis-pc-urb-gpt2-medium-personacontext
+m3hrdadfi/AuxGPT2-alvis-pc-urt-gpt2-medium-context
+m3hrdadfi/AuxGPT2-alvis-pc-urb-gpt2-medium-random
+m3hrdadfi/AuxGPT2-alvis-pc-urt-gpt2-medium-persona
+m3hrdadfi/AuxGPT2-alvis-pc-urt-gpt2-medium-personacontext
+m3hrdadfi/AuxGPT2-alvis-pc-urt-gpt2-medium-random
+m3hrdadfi/AuxGPT2-alvis-pc-umb-gpt2-medium-random
+m3hrdadfi/AuxGPT2-alvis-pc-umb-gpt2-medium-personacontext
+m3hrdadfi/AuxGPT2-alvis-pc-umb-gpt2-medium-context
+m3hrdadfi/AuxGPT2-alvis-pc-umb-gpt2-medium-persona
+m3hrdadfi/AuxGPT2-alvis-pc-umt-gpt2-medium-context
+m3hrdadfi/AuxGPT2-alvis-pc-umt-gpt2-medium-persona
+m3hrdadfi/AuxGPT2-alvis-pc-umt-gpt2-medium-random
+m3hrdadfi/AuxGPT2-alvis-pc-umt-gpt2-medium-personacontext
+summervent/speller-t5-90
+huggingtweets/gcrclassic
+deekshagoyal/distilgpt2-finetuned-wikitext2
+julianvd49/DialoGPT-medium-EllieBot
+Toshifumi/summarization-mT5-base-allXsum_20230203
+shri07/babi_qa
+happy06/KcT5-purificate
+schreon/gpt2-lhm-large
+muibk/t5_finetuned_emea_20k_en-de
+huggingtweets/pepsi-pepsico-pepsiindia
+huggingtweets/pepsi-pepsiglobal-pepsiindia
+shyamsn97/pretrained-mario-gpt-700-paths-prompt-ctx
+chaoyivision/t5-small-finetuned-xsum
+muibk/t5_emea_20k_en-de
+Laurie/eli5_gpt2-model
+huggingtweets/knoboter
+huggingtweets/brittpettibone
+huggingtweets/a_nnaschneider
+summervent/speller-t5-900
+Writer/palmyra-base
+Writer/palmyra-small
+nlpotato/pko-t5-base_ver0.1
+xander71988/t5-small-finetuned-facet-contract-type
+xander71988/t5-small-finetuned-facet-contract-type-test
+GreenMamba/t5_emea_20k_en-de
+evmati/t5_emea_20k_en-de
+xander71988/t5-base-finetuned-facet-driver-type
+mrm8488/santacoder-finetuned-the-stack-dockerfiles
+tomekkorbak/hungry_carson
+thesunshine36/my-awesome-model
+ChaiML/gpt2_base_retry_and_continue_12m_reward_model
+xzyao/P69WI7MBSUCP32LKYY22HY1W0DNBRJZ1J123KEAQZ56G8RY1UF
+Turkish-NLP/t5-efficient-small-MLSUM-TR-fine-tuned
+ChaiML/gpt2_medium_retry_and_continue_12m_reward_model
+chaoyivision/t5-small-finetuned-xsum-epoch4
+Nour33/t5-small-finetuned-samsum
+tomekkorbak/heuristic_snyder
+summervent/speller-t5-9001
+lazyfrog/GPT2_CHINESE-finetuned-wikitext2
+DReAMy-lib/t5-base-DreamBank-Generation-Emot-Char
+BreadAi/gpt-YA-1-1_160M
+Pedrambbk/mt5-small-poll-generation
+summervent/rugpt3_model
+mwp/newTrainingMethod-mawps-keybert-t5-mwpbert-graph2tree
+Sreyas/DialoGPT-small-elit
+lazyfrog/Report_GPT2-finetuned-financial_data
+xzyao/JP0FRC2WR51ZOJRIO14GJD0F27Z5XJ238L0S5OKAZWNZIYQDUW
+milyiyo/paraphraser-german-mt5-small
+DiscordRequestsAPI/DialoGPT-medium-NurDeeps
+thesunshine36/FineTune_Vit5_LR0_00001
+danielpleus/PlattGPT
+huggingtweets/foundinblank
+thefrigidliquidation/pythia-410m-lightnovels
+thesunshine36/FineTune_Vit5_LR0_00001_time2
+shyamsn97/mario-gpt-prompt-700-ctx
+shyamsn97/mario-gpt-prompt-700-ctx-text-encoder
+hoskinson-center/proofGPT-v0.1-6.7B
+TranBang/model
+shyamsn97/mario-gpt-prompt-700-ctx-from-scratch
+MarinHinawa/DialoGPT-medium-Ene
+thesunshine36/FineTune_Vit5_LR0_00001_time3
+Zekunli/flan-t5-large-extraction-cnndm_2000-all
+Zekunli/flan-t5-large-extraction-cnndm_4000-all
+Zekunli/flan-t5-large-da-multiwoz_500
+Zekunli/flan-t5-large-da-multiwoz_1000
+Laurie/billsum_t5_model
+thesunshine36/FineTune_Vit5_LR0_00001_time4
+thesunshine36/FineTune_Vit5_LR0_000001_time1
+ybagoury/flan-t5-base-tldr_news
+hammuneer/my_awesome_billsum_model
+tomekkorbak/naughty_davinci
+tomekkorbak/silly_nobel
+moshew/gpt_medium_emotion
+apatidar0/t5-small-finetuned-amazon-en
+mwp/AllUnfrozenFromScratch-pen-keybert-t5-mwpbert-bloom
+mwp/AllUnfrozenStage2-pen-keybert-t5-mwpbert-bloom
+Pedrambbk/mt5-base-poll-generation
+SushantGautam/gpt2
+dandrade/jlg-model
+huggingtweets/f3ralfluid
+mqy/mt5-small-finetuned-5feb-1
+mqy/mt5-small-finetuned-5feb-2
+anishchada12/distilgpt2-finetuned-PanoAI2
+muhtasham/santacoder-finetuned-the-stack-assembly
+huggingtweets/aygo__
+huggingtweets/ahmadaldujayli
+shyamsn97/pretrained-mario-gpt-560ctx-bert-encoder
+Jaehun/paragraph
+ChaiML/gpt2_large_retry_and_continue_12m_reward_model
+natedog/my_awesome_billsum_model
+polandball/polanball
+mqy/mt5-small-finetuned-6feb-5
+DiscordRequestsAPI/NurDeeps-Bot
+Vaibhav-rm/GPT2-Shri-v1
+schreon/gpt2-lhm-large-02
+yunaaa/results
+shyamsn97/pretrained-mario-gpt-700ctx-BERT
+keepsteady/test_k2t
+huggingtweets/tomakado
+EchoShao8899/t5_event_relation_extractor
+DReAMy-lib/t5-base-DreamBank-Generation-NER-Char
+jed351/gpt2_base_zh-hk-shikoto
+yunaaa/translated_model
+EddieChen372/DetecT5
+marcus2000/febr2023
+shyamsn97/pretrained-mario-gpt-420ctx-BERT-all-indices
+EddieChen372/DetecT5-v2
+Anjoe/poetry-gpt2-large-complete_2
+Anjoe/poetry-gpt2-large-no_schiller_2
+Anjoe/poetry-gpt2-large-no-hoel_2
+Yuto01/mt5-small-finetuned-amazon-en-es
+the-bee/test-bloomd-560m
+chrisrowles/DialoGPT-small-chrisrowles
+BhavyaMuni/model-v3
+MrVPlusOne/coeditor-xl-c3-dropout-v1.4
+tthabibe/t5-small-finetuned-xsum
+KaiNylund/gpt2-564M-lm-wmt-2012
+shyamsn97/pretrained-mario-gpt-700ctx-bart-text-encoder
+KaiNylund/gpt2-564M-lm-wmt-2013
+KaiNylund/gpt2-564M-lm-wmt-2014
+KaiNylund/gpt2-564M-lm-wmt-2015
+KaiNylund/gpt2-564M-lm-wmt-2016
+KaiNylund/gpt2-564M-lm-wmt-2017
+KaiNylund/gpt2-564M-lm-wmt-2018
+KaiNylund/gpt2-564M-lm-wmt-2019
+KaiNylund/gpt2-564M-lm-wmt-2020
+KaiNylund/gpt2-564M-lm-wmt-2021
+espeon98/DialoGPT-kenny-bot
+ChaiML/gpt2_xl_retry_and_continue_12m_reward_model
+espeon98/DialoGPT-kenny-bot-2
+HealthTeam/mt5-small-finetuned-MultiHead-230207
+polandball/GPT-Polen
+Sakuna/t5_grammar_checker
+aaaacash/AITA-GPT2-small
+Mayhem50/sgpt-bloom-560m-nli-v3
+nlpotato/pko-t5-base_ver1.1
+aaaacash/AITA-GPT2-medium
+luqh/ClinicalT5-base
+Kelum/Flan_T5_small_section_32_QnA
+navjordj/snl-summarization
+luqh/ClinicalT5-large
+ShirinP/newfinetuned_t5
+hammuneer/my_awesome_amazon_reviews_model
+alibidaran/codeparrot-ds-1
+jordiclive/flan-t5-11b-summarizer-filtered
+hmen97/gpt2-squad
+PDG/gpt2_police_news
+silvia-ss/t5-small-finetuned
+schreon/gpt2-lhm-large-03
+navjordj/snl-large-summarization
+HuggingFaceH4/flan-t5-xxl
+mrm8488/santacoder-finetuned-the-stack-swift
+chrisrowles/DialoGPT-medium-chrisrowles
+HuggingFaceH4/T0pp
+BhavyaMuni/model-v4
+virto/mt5-small-finetuned-rabbi-kook
+HuggingFaceH4/bloomz-7b1
+summervent/speller-t5-908
+shyamsn97/from-scratch-mario-gpt-700ctx-bart-text-encoder
+EgilKarlsen/ApacheGPT2
+virto/mt5-base-finetuned-rabbi-kook
+DiscordRequestsAPI/NurDeeps-Bot-2
+bigcode/santacoder-fast-inference
+Lazycode747/DialoGPT-small-joshua
+niv-al/sqt5-base
+Hamid-reza/mt5-small-finetuned-digikala-titleGen
+niv-al/sqt5-large
+milyiyo/paraphraser-german-mt5-small-v2
+MarianaLC/mt5-en-rr-1000-v2
+scribis/italian-literature-model-mini
+wozniakmp/QA
+PDG/gpt2_pt_police_articles
+summervent/speller-t5-909
+shyamsn97/pretrained-mario-gpt-700ctx-bart-text-encoder-v2
+Josh98/t5-small-finetuned-English-to-BASH
+Josh98/t5-small-transferLearning-NL2BASH_seqTrain
+Tristan/gpt2_reward_summarization
+Maciel/T5Corrector-base-v1
+bryanhpchiang/flan-t5-base-samsum
+einsteiner1983/distilgpt2-finetuned-wikitext2
+MarinHinawa/DialoGPT-small-Ene
+Zekunli/flan-t5-large-da-multiwoz_250
+shyamsn97/pretrained-mario-gpt-700ctx-bart-text-encoder-v2-editing
+m3hrdadfi/AuxGPT2-alvis-dd-urb-gpt2-small-context-2
+huggingtweets/shawarmersa
+steerevo88/DialoGPT-small-baiken
+m3hrdadfi/AuxGPT2-alvis-pc-urb-gpt2-small-context-2
+skywalker0803r/my_awesome_new_title_model
+mirfan899/t5-e2e-questions-generation
+schreon/gpt2-lhm-large-04
+skywalker0803r/my_awesome_new_title_model2
+AlekseyKorshuk/gpt2-demo-sft
+svjack/summary-dialogue
+Axel578/flan_t5_summarization
+akiFQC/japanese-dialogpt-small-aozora
+summervent/speller-t5-909_both
+niranjansitapure/distilgpt2-finetuned-wikitext2
+muhtasham/santacoder-finetuned-the-stack-cobol
+Dmitriy007/rugpt2_medium_gen_comments_ep5
+Ngao/DialoGPT-small-ngao
+niv-al/sqt5-xl
+apatidar0/my_awesome_billsum_model
+trl-internal-testing/tiny-BloomForCausalLM-correct-vocab
+trl-internal-testing/dummy-GPT2-correct-vocab
+svjack/dialogue-summary-fill-characters
+summervent/speller-t5-909_both_
+trl-internal-testing/tiny-T5ForConditionalGeneration-correct-vocab
+silvia-ss/t5-small-finetuned-v3
+virto/mt5-base-finetuned-rabbi-kook-nave
+xwjzds/my_awesome_opus_books_model
+EleutherAI/pythia-160m
+Josh98/t5-small-transferLearning-NL2BASH_seqTrain_testmetric
+lenguist/unlp2
+DarwinAnim8or/GPT-Grug-355m
+Anjoe/poetry-gpt2-large-no-hoel_3
+Anjoe/poetry-gpt2-large-no_schiller_3
+Anjoe/poetry-gpt2-large-complete_3
+niv-al/sqt5-small
+huggingtweets/101dadjokes-dadsjokes
+EleutherAI/pythia-160m-deduped
+leumastai/storri_summariser
+leumastai/storri-summarizer
+jed351/gpt2_base_zh-hk-lihkg
+Mineroero/DialoGPT-medium-M4SOPMOD
+thanat/mt5-small-finetuned-amazon-en-es
+csebuetnlp/banglat5_small
+FredZhang7/anime-anything-promptgen-v2
+willsirius/t5-small-finetuned-xsum
+HealthTeam/mt5-small-finetuned-MultiHead-230209-test3
+jordiclive/flan-t5-11b-summarizer-filtered-1.5-epoch
+summervent/speller-example
+EleutherAI/pythia-1.4b
+schreon/gpt2-lhm-large-05
+mwritescode/prefix-gpt2-prova
+simple2312/DialoGPT-nayeon
+ncouro/flan-t5-xl-ipu
+stillerman/santacoder-finetuned-the-stack-bash
+nemowet88/DialoGPT-small-ricktest
+nemowet88/DialoGPT-small-ricktest2convo
+summervent/speller-example_
+mrm8488/santacoder-finetuned-the-stack-rust
+lmqg/flan-t5-small-squad-qg
+lmqg/flan-t5-small-squad-ae
+summervent/speller-example__
+Pirr/pythia-13b-deduped-green_devil
+ChaiML/3plus_stars_gpt2_reward
+EleutherAI/pythia-1.4b-deduped
+yousraf/my_awesome_opus_books_model
+thanat/codeparrot-ds
+Abraxas3d/house
+kastan/feb_9_sf_demo
+vampiregirl/DialoGPT-medium-lennoxram
+jwhe/prompt-extend-1epoch
+ramazank2000/turkishReviews-ds-mini1
+simple2312/DialoGPT-Ellie
+BlackKakapo/flan-t5-small-ro
+SebOchs/gpt2-rewrite
+huggingtweets/economiaitalia-eurospinitalia-mef_gov
+Goutham-Vignesh/flan-t5-tuned-zolvit
+simple2312/DialoGPT-Twice
+testaws/DialoGPT-small-joshua
+huggingtweets/dulari_sister
+Tincando/my_awesome_eli5_clm-model
+TestZee/t5-base-finetuned-question-generation-data-t5-base
+lmqg/flan-t5-small-squad-qg-ae
+nemowet88/output-pythia-test
+marcus2000/another_simplificator
+lmqg/flan-t5-small-squad-qag
+schreon/gpt2large-lhm
+EleutherAI/pythia-2.8b-deduped
+beothorn/recipesptbr
+henryscheible/gpt2_stereoset_finetuned
+arun-shankar/GPT2-RLHF-covid
+mqy/mt5-small-finetuned-11feb-1
+Seungjun/t5-small-failed
+FredZhang7/danbooru-tag-generator
+Zekunli/flan-t5-large-extraction-cnndm_5000-all
+tiagoblima/punctuation-tedtalk2012-t5-base
+svjack/summary-dialogue-eng
+alibidaran/mt5-small-finetuned-amazon-en-es
+tiagoblima/punctuation-tedtalk2012-t5-large
+MarianaLC/mt5-en-rr-1000-mi-v2
+michelecafagna26/gpt2-medium-finetuned-sst2-sentiment
+Gurtej/Drbot12
+mrm8488/santacoder-finetuned-the-stack-clojure
+Gurtej/Drbot13
+smartik/mt5-small-finetuned-gec
+Gurtej/Drbot16
+Deysi/mt5-small-sumarizacion-es
+huggingtweets/asankhaya
+lmqg/flan-t5-base-squad-ae
+vishalghor/t5-small-finetuned-wikisql-sql-nl-nl-sql
+Zekunli/flan-t5-large-extraction-cnndm_8000-all
+tomaccer/flan-t5-base-juraqanda
+mqy/mt5-small-finetuned-12feb-1
+Deysi/mt5-small-sumarizacion-textos-bilingual
+zhenglianchi/rationale
+zhenglianchi/answer
+Gatozu35/tortoise-tts
+PeterBanning71/t5-small-finetuned-eLife
+lmqg/flan-t5-base-squad-qag
+johannes5117/kadoa-page-extraction
+spacemanidol/flan-t5-small-cnndm
+spacemanidol/flan-t5-small-xsum
+spacemanidol/flan-t5-base-cnndm
+ngtoanrob/vien-translation
+pszemraj/pythia-6.9b-HC3
+BerretMan/Monika-small
+schreon/gpt2large-lhm-02
+cahya/indochat-tiny
+PDG/gpt2_police_articles
+jaese/t5-small-finetuned-amazon-en-fr
+PDG/gpt2_police_articles_pretrained
+lmqg/flan-t5-base-squad-qg
+EZSNoVa/DialogGPT-medium-NoVa
+research-backup/flan-t5-small-analogy
+research-backup/flan-t5-base-analogy
+research-backup/flan-t5-large-analogy
+research-backup/flan-t5-xl-analogy
+AffanMir/flan-t5-large
+ashwathjadhav23/my_awesome_billsum_model
+ezraisme/my-kogpt2-fine-tuned
+nikaashpuri/gpt-expt-sp-v3-K-600-kmeans
+mqy/mt5-small-finetuned-13feb-1
+DioLiu/GPT2_Suggestion
+SkyR/my_awesome_billsum_model
+mqy/mt5-small-finetuned-13feb-2
+huggingtweets/notwafula
+Arsalan7/mt5-small-finetuned-amazon-en-es
+huggingtweets/swiggy
+nguyendangsonlam/mt5-multitask
+alibidaran/mt5-small-finetuned-amazon_beauty-en-es
+mqy/mt5-small-finetuned-13feb-3
+Karankankrate/t5-small-finetuned-emails-01
+Zombely/t5-model
+ashwathjadhav23/model_text_to_title
+Karankankrate/t5-small-finetuned-emails-02
+Student3342/codeparrot-ds
+mqy/mt5-small-finetuned-13feb-4
+EleutherAI/pythia-2.8b
+EleutherAI/pythia-70m
+research-backup/flan-t5-small-analogy-permutation
+mqy/mt5-small-finetuned-13feb-5
+downmoney/distilgpt2-finetuned-wikitext2
+spacemanidol/flan-t5-base-xsum
+research-backup/flan-t5-base-analogy-permutation
+research-backup/flan-t5-large-analogy-permutation
+EleutherAI/pythia-70m-deduped
+downmoney/gpt2-medium-finetuned-wikitext2
+edbeeching/gpt2-medium-imdb
+virto/mt5-small-hebrew-news-or
+Davidai/T5-large_covid
+eca1g19/mt5-small-finetuned-amazon-en-es
+mqy/mt5-small-finetuned-13feb-6
+bstds/text2sql
+mattallio/Archivist-medium-dialoGPT
+EleutherAI/pythia-410m
+shyamsn97/pretrained-mario-gpt-700ctx-bart-text-encoder-new-elevation-v2
+research-backup/flan-t5-xl-analogy-permutation
+navjordj/t5_base_new
+Zombely/GPT2ForSequenceClassification-sst2
+mqy/mt5-small-finetuned-13feb-8
+navjordj/t5_base_VG
+EleutherAI/pythia-410m-deduped
+MrVPlusOne/coeditor-xl-c3-dropout-v1.5
+rlatt/DialoGPT-small-RickSanchez
+EleutherAI/pythia-1b-deduped
+theblackcat102/pythia-12B-dedup-1000
+ParastooC/t5-small-finetuned-xsum
+NightMachinery/parsT5-base-finetuned-digikala
+Zekunli/flan-t5-large-extraction-cnndm_20000-all
+mqy/mt5-small-finetuned-14feb-1
+eidon/codeparrot-small
+mqy/mt5-small-finetuned-14feb-2
+huggingtweets/home_safe_69
+EleutherAI/pythia-6.9b
+NightMachinery/mt5-small-finetuned-digikala
+shyamsn97/Mario-GPT2-700-context-length
+Zekunli/flan-t5-large-extraction-cnndm_10000-all
+NightMachinery/mt5-small-finetuned-digikala-longtitles
+Pedrambbk/flan-t5-large-poll-generation
+Pedrambbk/flan-t5-base-poll-generation
+Pedrambbk/flan-t5-small-poll-generation
+vaguely-happy/Swift_GODEL
+mqy/mt5-small-finetuned-14feb-5
+edbeeching/gpt2-imdb
+edbeeching/gpt2-large-imdb
+Dahoas/pythia-6b-rm-response-only
+huggingtweets/antoniobanderas-oquimbarreiros-snoopdogg
+edbeeching/gpt2-xl-imdb
+mqy/mt5-small-finetuned-14feb-6
+esslushy/santacoder-fs
+shaiman12/flan-t5-base-samsum
+MurKote/DialoGPt-small
+Zekunli/t5-base-extraction-cnndm_10000-all
+virto/mt5-small-kook-summary-or
+Zekunli/t5-base-da-multiwoz2.1_500
+mqy/mt5-small-finetuned-14feb-9
+HealthTeam/mt5-small-finetuned-MultiHead-230207-finetuned-MultiHead-230210-finetuned-MultiHead-230214
+pnadel/pnadel
+pnadel/love-poems
+Dahoas/pythia-6b-rm-response-only-full-hh
+Shadman-Rohan/banglat5_nmt_bn_en-finetuned-bn-to-bn
+alexsha/t5-small-ENG2BASH-custom-v2
+Lyforth/DialoGPT-Medium-Maribelle
+JulianS/t5-base-finetuned-summscreen
+yuanzhoulvpi/gpt2_chinese
+kittenwhiperer/Deadpool
+Dahoas/gptj-response-full-sft
+Jellywibble/gpt2-xl-rm-online-ckpt-5k
+LogicismTV/DialoGPT-medium-Rick
+mithilesh111/my_awesome_opus_books_model
+AlcoholMan/t5-small-finetuned-xsum
+Shularp/mt5-small-finetuned-MultiHead-230215
+nijatzeynalov/gpt2-azerbaijani-small
+kobkrit/gpt2-imdb-pos
+Anonymous2023/codet5-small-kg
+Anonymous2023/codet5-base-kg
+Anonymous2023/codet5-large-kg
+postbot/emailgen-pythia-410m-deduped
+spyysalo/gpt-fi-small-test
+zaib32/autotrain-flant5_jobs_description_summary-3501894907
+TurkuNLP/gpt3-finnish-small
+TurkuNLP/gpt3-finnish-medium
+TurkuNLP/gpt3-finnish-large
+TurkuNLP/gpt3-finnish-xl
+research-backup/flan-t5-small-analogy-permutation-domain
+research-backup/flan-t5-base-analogy-permutation-domain
+TurkuNLP/gpt3-finnish-3B
+Anjaan-Khadka/summarization_nepali
+research-backup/flan-t5-large-analogy-permutation-domain
+totem37/DocuT5-RASAT-Small-SD
+akononen/petriyttaja
+till0r/nlp-in-5-weeks-gpt2
+ashwinpokee/T5_paraphraser
+course5i/NatSight-t5-small-wikisql
+KumquatJoe/DialoGPT-medium-MaleToucherBot
+research-backup/flan-t5-xl-analogy-permutation-domain
+EleutherAI/pythia-160m-seed1
+lmqg/flan-t5-large-squad-qag
+pvduy/flant5-xl_openai_tldr_sft
+LucaReggiani/t5-small-nlpfinalproject-xsum
+ivanlai/my_awesome_billsum_model
+EleutherAI/pythia-160m-seed2
+lmkhoa/GODEL_base_model
+EleutherAI/pythia-160m-alldropout
+JamesStratford/Pidrow-bot-DialoGPT-Large-Feb2023
+Pedrambbk/MLM-t5-base-poll-generation
+EleutherAI/pythia-160m-seed3
+KaiNylund/gpt2-124M-lm-wmt-2012-0
+KaiNylund/gpt2-124M-lm-wmt-2012-1
+KaiNylund/gpt2-124M-lm-wmt-2012-2
+KaiNylund/gpt2-124M-lm-wmt-2012-3
+danielv835/santacoder-finetuned-the-stack-bash
+KaiNylund/gpt2-124M-lm-wmt-2012-4
+KaiNylund/gpt2-124M-lm-wmt-2012-5
+KaiNylund/gpt2-124M-lm-wmt-2012-6
+KaiNylund/gpt2-124M-lm-wmt-2012-8
+KaiNylund/gpt2-124M-lm-wmt-2012-9
+KaiNylund/gpt2-124M-lm-wmt-2012-10
+KaiNylund/gpt2-124M-lm-wmt-2012-11
+KaiNylund/gpt2-124M-lm-wmt-2013-0
+KaiNylund/gpt2-124M-lm-wmt-2013-1
+KaiNylund/gpt2-124M-lm-wmt-2013-2
+KaiNylund/gpt2-124M-lm-wmt-2013-3
+KaiNylund/gpt2-124M-lm-wmt-2013-4
+KaiNylund/gpt2-124M-lm-wmt-2013-5
+KaiNylund/gpt2-124M-lm-wmt-2013-6
+KaiNylund/gpt2-124M-lm-wmt-2013-7
+KaiNylund/gpt2-124M-lm-wmt-2013-8
+KaiNylund/gpt2-124M-lm-wmt-2013-9
+KaiNylund/gpt2-124M-lm-wmt-2014-0
+KaiNylund/gpt2-124M-lm-wmt-2014-1
+KaiNylund/gpt2-124M-lm-wmt-2014-2
+KaiNylund/gpt2-124M-lm-wmt-2014-3
+KaiNylund/gpt2-124M-lm-wmt-2014-4
+KaiNylund/gpt2-124M-lm-wmt-2014-5
+KaiNylund/gpt2-124M-lm-wmt-2014-6
+KaiNylund/gpt2-124M-lm-wmt-2014-7
+KaiNylund/gpt2-124M-lm-wmt-2014-8
+KaiNylund/gpt2-124M-lm-wmt-2014-9
+KaiNylund/gpt2-124M-lm-wmt-2013-10
+KaiNylund/gpt2-124M-lm-wmt-2013-11
+KaiNylund/gpt2-124M-lm-wmt-2014-10
+KaiNylund/gpt2-124M-lm-wmt-2014-11
+LrxLcs/DialogGPT2-SMAL
+EleutherAI/pythia-160m-attndropout
+dawei756/text-to-sql-t5-spider-fine-tuned
+jmhuerta/codeparrot
+EleutherAI/pythia-160m-hiddendropout
+noahshinn024/ts-code2td
+KaiNylund/gpt2-124M-lm-wmt-2015-1
+lmkhoa/distilgpt2-finetuned-wikitext2
+KaiNylund/gpt2-124M-lm-wmt-2015-2
+KaiNylund/gpt2-124M-lm-wmt-2015-3
+KaiNylund/gpt2-124M-lm-wmt-2015-4
+KaiNylund/gpt2-124M-lm-wmt-2015-5
+ToluClassics/gtr-base
+heegyu/gpt2-toxic
+Seiriryu/ChatYuan-large-v1
+TurkuNLP/gpt3-finnish-8B
+euvu/DialoGPT-small-hpotter
+Harshil13/botGPT2Modelorg_ds
+huggingtweets/ironico
+euvu/DialoGPT-small-harrypotter
+lenamvn2012/mt5-small-finetuned-amazon-en-fr
+TurkuNLP/gpt3-finnish-13B
+LrxLcs/GPT2-V2
+mystgg/funai-5
+LrxLcs/GPT2-Test
+Lodo97/GPT-2-finetuned-code_search_net
+euvu/euvu-rickbot
+Sherwine/gpt2-wikitext2
+huggingtweets/cristiano-ronaldo7net-theronaldoteam
+schreon/gpt2large-lhm-03
+spacemanidol/flan-t5-small-6-5-cnndm
+emoc/first_s2s_model
+pchelaEb/t5-russian-spell
+Weeeeeeeeeeeee00/DialoGPT-small-harrypotter
+spacemanidol/flan-t5-small-6-4-cnndm
+spacemanidol/flan-t5-small-6-3-cnndm
+nikaashpuri/gpt-expt-sp-v3-K-600-kmeans-v2
+spacemanidol/flan-t5-small-6-1-cnndm
+spacemanidol/flan-t5-small-6-2-cnndm
+HAAAALAND/finetune_t5
+Harshil13/botGPT2_org_ds_cosine
+Tiju1996/t5-small-finetuned-xsum
+huggingtweets/missfaves
+mchalek/mt5-small-finetuned-amazon-en-es
+vietgpt-archive/gpt2-150M
+ybelkada/flan-t5-xl-sharded-bf16
+slyslasher24/DialoGPT-Medium-Pondweed
+huggingtweets/brentai__
+slyslasher24/DialoGPT-Small-Pondweed
+dhru/best-title-fit
+huggingtweets/hidden1337
+Madhana/distilgpt2-finetuned-wikitext2
+quasa277/my-bert-fine-tuned
+huggingtweets/cre8ivecory
+bradydawg/AI-Bot2
+nikaashpuri/gpt-expt-sp-v3-K-600-kmeans-v3
+heegyu/gpt2-non-toxic
+nikaashpuri/gpt-expt-sp-v3-K-600-kmeans-v4
+heegyu/gpt2-news-category
+nikaashpuri/gpt-expt-sp-v3-K-600-kmeans-v5
+huggingtweets/dearearth_-elonmusk
+NightMachinery/parsT5-base-finetuned-digikala-longtitlesv2
+nikaashpuri/gpt-expt-sp-v3-K-600-kmeans-v6
+satoshi-2000/simp_200_bert_5_1
+MrVPlusOne/TypeT5-v7
+huggingtweets/notgnasukitself
+navaaesarosh/saqi_v0
+AlexWortega/taskGPT2-xl-v0.2a
+ckip-joint/bloom-1b1-zh
+kswanjitsu/bioclinicalGPT_xs
+Belethor/mt5-small-finetuned-amazon-en-fr
+Vibharkchauhan/mt5-small-finetuned-amazon-en-es
+Lilithchouy/xxxx
+kkuramitsu/mt5-tiny12L
+Tritkoman/EnglishtoChurchSlavonicV1
+AmirHossein1378/gpt2-fa-snappfood
+lizziedearden/my_aime_gpt2_clm-model
+Mark-Cooper/my_aime_gpt2_clm-model
+sangcamap/t5_vietnamese_qr
+Tritkoman/EnglishtoAncientGreekV5
+pchelaEb/t5-russian
+armahlovis/GPT2FinnedtunnedEwriters
+skotha/my_awesome_eli5_clm-model_gpt
+Tritkoman/EnglishtoAncientGreekV6
+spacemanidol/flan-t5-small-4-4-cnndm
+spacemanidol/flan-t5-small-3-3-cnndm
+spacemanidol/flan-t5-small-2-2-cnndm
+spacemanidol/flan-t5-small-1-1-cnndm
+Linus4Lyf/gpt2-model-3epochs-reddit
+emozilla/flan-t5-large-sat-reading
+emozilla/flan-t5-xl-sat-reading
+emozilla/flan-t5-xxl-sat-reading
+Santhosh2211/grammar-correction
+emozilla/flan-t5-base-sat-reading
+Tritkoman/EnglishtoRusynV1
+Tritkoman/EnglishtoRusynV2
+Tritkoman/EnglishtoChurchSlavonicV2
+RatInChat/Pilup7575
+Zekunli/flan-t5-large-extraction-cnndm_2000-summary
+Zekunli/flan-t5-large-extraction-cnndm_4000-summary
+navjordj/snl-summarization-tpu
+MrVPlusOne/coeditor-xl-c3-dropout-v1.6-resumed
+huggingtweets/thestudent91
+fuadalhasib/semantically-aware-banglat5-for-paraphrase
+huggingtweets/mbashir_ahmed
+spacemanidol/flan-t5-large-xsum
+rlatt/DialoGPT-large-RickSanchez
+huggingtweets/anthrophobe1
+mohamedlamine/t5-small-finetuned-agri
+parinzee/mt5-small-thai-single-app-qg
+nguyendangsonlam/mt5-sum
+huggingtweets/can63616e
+Kira225784/Klarabot-test
+LucaReggiani/t5-small-nlpfinalproject2-xsum
+AmirHossein1378/gpt2-fa-snappfood-negative-sentiment-ppo
+nandakishormpai/t5-small-machine-articles-tag-generation
+pchelaEb/ruT5-large
+jiaoqsh/mt5-base-finetuned-stocks-event-all
+ivanlai/mt5-summarize-ch_trad
+evilfreelancer/dostoevsky_doesnt_write_it_gpt2
+bigbossa/DialoGPT-small-aikogirl
+sckova/DialoGPT-small-joshua
+LucaReggiani/t5-small-nlpfinalproject3-xsum
+sckova/DialoGPT-medium-joshua
+sckova/DialoGPT-medium
+Linus4Lyf/Beauvoir_The_Second_Sex
+Linus4Lyf/Hume_A_Treatise_Of_Human_Nature
+jasondubon/bad-bunny-small-v1
+Linus4Lyf/Kant_Metaphysics_Of_Morals
+Linus4Lyf/Rousseau_Emile
+Linus4Lyf/Sina_A_Compendium_On_The_Soul
+Linus4Lyf/Wollstonecraft_Thoughts_On_The_Education_Of_Daughters
+thmk/codegpt-java-10.2
+minhtoan/gpt2-finetune-vietnamese-news
+huggingtweets/elonmusk-svembu
+stillerman/santacoder-ruby
+pnadel/latin_causal
+Beltenebros/DialoGPT-small-PerionOfGaul
+caffsean/t5-small-finetune-dzongkha-to-romanized
+jordiclive/instruction-tuned-gpt-neox-20b
+vishalghor/flant5-finetuned-wikisql-sql-nl-nl-sql
+LucaReggiani/t5-small-nlpfinalproject4-xsum
+caffsean/t5-base-finetune-dzongkha-to-romanized
+jaimeblasco/distilgpt2-finetuned-wikitext2
+spacemanidol/flan-t5-small-5-6-cnndm
+spacemanidol/flan-t5-small-5-5-cnndm
+spacemanidol/flan-t5-small-4-6-cnndm
+spacemanidol/flan-t5-small-3-6-cnndm
+nadzma/finetuned-mt5-base-french-financial-summarization
+danasone/bloom-petals
+alexrink/flan-t5-small-finetuned
+alexrink/my-awesome-model
+achimoraites/flan-t5-base-samsum
+jhonparra18/petro-twitter-assistant
+Zekunli/flan-t5-large-da-multiwoz2.1_fs0.2
+Zekunli/flan-t5-large-da-multiwoz2.1_fs0.1
+jhonparra18/petro-twitter-assistant-30ep
+LucaReggiani/t5-small-nlpfinalproject55-xsum
+jhonparra18/uribe-twitter-assistant-30ep
+jhonparra18/petro-twitter-assistant-30ep-large
+Zekunli/flan-t5-large-da-multiwoz2.1_fs0.05
+Zekunli/flan-t5-large-da-multiwoz2.1_fs0.01
+nguyenlab/bloomz-560m-petals
+nguyenlab/bloom-560m-petals
+Seungjun/t5-small-finetuned-t5-epoch5
+Seungjun/t5-small-finetuned-t5-epoch5-finetuned-t5-epoch12
+vishalghor/flant5-finetuned-wikisql-sql
+Seungjun/t5-small-finetuned-epoch15
+Tritkoman/EnglishtoArliRomaniV1
+Seungjun/t5-small-finetuned-epoch15-finetuned-epoch30
+basic-go/rut5-base-texificator
+Tritkoman/EnglishtoArliRomaniV2
+nguyenlab/bloomz-mt-petals
+AmirHossein1378/gpt2-fa-snappfood-positive-sentiment-ppo
+schreon/gpt2large-lhm-04
+Intel/fid_flan_t5_base_nq
+Rashid1844/codeparrot-ds
+Intel/fid_t5_large_nq
+LucaReggiani/t5-small-nlpfinalproject6-xsum
+spacemanidol/flan-t5-small-2-6-cnndm
+spacemanidol/flan-t5-small-1-6-cnndm
+Seungjun/textSummary
+caffsean/gpt2-dzongkha-romanization
+althabiti/VerdictGen_t5-based
+caffsean/t5-base-finetune-thai-to-romanized
+zeta-alpha-ai/monot5-3b-inpars-v2-scidocs
+zeta-alpha-ai/monot5-3b-inpars-v2-scifact
+zeta-alpha-ai/monot5-3b-inpars-v2-nfcorpus
+zeta-alpha-ai/monot5-3b-inpars-v2-bioasq
+zeta-alpha-ai/monot5-3b-inpars-v2-nq
+Rashid1844/GPT_perfume_train
+zeta-alpha-ai/monot5-3b-inpars-v2-hotpotqa
+acrowth/touring
+TomLerman12/t5-small-finetuned-de-to-en
+jilsa212/output2
+achimoraites/flan-t5-base-xsum
+openthaigpt/openthaigpt-gpt2-pantipwiki-poc-0.0.1
+liujqian/gpt2-xl-finetuned-commongen
+SGaleshchuk/mT5-sum-news-ua
+huggingtweets/paulcharchian
+caffsean/gpt2-thai-romanization
+svjack/prompt-extend-chinese-gpt
+caffsean/byt5-small-finetune-dzongkha-to-romanized
+stanfordnlp/SteamSHP-flan-t5-xl
+ThatGuyVanquish/mt5-small-finetuned-xsum
+heegyu/gpt2-sentiment
+yli418/mt5-small-finetuned-amazon-zh
+Dmitriy007/rugpt2_test_gen_comments
+lewtun/test-instruct-model
+0Tick/e621TagAutocomplete
+Arjun2102/test_summarizer
+Elizaveta/2t5-base
+stacked-summaries/flan-t5-large-samsum
+Ahmade/test
+huggingtweets/brentai__-jagxofficial
+mojibaque/mt5-base-finterm
+caffsean/byt5-small-finetune-thai-to-romanized
+Shadman-Rohan/banglat5_banglaparaphrase-finetuned-bn-to-bn
+huggingtweets/knowing_oskcar
+LeaBresson/autotrain-summarization-pubmed-sample-3609596599
+HiTZ/gpt2-eus-euscrawl
+spacemanidol/flan-t5-large-cnndm
+spacemanidol/flan-t5-base-1-6-cnndm
+mojibaque/mt5-base-cleaner
+SRDdev/ScriptForge
+Tritkoman/EnglishtoOttomanTurkishV1
+Tritkoman/EnglishtoOttomanTurkishV2
+Tritkoman/EnglishtoOttomanTurkishV3
+research-backup/flan-t5-xl-analogy-conceptnet
+m-goltsova/mt5-small-finetuned-amazon-en-es
+curt-tigges/gpt2-imdb-sentiment-classifier
+GiorgiSekhniashvili/gpt2-ka-wiki
+dominiks/legal_language_model
+hails/testconv
+shm0007/gpt2-finetuned-agatha-christie
+research-backup/flan-t5-base-analogy-t-rex
+research-backup/flan-t5-xl-analogy-t-rex
+research-backup/flan-t5-small-analogy-t-rex
+research-backup/flan-t5-small-analogy-conceptnet
+research-backup/flan-t5-large-analogy-t-rex
+CharlieKincs/19th_century_gpt2
+research-backup/flan-t5-base-analogy-conceptnet
+stanfordnlp/SteamSHP-flan-t5-large
+cluffa/gitfit-model-base
+research-backup/flan-t5-small-analogy-nell
+morihika/distilgpt2-finetuned-wikitext2
+sadia72/gpt2-shakespeare
+armahlovis/GPT2FinnedtunnedEwritersRAll
+thegoodfellas/tgf-sp-unigram-tokenizer-ptbr
+Byteno/DialoGPT-medium-glamrockfreddy
+LucaReggiani/t5-small-nlpfinalproject8-xsum
+LucaReggiani/t5-small-nlpfinalproject77-xsum
+audreycl/audreycl-testagain
+guyhadad01/t5-large-translation
+research-backup/flan-t5-base-analogy-nell
+guyhadad01/t5-base-translation
+rubentito/t5-base-mpdocvqa
+minhtoan/gpt2-vietnamese
+Tritkoman/EnglishtoOldEastSlavicV2
+schreon/gpt2large-lhm-05
+research-backup/flan-t5-large-analogy-conceptnet
+Tritkoman/EnglishtoOldEastSlavicV3
+Glowcodes/mt5-small-finetuned-codeswitch
+Tritkoman/EnglishtoOldEastSlavicV4
+Tritkoman/EnglishtoOldEastSlavicV5
+Shularp/mt5-small-finetuned-MultiHead-230221-generated-datasets
+virto/t5-small-xsum-final
+ThatGuyVanquish/mt5-small-xsum-final
+audreycl/DialoGPT-RoyalPurpleFish
+audreycl/DialoGPT-RPF
+ThatGuyVanquish/mt5-small-news-final
+taufeeque/wiki-finetuned-pythia-70m-deduped
+versae/t5-4m
+jm0727/codeparrot
+versae/t5-8m
+versae/t5-2m
+versae/t5-6m
+0Tick/danbooruTagAutocomplete
+clarin-knext/plt5-base-msmarco
+huggingtweets/aaronsaitama-saitamaguru1-wearesaitama
+Mehrin/gpt2-runpy
+acrowth/autotrain-touring3-3635197158
+Axelajs26/DialoGPT-small-alicetendou
+kelvinleong/author_try
+huggingtweets/oatila
+Tritkoman/EnglishtoAncientHebrewV1
+cluffa/gitfit-model-finetuned
+spacemanidol/flan-t5-base-2-6-cnndm
+spacemanidol/flan-t5-base-1-1-cnndm
+spacemanidol/flan-t5-base-2-2-cnndm
+spacemanidol/flan-t5-base-4-4-cnndm
+spacemanidol/flan-t5-base-3-3-cnndm
+alexsha/t5-small-ENG2BASH-custom-v1
+danielv835/santacoder-finetuned-the-stack-rust-test1
+alexsha/t5-small-ENG2BASH-NL2BASH
+jacobmorrison/tk-instruct-squad-small
+jacobmorrison/tk-instruct-squad-base
+jacobmorrison/tk-instruct-squad-large
+Anna-UoC/author_base_try
+alexsha/t5-small-ENG2BASH-NL2BASH-customv1
+alexsha/t5-small-ENG2BASH-NL2BASH-customv1-customv2
+Xenova/distilgpt2_onnx-quantized
+jacobmorrison/tk-instruct-squad-small-2
+jacobmorrison/tk-instruct-squad-small-3
+jacobmorrison/tk-instruct-squad-small-4
+jacobmorrison/tk-instruct-squad-small-5
+research-backup/flan-t5-large-analogy-nell
+Xenova/t5-small_onnx-quantized
+jacobmorrison/tk-instruct-squad-base-2
+jacobmorrison/tk-instruct-squad-base-3
+jacobmorrison/tk-instruct-squad-base-4
+jacobmorrison/tk-instruct-squad-base-5
+jacobmorrison/tk-instruct-squad-large-2
+jacobmorrison/tk-instruct-squad-large-3
+jacobmorrison/tk-instruct-squad-large-4
+jacobmorrison/tk-instruct-squad-large-5
+jacobmorrison/tk-instruct-squad-xl
+spacemanidol/flan-t5-base-5-5-cnndm
+Bbrown44/hiphop-ds
+minwooeom/t5-end2end-questions-generation
+heyyouwwwwb/chinese-100w-chitchat
+KaiNylund/gpt2-124M-lm-wmt-2015-7
+KaiNylund/gpt2-124M-lm-wmt-2015-8
+Dahoas/gptneox-response-full-static-sft
+KaiNylund/gpt2-124M-lm-wmt-2015-9
+KaiNylund/gpt2-124M-lm-wmt-2015-10
+KaiNylund/gpt2-124M-lm-wmt-2015-11
+Dahoas/pythia-1B-response-full-static-sft
+Dahoas/pythia-125M-response-full-static-sft
+JS47/BanglaT5SummaryGenerator
+versae/t5-3m
+priecar/TFG-summarization-1-epoch
+versae/t5-5m
+versae/t5-7m
+versae/t5-9m
+versae/t5-10m
+versae/t5-2m-large
+versae/t5-3m-large
+shrinath-suresh/qa3k
+versae/t5-4m-large
+huggingtweets/drainyournuts-irishcumpigg-thickandgirthy
+versae/t5-5m-large
+versae/t5-6m-large
+versae/t5-7m-large
+versae/t5-8m-large
+versae/t5-9m-large
+versae/t5-10m-large
+mahmoudNG/wikitext-ds
+edbeeching/pythia-70M
+edbeeching/pythia-160M
+svjack/comet-atomic-zh
+lmqg/flan-t5-base-squad-qg-ae
+algn01/gpt2-FDAx
+Elizaveta/2t5-xxl
+svjack/comet-atomic-en
+songarsh/gpt2-finetuned-wikitext2
+stacked-summaries/flan-t5-large-stacked-xsum-1024
+nandakishormpai/t5-small-github-repo-tag-generation
+Noohance/DialoGPT-medium-noohbot
+Mehrin/gpt2-exec
+Mehrin/gpt2-system
+Mehrin/gpt2-eval
+MinzaKhan/HGWells
+lebi376/autotrain-translate-big-3667697890
+Zekunli/flan-t5-large-da-multiwoz2.0_400
+virto/repo_kook
+MmMm-0/t5-small-finetuned-xsum
+Draptor/DialoGPT-small-coolco
+sam2ai/flan-t5-base-samsum
+Zekunli/flan-t5-large-da-multiwoz2.0_80
+Israhassan/ShakespeareGPT
+trutujamurlidhar/gpt_2_addition_arithmetic_finetuned
+spacemanidol/flan-t5-base-3-6-cnndm
+wanglab/task-a-flan-t5-large-run-2
+Zekunli/flan-t5-large-da-multiwoz2.0_800
+KaiNylund/gpt2-124M-lm-wmt-2016-0
+KaiNylund/gpt2-124M-lm-wmt-2016-1
+KaiNylund/gpt2-124M-lm-wmt-2016-2
+KaiNylund/gpt2-124M-lm-wmt-2016-3
+KaiNylund/gpt2-124M-lm-wmt-2016-4
+KaiNylund/gpt2-124M-lm-wmt-2016-6
+KaiNylund/gpt2-124M-lm-wmt-2016-7
+KaiNylund/gpt2-124M-lm-wmt-2016-8
+KaiNylund/gpt2-124M-lm-wmt-2016-9
+KaiNylund/gpt2-124M-lm-wmt-2016-10
+KaiNylund/gpt2-124M-lm-wmt-2016-11
+KaiNylund/gpt2-124M-lm-wmt-2017-0
+KaiNylund/gpt2-124M-lm-wmt-2017-1
+KaiNylund/gpt2-124M-lm-wmt-2017-2
+KaiNylund/gpt2-124M-lm-wmt-2017-3
+KaiNylund/gpt2-124M-lm-wmt-2017-4
+KaiNylund/gpt2-124M-lm-wmt-2017-5
+KaiNylund/gpt2-124M-lm-wmt-2017-6
+KaiNylund/gpt2-124M-lm-wmt-2017-7
+KaiNylund/gpt2-124M-lm-wmt-2017-8
+KaiNylund/gpt2-124M-lm-wmt-2017-9
+KaiNylund/gpt2-124M-lm-wmt-2017-10
+KaiNylund/gpt2-124M-lm-wmt-2017-11
+KaiNylund/gpt2-124M-lm-wmt-2018-0
+KaiNylund/gpt2-124M-lm-wmt-2018-1
+KaiNylund/gpt2-124M-lm-wmt-2018-2
+KaiNylund/gpt2-124M-lm-wmt-2018-3
+KaiNylund/gpt2-124M-lm-wmt-2018-4
+KaiNylund/gpt2-124M-lm-wmt-2018-5
+KaiNylund/gpt2-124M-lm-wmt-2018-6
+KaiNylund/gpt2-124M-lm-wmt-2018-7
+KaiNylund/gpt2-124M-lm-wmt-2018-8
+KaiNylund/gpt2-124M-lm-wmt-2018-9
+KaiNylund/gpt2-124M-lm-wmt-2018-10
+KaiNylund/gpt2-124M-lm-wmt-2018-11
+KaiNylund/gpt2-124M-lm-wmt-2019-0
+KaiNylund/gpt2-124M-lm-wmt-2019-1
+KaiNylund/gpt2-124M-lm-wmt-2019-2
+KaiNylund/gpt2-124M-lm-wmt-2019-3
+KaiNylund/gpt2-124M-lm-wmt-2019-4
+KaiNylund/gpt2-124M-lm-wmt-2019-5
+KaiNylund/gpt2-124M-lm-wmt-2019-6
+KaiNylund/gpt2-124M-lm-wmt-2019-7
+KaiNylund/gpt2-124M-lm-wmt-2019-8
+KaiNylund/gpt2-124M-lm-wmt-2019-9
+KaiNylund/gpt2-124M-lm-wmt-2019-10
+KaiNylund/gpt2-124M-lm-wmt-2019-11
+KaiNylund/gpt2-124M-lm-wmt-2020-0
+potsawee/t5-large-generation-race-QuestionAnswer
+KaiNylund/gpt2-124M-lm-wmt-2020-1
+KaiNylund/gpt2-124M-lm-wmt-2020-2
+KaiNylund/gpt2-124M-lm-wmt-2020-3
+KaiNylund/gpt2-124M-lm-wmt-2020-4
+KaiNylund/gpt2-124M-lm-wmt-2020-5
+KaiNylund/gpt2-124M-lm-wmt-2020-6
+KaiNylund/gpt2-124M-lm-wmt-2020-7
+KaiNylund/gpt2-124M-lm-wmt-2020-8
+KaiNylund/gpt2-124M-lm-wmt-2020-9
+KaiNylund/gpt2-124M-lm-wmt-2020-10
+KaiNylund/gpt2-124M-lm-wmt-2020-11
+KaiNylund/gpt2-124M-lm-wmt-2021-0
+KaiNylund/gpt2-124M-lm-wmt-2021-1
+KaiNylund/gpt2-124M-lm-wmt-2021-2
+KaiNylund/gpt2-124M-lm-wmt-2021-3
+KaiNylund/gpt2-124M-lm-wmt-2021-4
+KaiNylund/gpt2-124M-lm-wmt-2021-5
+KaiNylund/gpt2-124M-lm-wmt-2021-6
+KaiNylund/gpt2-124M-lm-wmt-2021-7
+KaiNylund/gpt2-124M-lm-wmt-2021-8
+KaiNylund/gpt2-124M-lm-wmt-2021-9
+KaiNylund/gpt2-124M-lm-wmt-2021-10
+KaiNylund/gpt2-124M-lm-wmt-2021-11
+David042/DialoGPT-LucasBot
+potsawee/t5-large-generation-race-Distractor
+liujqian/gpt2-medium-finetuned-commongen
+Hobospider132/DialoGPT-Mahiru-Proto
+liujqian/gpt2-large-finetuned-commongen
+BreadAi/gpt-Youtube
+mqy/mt5-small-finetuned-23feb-1
+kevinum/byt5-small-finetuned-English-to-BASH
+kevinum/t5-v1_1-base-finetuned-English-to-BASH
+kevinscaria/ate_tk-instruct-base-def-pos-combined
+kevinscaria/ate_tk-instruct-base-def-pos-laptops
+kevinscaria/ate_tk-instruct-base-def-pos-neg-neut-combined
+kevinscaria/ate_tk-instruct-base-def-pos-neg-neut-laptops
+Draptor/DialoGPT-medium-moto
+kevinscaria/ate_tk-instruct-base-def-pos-restaurants
+Jaehun/light-breeze-7
+kevinscaria/ate_tk-instruct-base-def-pos-neg-neut-restaurants
+tomxliu/fakes_detection
+guyhadad01/t5-flan-large-translation
+JYBX/DialoGPT-small-Pennybot
+hulentina/mt5-small-finetuned-amazon-en-es
+virto/kook-model-output-dir
+Roy029/sno_empty
+huggingtweets/arvidkahl-marckohlbrugge-yadavajay
+abletobetable/gpt-short-jokes
+TapMadl/bloom-560m-converted
+Tritkoman/EnglishtoOldEnglishV3
+research-backup/flan-t5-xl-analogy-nell
+AndyReas/NewsGPT
+0639osama/newmodel
+Tritkoman/EnglishtoOldEnglishV4
+JYBX/DialoGPT-small-Amybot
+smartik/mt5-small-finetuned-xsum
+Anjaan-Khadka/Nepali-Summarization
+research-backup/t5-3b-analogy
+Tritkoman/EnglishtoOldEnglishV5
+research-backup/t5-small-analogy
+research-backup/t5-base-analogy
+research-backup/t5-large-analogy
+DReAMy-lib/t5-base-DreamBank-Generation-Emot-EmotNn
+LuckyBor11/Figure
+ChaiML/gpt2_base_retry_and_continue_5m_reward_model
+huggingtweets/chromeeight-elonmusk
+mqy/mt5-small-finetuned-23feb-2
+ark-sot-163/results
+ark-sot-163/vlad-gpt2-generator
+huggingtweets/1jo_0-inkspirate_art
+marcus2000/legal_text_simplifier
+jquigl/DistilGutenMystery
+kelvinleong/KT_Flan_FinPhr_Summ
+huggingtweets/kagutamuseveni
+kevinscaria/atsc_tk-instruct-base-def-pos-combined
+kevinscaria/atsc_tk-instruct-base-def-pos-neg-neut-combined
+minwooeom/t5-qg
+kevinscaria/atsc_tk-instruct-base-def-pos-laptops
+kevinscaria/atsc_tk-instruct-base-def-pos-neg-neut-laptops
+Dwaraka/PROJECT_GUTENBERG_GOTHIC_FICTION_TEXT_GENERATION_gpt2
+theblackcat102/pythia-1b-deduped-sft
+theblackcat102/pythia-3b-deduped-sft
+kevinscaria/atsc_tk-instruct-base-def-pos-restaurants
+kevinscaria/atsc_tk-instruct-base-def-pos-neg-neut-restaurants
+APMIC/GPT2-wikitext2
+kevinscaria/joint_tk-instruct-base-def-pos-combined
+pvduy/pythia-125M-sft-summarize-tldr
+kevinscaria/joint_tk-instruct-base-def-pos-neg-neut-combined
+pvduy/SteamSHP-flan-t5-xl-finetuned-summarize-tldr
+pvduy/pythia-1B-sft-summarize-tldr
+pvduy/pythia-6B-sft-summarize-tldr
+kevinscaria/joint_tk-instruct-base-def-pos-laptops
+kevinscaria/joint_tk-instruct-base-def-pos-neg-neut-laptops
+mykor/gpt2-ko
+kevinscaria/joint_tk-instruct-base-def-pos-restaurants
+sdeg/gpt2-finetuned-seinfeld
+Roy029/sno_py2500
+Roy029/sno_py5000
+Roy029/mt5_empty
+Roy029/mt5_py500
+Roy029/mt5_py2500
+ruiqi-zhong/d5_t5_validator_700M
+ruiqi-zhong/d5_t5_validator_3B
+JerryWu/gpt2-wikitext2
+lambdarw/t5base_en_re
+priecar/TFG-summarization-2-epoch
+zaib32/autotrain-flan_t5_jobs_description_209-3703198648
+virto/mt_5_small_kook_gen_len_20
+zaib32/autotrain-flan_t5_large_jobs_description_209-3703498672
+ThatGuyVanquish/kook-model-output-dir
+shrinath-suresh/qa-10k
+FlyingGrayson0304/Gandalf-stupid-version
+shrinath-suresh/mariorossi
+huggingtweets/wafyru
+ThatGuyVanquish/mt5-small-rabbi-kook
+BlinksFly/Harry_Potter-Ai
+huggingtweets/garyvee
+FYP19/t5-small-finetuned-sql
+FYP19/t5-small-finetuned-sql2
+adrianzarbock/english_to_latex
+Ahmade/conversationv8
+CATIE-AQ/frenchT0
+FYP19/t5-small-finetuned-wikisql
+adrianzarbock/amazon_reviews
+mqy/mt5-small-finetuned-24feb-1
+LC748NLP/SikuGPT2-translation
+luisa-li/kotlin-finetuned
+yfliao/distilgpt2-finetuned-wikitext2
+FYP19/t5-small-finetuned-sql3
+JerryWu/Bloom_Traditional_Chinese-TW
+logoyazilim/qna_model_0000_1
+TheShasa/distilgpt2-finetuned-wikitext2
+spacemanidol/flan-t5-large-4-6-cnndm
+spacemanidol/flan-t5-base-5-6-cnndm
+spacemanidol/flan-t5-base-6-1-cnndm
+huggingtweets/brentai__-goodtimes2-jagxofficial
+spacemanidol/flan-t5-small-6-1-xsum
+spacemanidol/flan-t5-small-6-2-xsum
+spacemanidol/flan-t5-small-6-3-xsum
+spacemanidol/flan-t5-small-6-4-xsum
+spacemanidol/flan-t5-small-6-5-xsum
+vy2388/T5_Small_Model
+spacemanidol/flan-t5-small-5-6-xsum
+spacemanidol/flan-t5-small-4-6-xsum
+mqy/mt5-small-finetuned-24feb-2
+spacemanidol/flan-t5-large-1-1-xsum
+spacemanidol/flan-t5-large-2-2-xsum
+spacemanidol/flan-t5-large-3-3-xsum
+pchelaEb/ruT5-large_24.02
+mqy/mt5-small-finetuned-24feb-3
+BreadAi/MuseCan
+PhilipN/DialoGPT-small-KeqingBot
+robkayinto/codeparrot-ds
+Kesian/legal_t5_nmt_test
+alpindale/pygm-350m-experimental
+Kesian/legal_t5_test
+Zekunli/flan-t5-large-nlg-multiwoz2.0_400
+Zekunli/flan-t5-large-nlg-multiwoz2.0_800
+mqy/mt5-small-finetuned-25feb-1
+mqy/mt5-small-finetuned-25feb-2
+hammuneer/my_awesome_eurekaalert_model
+pvduy/pythia-20B-sft-summarize-tldr
+ritheshwar/autotrain-codet5_base_cpsl-3727399183
+ritheshwar/autotrain-codet5_base_cpsl-3727399184
+ritheshwar/autotrain-codet5_base_cpsl-3727399185
+ritheshwar/autotrain-codet5_base_cpsl-3727399186
+ritheshwar/autotrain-codet5_base_cpsl-3727399187
+Suya03/suhan_summerization
+mqy/mt5-small-finetuned-25feb-3
+alexsha/t5-large-finetuned-English-to-BASH
+YTTD/DialoGPT-medium-sou
+a2ran/kogpt2-wellness
+mqy/mt5-small-finetuned-25feb-4
+inpars/monot5-3b-inpars-v2-arguana-promptagator
+CreatorPhan/Translate-base
+saiydero/GPT2-BR
+EleutherAI/pythia-6.9b-deduped
+schreon/gpt2large-lhm-06
+sdeg/gpt2-finetuned-v2-seinfeld
+sdeg/distilgpt2-finetuned-v2-seinfeld
+sdeg/pythia-410m-deduped-finetuned-v2-seinfeld
+rezabny/t5-base-summary-finetuned_1
+huggingtweets/dropbox
+mwp/FinalModel-pen-t5-t5mwpbert-t5mwpbert-lm
+pankratozzi/rugpt3small_based_on_gpt2-finetuned-for-chat
+mwp/FinalModel-mawps-t5-t5mwpbert-lm
+mwp/FinalModel-mawps-t5-t5-lm
+inpars/monot5-3b-inpars-v2-fiqa-promptagator
+mwp/FinalModel-t5-t5-t5-lm
+mwp/FinalModel-mawps-t5-t5mwpbert-t5mwpbert-lm
+inpars/monot5-3b-inpars-v2-fever-promptagator
+inpars/monot5-3b-inpars-v2-nfcorpus-promptagator
+sdeg/gpt2-rlhf-v2-seinfeld
+souljoy/t5-chinese-lyric
+dmayhem93/pythia-125M-Summarization-sft
+dmayhem93/pythia-1B-Summarization-sft
+dmayhem93/pythia-6B-Summarization-sft
+PhilipN/DialoGPT-large-KeqingBot
+huggingtweets/brodieseo
+huggingtweets/pelca_
+mqy/mt5-small-finetuned-26feb-1
+mqy/mt5-small-finetuned-x
+usamakenway/Stable-diffusion-prompt-generator-gpt2-medium
+luolirui/my_awesome_eli5_clm-model
+voraseth/openthaigpt-gpt2-pantipwiki-poc-v230222
+luolirui/my_awesome_eli5_clm-model1
+luolirui/my_awesome_eli5_clm-model2
+elaysason/t5-base-finetuned-German-to-English
+0xhaz/tiny-gpt2-finetuned-1.0.0
+felixschulz/double-GPT2-model
+vicclab/FolkGPT
+eyalmazuz/T5-Arab-Heb
+shashanksingh944/sql-custom-model
+vatsalinfodesk/t5-small-finetuned-xsum
+LucaReggiani/t5-small-nlpfinalproject9-xsum
+dmayhem93/neox-20B-Summarization-sft
+LucaReggiani/t5-small-nlpfinalproject11-xsum
+Yasbok/Flan-t5-fine-tune-PEFT-Lora
+LucaReggiani/t5-small-nlpfinalproject12_2-xsum
+spacemanidol/flan-t5-base-6-2-cnndm
+spacemanidol/flan-t5-base-6-3-cnndm
+spacemanidol/flan-t5-base-6-4-cnndm
+spacemanidol/flan-t5-base-6-5-cnndm
+shrinivasbjoshi/w210AskWiki
+Ali-Setareh/NLP_Tuebingen_Assignment_4
+shrinivasbjoshi/W210T5NLG
+jstilb/t5
+JanJacobsen/distilgpt2_review_multitask
+huggingtweets/tinpe17
+Joshwabail/gpt2_finetuned_wolfram
+inpars/monot5-3b-inpars-v2-scifact-promptagator
+inpars/monot5-3b-inpars-v2-hotpotqa-promptagator
+inpars/monot5-3b-inpars-v2-trec-covid-promptagator
+inpars/monot5-3b-inpars-v2-quora-promptagator
+inpars/monot5-3b-inpars-v2-nq-promptagator
+inpars/monot5-3b-inpars-v2-webis-touche2020-promptagator
+inpars/monot5-3b-inpars-v2-scidocs-promptagator
+huggingtweets/bagcivan-elonmusk
+gangiswag/flan_t5_small_entity
+YTTD/DialoGPT-medium-souv2
+Dahoas/pythia-6B-sft-response-full-static
+kalcho100/t5-small-finetuned-xsum
+fifi777/codeparrot-ds
+sdeg/gpt2-rlhf-v3-seinfeld
+huggingtweets/ashleighdotcom-charli_xcx-dril
+huggingtweets/hussien_coding
+luolirui/my_awesome_eli5_clm-model3
+LucaReggiani/t5-small-nlpfinalproject99-xsum
+LucaReggiani/t5-small-11nlpfinalproject11-xsum
+luolirui/my_trans
+keonju/chat_bot
+okazaki-lab/japanese-gpt2-medium-unidic
+leobertolazzi/medieval-it5-base
+keonju/chatbot
+skg97/english_to_latex
+ij5/chatbot
+ArthurZ/T5-pt
+MysteriousAmazon/DialoGPT-medium-alastor
+Kartikey95/t5-base-finetuned-noun_ellipse
+ivanlai/mt5-summarize-ch_trad-v2
+mICHPl/MINI_AI
+openthaigpt/openthaigpt-gpt2-instructgpt-poc-0.0.2
+EleutherAI/pythia-12b-deduped
+Rooshan/mt5-small-finetuned-en-to-de
+Kau-stuv/t5-3epochs
+FYP19/t5-small-finetuned-spider-wo_db
+LucaReggiani/t5-small-nlpfinalproject100-xsum
+spacemanidol/flan-t5-base-4-4-xsum
+spacemanidol/flan-t5-base-5-5-xsum
+spacemanidol/flan-t5-base-3-3-xsum
+spacemanidol/flan-t5-base-2-2-xsum
+LucaReggiani/t5-small-12nlpfinalproject15-xsum
+LuisChavezMX/multitask-model
+sdeg/gpt2-finetuned-v4-seinfeld
+SRDdev/ScriptForge-small
+pankratozzi/ruT5-base-arithmetics
+michaelnath/dummy_code_to_code_model
+Manuel-I/distilgpt2-finetuned-shakespeare
+rlatt/DialoGPT-large-King-James-Bible-test
+spacemanidol/flan-t5-base-6-3-xsum
+spacemanidol/flan-t5-base-1-1-xsum
+spacemanidol/flan-t5-base-6-1-xsum
+spacemanidol/flan-t5-base-6-2-xsum
+Venkata1/my_awesome_billsum_model
+bsenker/swords-attentive_t5_v1
+theblackcat102/pythia-12b-deduped-sft
+lmqg/mt5-small-koquad-qa
+digitake/openthaigpt-gpt2-pantipwiki-poc
+huggingtweets/aaronsaitama-mannythehitman-saitamaguru1
+Josh98/t5-small-t5small-NL2BASH_testmetric
+kejian/cpsc-origcond
+kejian/cpsc-bincond
+gritsys/my_awesome_eli5_clm-model
+heegyu/gpt2-yelp-polarity
+pankratozzi/rugpt3small_based_on_gpt2-finetuned-for-chat_3
+pendragonsun/distilgpt2-finetuned-wikitext2
+anujraymajhi/t5-GEC-6
+ai-forever/FRED-T5-large
+heegyu/gpt2-emotion-balanced-1k
+kirisums/gpt2-fintuned
+openthaigpt/openthaigpt-gpt2-instructgpt-poc-0.0.3
+Ahmade/conversationv11
+mqy/mt5-small-finetuned-28feb-1
+michaelnath/scrappy_code_to_code_model
+oren186/t5-small-finetuned-en-to-ro
+pstuerner/ukraine-clm
+MGenschow/english_latex_translate
+oren186/t5-small-finetuned-G2E-Translation
+oren186/t5-base-finetuned-G2E-Translation
+marvelo/twotasks_GPT2Model
+manashxml/my_awesome_peft_model
+mnb988/t5-small-finetuned-de-to-en
+hammuneer/my_awesome_cnn_dailymail_model
+ritheshwar/autotrain-cpsl_28022023-38024100796
+ritheshwar/autotrain-cpsl_28022023-38024100798
+ritheshwar/autotrain-cpsl_28022023-38024100799
+v3nom1704/DialoGPT-small-potterbot
+Kau-stuv/t5-grammar-error-correction
+csebuetnlp/mT5_m2m_crossSum_enhanced
+spacemanidol/flan-t5-base-6-4-xsum
+spacemanidol/flan-t5-base-6-5-xsum
+spacemanidol/flan-t5-small-1-1-xsum
+spacemanidol/flan-t5-small-1-6-xsum
+spacemanidol/flan-t5-small-2-2-xsum
+spacemanidol/flan-t5-small-2-6-xsum
+degoeath/mt5-squad_v2_fin
+huggingtweets/mayor_bigfoot
+Techcs002/DialoGPT-medium-AboTalkTest
+spacemanidol/flan-t5-small-3-3-xsum
+spacemanidol/flan-t5-small-3-6-xsum
+spacemanidol/flan-t5-small-4-4-xsum
+spacemanidol/flan-t5-small-5-5-xsum
+spacemanidol/flan-t5-base-1-6-xsum
+spacemanidol/flan-t5-base-2-6-xsum
+spacemanidol/flan-t5-base-3-6-xsum
+schreon/gpt2large-lhm-07
+sheoran95/my_model
+SigmarAI/MT5
+PDG/distilgpt2_finetuned
+ritvic/t5
+MariusPDL/model_task_b
+lambda999/codeparrot-ds
+spacemanidol/flan-t5-base-5-6-xsum
+jantheman/GT2_Sentiment_Summary
+itexbarr/assignment_4_model
+danieleff/PULI-GPT-3SX-context-question-answering
+EleutherAI/pythia-12b
+Leoxie2000/t5-small-finetuned-xsum
+brunosan/GPT2-impactscience
+spacemanidol/flan-t5-large-1-6-cnndm
+spacemanidol/flan-t5-large-1-1-cnndm
+spacemanidol/flan-t5-large-2-2-cnndm
+spacemanidol/flan-t5-large-3-3-cnndm
+Josh98/t5-large-t5-large-NL2BASH_balanced
+tanjim17/BanglaT5SummaryGenerator
+huggingtweets/curiouswavefn
+huggingtweets/thomassowell
+lmqg/mt5-small-frquad-qa
+spacemanidol/flan-t5-large-3-6-cnndm
+spacemanidol/flan-t5-large-4-4-cnndm
+spacemanidol/flan-t5-large-5-5-cnndm
+Josh98/t5-large-t5large-English-to-BASH
+igorktech/ent5-base-paraphraser
+MysteriousAmazon/DialoGPT-medium-freddy
+sebastianM/my-sent-sum-model
+liujqian/gpt2-finetuned-commongen
+Zekunli/flan-t5-large-da-multiwoz2.1_80-best
+ParastooC/t5_small_A-finetuned-xsum
+DavidLanz/fine_tune_taipower
+kkuramitsu/mt5np_mini12L
+zap8600/my_awesome_eli5_clm-model
+ij5/harrypotter
+spacemanidol/flan-t5-base-4-6-xsum
+Writer/palmyra-3B
+mjbeattie/mt5-small-finetuned-amazon-en-es
+ChandlerU11/t5-small-finetuned-xsum
+kejian/cpsc-plain-bin4
+kejian/cpsc-log5-bin4
+kejian/cpsc-log15-bin4
+hululuzhu/chinese-poem-t5-v2
+KoddaDuck/autotrain-text-summa-38210101161
+KoddaDuck/autotrain-text-summa-38210101162
+KoddaDuck/Cylonix_text_sum
+sallywww/invariants-model
+digitake/gpt2-imdb-pos
+HuyenNguyen/Vi-test1
+Kesian/legal_t5_nmt_long_test
+Zekunli/flan-t5-large-extraction-cnndm_4000-all-new
+Zekunli/flan-t5-large-extraction-cnndm_8000-all-new
+arvinemadi/awesome-flanT5
+Zekunli/flan-t5-large-da-multiwoz2.1_800
+Zekunli/flan-t5-large-da-multiwoz2.1_400
+kiyoonj/t5-small-finetuned-xsum
+hammuneer/my_awesome_lcquad_model
+huggingtweets/talalunfiltered
+HuyenNguyen/Vi-test2
+lmqg/mt5-small-jaquad-qa
+lmqg/mt5-small-dequad-qa
+ritheshwar/autotrain-cpsl_large_01032023-38235101207
+fxmarty/gpt2-tiny-c51dc4f92755c67a83f3fc8a0bd6b3e64df199e4-bool
+fxmarty/gpt2-tiny-cc44e72d147f9d334367acf96045704194357903-uint8
+zaib32/t5-small_one_year_1_hour_trained
+arvinemadi/awesome-flanT5-10epochs
+HuyenNguyen/Vi-test3
+4s4ki/doodownnakumkuing
+edbeeching/gpt-neox-20b-imdb-peft-adapter-removed
+ICAMPB204/DialoGPT-small-HarryPotter
+gobaixiao/codeparrot-ds
+kelvinhang/DialoGPT-medium-badguy
+Tritkoman/RussiantoChukchiV1
+smemon/comet
+Tritkoman/RussiantoChukchiV2
+HuggingFaceBR4/gpt2-20b
+theojolliffe/t5-base-tag-generation-recipes
+chandratripahty/distilgpt2-finetuned-wikitext2
+tatsumis6/MonikaAI
+KerenDS/t5-base-finetuned-de-to-en
+kelvinleong/KT_QA_generate
+Isotonic/gpt-human-assistant
+kennethhendricks/DialoGPT-medium-PowPowGaming-Gen1
+Venkata1/itcall1_model
+HorikitaSaku/distilgpt2-finetuned-wikitext2
+rlatt/DialoGPT-large-King-James-Bible-test-accurate
+stillerman/santacoder-julia-fim
+Norrawich/openthaiGPT_finetune_LST
+DarwinAnim8or/GPT-NoSleep-355m
+SummerSigh/GPT2-Instruct-SFT
+luisa-li/kotlin-cp500
+luisa-li/kotlin-cp1500
+acrowth/touring2
+kennethhendricks/DialoGPT-medium-PowPowGaming
+Dahoas/synthetic-pythia-6B-rm-sft-response
+theblackcat102/pythia-1.4b-deduped-sft-r1
+kelvinhang/DialoGPT-medium-badguy2
+Bbrown44/hiphop-ds-v2
+Zekunli/flan-t5-large-extraction-cnndm_1000-all
+Jaehun/glad-donkey-11
+shrinath-suresh/gpt2
+Ahmade/rick-and-morty-v2
+Thetang/mt5-small-finetuned-amazon-en-es
+parinzee/mt5-multitask-finetuned
+michaelnath/glued_code_to_code_model
+hammuneer/my_awesome_market_data_model
+lmqg/mt5-small-itquad-qa
+lmqg/mt5-small-ruquad-qa
+nguyendangsonlam/T5-RL-base
+Trung/gpt2
+onceiapp/gpt2-imdb-pos
+baibars/mt5-small-finetuned-bn_new
+Dagobert42/gpt2-finetuned-material-synthesis
+anujraymajhi/t5-GEC-128len-6e
+somtimz/distilgpt2-finetuned-wikitext2
+nen108/openthaigpt-gpt2-pantipwiki-poc
+zami0011/qqpbksdj
+Mugadzhir/T5_small_webnlg
+lenguist/mt5
+LucaReggiani/t5-small-nlpfinalprojectFinal-xsum
+kejian/cpsc-checkmle
+kejian/cpsc-origcond-3repeat
+kejian/cpsc-origcond-5repeat
+kejian/cpsc-bin15
+vladiyudi/Morty-data
+Br22/codeparrot-ds
+anujraymajhi/t5-GEC-128len-9e
+research-backup/mt5-base-trimmed-it-75000
+bofenghuang/flan-t5-large-dialogsum-fr
+ygorgeurts/movie-quotes
+sugam11/gpt2-rlhf-reward
+vidhikatkoria/godel_restaurants
+jon-tow/positive-movie-critic-1.3b
+research-backup/mt5-base-ruquad-qg-trimmed-15000
+4s4ki/doodownnakumkuing-V2
+jdslatermd/GPT-2-finetuned-papers
+research-backup/mt5-base-ruquad-qg-trimmed-30000
+vonmoltke/fine-tune-test
+Yale-LILY/a2cu-generator
+research-backup/mt5-base-ruquad-qg-trimmed-45000
+lmqg/flan-t5-large-squad-qg
+research-backup/mt5-base-ruquad-qg-trimmed-60000
+digitake/pretrained_with_instructGPT.pt
+timsmallwood/my_awesome_eli5_clm-model
+wentingzhao/gpt2-xl-anlg-distilled-from-gpt3
+RazaK18/DialoGPT-small-harrypotter
+research-backup/mt5-base-ruquad-qg-trimmed-75000
+digitake/chitchat-bot-haha-xyz-1536135
+togethercomputer/GPT-NeoXT-Chat-Base-20B
+nen108/otg-n_g_f_p_6y_t_2y6u-pantipwikiaiml-poc
+saaduddinM/flan-t5-small-samsum
+comradesocrates/DialoGPT-large-io
+kelvinhang/DialoGPT-medium-okakoro
+chenhg8680/mt5-sum-v1
+research-backup/mt5-base-frquad-qg-trimmed-15000
+research-backup/mt5-base-frquad-qg-trimmed-30000
+research-backup/mt5-base-frquad-qg-trimmed-45000
+Kau-stuv/t5-e6-d70k-dim128
+s-1-n-t-h/flan-t5
+MohammadRahimi/mt5-small-persian-dataset
+research-backup/mt5-base-frquad-qg-trimmed-60000
+liton10/Abhi_mt5-small_v1
+research-backup/mt5-base-frquad-qg-trimmed-75000
+huggingtweets/lv10noob
+guyhadad01/mt5-translation
+Huyen2310/Vi-gec5
+research-backup/mt5-base-trimmed-ko-15000-koquad-qg
+google/flan-ul2
+shrinath-suresh/gpt2-60
+research-backup/mt5-base-dequad-qg-trimmed-15000
+zami0011/rickdick
+research-backup/mt5-base-dequad-qg-trimmed-30000
+research-backup/mt5-base-dequad-qg-trimmed-45000
+augustocsc/gpt-m-multi-var
+chaido13/greek-mt5-4ep-384
+theblackcat102/pythia-3b-deduped-sft-r1
+research-backup/mt5-base-dequad-qg-trimmed-60000
+CallMeJeremy/DialoGPT-medium-THREEPIO
+ksaml/mt5-small-finetuned-amazon-en-de
+Leomas/DialoGPT-medium-Leomas
+research-backup/mt5-base-dequad-qg-trimmed-75000
+EleutherAI/pythia-intervention-410m-deduped
+EleutherAI/pythia-intervention-6.9b-deduped
+philschmid/flan-ul2-20b-fp16
+navjordj/t5-base-snl
+HuyenNguyen/Vi-gec7
+Elifr/sentence-paraphraser
+stillerman/santacoder-julia-no-fim
+ArthurZ/flan-ul2
+RJZauner/distilgpt2_eli5_causal_model
+raghuram13/autotrain-translation_english-38691101815
+liyin/nol2pro
+research-backup/mt5-base-jaquad-qg-trimmed-90000
+research-backup/mt5-base-jaquad-qg-trimmed-120000
+timsmallwood/causal-pplus-ac-model
+tanoManzo/bloom-attitude-few10p
+huggingtweets/auspolmate
+SummerSigh/Pythia70m-Safety-Policy-Prosocial
+KonradSzafer/flan-t5-small-samsum
+research-backup/mt5-base-esquad-qg-trimmed-15000
+lambdalabs/pythia-1.4b-deduped-synthetic-instruct
+lambdalabs/pythia-2.8b-deduped-synthetic-instruct
+SummerSigh/Pythia410m-Safety-Policy-Prosocial
+research-backup/mt5-base-ruquad-qg-trimmed-90000
+umm-maybe/SportsFanGhost
+research-backup/mt5-base-ruquad-qg-trimmed-120000
+smemon/gpt2xl
+research-backup/mt5-base-esquad-qg-trimmed-30000
+marcus2000/T5-RLS2000
+heegyu/ajoublue-gpt2-medium-dialog
+kejian/cpsc-ulbaseline
+kejian/cpsc-log5-bin4-3repeat
+kejian/cpsc-bincond-rtp-and-bad
+kejian/cpsc-log15-bin4-3repeat
+qingyan/autotrain-t5-base-ft-38781101938
+yuan-sf63/word_mask_P_16
+research-backup/mt5-base-esquad-qg-trimmed-45000
+nakcnx/TGPT-2-345M
+research-backup/mt5-base-frquad-qg-trimmed-90000
+lmqg/mt5-small-esquad-qa
+research-backup/mt5-base-frquad-qg-trimmed-120000
+Zekunli/flan-t5-large-da-multiwoz2.1_80
+edbeeching/gpt-neox-20b-imdb_adapter-lr5e-4-imdb-peft-adapter-removed
+kejian/cpsc-origcond-rtp-and-bad
+chaido13/greek-mt5-5ep-384
+heegyu/ajoublue-gpt2-medium-summarization
+Ahmade/doctor_chatbot_v2
+vocabtrimmer/mt5-small-jaquad-qg-trimmed-ja
+research-backup/mt5-base-jaquad-qg-trimmed
+research-backup/mt5-base-trimmed-de-15000-dequad-qg
+vocabtrimmer/mt5-small-koquad-qg-trimmed-ko
+chaido13/greek-mt5-4ep-512
+research-backup/mt5-base-koquad-qg-trimmed
+research-backup/mt5-base-trimmed-ja-15000
+research-backup/mt5-base-trimmed-ja-30000
+research-backup/mt5-base-trimmed-ja-75000
+research-backup/mt5-base-trimmed-ja-120000
+research-backup/mt5-base-trimmed-ja-90000
+research-backup/mt5-base-trimmed-ja-45000
+efromomr/rugpt3small_based_on_gpt2-tat_model
+research-backup/mt5-base-trimmed-ja-60000
+research-backup/mt5-base-trimmed-ru-75000
+research-backup/mt5-base-trimmed-ru-120000
+vocabtrimmer/mt5-small-ruquad-qg-trimmed-ru
+research-backup/mt5-base-ruquad-qg-trimmed
+research-backup/mt5-base-trimmed-ru-90000
+Dmitriy007/rugpt2_medium_gen_comments_ep3_20230304
+Charinet/flan-t5-base-samsum
+vocabtrimmer/mt5-small-trimmed-ja
+research-backup/mt5-base-trimmed-fr-75000
+research-backup/mt5-base-trimmed-de-120000
+research-backup/mt5-base-trimmed-ja
+research-backup/mt5-base-trimmed-fr-90000
+vocabtrimmer/mt5-small-frquad-qg-trimmed-fr
+research-backup/mt5-base-trimmed-ko-15000
+research-backup/mt5-base-trimmed-es-120000
+research-backup/mt5-base-trimmed-de-75000
+research-backup/mt5-base-frquad-qg-trimmed
+research-backup/mt5-base-trimmed-ko-30000
+research-backup/mt5-base-trimmed-de-90000
+vocabtrimmer/mt5-small-trimmed-ko
+vocabtrimmer/mt5-small-esquad-qg-trimmed-es
+research-backup/mt5-base-trimmed-es-75000
+research-backup/mt5-base-trimmed-ko
+research-backup/mt5-base-trimmed-es-90000
+research-backup/mt5-base-trimmed-ko-45000
+nan-dre/maneleGPT-medium
+vocabtrimmer/mt5-small-itquad-qg-trimmed-it
+research-backup/mt5-base-trimmed-it-90000
+vocabtrimmer/mt5-small-trimmed-ru
+research-backup/mt5-base-trimmed-ko-60000
+research-backup/mt5-base-dequad-qg-trimmed
+research-backup/mt5-base-trimmed-ru
+vocabtrimmer/mt5-small-trimmed-fr
+research-backup/mt5-base-trimmed-fr-15000
+research-backup/mt5-base-trimmed-fr
+Tritkoman/EnglishtoOldTupiV1
+research-backup/mt5-base-trimmed-fr-30000
+research-backup/mt5-base-trimmed-fr-45000
+research-backup/mt5-base-trimmed-de
+research-backup/mt5-base-trimmed-fr-60000
+research-backup/mt5-base-trimmed-de-15000
+vocabtrimmer/mt5-small-trimmed-es
+research-backup/mt5-base-trimmed-de-30000
+research-backup/mt5-base-trimmed-es
+navjordj/t5-large-snl-not-evaluated
+huggingtweets/darthputinkgb
+research-backup/mt5-base-trimmed-de-45000
+Jaehun/silvery-dream-13
+sai1881/bloom-560m-finetuned-wikitext2
+vocabtrimmer/mt5-small-trimmed-it
+huggingtweets/randyrrquaid
+SummerSigh/Pythia410m-Instruct-SFT
+research-backup/mt5-base-trimmed-de-60000
+research-backup/mt5-base-trimmed-it
+research-backup/mt5-base-trimmed-es-15000
+research-backup/mt5-base-trimmed-es-30000
+huggingtweets/gayety-lgbt-pride
+research-backup/mt5-base-trimmed-es-45000
+research-backup/mt5-base-trimmed-es-60000
+research-backup/mt5-base-trimmed-it-15000
+research-backup/mt5-base-trimmed-it-30000
+research-backup/mt5-base-trimmed-it-45000
+research-backup/mt5-base-trimmed-it-60000
+smartik/mt5-small-finetuned-gec-0.2
+research-backup/mt5-base-trimmed-ja-105000
+research-backup/mt5-base-trimmed-ru-105000
+RehanP123/DialoGPT-large-kermit
+huggingtweets/jason_jorjani-karpathy
+saaduddinM/flan-t5-small-cnn_dailymail
+Zekunli/flan-t5-large-extraction-cnndm_2000-all-ep10
+research-backup/mt5-base-trimmed-fr-105000
+Zekunli/flan-t5-large-extraction-cnndm_4000-all-ep20
+lmqg/flan-t5-large-squad-ae
+research-backup/mt5-base-trimmed-de-105000
+research-backup/mt5-base-trimmed-es-105000
+research-backup/mt5-base-trimmed-it-105000
+kevinscaria/joint_tk-instruct-base-def-pos-neg-neut-restaurants
+CreatorPhan/Healthcare-QnA
+vocabtrimmer/mt5-small-trimmed-ja-jaquad-qg
+trutujamurlidhar/gpt2_finetuned_addition_arithmetic_10_100_hash_ns
+dinesht/t5-small-finetuned-wikisql
+Zekunli/flan-t5-large-extraction-cnndm_4000-all-hint_hit-ep20
+Jaehun/icy-blaze-24
+Zekunli/flan-t5-large-extraction-cnndm_4000-all-hint_precision-ep10
+navaaesarosh/saqi_v0.5
+vocabtrimmer/mt5-small-trimmed-ru-ruquad-qg
+ayaderaghul/datascience-style-completion
+shahules786/Safetybot-T5-base
+arver/t5-small-boolean-qgen
+arver/t5-base-boolean-qgen-direct-finetune
+arver/t5-base-boolean-qgen_pretrained-finetuned
+Zekunli/flan-t5-large-extraction-cnndm_2000-all-hint_precision-ep10
+mqy/mt5-small-finetuned
+huolongguo10/CDial-GPT2-LCCC-Base-copy
+FYP19/my_model
+decapoda-research/llama-65b-hf
+decapoda-research/llama-30b-hf
+decapoda-research/llama-13b-hf
+decapoda-research/llama-7b-hf
+sai1881/bloom-560m-finetuned-wikitext2-finetuned-wikitext2
+navjordj/t5-large-snl
+haebel/distilgpt2-finetuned-shakespeare
+nlp-waseda/comet-v2-gpt2-small-japanese
+thaomer/le-fine-tune-mt5-small
+TakoIsATaco/DialoGPT-small-ShinAI
+vocabtrimmer/mt5-small-trimmed-fr-frquad-qg
+thaomer/le-fine-tune-mt5-base
+BreadAi/MusePy-1-2
+convaise-idp/flan-t5-base-finetuned-length_control_token
+pszemraj/flan-t5-xl-grammar-synthesis
+vocabtrimmer/mt5-small-trimmed-ko-koquad-qg
+Suchinthana/T5-Base-Wikigen
+Joeni/distilgpt2-finetuned-shakespeare
+EleutherAI/pythia-intervention-70m-deduped
+mqy/mt5-small-finetuned-new2
+oguuzhansahin/flan-t5-large-samsum
+boboto/LLaMA-65B-HF
+alexsha/t5-large-finetuned-English-to-BASH-NL2BASH-customv2
+mqy/mt5-small
+gabriellabollici/t5-base-neutralization
+bstds/id-mt5-qa
+Bitsy/Not-LLaMA-7B-Pytorch-Transformer-Compatible
+lambdalabs/pythia-6.9b-deduped-synthetic-instruct
+arfu/cn-mt-small
+henryscheible/gpt2_winobias_classifieronly
+henryscheible/gpt2_winobias_finetuned
+henryscheible/gpt2_stereoset_classifieronly
+liyin/mt5-small-finetuned-arxiv-summarization
+bikpy/codet5-javascript-bug-refine
+Jaehun/rose-sponge-25
+alexsha/t5-small-finetuned-NL2BASH-customv3
+ricecake/LLaMA-7B-TF-format
+arfu/extract-mt-small
+vocabtrimmer/mt5-small-trimmed-es-esquad-qg
+emifjo/distilgpt2-finetuned-wikitext2
+Zekunli/flan-t5-large-da-multiwoz2.0_400-new
+Zekunli/flan-t5-large-da-multiwoz2.0_800-new
+vocabtrimmer/mt5-small-trimmed-it-itquad-qg
+lmqg/flan-t5-large-squad-qg-ae
+pvduy/ppo_pythia6B_sample
+anforsm/distilgpt2-finetuned-common-voice
+Zekunli/flan-t5-large-extraction-cnndm_2000-all-hint_precision-ep2
+Upword/gpt-neox-20b-embeddings
+Aldrich/pythia-3B-deduped-RL-tuned
+huggingtweets/byu-elonmusk
+Br22/br_CLM
+lambdalabs/pythia-12b-deduped-synthetic-instruct
+makanju0la/unifiedqa-v2-t5-base-1363200-finetuned-qa-doqa
+spacemanidol/flan-t5-large-6-4-xsum
+timsmallwood/causal-pplus-ac-model-v0.002
+henryscheible/gpt2_crows_pairs_classifieronly
+henryscheible/gpt2_crows_pairs_finetuned
+curt-tigges/gpt2-negative-movie-reviews-full-rlhf-model
+spacemanidol/flan-t5-large-2-6-cnndm
+spacemanidol/flan-t5-large-6-2-xsum
+spacemanidol/flan-t5-large-6-3-xsum
+navjordj/t5-base-cnndaily
+luisa-li/kotlin-finetuned2
+spacemanidol/flan-t5-base-4-6-cnndm
+spacemanidol/flan-t5-large-6-1-cnndm
+spacemanidol/flan-t5-large-6-2-cnndm
+spacemanidol/flan-t5-large-6-3-cnndm
+spacemanidol/flan-t5-large-6-4-cnndm
+spacemanidol/flan-t5-large-6-5-cnndm
+spacemanidol/flan-t5-large-6-5-xsum
+spacemanidol/flan-t5-large-6-1-xsum
+spacemanidol/flan-t5-large-5-6-xsum
+spacemanidol/flan-t5-large-4-6-xsum
+spacemanidol/flan-t5-large-3-6-xsum
+spacemanidol/flan-t5-large-2-6-xsum
+spacemanidol/flan-t5-large-1-6-xsum
+spacemanidol/flan-t5-large-4-4-xsum
+spacemanidol/flan-t5-large-5-5-xsum
+ivanlai/mt5-summarize-ch_trad-sweeps
+huggingtweets/nathaniacolver-theonion
+shalomma/llama-7b-embeddings
+huggingtweets/rihanna-womeninthearts
+huggingtweets/joebiden-kingjames
+huggingtweets/elonmusk-sandyboynton
+jacobmorrison/test-t5-qplus-base
+memogamd/my_awesome_billsum_model
+MohamedRashad/LLaMA-7B
+benlipkin/gpt2_1024_wikitext_100M_20_e12e6d4615e6a1e5
+huggingtweets/nathaniacolver
+juancopi81/mmmbachtrack_4b
+juancopi81/mmmbachbar_4b
+theblackcat102/pythia-1.4b-deduped-sft-r2
+0x70DA/t5-base-finetuned-arxiv2
+DunnBC22/flan-t5-base-text_summarization_data
+DunnBC22/distilgpt2-2k_clean_medical_articles_causal_language_model
+Zekunli/flan-t5-large-extraction-cnndm_2000-all-hint_precision-ep1
+Roy029/mt5_py5000
+MrLamBam/DialoGPT-medium-LUKEBot
+ryusangwon/gpt2-codeparrot
+vsevolodl/flan-t5-base-sum
+Zekunli/flan-t5-large-da-multiwoz2.0_80-new
+christian8870/gpt2-imdb-pos-v4
+AlexWortega/instruct_rugptSmall
+zdaniar/my_awesome_eli5_clm-model
+vocabtrimmer/mt5-small-trimmed-ja-jaquad-qa
+Den4ikAI/instruct_medium
+alibidaran/t5-small-medical_transcription
+alibidaran/mt5-small-medical_transcription
+mqy/mt5-small-finetuned-new3
+igorktech/ent5-base-paraphraser-detox
+Zeda/DialoGPT-Medium-ZedaBot
+saiful9379/Bangla_GPT2
+schreon/gpt2large-lhm-08
+benlipkin/gpt2_512_wikitext_100M_20_d4f8870be67f0770
+yuan-sf63/chenyu_mask_32_
+shahules786/Safetybot-mt5-base
+kevincstowe/ra_gpt
+justinian336/salvadoran-news-summarizer-base
+justinian336/salvadoran-news-summarizer-base-auto
+huggingtweets/ipsd204
+vocabtrimmer/mt5-small-trimmed-ko-koquad-qa
+navjordj/t5-base-cnndm
+braindao/flan-t5-cnn
+drive087/my_awesome_billsum_model
+MiguelAngeloCwb/mt5-small-finetuned-amazon-en-es
+vsevolodl/flan-t5-large-sum
+frangkli/hf-tutorial
+vocabtrimmer/mt5-small-trimmed-ru-ruquad-qa
+vocabtrimmer/mt5-small-trimmed-it-itquad-qa
+thefrigidliquidation/pythia-1b-lightnovels
+benlipkin/gpt2_256_wikitext_100M_20_26e50955232e9b5c
+luhehelen/t5-small-finetuned-xsum
+swype/deepshard-7B-raw
+swype/deepshard-30B-raw
+swype/deepshard-65B-raw
+cheonboy/kogpt2-smalltalk_50_model
+ntas/charles-dickens-gpt2
+Chaklam/codeparrot-ds-accelerate
+DunnBC22/distilgpt2-CLM_US_Economic_News_Articles
+heegyu/ajoublue-gpt2-base-dialog
+cheonboy/kogpt2_small50
+mqy/mt5-small-finetuned-try2
+heegyu/gpt2-toxic-sequence-classification
+mqy/mt5-small-finetuned-try3
+Delcos/12bL
+christian8870/gpt2-imdb-pos-v5
+joetey/glued_code_to_code_model
+lambdalabs/pythia-6.9b-deduped-synthetic-lambda-jeopardy
+Chaklam/test-summ-accelerate
+DeathReaper0965/gpt2-large-code-generator
+alexsha/t5-large-finetuned-NL2BASH-customv3
+Zekunli/flan-t5-large-da-multiwoz2.1_400-new
+Bitsy/llama-7b-hfcompatible-clean
+vocabtrimmer/mt5-small-trimmed-es-esquad-qa
+drive087/dump1
+benlipkin/gpt2_128_wikitext_100M_20_6adb2593f59e6343
+christian8870/gpt2-imdb-pos-v6
+drive087/wikinews_mt5-thai-sentence-sum
+Jaiiiiii/my_awesome_eli5_clm-model
+christian8870/gpt2-imdb-pos-v7
+loubnabnl/santacoder-393B-tokens
+dhanunjaya/distilgpt2-finetuned-wiki_testing
+BreadAi/StoryPy
+camelids/llama-7b-fp16-safetensors
+camelids/llama-13b-fp16-safetensors
+camelids/llama-33b-fp16-safetensors
+camelids/llama-65b-fp16-safetensors
+Falcon2006VN/GPasT-small-model
+RikhterK/my_awesome_eli5_clm-model
+zirui3/gpt_1.4B_oa_instruct
+RJZauner/t5-small-samsum
+lfgfarias/my_awesome_eli5_clm-model
+mekjr1/t5-base-finetuned-es-to-pua
+okazaki-lab/japanese-reversed-gpt2-medium-unidic
+mekjr1/t5-base-finetuned-unam-es-to-pua
+drive087/thsum_mt5-thai-sentence-sum
+benlipkin/gpt2_64_wikitext_100M_20_5cd4da41b7fe7e3d
+drive087/wikinews_t5-small
+mystgg/ruble
+edbeeching/gpt-neox-20b-imdb-lora-lr5e-5-adapter-merged
+wentingzhao/gpt2-xl-rocstories
+karan18/my_awesome_model
+EleutherAI/pythia-intervention-1.4b-deduped
+sanagnos/pythia-12b-sft-oasst
+huggingtweets/smilingobject
+shannb/t5-small-finetuned-TEC-to-eng
+xwjzds/pretrain
+BreadAi/MuseMini
+swartout/shakespeare-gpt
+whu9/multi_doc_sum
+drive087/mt5_news_sum
+shannb/t5-small-finetuned-TEC-to-eng-two
+igorktech/sc-gpt-upf
+spacemanidol/flan-t5-large-5-6-cnndm
+EleutherAI/pythia-intervention-long-1.4b-deduped
+benlipkin/gpt2_32_wikitext_100M_20_4271d55d34c8c387
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-kmeans-v1
+huggingtweets/jaxoninaction
+huggingtweets/thatmosskid
+dhanunjaya/distilgpt2-finetuned-pragmatic-1
+kowsiknd/bloom-560m-netflix
+bikpy/gpt2-javascript-auto-repair
+RJZauner/t5-small-news-pt
+jslin09/bloom-560m-finetuned-fraud
+kowsiknd/bloom-560m-wikitext
+edbeeching/gpt-neox-20b-imdb-lora-lr5e-4-adapter-merged
+benlipkin/gpt2_16_wikitext_100M_20_1c15056cf51bff47
+kowsiknd/bloom-zsre
+totem37/RASAT-Small
+dvruette/oasst-pythia-12b-6000-steps
+imperialwool/ai-dungeon-medium-rus
+pvduy/pythia-6B-ppo-summarize-tldr
+pvduy/pythia-1B-ppo-summarize-tldr
+pvduy/pythia-125M-ppo-summarize-tldr
+andreaskoepf/oasst-1_12b_3000
+andreaskoepf/oasst-1_12b_1500
+OpenAssistant/oasst-sft-1-pythia-12b
+AnonymousSub/SciFive_MedQuAD_question_generation
+gloriaguo1986/t5-small-finetuned-xsum
+benlipkin/gpt2_8_wikitext_100M_20_27a3016f17f9dd51
+LucaReggiani/t5-small-nlpfinalprojectFinal_2-xsum
+vocabtrimmer/mt5-small-jaquad-qa-trimmed-ja
+andreaskoepf/oasst-1_12b_4500
+xiaomengdotcom/Chatgpt-harryP
+FahriBilici/crypto_model_gpt2
+FahriBilici/crypto_model_gpt2_new_dataset
+baseplate/instructor-large-1
+huggingtweets/elonmusk-peta
+apoorv627g/FlanT5_MWPgen
+vocabtrimmer/mt5-small-koquad-qa-trimmed-ko
+adhiraj1998/prompt-extend
+thicchamz/gpt2_finetune_instagram_caption_generator
+jmhuerta/codeparrot-small
+Brez/mt5-small-finetuned-amazon-en-es
+kangketik/autotrain-opus-100-40115104344
+JuwonOh/gpt2_mitre
+vocabtrimmer/mt5-small-ruquad-qa-trimmed-ru
+r4zzchaudhary/tathyanka-nlq
+mqy/mt5-small-finetuned-2
+Zekunli/flan-t5-large-da-multiwoz2.1_400-ep10
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep10
+Zekunli/flan-t5-large-extraction-cnndm_2000-all-loss-ep20
+Zekunli/flan-t5-large-extraction-cnndm_4000-all-loss-ep10
+BlackSamorez/llama-13b-hf-tensor-parallel
+grandestroyer/joefreaks
+iamplus/bloomz-7b1-v1
+navjordj/t5-large-cnndm
+Vengaza/distilgpt2-squad
+Maghrebi/Spanish_to_Ladino
+EstherT/en-fr_translator
+gaussalgo/T5-LM-Large_Canard-HotpotQA-rephrase
+douglasdcho/gpt2-imdb-pos-v2
+timpal0l/test-distilgpt2-finetuned-common-voice
+vocabtrimmer/mt5-small-frquad-qa-trimmed-fr
+EJaalborg2022/mt5-small-finetuned-beer-en
+timsmallwood/causal-pplus-ac-model-v0.001
+rohitsuv/codeparrot
+alexsha/t5-small-finetuned-English-to-BASH
+alexsha/t5-small-finetuned-English-to-BASH-customv3
+alexsha/t5-large-finetuned-English-to-BASH-customv3
+zaaabik/gpt2-wikitext2-zaaabik
+Kasper7953/temp
+vocabtrimmer/mt5-small-esquad-qa-trimmed-es
+Tritkoman/GermantoHunsrikV1
+yaashwardhan/fyp
+suryakiran786/5-fold-stratified-cv-flan-t5-large-with-section-description-complete-data-0
+suryakiran786/5-fold-stratified-cv-flan-t5-large-with-section-description-complete-data-1
+EleutherAI/pythia-1b
+suryakiran786/5-fold-stratified-cv-flan-t5-large-with-section-description-complete-data-2
+Amisha182001/autodescgpt2
+SummerSigh/t5-ROTLabel-to-Prompt
+suryakiran786/5-fold-stratified-cv-flan-t5-large-with-section-description-complete-data-3
+Corianas/64CharGPT
+suryakiran786/5-fold-stratified-cv-flan-t5-large-with-section-description-complete-data-4
+r4zzchaudhary/tathyanka-nlq-final
+vocabtrimmer/mt5-small-itquad-qa-trimmed-it
+Thewillonline/distilgpt2-finetuned-wikitext2
+trutujamurlidhar/100_1000_hash_ns
+xwjzds/pretrain512
+trutujamurlidhar/100_1000_hash_ns_reversed
+Amisha182001/autodesc2023
+Yeongjin/KOGPT2_Persona_Finetuned_ChaDdol
+Yeongjin/KOGPT2_Persona_Finetuned_Arang
+Yeongjin/KOGPT2_Persona_Finetuned_Gahee
+Yeongjin/KOGPT2_Persona_Finetuned_Hyoung
+JeffreyLau/SikuGPT2
+Yeongjin/KOGPT2_Persona_Finetuned_Donatelo
+projjal/de-en-model
+Yeongjin/KOGPT2_Persona_Finetuned_Britica
+r4zzchaudhary/tathyanka-nlq-depositandlending
+EJaalborg2022/mt5-small-finetuned-beer-ctg-en
+thanhtc/monot5-large-ft
+zaaabik/gpt2-arxiv-clm
+ihgn/similar-questions
+AlexWortega/instruct_rugptMedium
+Teyjus/mt5-small-finetuned-amazon-en-es
+mrbalazs5/t5-simple-qg-eng
+Yeongjin/Polyglot_small_Persona_Finetuned_Chaeddol
+projjal/en-fr-model-t5-small
+Yeongjin/Polyglot_small_Persona_Finetuned_Arang
+dshin/flan-t5-ppo
+YTTD/DialoGPT-medium-saf
+Yeongjin/Polyglot_small_Persona_Finetuned_Hyoung
+Yeongjin/Polyglot_small_Persona_Finetuned_Gahee
+imperialwool/ai-dungeon-large-en
+Yeongjin/Polyglot_small_Persona_Finetuned_Donatelo
+huggingtweets/jacksepticeye
+Yeongjin/Polyglot_small_Persona_Finetuned_Britica
+huggingtweets/neriilune
+huggingtweets/madqueeeeen
+huggingtweets/korvid_snd
+Yeongjin/Polyglot_small_Persona_Finetuned_Male1
+yunhaeng/t5_summarization
+Yeongjin/Polyglot_small_Persona_Finetuned_Female1
+vocabtrimmer/mt5-small-trimmed-fr-frquad-qa
+timpal0l/gpt-sw3-356m
+Amalq/flan-t5-dialogue
+openthaigpt/openthaigpt-gpt2-instructgpt-poc-0.0.4
+mqy/mt5-small-text-sum-1
+mqy/mt5-small-text-sum-2
+mqy/mt5-small-text-sum-3
+helenai/t5-small-ov
+kobkrit/kumpun
+epinnock/santacoder-finetuned-the-stack-bash
+kobkrit/kumpun2
+egonrp/gpt2-small-portuguese
+RocioUrquijo/EN-DE-TR-TED
+Deysi/google-mt5-deysi-traduction-zh-sp
+egonrp/gpt2-wikiwriter-medium-portuguese
+mqy/mt5-small-fs-1
+helenai/gpt2-ov
+Cpod/t5-small-finetuned-xsum-3-epochs
+Deysi/google-mt5-base-deysi-traduction-zh-sp
+huggingtweets/billiepiper
+huggingtweets/jcdedireita
+mwp/FinalModel-mawps-t5-only-lm
+huggingtweets/thenataliemars
+huggingtweets/michellexotter
+huggingtweets/cherryanima
+huggingtweets/nyxxx696
+huggingtweets/elsasingular
+huggingtweets/elsasingular-michellexotter-nyxxx696
+jasondubon/HubermanGPT-small-v1
+SummerSigh/T5-Base-Rule-Of-Thumb-RM
+yijiyap/finscan_gpt2_test
+Cpod/t5-small-finetuned-cnn_dailymail-3-epochs
+dshin/flan-t5-ppo-testing
+iamplus/bloomz-7b1-cot-v1
+YTTD/DialoGPT-medium-safv2
+SummerSigh/T5-Base-EvilPrompterRM
+dshin/flan-t5-ppo-testing-violation
+dshin/flan-t5-ppo-user-b
+byoungsuk/my-bert-fine-tuned
+dshin/flan-t5-ppo-user-h-use-violation
+dshin/flan-t5-ppo-user-f-use-violation
+dshin/flan-t5-ppo-user-e-use-violation
+dshin/flan-t5-ppo-user-a-use-violation
+YTTD/DialoGPT-medium-safv3
+spdenisov/flan-t5-small-finetuned-en-to-ro
+mqy/mt5-small-text-sum-4
+Maciel/T5Corrector-base-v2
+Ragnov/T5-Base-Grammar-Checker
+vandung/t5-para
+apoorvumang/kgt5v2-base-wikikg90mv2
+dvruette/oasst-pythia-12b-flash-attn-5000-steps
+dvruette/oasst-pythia-6.9b-4000-steps
+Gustav-mb/t5-end2end-questions-generation
+apoorvumang/kgt5v2-small-wikidata5m
+dshin/flan-t5-ppo-user-a-first-run
+mqy/mt5-small-text-sum-5
+kalcho100/t5-base-finetuned
+violetamaral/summarization
+mqy/mt5-small-text-sum-6
+mqy/mt5-small-text-sum-7
+emozilla/pythia-long-6.9b-scifi-fantasy-673-p6144_c1920_y8192-epoch4
+the-coorporation/t5-qgar
+potsawee/t5-large-generation-squad-QuestionAnswer
+marcus2000/gpt_simplificator
+DolphinBrothersUnite/flan-t5-xxl-supervised
+NBayer/flan-samsum
+tbboukhari/MT0-small-fr
+kkuramitsu/t5jep
+Phoenix334/T5-small-finetuned-xsum
+sharanya02/t5-end2end-questions-generation
+AinhoaC/sp-qu-translation
+Kesian/general_t5_nmt_test
+yasminesarraj/flan-t5-small-samsum
+trutujamurlidhar/10_100_hash_ns_prefix0_mul
+michaelnath/c2c_model_with_chrf_and_nonzero_reps
+eminecg/deneme
+0x70DA/t5-v1_1-base-finetuned-sci_summ
+ParastooC/t5_small_A_SapBERT
+vj99/output_dir
+nguyendangsonlam/godel_movie
+dansa08/t5-small-inglish
+vy2388/T5_base_model
+mohammadhia/t5_recommendation_sports_equipment_english
+rpartha/t5-small-finetuned-xsum
+kennethhendricks/DialoGPT-medium-jared-hendricks-gen1
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-0
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-0
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-0-use-violation
+dshin/flan-t5-ppo-user-a-batch-size-8-epoch-0
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-0
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-0-use-violation
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-0-use-violation
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-1
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-1
+dshin/flan-t5-ppo-user-a-batch-size-8-epoch-1
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-1-use-violation
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-1
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-1-use-violation
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-1-use-violation
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-2
+dshin/flan-t5-ppo-user-a-batch-size-8-epoch-2
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-2
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-2-use-violation
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-2-use-violation
+dshin/flan-t5-ppo-user-a-batch-size-8-epoch-3
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-2
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-3
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-3-use-violation
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-3
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-2-use-violation
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-3-use-violation
+dshin/flan-t5-ppo-user-a-batch-size-8-epoch-4
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-3
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-4
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-4-use-violation
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-4
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-3-use-violation
+dshin/flan-t5-ppo-user-h-batch-size-8-epoch-4-use-violation
+dshin/flan-t5-ppo-user-f-batch-size-8-epoch-4
+dshin/flan-t5-ppo-user-e-batch-size-8-epoch-4-use-violation
+Zekunli/flan-t5-large-extraction-cnndm_8000-all-loss-ep10
+eminecg/deneme-2
+eminecg/Lawsuit-Petition-TextGen-Gpt2-Preprocess-Dataset
+sharanya02/capstone-t5-questions-generation
+huggingtweets/deepakchopra
+rockmiin/ml-codeparrot
+AliChazz/GPT2_Fine_Tune_Requirement_Produce
+BreadAi/MuseCan-1-1
+Linggg/t5_summary
+danitamayo/gpt2-qa
+Yeongjin/KOGPT2_Persona_Finetuned_Kimsam
+Ekgren/distilgpt2-finetuned-common-voice
+projjal/pt-en-model
+Yeongjin/Polyglot_small_Persona_Finetuned_Kimsam
+toloka/gpt2-large-supervised-prompt-writing
+tanoManzo/bloom-attitude
+vy2388/T5_base_model_v2
+soBeauty/distilgpt2-finetuned-bbc
+aszfcxcgszdx/article-summarizer-t5-large
+spdenisov/flan-t5-large-clu
+zhengudaoer/distilgpt2-finetuned-wikitext2
+DunnBC22/flan-t5-base-text_summarization_data_6_epochs
+SummerSigh/T5-Base-Rule-Of-Thumb-RM2
+aszfcxcgszdx/summarizer_v3
+nash0823/my-awesome-model
+jilsa212/statement_50_processed
+aszfcxcgszdx/t5-large-en-de
+aszfcxcgszdx/reverse-summarizer
+ParastooC/t5_small_SA_SapBERT
+Modelchi/DialoGPT-small-PinkiePie
+fab-an/my_lang-model
+aszfcxcgszdx/dialog-summarizer-t5-large
+fab-an/my_awesome_eli5_clm-model
+swang2000/distilgpt2-finetuned-wikitext2
+ParastooC/t5_small_SA
+huggingtweets/tiborudvari
+ParastooC/t5_clinical_SA
+AustinCarthy/GPT2_10M_benign_URLs
+rpartha/t5-small-finetuned-experiment
+DiogenesGois/DialoGPT-medium-Rick
+Intel/gpt-j-6B-int8-dynamic
+Westybot/DialoGPT-small-westy
+Rorical/bloom-1b7-lightnovel
+zhengudaoer/Wenzhong-GPT2-110M-finetuned-wikitext2
+ryusangwon/distilgpt2-eli5
+bluenguyen/movie_chatbot_v1
+mxmax/Chinese_Chat_T5_Base
+Atnafu/mt5-base-squad2-fin
+snoop2head/KoBrailleT5-small-v1
+emifjo/recipe-generation
+TiborUdvari/distilgpt2-finetuned-wikitext2
+bluenguyen/movie_chatbot_large_v1
+zhengudaoer/Wenzhong-GPT2-110M-finetuned-wikitext2-2
+cjwilliams/codet5-base-python-sum
+LordDanielDE/DialoGPT-medium-Hina
+lewtun/GPT-NeoXT-Chat-Base-20B-finetuned-elif5
+zhengudaoer/Wenzhong-GPT2-110M-finetuned-wikitext2-3
+ealarcong/mt5-small-finetuned-amazon-en-es
+emelnov/t5_title_g_b
+emelnov/t5_summarization_g_b
+emelnov/t5_tags_g_b
+vickysirwani/mt5-small-finetuned-amazon-en-es
+timmartin/my_awesome_eli5_clm-model
+soBeauty/distilgpt2-ThaiCLM-Thairath
+TiborUdvari/distilgpt2-finetuned-hitchhiker
+soBeauty/gpt2-base-thai-ThaiCLM-Thairath-base-thai
+plumbr/my_awesome_billsum_model
+edbeeching/gpt2_reward_model
+ITG/DialoGPT-medium-spanish-chitchat
+soBeauty/gpt2-base-thai-ThaiCLM-News-base-thai_special
+femboysLover/rugpt3_medium_otvetmailru
+nobono/test_model
+edbeeching/gpt2_stack-exchange-paired_reward_model
+nobono/gpt2_model
+robinsongh381/neox-oig-v1
+xwjzds/sentence_reconstruct
+whu9/multi_doc_sum_0314_40500
+khakha121/my_awesome_billsum_model
+bbhattar/flan-t5-samsum
+lvwerra/gpt2-xl-stackexchange
+Chriz94/gpt2_HubermanPodcast
+dshin/flan-t5-ppo-user-h-batch-size-64
+dshin/flan-t5-ppo-user-f-batch-size-64
+dshin/flan-t5-ppo-user-f-batch-size-64-use-violation
+tontokoton/mentalgpt-v0.0.1
+dshin/flan-t5-ppo-user-h-batch-size-64-use-violation
+nobono/gpt2_medium_model_2
+stjiris/t5-portuguese-legal-summarization
+ashwinR/CodeExplainer
+dshin/flan-t5-ppo-user-e-batch-size-64-use-violation
+dshin/flan-t5-ppo-user-e-batch-size-64
+edbeeching/gpt2-xl-stackexchange_stack-exchange-paired_reward_model_train_subset_1000
+mwp/FinalModel-mawps-t5-t5-continued-lm
+timsmallwood/causal-pplus-ac-model-v0.005
+huggingtweets/iwontsmthing1
+xwjzds/pretrain_rnn
+michaelnath/C2C_Model_03_14_2023
+AustinCarthy/MixGPT2
+Isotonic/gpt_neox_225M
+DunnBC22/gpt2-Causal_Language_Model-AG_News
+huggingtweets/barackobama-joebiden-realdonaldtrump
+bryanmildort/gpt-2-notes
+truong9499/buystuff_gpt
+nobono/gpt2_medium_basic_lg_checkpoint
+kejian/cpsc-quark10-log5
+kejian/cpsc-quark10-3rep
+kejian/cpsc-quark10-base
+kejian/cpsc-quark10-log5-5rep
+kejian/cpsc-quark10-5rep
+Fan2/gpt2-confluence
+Intel/gpt-j-6B-int8-static
+joetey/testing_preprocess
+joetey/CODETRANS_15_40_kmeans_STrans_LINEAR_PERCENTILE_3_CODE-T5_0.3_8_0.01_1_0.01
+noahkim/KoT5_Translate_ko_jp
+joetey/50_CODETRANS_15_40_kmeans_STrans_LINEAR_PERCENTILE_3_CODE-T5_0.3_8_0.01_1_0.01
+joetey/50_CODETRANS_15_40_kmeans_STrans_LINEAR_SHARED_3_CODE-T5_0.3_8_0.01_1_0.01
+joetey/50_CODETRANS_15_40_kmeans_STrans_QUADRATIC_PERCENTILE_3_CODE-T5_0.3_8_0.01_1_0.01
+joetey/50_CODETRANS_15_40_kmeans_STrans_QUADRATIC_SHARED_3_CODE-T5_0.3_8_0.01_1_0.01
+joetey/50_CODETRANS_15_40_dbscan_STrans_LINEAR_PERCENTILE_3_CODE-T5_0.3_8_0.01_1_0.01
+masakhane/generative_reader_nq_squad_v2
+joetey/50_CODETRANS_15_40_dbscan_STrans_LINEAR_SHARED_3_CODE-T5_0.3_8_0.01_1_0.01
+joetey/50_CODETRANS_15_40_dbscan_STrans_QUADRATIC_PERCENTILE_3_CODE-T5_0.3_8_0.01_1_0.01
+joetey/50_CODETRANS_15_40_dbscan_STrans_QUADRATIC_SHARED_3_CODE-T5_0.3_8_0.01_1_0.01
+joetey/50_CODETRANS_15_50_kmeans_STrans_LINEAR_PERCENTILE_3_CODE-T5_0.3_8_0.01_1_0.01
+Shiangi/shiangi_model
+marco-c88/distilgpt2-finetuned-wikitext2
+vocabtrimmer/mt5-small-jaquad-qg-trimmed-ja-5000
+vocabtrimmer/mt5-small-koquad-qg-trimmed-ko-5000
+vocabtrimmer/mt5-small-ruquad-qg-trimmed-ru-5000
+vocabtrimmer/mt5-small-esquad-qg-trimmed-es-5000
+vocabtrimmer/mt5-small-frquad-qg-trimmed-fr-5000
+vocabtrimmer/mt5-small-itquad-qg-trimmed-it-5000
+vocabtrimmer/mt5-small-trimmed-ja-90000
+vocabtrimmer/mt5-small-trimmed-ja-5000
+vocabtrimmer/mt5-small-trimmed-ja-10000
+vocabtrimmer/mt5-small-jaquad-qg-trimmed-ja-90000
+vocabtrimmer/mt5-small-ruquad-qg-trimmed-ru-90000
+vocabtrimmer/mt5-small-trimmed-ja-15000
+vocabtrimmer/mt5-small-frquad-qg-trimmed-fr-10000
+vocabtrimmer/mt5-small-trimmed-ja-30000
+vocabtrimmer/mt5-small-jaquad-qg-trimmed-ja-10000
+vocabtrimmer/mt5-small-trimmed-ru-90000
+vocabtrimmer/mt5-small-koquad-qg-trimmed-ko-10000
+vocabtrimmer/mt5-small-itquad-qg-trimmed-it-10000
+vocabtrimmer/mt5-small-ruquad-qg-trimmed-ru-10000
+vocabtrimmer/mt5-small-trimmed-ja-60000
+vocabtrimmer/mt5-small-frquad-qg-trimmed-fr-15000
+vocabtrimmer/mt5-small-frquad-qg-trimmed-fr-90000
+vocabtrimmer/mt5-small-esquad-qg-trimmed-es-90000
+vocabtrimmer/mt5-small-itquad-qg-trimmed-it-90000
+vocabtrimmer/mt5-small-jaquad-qg-trimmed-ja-120000
+vocabtrimmer/mt5-small-trimmed-ko-5000
+vocabtrimmer/mt5-small-jaquad-qg-trimmed-ja-15000
+vocabtrimmer/mt5-small-esquad-qg-trimmed-es-10000
+vocabtrimmer/mt5-small-trimmed-fr-90000
+vocabtrimmer/mt5-small-trimmed-ko-10000
+vocabtrimmer/mt5-small-trimmed-ko-15000
+Yeongjin/KET5_Large_Persona_Finetuned_Kimsam
+vocabtrimmer/mt5-small-frquad-qg-trimmed-fr-30000
+vocabtrimmer/mt5-small-trimmed-es-90000
+vocabtrimmer/mt5-small-itquad-qg-trimmed-it-15000
+vocabtrimmer/mt5-small-koquad-qg-trimmed-ko-15000
+vocabtrimmer/mt5-small-trimmed-ko-30000
+vocabtrimmer/mt5-small-ruquad-qg-trimmed-ru-15000
+mrm8488/bloom-7b1-sharded-fp16
+vocabtrimmer/mt5-small-trimmed-ko-60000
+vocabtrimmer/mt5-small-jaquad-qg-trimmed-ja-30000
+vocabtrimmer/mt5-small-trimmed-it-90000
+vocabtrimmer/mt5-small-frquad-qg-trimmed-fr-60000
+vocabtrimmer/mt5-small-ruquad-qg-trimmed-ru-120000
+vocabtrimmer/mt5-small-itquad-qg-trimmed-it-30000
+vocabtrimmer/mt5-small-koquad-qg-trimmed-ko-30000
+vocabtrimmer/mt5-small-esquad-qg-trimmed-es-15000
+vocabtrimmer/mt5-small-ruquad-qg-trimmed-ru-30000
+vocabtrimmer/mt5-small-trimmed-ja-120000
+vocabtrimmer/mt5-small-jaquad-qg-trimmed-ja-60000
+vocabtrimmer/mt5-small-trimmed-ru-120000
+vocabtrimmer/mt5-small-itquad-qg-trimmed-it-60000
+vocabtrimmer/mt5-small-koquad-qg-trimmed-ko-60000
+vocabtrimmer/mt5-small-ruquad-qg-trimmed-ru-60000
+vocabtrimmer/mt5-small-frquad-qg-trimmed-fr-120000
+vocabtrimmer/mt5-small-trimmed-fr-120000
+vocabtrimmer/mt5-small-esquad-qg-trimmed-es-30000
+vocabtrimmer/mt5-small-trimmed-es-120000
+vocabtrimmer/mt5-small-esquad-qg-trimmed-es-120000
+vocabtrimmer/mt5-small-trimmed-ru-5000
+shark123/text-to-sparql-LCQUAD
+vocabtrimmer/mt5-small-trimmed-ru-10000
+vocabtrimmer/mt5-small-trimmed-ru-15000
+vocabtrimmer/mt5-small-trimmed-ru-30000
+vocabtrimmer/mt5-small-esquad-qg-trimmed-es-60000
+vocabtrimmer/mt5-small-trimmed-ru-60000
+edbeeching/gpt2-xl-stackexchange_stack-exchange-paired_rmts_240000
+vocabtrimmer/mt5-small-trimmed-fr-5000
+vocabtrimmer/mt5-small-trimmed-fr-10000
+vocabtrimmer/mt5-small-trimmed-fr-15000
+vocabtrimmer/mt5-small-trimmed-fr-30000
+vocabtrimmer/mt5-small-trimmed-fr-60000
+TonsonP/Harry_potter_story_generator
+vocabtrimmer/mt5-small-trimmed-es-5000
+marco-c88/distilgpt2-finetuned-mstatmem
+vocabtrimmer/mt5-small-trimmed-es-10000
+vocabtrimmer/mt5-small-trimmed-es-15000
+vocabtrimmer/mt5-small-trimmed-es-30000
+TiborUdvari/distilgpt2-test-douglas-finetuned-hitchhiker
+vocabtrimmer/mt5-small-trimmed-es-60000
+vocabtrimmer/mt5-small-trimmed-it-5000
+vocabtrimmer/mt5-small-trimmed-it-10000
+vocabtrimmer/mt5-small-trimmed-it-15000
+avuhong/ParvoGPT2
+vocabtrimmer/mt5-small-trimmed-it-30000
+vocabtrimmer/mt5-small-trimmed-it-60000
+abstractmachine/distilgpt2-test
+amu-cai/polemma-base
+aszfcxcgszdx/multilingual-samsum
+aszfcxcgszdx/mt5-large-samsum
+edbeeching/gpt2-xl-stackexchange_stack-exchange-paired_rmts_240000_bup
+yonatanko/NLP_project
+cloudqi/cqi_brain_memory_summarizer_large_pt_v0
+etgar/t5-base-translation
+mrm8488/bloom-7b1-sharded-bf16
+yonatanko/YaYo_NLP_Proj
+amu-cai/polemma-small
+amu-cai/polemma-large
+Ahmade/text_to_textgenerationv1
+amu-cai/slavlemma-large
+amu-cai/slavlemma-base
+amu-cai/slavlemma-small
+abstractmachine/distilgpt2-elie
+avuhong/PiccoviralesGPT
+vocabtrimmer/mt5-small-jaquad-qa-trimmed-ja-5000
+vocabtrimmer/mt5-small-koquad-qa-trimmed-ko-5000
+vocabtrimmer/mt5-small-esquad-qa-trimmed-es-5000
+vocabtrimmer/mt5-small-frquad-qa-trimmed-fr-5000
+vocabtrimmer/mt5-small-ruquad-qa-trimmed-ru-5000
+vocabtrimmer/mt5-small-itquad-qa-trimmed-it-5000
+vocabtrimmer/mt5-small-jaquad-qa-trimmed-ja-90000
+vocabtrimmer/mt5-small-jaquad-qa-trimmed-ja-120000
+vocabtrimmer/mt5-small-jaquad-qa-trimmed-ja-10000
+vocabtrimmer/mt5-small-koquad-qa-trimmed-ko-10000
+vocabtrimmer/mt5-small-frquad-qa-trimmed-fr-10000
+vocabtrimmer/mt5-small-jaquad-qa-trimmed-ja-15000
+vocabtrimmer/mt5-small-itquad-qa-trimmed-it-10000
+vocabtrimmer/mt5-small-ruquad-qa-trimmed-ru-10000
+vocabtrimmer/mt5-small-ruquad-qa-trimmed-ru-90000
+vocabtrimmer/mt5-small-ruquad-qa-trimmed-ru-120000
+vocabtrimmer/mt5-small-frquad-qa-trimmed-fr-15000
+vocabtrimmer/mt5-small-koquad-qa-trimmed-ko-15000
+kemsa51/DialoGPT-medium-cartman
+vocabtrimmer/mt5-small-jaquad-qa-trimmed-ja-30000
+vocabtrimmer/mt5-small-itquad-qa-trimmed-it-15000
+vocabtrimmer/mt5-small-ruquad-qa-trimmed-ru-15000
+vocabtrimmer/mt5-small-esquad-qa-trimmed-es-10000
+vocabtrimmer/mt5-small-frquad-qa-trimmed-fr-30000
+vocabtrimmer/mt5-small-koquad-qa-trimmed-ko-30000
+vocabtrimmer/mt5-small-frquad-qa-trimmed-fr-90000
+vocabtrimmer/mt5-small-jaquad-qa-trimmed-ja-60000
+vocabtrimmer/mt5-small-frquad-qa-trimmed-fr-120000
+abstractmachine/gpt2-elie
+Mogwhy/DialoGPT-medium-Arrobot
+vocabtrimmer/mt5-small-itquad-qa-trimmed-it-30000
+vocabtrimmer/mt5-small-frquad-qa-trimmed-fr-60000
+vocabtrimmer/mt5-small-koquad-qa-trimmed-ko-60000
+vocabtrimmer/mt5-small-ruquad-qa-trimmed-ru-30000
+vocabtrimmer/mt5-small-esquad-qa-trimmed-es-90000
+vocabtrimmer/mt5-small-esquad-qa-trimmed-es-120000
+vocabtrimmer/mt5-small-esquad-qa-trimmed-es-15000
+vocabtrimmer/mt5-small-itquad-qa-trimmed-it-60000
+vocabtrimmer/mt5-small-ruquad-qa-trimmed-ru-60000
+vocabtrimmer/mt5-small-itquad-qa-trimmed-it-90000
+tuminibd29/my_awesome_billsum_model
+vocabtrimmer/mt5-small-esquad-qa-trimmed-es-30000
+vocabtrimmer/mt5-small-esquad-qa-trimmed-es-60000
+afshaan/AIstoryGenerator-v2
+edbeeching/gpt2_stack-exchange-paired_rmts_1000_hub
+edbeeching/gpt2_stack-exchange-paired_rmts_1000
+edbeeching/gpt2-xl-stackexchange_stack-exchange-paired_rmts_1000_hub
+nobono/gpt2_large_checkpoint
+juliensimon/t5-base-billsum
+gangiswag/flan_t5_small_query
+swype/deepshard-13B-ft
+huggingtweets/emilymbender
+huggingtweets/hollandjeffreyr
+headmediadesign/gpt2-amaury
+headmediadesign/gpt2-faustimer
+CLETUSS/DialoGPT-small-BitBrand
+elinas/llama-30b-int4
+vocabtrimmer/mt5-small-trimmed-ja-30000-jaquad-qg
+huggingtweets/jamescurrier
+vocabtrimmer/mt5-small-trimmed-ja-10000-jaquad-qg
+sdesai/wmt22_en_pt_br
+huggingtweets/williesuede
+vocabtrimmer/mt5-small-trimmed-ja-5000-jaquad-qg
+vocabtrimmer/mt5-small-trimmed-ja-90000-jaquad-qg
+bbangga2/module3_gpt2
+chavinlo/alpaca-native
+baibars/mt5-base-finetuned-bn_new
+mekarras/codet5_0.1
+mekarras/codet5_0.2
+headmediadesign/gpt2-huiwen
+headmediadesign/gpt2-louka
+headmediadesign/gpt2-michelle
+headmediadesign/gpt2-nathan
+headmediadesign/gpt2-tomislav
+baibars/mt5-base-finetuned-bn-summarization
+test1444/distilgpt2-squad
+joetey/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.2_16_0.01_1_0.01
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_60_CODE-T5_0.2_8_0.01_1_0.01_backup
+guntsv/alice-in-ait-accelerate
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_60_CODE-T5_0.02_16_0.01_1_0.01
+joetey/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.02_16_0.01_1_0.01
+nargesshmrad/gpt2-Narges
+MariiaGulkova/gpt2-Mariia
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_120_CODE-T5_0.02_16_0.01_1_0.01
+joetey/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_120_CODE-T5_0.02_16_0.01_1_0.01
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_250_CODE-T5_0.02_16_0.01_1_0.01
+joetey/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_250_CODE-T5_0.02_16_0.01_1_0.01
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.02_16_0.01_1_0.01
+joetey/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.02_16_0.01_1_0.01
+afpapag/mt5-small-finetuned-amazon-en-es
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_120_CODE-T5_0.02_16_0.01_1_0.01
+vocabtrimmer/mt5-small-trimmed-ru-90000-ruquad-qg
+joetey/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_120_CODE-T5_0.02_16_0.01_1_0.01
+MaxSulkowski/flan-T5-lex-de
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_250_CODE-T5_0.02_16_0.01_1_0.01
+omnikam/mymodel
+joetey/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_250_CODE-T5_0.02_16_0.01_1_0.01
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.02_16_0.01_1_0.01
+leumastai/t5-large-quantized
+vuonghiit/distilgpt2-finetuned-wikitext2
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_120_CODE-T5_0.02_16_0.01_1_0.01
+Seer-luma/DialoGPT-small-SeerBot
+apoorv627g/FlanT5_MWPSolver
+joetey/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_60_CODE-T5_0.02_16_0.01_1_0.01
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_250_CODE-T5_0.02_16_0.01_1_0.01
+joetey/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_120_CODE-T5_0.02_16_0.01_1_0.01
+beomi/KoAlpaca-Polyglot-5.8B
+Dinoloverwii/DialoGPT-Sachibot
+joetey/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_250_CODE-T5_0.02_16_0.01_1_0.01
+vocabtrimmer/mt5-small-trimmed-ja-120000-jaquad-qg
+vocabtrimmer/mt5-small-trimmed-es-30000-esquad-qg
+vocabtrimmer/mt5-small-trimmed-fr-90000-frquad-qg
+RohanHBTU/autotrain-t5-hinglish-to-en
+rajistics/flan-t5-base-samsum2
+rajistics/flan-t5-base-samsum3
+huggingtweets/lola_noir__
+huggingtweets/repstickland
+rajistics/flan-t5-base-samsum5
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_60_CODE-T5_0.02_16_0.01_1_0.0003
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_60_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_120_CODE-T5_0.02_16_0.01_1_0.0003
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_120_CODE-T5_0.02_16_0.01_1_0.0001
+luciferxf/gptxxxxxx
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_250_CODE-T5_0.02_16_0.01_1_0.0003
+Persing/mtg_card_model_medium
+kiviki/mt5-small-finetuned-sk-news
+rwl4/gpt2-medium-chat
+kejian/cpsc-bin4-3rep-3gptpref
+edbeeching/gpt2-xl-stackexchange_stack-exchange-paired_rmts__240000_8e-05_hub
+edbeeching/gpt2-xl-stackexchange_stack-exchange-paired_rmts__240000_4e-05_hub
+edbeeching/gpt2-xl-stackexchange_stack-exchange-paired_rmts__240000_1e-05_hub
+edbeeching/gpt2-xl-stackexchange_stack-exchange-paired_rmts__240000_2e-05_hub
+michaelnath/8681_GPT_50_kmeans_strans_QUADRATIC_SHARED_250_CODE-T5_0.02_16_0.01_1_0.0001
+kielljoy/DialoGPT-small-k
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.02_16_0.01_1_0.0003
+bingoman009/distilgpt2-finetuned-wikitext2
+HuggingFaceM4/tiny-random-LlamaForCausalLM
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_120_CODE-T5_0.02_16_0.01_1_0.0003
+cerebras/Cerebras-GPT-111M
+DataSteves/t5-small-finetuned-xsum
+WAHCLAN/DialoGPT-Medium-DAN
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_120_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_250_CODE-T5_0.02_16_0.01_1_0.0003
+Mbrogan55/distilgpt2-finetuned-wikitext2
+Jaehun/amber-universe-1
+kuleshov/llama-7b-4bit
+michaelnath/8681_GPT_10_kmeans_strans_QUADRATIC_PERCENTILE_250_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.02_16_0.01_1_0.0003
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_60_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_120_CODE-T5_0.02_16_0.01_1_0.0003
+DataSteves/t5-small-finetuned-car_dataset
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_120_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_250_CODE-T5_0.02_16_0.01_1_0.0003
+Elfsong/DocTor5
+michaelnath/8681_GPT_40_kmeans_strans_QUADRATIC_PERCENTILE_250_CODE-T5_0.02_16_0.01_1_0.0001
+vocabtrimmer/mt5-small-trimmed-es-15000-esquad-qg
+ryusangwon/gpt2-hellaswag
+circulus/llama-7b
+circulus/llama-13b
+matthv/test_t5-end2end-questions-generation
+amphora/KorFinASC-mT5
+matthv/test1_t5-end2end-questions-generation
+matthv/first_t5-end2end-questions-generation
+vocabtrimmer/mt5-small-trimmed-ru-120000-ruquad-qg
+mwp/FinalModel2-mawps-t5-lm
+marco-c88/distilgpt2-finetuned-mstatmem_1ep
+aleksickx/llama-7b-hf
+marco-c88/distilgpt2-finetuned-mstatmem_1ep_2
+MahdiSUST/bn_sum
+PeterBanning71/t5-small-finetuned-eLife-tfg
+SonLam/gpt2-wikitext2
+cahya/bloomz-1b1-instruction-0
+vocabtrimmer/mt5-small-trimmed-es-60000-esquad-qg
+pvduy/pythia-20B-ppo-summarize-tldr
+kejian/cpsc-wmle-0.9
+Francesca1999M/distilgpt2-finetuned-wikitext2
+iamplus/bloomz-7b1-stanford-alpaca-v1
+beomi/KoAlpaca-llama-1-7b
+MarianaLC/mt5-en-pt-translation-v2
+cahya/bloomz-1b1-instruct
+ealarcong/distilgpt2-finetuned-wikitext2
+cekal/LLaMA-7B
+Elfsong/t5dact
+mwp/FinalModel2-mawps-t5-t5-lm
+deerslab/llama-7b-embeddings
+Elfsong/t5doctalk
+Elfsong/t5spact
+dinesht/tathyanka-nlq-depositandlending
+mwp/FinalModel2-mawps-t5-mwpbert-lm
+ss1612/loki-chat
+Tritkoman/EnglishtoOldRussianV1
+Elfsong/nTu5
+lguenth/t5-small-finetuned-sum-de
+kejian/cpsc-wmle-1
+IceBruhOne/mytestcharacter
+humarin/chatgpt_paraphraser_on_T5_base
+vocabtrimmer/mt5-small-trimmed-es-90000-esquad-qg
+marco-c88/gpt2-finetuned-mstatmem_1ep_2_gpt2
+anforsm/GPT-Echo-82m
+vuonghiit/distilgpt2-finetuned-wikitext_v
+trutujamurlidhar/10_100_hash_ns_reversed
+vocabtrimmer/mt5-small-trimmed-es-5000-esquad-qg
+truong9499/buystuff_chatbot
+vocabtrimmer/mt5-small-trimmed-es-10000-esquad-qg
+SujanMishra/Hackthontrainedsmall
+IceBruhOne/DialoGPT-medium-subjectai
+SujanMishra/DialoGPT-large-finetune
+matthv/summary_end2end-questions-generation
+Agtian/llama-65b-int4
+elinas/alpaca-13b-lora-int4
+michaelnath/8681_CODETRANS_50_dbscan_strans_QUADRATIC_SHARED_30_CODE-T5_0.02_16_0.01_1_0.0003
+Agtian/llama-30b-int4
+HAJIWEE/en2zh_opus_100
+michaelnath/8681_CODETRANS_50_dbscan_strans_QUADRATIC_SHARED_30_CODE-T5_0.02_16_0.01_1_0.0001
+BelleGroup/BELLE-7B-0.2M
+michaelnath/8681_CODETRANS_50_dbscan_strans_QUADRATIC_SHARED_50_CODE-T5_0.02_16_0.01_1_0.0003
+michaelnath/8681_CODETRANS_50_dbscan_strans_QUADRATIC_SHARED_50_CODE-T5_0.02_16_0.01_1_0.0001
+scottn66/text-summarization
+BigSalmon/InformalToFormalLincoln95Paraphrase
+michaelnath/8681_CODETRANS_50_dbscan_strans_QUADRATIC_SHARED_180_CODE-T5_0.02_16_0.01_1_0.0003
+michaelnath/8681_CODETRANS_50_dbscan_strans_QUADRATIC_SHARED_180_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_CODETRANS_10_dbscan_strans_QUADRATIC_PERCENTILE_30_CODE-T5_0.02_16_0.01_1_0.0003
+michaelnath/8681_CODETRANS_10_dbscan_strans_QUADRATIC_PERCENTILE_30_CODE-T5_0.02_16_0.01_1_0.0001
+vocabtrimmer/mt5-small-trimmed-ja-120000-jaquad-qa
+michaelnath/8681_CODETRANS_10_dbscan_strans_QUADRATIC_PERCENTILE_50_CODE-T5_0.02_16_0.01_1_0.0003
+michaelnath/8681_CODETRANS_10_dbscan_strans_QUADRATIC_PERCENTILE_50_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_CODETRANS_10_dbscan_strans_QUADRATIC_PERCENTILE_180_CODE-T5_0.02_16_0.01_1_0.0003
+MahdiSUST/mt5-large-bn_sum_total_data
+vocabtrimmer/mt5-small-trimmed-it-30000-itquad-qg
+michaelnath/8681_CODETRANS_10_dbscan_strans_QUADRATIC_PERCENTILE_180_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_CODETRANS_40_dbscan_strans_QUADRATIC_PERCENTILE_30_CODE-T5_0.02_16_0.01_1_0.0003
+michaelnath/8681_CODETRANS_40_dbscan_strans_QUADRATIC_PERCENTILE_30_CODE-T5_0.02_16_0.01_1_0.0001
+vocabtrimmer/mt5-small-trimmed-it-60000-itquad-qg
+michaelnath/8681_CODETRANS_40_dbscan_strans_QUADRATIC_PERCENTILE_50_CODE-T5_0.02_16_0.01_1_0.0003
+BelleGroup/BELLE-7B-0.6M
+BelleGroup/BELLE-7B-1M
+michaelnath/8681_CODETRANS_40_dbscan_strans_QUADRATIC_PERCENTILE_50_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_CODETRANS_40_dbscan_strans_QUADRATIC_PERCENTILE_180_CODE-T5_0.02_16_0.01_1_0.0003
+vocabtrimmer/mt5-small-trimmed-it-90000-itquad-qg
+YukioKoito/DialoGPT-small-ozua
+michaelnath/8681_CODETRANS_40_dbscan_strans_QUADRATIC_PERCENTILE_180_CODE-T5_0.02_16_0.01_1_0.0001
+vocabtrimmer/mt5-small-trimmed-it-10000-itquad-qg
+MahdiSUST/bn_sum_mt5_base
+vocabtrimmer/mt5-small-trimmed-it-5000-itquad-qg
+matthv/second_t5-end2end-questions-generation
+vocabtrimmer/mt5-small-trimmed-it-15000-itquad-qg
+Gurtej/Prototype
+vocabtrimmer/mt5-small-trimmed-ru-30000-ruquad-qg
+vocabtrimmer/mt5-small-trimmed-ru-60000-ruquad-qg
+NaTaB/gpt2-fine-tuned
+oren186/t5-large-finetuned-G2E-Translation
+vocabtrimmer/mt5-small-trimmed-es-30000-esquad-qa
+anamhira/flan-t5-small-gss
+matthv/third_t5-end2end-questions-generation
+vocabtrimmer/mt5-small-trimmed-fr-120000-frquad-qg
+k4black/Salesforce-codet5-small-CodeXGLUE-CONCODE
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-actions-kmeans-v2
+k4black/Salesforce-codet5-small-CodeXGLUE-CONCODE-adafactor-old-JBIR-43
+hando180890/t5-small-finetuned-wikisql
+mwp/FinalModel2-pen-t5-t5-lm
+mwp/FinalModel2-pen-t5-mwpbert-lm
+leumastai/t5-base-summariser-quantized
+gaytrimoh/DialoGPT-small-harrypotter
+shrinivasbjoshi/W210T5NLGV2
+Dogge/alpaca-13b
+vocabtrimmer/mt5-small-trimmed-es-15000-esquad-qa
+vocabtrimmer/mt5-small-trimmed-ja-90000-jaquad-qa
+circulus/alpaca-5.8b-ko
+circulus/alpaca-7b
+vicgalle/alpaca-7b
+michaelnath/baseline_codet5_50_50_split_no_reps
+Wingie/tbyw_v1
+balladgpt/balladgpt-old-v1
+vocabtrimmer/mt5-small-trimmed-fr-10000-frquad-qg
+vocabtrimmer/mt5-small-trimmed-fr-5000-frquad-qg
+yesaso8389/t5-base-finetuned-text-simplification
+balladgpt/balladgpt-v2
+michaelnath/baseline_codet5_50_50_split_with_reps
+vocabtrimmer/mt5-small-trimmed-fr-30000-frquad-qg
+Stevross/AI-Buddy
+vocabtrimmer/mt5-small-trimmed-fr-60000-frquad-qg
+vocabtrimmer/mt5-small-trimmed-fr-15000-frquad-qg
+peterchatain/rlhf_v1
+kejian/cpsc-wmle-1.25
+kejian/cpsc-wmle-0.93
+kejian/cpsc-wmle-1.1
+peterchatain/rlhf_v3
+chavinlo/guanaco-dumbdumb
+michaelnath/8681_GPT_90_kmeans_strans_QUADRATIC_PERCENTILE_400_CODE-T5_0.02_16_0.01_1_0.0001
+michaelnath/8681_CODETRANS_90_kmeans_strans_QUADRATIC_PERCENTILE_400_CODE-T5_0.02_16_0.01_1_0.0001
+peterchatain/rlhf_v4
+vocabtrimmer/mt5-small-trimmed-es-60000-esquad-qa
+michaelnath/8681_GPT_10_dbscan_strans_QUADRATIC_PERCENTILE_400_CODE-T5_0.02_16_0.01_1_0.0001
+mwp/FinalModel2-pen-t5-lm
+heegyu/gpt2-bbc-news
+kejian/cpsc-awr
+YukioKoito/DialoGPT-small-doog
+Singama1030/distilgpt2-finetuned-wikitext2
+whu9/multi_doc_sum_slide_token
+SRDdev/ScriptForge-medium
+vocabtrimmer/mt5-small-trimmed-ko-5000-koquad-qg
+ryusangwon/bloom-560m-hellaswag
+IceBruhOne/DialoGPT-medium-subjectai2
+Yarflam/gptRoleplay
+AntaFluorescent/llama-13b-hf-4bit-configonly
+michaelnath/8681_CODETRANS_10_dbscan_strans_QUADRATIC_PERCENTILE_400_CODE-T5_0.02_16_0.01_1_0.0001
+vocabtrimmer/mt5-small-trimmed-ko-15000-koquad-qg
+vocabtrimmer/mt5-small-trimmed-ru-120000-ruquad-qa
+vocabtrimmer/mt5-small-trimmed-ru-5000-ruquad-qg
+sallywww/Llama-7B
+BrainStormersHakton/question-gen-T5-base
+lissadesu/mt5_meeting_summarizer
+custads23/DialoGPT-medium-aubrey
+vocabtrimmer/mt5-small-trimmed-ko-60000-koquad-qg
+vocabtrimmer/mt5-small-trimmed-ru-90000-ruquad-qa
+jslin09/bloom-1b1-finetuned-fraud
+belgadreamsbig/arabic-poetry-generator
+Kongfha/PhraAphaiManee-LM
+AlexWortega/instruct_XGLM75k
+vocabtrimmer/mt5-small-trimmed-fr-60000-frquad-qa
+amandyk/QazGPT2
+HaHaMagpie/DialoGPT-small-phineas
+vocabtrimmer/mt5-small-trimmed-fr-15000-frquad-qa
+Finitearth/sBaertle
+coldfir3/oscar-pt-large
+vocabtrimmer/mt5-small-trimmed-fr-30000-frquad-qa
+Carslo45/DialoGPT-medium-ddlc-monika
+AlekseyKorshuk/cup-it-ds-sft-pretrained
+NeuraXenetica/ManaGPT-1010
+huggingtweets/thejailbreakhub
+huggingtweets/fce365
+vocabtrimmer/mt5-small-trimmed-fr-5000-frquad-qa
+shannb/t5-small-finetuned-TEC-to-eng-one
+vocabtrimmer/mt5-small-trimmed-fr-10000-frquad-qa
+balladgpt/balladgpt-v3-beta
+aarush3002/t5-small-finetuned-xsum
+vocabtrimmer/mt5-small-trimmed-ru-10000-ruquad-qg
+k4black/Salesforce-codet5-small-CodeXGLUE-CONCODE-test
+wjudy/text-summarization
+vocabtrimmer/mt5-small-trimmed-fr-90000-frquad-qa
+k4black/Salesforce-codet5-small-CodeXGLUE-CONCODE-adafactor
+jncarlo/monica
+vocabtrimmer/mt5-small-trimmed-it-30000-itquad-qa
+pszemraj/flan-t5-base-instructiongen
+pszemraj/flan-t5-small-instructiongen
+cloudqi/cqi_brain_memory_summarizer_oneline_pt_v0
+LawInformedAI/flan-t5-instruct-supervised
+ozcur/alpaca-native-4bit
+Brez/my_awesome_billsum_model
+vocabtrimmer/mt5-small-trimmed-it-60000-itquad-qa
+BelleGroup/BELLE-7B-2M
+MuneebMuhammad/codeparrot_ds
+MarinHinawa/DialoGPT-medium-haruka
+iamplus/bloomz-7b1-v3
+iamplus/bloomz-7b1-stanford-alpaca-v2
+huggingtweets/swarajbachu
+kejian/cpsc-rwr
+TurboPascal/bloomz-6b4-zh
+vocabtrimmer/mt5-small-trimmed-it-15000-itquad-qa
+TheEeeeLin/test
+lvwerra/santacoder-commits
+lvwerra/santacoder-jupyter
+custads23/DialoGPT-medium-basil
+nc33/t5_boolq
+k4black/Salesforce-codet5-small-CodeXGLUE-CONCODE-adamw
+vocabtrimmer/mt5-small-trimmed-ko-5000-koquad-qa
+vocabtrimmer/mt5-small-trimmed-ko-30000-koquad-qa
+sarthakc44/mt5-small-finetuned-amazon-en-es
+nc33/t5_mnli
+vocabtrimmer/mt5-small-trimmed-it-10000-itquad-qa
+mo374z/theoffice_scene_generation
+JerryWu/eng-keyGen-model
+lambdarw/t5_pegasus_ch_ans
+vocabtrimmer/mt5-small-trimmed-it-5000-itquad-qa
+awsgcptest/test_model_2
+derek-thomas/t5-end2end-question-generation
+vocabtrimmer/mt5-small-trimmed-ko-15000-koquad-qa
+IlyaGusev/rugpt_medium_turbo_instructed
+IlyaGusev/rugpt_large_turbo_instructed
+AustinCarthy/OnlyPhishGPT2
+edbeeching/gpt2_stack-exchange-paired_rmts__10000_2e-05_hub
+vocabtrimmer/mt5-small-trimmed-ko-10000-koquad-qa
+petroglyphs-nlp-consulting/flan-t5-base-geoqa
+huggingtweets/mywifedates
+cloundmlszh/gpt2-wikitext2
+vocabtrimmer/mt5-small-trimmed-es-120000-esquad-qg
+sitongz/medqa_taskA_t5-large_topic_whole_update_ed-checkpoint-2000
+sitongz/medqa_taskB_t5-base_seq_synthetic_onl-checkpoint-11000
+shivanshu292001/GeneratorModel
+nishamcnealis/anthropic_rm
+kdearsty/llama-testing
+bbhattar/flan_t5_xl_cnn_dailymail
+cerebras/Cerebras-GPT-256M
+cerebras/Cerebras-GPT-590M
+IceBruhOne/DialoGPT-medium-complexai
+cerebras/Cerebras-GPT-1.3B
+cerebras/Cerebras-GPT-2.7B
+cerebras/Cerebras-GPT-6.7B
+cerebras/Cerebras-GPT-13B
+vocabtrimmer/mt5-small-trimmed-ru-10000-ruquad-qa
+AlexWortega/instruct_rugptlarge
+vocabtrimmer/mt5-small-trimmed-ja-15000-jaquad-qa
+vocabtrimmer/mt5-small-trimmed-ja-5000-jaquad-qa
+Dmitriy007/Socrat_batch3_epochs5
+chavinlo/vicuna
+vocabtrimmer/mt5-small-trimmed-ja-10000-jaquad-qa
+jncarlo/monica-v0.1.0
+vocabtrimmer/mt5-small-trimmed-ja-30000-jaquad-qa
+vocabtrimmer/mt5-small-trimmed-ru-60000-ruquad-qa
+ChandlerU11/GPT-2_Target_Real_Only_Gen
+vocabtrimmer/mt5-small-trimmed-ko-60000-koquad-qa
+elinas/alpaca-30b-lora-int4
+NourEldin-Osama/t5-finetuned-text-simplification
+SummerSigh/pythia-1.4b-deduped-EvilPrompter
+vocabtrimmer/mt5-small-trimmed-es-10000-esquad-qa
+omar07/output
+almahiral/mt5-small-indonesian-summarization
+huggingtweets/noelfb
+vocabtrimmer/mt5-small-trimmed-es-5000-esquad-qa
+Suchinthana/MT5-Sinhala-Wikigen-Experimental
+vldsavelyev/murakami_rugpt3small
+MarinHinawa/DialoGPT-medium-Shintaro
+vocabtrimmer/mt5-small-trimmed-ru-30000-ruquad-qa
+softrime/distilgpt2-finetuned-wikitext2
+vocabtrimmer/mt5-small-trimmed-ja-60000-jaquad-qa
+krenerd/autotrain-t5baseparaphrase-42430108692
+jlsalty9999/DialoGPT-medium-Riddle
+Crow34/Chloe
+vocabtrimmer/mt5-small-trimmed-ja-60000-jaquad-qg
+vocabtrimmer/mt5-small-trimmed-es-90000-esquad-qa
+custads23/DialoGPT-medium-mincy
+likejazz/megatron-gpt2-345m-imdb-sft
+likejazz/megatron-gpt2-345m-imdb-ppo
+KBlueLeaf/guanaco-7B-lora-embed
+BreadAi/MuseCan-1-2
+Mizuiro-sakura/t5-CAMERA-title-generation
+andreaskoepf/oasst-sft-1-gpt-neox-2000
+Wtfsquad/DialoGPT-small-pulpfictionVincent
+vocabtrimmer/mt5-small-trimmed-es-120000-esquad-qa
+wjh203/project-cp1
+soBeauty/gpt2-base-thai-datasets-FineTune
+marcus2000/output
+m-aliabbas/model-t51-base1
+declare-lab/flan-alpaca-xl
+mekarras/codet5_full
+iohadrubin/t5-xl-lm-adapt
+rug-nlp-nli/flan-base-nli-explanation
+rug-nlp-nli/flan-base-nli-label-explanation
+rug-nlp-nli/flan-base-nli-label
+declare-lab/flan-alpaca-base
+marcus2000/GPT_simplifier186
+iohadrubin/t5-xl-lm-adapt_bf16
+dvruette/oasst-gpt-neox-20b-3000-steps
+denisbolshakoff/gpt2-arxiv-clm
+igorktech/t5-base-lyrics-explainer
+ss1612/erika-chatv4
+marcus2000/GPT_simplifier1800
+declare-lab/flan-alpaca-large
+marcus2000/GPT_simplifier_large_text
+vocabtrimmer/mt5-small-trimmed-fr-120000-frquad-qa
+k4black/Salesforce-codet5-small-CodeXGLUE-CONCODE-w_special_tokens
+huggingtweets/apastoraldream-godlessbot-heartfeltbot
+Patrick802/DialoGPT-small-joshua
+IsaacBot/flan-t5-small-botco_QA-finetuned-question-generation-context-only
+nash0823/gpt2-physics
+almahiral/mt5-base-indonesian-summarization
+ParastooC/t5_small_SA_abbr_replaced
+chavinlo/vicuna2
+vocabtrimmer/mt5-small-trimmed-ru-15000-ruquad-qa
+huggingtweets/godwept-sainticide-starryspill
+boost/codeparrot-ds
+omar07/output2
+WAHCLAN/DialoGPT-Large-DAN
+vocabtrimmer/mt5-small-trimmed-ko-30000-koquad-qg
+gowthamKola/distilgpt2-finetuned-wikitext2
+atrost/flan-t5-small-pubmed_qa-pqa_labeled
+eunyounglee/polyglot_kr_0322
+eunyounglee/polyglot_kr
+togethercomputer/Pythia-Chat-Base-7B
+BigSalmon/InformalToFormalLincoln96Paraphrase
+aditigupta/t5-spec-to-sva
+huggingtweets/godlessbot
+shanecr/t5-end2end-questions-generation
+Speedemon/jake-peralta-ai
+babylm/t5-base-strict-small
+babylm/t5-base-strict
+Lancelot53/banglat5_small_GED
+vocabtrimmer/mt5-small-trimmed-ru-5000-ruquad-qa
+vishwanatha/t5-end2end-questions-generation
+wxjiao/alpaca-7b
+Yeongjin/Polyglot_small_Persona_Finetuned_TotalDataDonatelo
+FarSideDino/distilgpt2-finetuned-wikitext2
+juliusco/GPT-2-finetuned-papers
+Adarsh/t5-small-finetuned-xsum-adarsh
+denisbolshakoff/bert-base-cased-arxiv-mlm
+Sharayu12/t5-end2end-question-generation
+vishal2014/t5_squad_vam_2
+koenraijer/Alpaca-lora
+gaussalgo/mt5-base_CSFD-sk
+vocabtrimmer/mt5-small-trimmed-ko-10000-koquad-qg
+kcduece/alpaca7B-lora
+marcus2000/GPT_simplifier25
+k4black/t5-small-CodeXGLUE-CONCODE-faster
+oren186/my_model_v1
+grandestroyer/joefreaks_rugpt3small
+Dm271/Gptsmall
+Dm271/Kovr_T5
+Dm271/Kovr1
+IsaacBot/flan-t5-small-botco_QA_no_context-finetuned-question-generation-context-only
+wanglab/task-a-flan-t5-large-run-3
+akira2001/t5
+wanglab/big-fake-flan
+bofenghuang/vigogne-7b-instruct
+vocabtrimmer/mt5-small-trimmed-ru-15000-ruquad-qg
+sadia72/t5-squad-end-to-end-qg
+wanglab/task-a-flan-t5-large-run-1
+MoonShinkiro/libraryOfRuina-LoRA
+Amalq/flan_t5_large_chat_summary
+oren186/my_model_realtry_v1
+Amalq/clinical_t5_final_taskA
+duyduong9htv/t5-small-finetuned-xsum
+DolphinBrothersUnite/test_001
+eunyounglee/polyglot_kr_0323
+guntsv/grim-gpt2-accelerate
+Speedemon/cobalt
+vocabtrimmer/mt5-small-trimmed-it-90000-itquad-qa
+Amalq/flan-t5-base-samsum-taskA
+dandrade/flan-t5-base-en-pt
+ClueAI/ChatYuan-large-v2
+dandrade/flan-t5-base-es-en
+vocabtrimmer/mt5-small-trimmed-ja-15000-jaquad-qg
+DeliveryBoy/DiabloGPT-medium-Kurisu
+huggingtweets/minxmarple
+p-christ/qa_t5_flan_large_fine_tuned
+Adarsh/t5-small-finetuned-t5-adarsh
+nenkoru/alpaca-lora-7b-hf-int4
+huggingtweets/hebja_
+AbbyRhea/DialoGPT-small-adrienbot
+praveenseb/product_review_generator
+oren186/my_model_realtry_v2
+edz3/gpt2-alpaca
+monish162/kirthin-waifuu
+ShyamVarahagiri/MachineTranslation
+samhog/gpt2-imdb-pos
+Deojoandco/anthropic_hh_reward_function
+gcesare/t5-samsum
+kiviki/mt5-base-sk-news
+NeuraXenetica/ManaGPT-1020
+Saiyajino/peterson_model
+omarelsayeed/gpt_quran_tafseer2
+Patil/Stable-Diffusion-prompt-generator
+vishal2014/t5_squad_long_vam
+NourEldin-Osama/t5-small-finetuned-text-simplification
+huggingtweets/jackdergy
+k4black/Salesforce-codet5-small-CodeXGLUE-CONCODE-selected
+mnoukhov/gpt2-imdb-sentiment-classifier
+zpn/llama-7b
+mrm8488/bloomz-7b1-mt-sharded-bf16
+jerrychatz/distilgpt2-finetuned-art
+pszemraj/flan-t5-xl-instructiongen
+thanhnguyenvn/distilgpt2-finetuned-wikitext2
+BobbyB1234/mt5-small-finetuned-amazon-en-es
+zee2221/ai_me
+Bingsu/llama-190m-arch
+amosc00/FoodAds_OPT350m_clean_eng
+janna42/DialoGPT-small-phoenix
+Deojoandco/anthropic_hh_reward_model
+AbbyRhea/DialoGPT-medium-AA
+swype/deepshard-13B-raw
+eunyounglee/polyglot_kr_0324
+kejian/cpsc-log5-bin4-5repeat
+Anasss/Bengali_GED_Model
+ClueAI/ChatYuan-large-v2-paddle
+nimblesquirrel/rugpt3small_based_on_gpt2-new_model
+kejian/cpsc-log15-bin4-3repeat-v2
+kejian/cpsc-log5-bin4-3repeat-v2
+Khushnur/t5-end2end-questions-generation_v4
+kejian/cpsc-wmle-0.85
+huggingtweets/pixel_tofu
+infinitylogesh/statscoder
+huggingtweets/andrewyng-elonmusk-karpathy
+nimblesquirrel/rugpt3small_based_on_gpt2-math_model
+marbonora/my_awesome_billsum_model
+femboysLover/rugpt3_large_lora_mailru-adapter-merged
+FrozenSmoothie/DialoGPT-medium-star
+awsgcptest/test_model_3
+huggingtweets/asainman
+adamluc/testneoxt
+BlackKakapo/t5-small-grammar-ro-root
+stipot/distilgpt2-finetuned-wikitext2
+Dmitriy007/Socrat_tmp
+huggingtweets/bbc
+Ransaka/sinhala-gpt-lyrics
+ptha0006/t5-small-11b-ssm-tqa
+DunnBC22/codet5-small-Generate_Docstrings_for_Python
+liujch1998/vera
+eustance/longtao-v1
+bryanmildort/biomedlm_summary
+etri-lirs/kebyt5-base-preview
+KBlueLeaf/guanaco-7B-leh
+Ransaka/sinhala-gpt2
+Fizi12341/astro_bot1234
+0x70DA/t5-v1_1-base-abs_qa
+BelleGroup/BELLE-7B-gptq
+Ghust/Shazamcaraiteste
+sallywww/trained_llama_stanford_format
+AravindAct/output
+TabbyML/NeoX-70M
+stiGGy/DialoGPT-medium-raymond
+amaydle/mergex
+zaydzuhri/flan-t5-small-tldr-50k
+dkuntso/gen-qm-17-small
+TabbyML/NeoX-1.3B
+wujohns/gpt2-chitchat-learn
+nakcnx/OTG-Math-680
+ashhadahsan/amazon-review-summarizer
+PeterBanning71/t5-small-finetuned-tfg
+nenkoru/alpaca-lora-7b-onnx-fp32-with-past
+datalearningpr/poetry_gpt2
+dvruette/oasst-gpt-neox-20b-1000-steps
+Earth1221/GPT_Thai
+patthebaker45/DialoGPT-small-Carlbot
+augustocsc/gpt-m-large
+omarelsayeed/gpt2quran
+Vishnu007/FLAN-T5-Alpaca52k
+guyhadad01/t5-large-mod-translation
+Vishnu007/Vichu-T5
+nenkoru/alpaca-lora-7b-onnx-fp16-with-past
+kinshuk-h/flan-t5-cbp-lkg-small
+r4k4n1/DialoGPT-small-joshua
+PeterBanning71/output-tfg
+iamplus/gpt-neoxt-20b-v2
+BreadAi/MuseBread
+LarsJonasson/pythia-410m-deduped-sft-swedish
+szilard/flan-t5-base-samsum
+aegrif/CIS6930_DAAGR_GPT2_Emo
+whu9/multi_doc_sum_t5_slide
+huggingtweets/roach_collector
+4freek/bot_attention
+dwattles/distilgpt2_finetune
+Futyn-Maker/rugpt3small_based_on_gpt2-finetuned_teachers_quotes_small
+kinshuk-h/flan-t5-cbp-lkg-mlm-small
+omarelsayeed/gpt2_quranic_text_generation
+himanshubeniwal/gpt2_pretrained
+iamplus/bloomz-7b1-v4
+ayush98420/codeparrot-gpt2-finetune
+BlackKakapo/flan-t5-small-paraphrase-ro
+Sabyasachi/codeparrot-ds
+sardukar/llama13b-4bit-v2
+berchielli/llm-instruct-chat-pt-br-7b
+kailorston/my_awesome_opus_books_model
+sdadas/mt5-base-translator-en-pl
+sdadas/mt5-base-translator-pl-en
+sdadas/flan-t5-base-translator-en-pl
+Adikul25/t5-base-finetuned-wikisql
+Futyn-Maker/rugpt3small_based_on_gpt2-finetuned_teachers_quotes
+scarredwitch/codeautocomplete
+DohaData/gpt2-base-french-finetuned
+DohaData/gpt2-base-french-finetuned-v2
+Sukul/DialoGPT-small-Harsabot1
+IlyaGusev/rut5_large_turbo_instructed
+datalearningpr/couplet_t5
+kinshuk-h/flan-t5-cbp-lkg-mlm-base
+kplro/model_proga
+wcde/llama-30b-3bit-gr128
+XBOT-RK/distilgpt2-wiki-qa
+wcde/llama-7b-4bit-gr128
+wcde/llama-7b-4bit-act
+wcde/llama-13b-4bit-gr128
+wcde/llama-13b-3bit-gr128
+under-tree/choice-question-generator
+himanshubeniwal/gpt2_pretrained_finetuned
+gayanin/gpt2_grammar_correction_model
+andreaskoepf/oasst-sft-2-pythia-12b-4000
+bofenghuang/vigogne-13b-instruct
+arshisaloot/my_awesome_finetuned_clm-model
+yuchenlin/action-t5-large-sw
+Pierune/HarryTestBot
+kinshuk-h/flan-t5-cbp-lkg-base
+chinoll/openchat
+circulus/alpaca-base-7b
+RM11/my_opus_books_model1
+whu9/multi_doc_sum_t5_slide_no_prompt
+yuchenlin/gpt2-for-commongen
+yuyijiong/mt0-xl-bf16-sentiment-quadruple
+hakatiki/hu-gpt
+ChaiML/reward_models_100_170000000_cp_498032
+gbarone77/mt5-small-finetuned-wikisql-with-cols
+ChaiML/reward_models_gpt2xl_100_170000000_cp_424992
+briands/wikitext-accelerate
+Adarsh/SciFive-base-Pubmed_PMC-finetuned-SciFive-base-Pubmed-PMC
+k4black/Salesforce-codet5-small-java-small-selected
+briands/wikitext-lab-accelerate
+Kyrmasch/t5-kazakh-qa
+Xmaster6y/gpt2-mul
+Bainbridge/gpt2-ear_1-hs_cn_decay
+bofenghuang/vigogne-33b-instruct
+gbarone77/t5-large-finetuned-wikisql-with-cols
+huggingtweets/hexayurt-leashless
+huggingtweets/harrystebbings-paulg-sahilbloom
+k4black/Salesforce-codet5-small-java-small-selected-wo-tokens
+YeungNLP/bloom-396m-zh
+aiman-lameesa/codeparrot-ds-accelerate
+aiman-lameesa/codeparrot-accelerate
+ybelkada/bloom-560m-8bit
+huggingtweets/hackscsslife
+huggingtweets/cassie_site_02-g_arudaa-hackscsslife
+smjain/flan-alpaca-large-code
+adamluc/neoxt
+MetaIX/Alpaca-30B-Int4
+YeungNLP/bloomz-396m-zh
+DeathReaper0965/t5-context-corrector
+andrewbrown/gpt2-mi-reflector
+rghosh8/t5-end2end-questions-generation
+jeffwan/llama-7b-hf
+eaqui/T5_webnlg
+Sheizenger/gpt2-new
+fathyshalab/autotrain-dialogsumgerman-44305111787
+huggingtweets/normafoleytd1
+Aimazing/ruT5_summarizer
+AlexWortega/instruct_rugptlargeRL
+hongdoubao/flan-t5-base-samsum
+thiagolaitz/opt-125m-pt-finetuned
+huggingtweets/ordinarygamers
+vldsavelyev/guitar_tab_gpt2_retrained
+huggingtweets/aeg0lius
+hihihotdog/DialoGPT-bot
+JJKK100/mt5-small-finetuned-amazon-en-es
+heegyu/koalpaca-355m
+wyu1/FiD-3B-NQ
+wyu1/FiD-3B-TQA
+wyu1/FiD-3B-WebQ
+Kiranravichandran/gpt-7b
+huggingtweets/deblockify
+egonrp/gpt2-medium-wikiwriter-squadv11-portuguese
+alaahussein/t5-small-finetuned-subset-billsum-tutorial
+hifructose/autotrain-jira-again-44396111956
+kejian/cpsc-log5-bin4-5repeat-v2
+kejian/cpsc-log5-bin4-3repeat-v3
+Harshil13/botGPT2_Context_v1
+Tverous/t5-large-anli
+MeeraGohil/testing
+4ku/gpt2-personachat
+vishal2014/t5_boolean_gen
+danielpark/medical-QA-chatGPT2-v1
+LarsJonasson/pythia-1.4b-deduped-sft-swedish
+YeungNLP/bloom-820m-zh
+YeungNLP/bloomz-820m-zh
+Ishika2216/my_awesome_opus_books_model
+YeungNLP/bloom-1b4-zh
+YeungNLP/bloomz-1b4-zh
+ENOT-AutoDL/gpt-j-6B-tensorrt-int8
+sohamchougule/t5-small-finetuned-samsum
+4ku/gpt2-persona-yoda
+praveem/t5-small-finetuned-xsum
+fxmarty/onnx-tiny-random-gpt2-without-merge
+fxmarty/onnx-tiny-random-gpt2-with-merge
+Intel/gpt-j-6B-pytorch-int8-static
+Ishika2216/my_model
+shashanksingh944/playwright-code-generator
+JosephusCheung/GuanacoOnConsumerHardware
+sohamchougule/t5-large-finetuned-samsum
+TastyBaconn/t5-small-finetuned-xsum
+sheoran95/my_model_1
+arijit1201/DialoGPT-small-rickbot1000
+uselezzz/ruT5-summarization
+vuilleminethan/autotrain-marianmt-shi-en-fr-44506112181
+declare-lab/flan-alpaca-xxl
+uselezzz/ruT5-summarizer-v2
+jayabrata97/gpt3-squad
+gaotianyu1350/decontextualizer-t5-3b
+Bainbridge/gpt2-ear_1-id_prej_hs_cn
+Newborn7/gpt2-author-clm
+Pedrambbk/mt0-base-poll-generation
+Pedrambbk/mt0-small-poll-generation
+shashanksingh944/playwright-fine-tuned
+AnonymousArt/PolyglotIQ_mt5_lang_detect
+MetaIX/Alpaca-30B-Int4-Safetensors
+skrishna/gpt-test
+mjbeattie/t5small_contracts
+IlyaGusev/mt0_xxl_ru_turbo_alpaca_lora_merged
+mjbeattie/mjbbillsum
+mjbeattie/gcicontracts
+alex2awesome/meetings_summaries__t5-base
+duyduong9htv/finetuned-cnn
+Jaehun/lively-gorge-29
+creageng/codeparrot-small
+egonrp/gpt2-medium-squadv11-portuguese
+huggingtweets/ninjascalp-profit8lue-wifeyalpha
+TofuNumber1/mt5-small-finetuned-amazon-en-es
+aced125/codeparrot-ds
+huggingtweets/hereafterthree
+alex2awesome/city_council_gpt3_silver_standard_summaries__t5-large
+Meohong/codeparrot-ds
+huggingtweets/quietluke
+AlekseyKorshuk/gpt2-jokes
+vocabtrimmer/mt5-small-trimmed-en
+huggingtweets/sansansansaname
+team-nave/ja-test-001
+huggingtweets/hutaosoulmate
+benkimz/agbrain
+sheoran95/my_model1
+Inhaexpress/DialoGPT-medium-paimon
+trl-internal-testing/tiny-random-LlamaForCausalLM
+Azzizz17/autotrain-translator-44772112701
+Azzizz17/autotrain-translator-44772112704
+april49/autotrain-t5-base-44767112714
+eunyounglee/polyglot_ko_0329
+sheoran95/my_model2
+lissadesu/t5_ami_summarizer
+sheoran95/my_model_2
+huggingtweets/etherphoenix
+vocabtrimmer/mt5-small-trimmed-en-5000
+vocabtrimmer/mt5-small-trimmed-en-10000
+vocabtrimmer/mt5-small-trimmed-en-15000
+vocabtrimmer/mt5-small-trimmed-en-30000
+vocabtrimmer/mt5-small-trimmed-en-60000
+vocabtrimmer/mt5-small-trimmed-en-90000
+vocabtrimmer/mt5-small-trimmed-en-120000
+huggingtweets/iusedtobeaduck
+Bainbridge/gpt2-synth
+Bainbridge/gpt2-synth-real
+SukeerthJonathan/bhagavatgita
+Pavan27/autotrain-telugu_summarization-44817112805
+Pavan27/autotrain-telugu_summarization-44817112806
+Pavan27/autotrain-telugu_summarization-44817112802
+Pavan27/autotrain-telugu_summarization-44817112803
+Pavan27/autotrain-telugu_summarization-44817112804
+april49/autotrain-mooyaho_v2_real-44822112832
+sheoran95/single_sentence_models
+falkne/flan-alpaca-xl
+sheoran95/shuffled_order_nodes_with_edge_label_sentence_level_T5
+voidful/byt5_base_v3
+likhithasapu/FineTuneGPT-2
+ybelkada/bloom-1b7-8bit
+abhraskygod/my_awesome_billsum_model
+sheoran95/normal_order_nodes_without_edge_label_sentence_level_T5
+PSW/t5-base-samsumgen-xsum-conv-seed42
+vocabtrimmer/mt5-small-squad-qg-trimmed-en
+jeremyvictor/flan-t5-base-jfleg
+Corianas/111m
+cchanev/my_awesome_eli5_clm-model
+Corianas/256m
+nenkoru/alpaca-lora-7b-onnx-fp16-no-past
+Corianas/1.3b
+Corianas/590m
+jumelet/lm_training
+nenkoru/alpaca-lora-7b-onnx-fp32-no-past
+aegrif/CIS6930_DAAGR_GPT2_NoEmo
+PSW/t5-base-samsumgen-xsum-conv-seed33
+sambydlo/scientific_abstract_simplification-scientific-lay-summarise
+april49/autotrain-mooyaho_v4-44949112969
+TedQ/TestU
+marco1978/distilgpt2-squad
+whaleloops/BioMedLM_HCPT
+medalpaca/medalpaca-7b
+hf-tiny-model-private/tiny-random-BloomForCausalLM
+hf-tiny-model-private/tiny-random-BloomForQuestionAnswering
+hf-tiny-model-private/tiny-random-BloomForSequenceClassification
+hf-tiny-model-private/tiny-random-BloomForTokenClassification
+hf-tiny-model-private/tiny-random-BloomModel
+snork-maiden/content
+bprateek/product-description-generator
+hf-tiny-model-private/tiny-random-GPT2ForSequenceClassification
+hf-tiny-model-private/tiny-random-GPT2ForTokenClassification
+hf-tiny-model-private/tiny-random-GPT2LMHeadModel
+hf-tiny-model-private/tiny-random-GPT2Model
+hf-tiny-model-private/tiny-random-GPTNeoXForCausalLM
+hf-tiny-model-private/tiny-random-GPTNeoXModel
+hf-tiny-model-private/tiny-random-T5ForConditionalGeneration
+hf-tiny-model-private/tiny-random-T5Model
+atrost/flan-t5-large-pubmed_qa-pqa_artificial
+andreaskoepf/oasst-sft-2-candidiate-0
+shm0007/en-to-bn2
+huggingtweets/meliulkumen
+april49/autotrain-mooyaho_v5-44979113066
+Hinataaa/autotrain-summarize_model_arp-45003113075
+PSW/t5-base-samsumgen-xsum-conv-seed17
+MetaIX/Alpaca-30B-Int4-128G-Safetensors
+shm0007/t5-small-finetuned-en-to-ro
+OccamRazor/pythia-160m-deduped-gptq-4bit
+tbtao/llamatokenizer
+shm0007/newt5en-to-bn2
+Bilkies/t5-questions-generation
+shm0007/worknewt5en-to-bn2
+wentingzhao/gpt2-xl-anlg-distilled-from-gpt3-o1-h-o2
+PSW/t5-base-samsumgen-xsum-conv-seed36
+aegrif/CIS6930_DAAGR_T5_Emo
+vocabtrimmer/mt5-small-trimmed-en-15000-squad-qg
+kkuramitsu/mt5-mini9L
+vocabtrimmer/mt5-small-trimmed-en-30000-squad-qg
+aegrif/CIS6930_DAAGR_T5_NoEmo
+Trannnnn/translate_2_for_Vietnam
+mangohotteok/mangov1
+eunyounglee/polyglot_kr_0330
+PSW/t5-base-samsumgen-xsum-conv-seed55
+circulus/alpaca-base-13b
+circulus/alpaca-doctor-7b
+circulus/alpaca-doctor-13b
+JYumeko/my_awesome_billsum_model
+vocabtrimmer/mt5-small-trimmed-en-10000-squad-qg
+vocabtrimmer/mt5-small-trimmed-en-5000-squad-qg
+ShawnxLin/lamoid
+vocabtrimmer/mt5-small-trimmed-en-120000-squad-qg
+SaeedMLK/MT5Tokenizer_reading-comprehension
+circulus/alpaca-doctor-7b-v2
+StephenBrink/DialoGPT-small-will
+vocabtrimmer/mt5-small-trimmed-en-90000-squad-qg
+Azzizz17/autotrain-translator3-45113113262
+sheoran95/normal_order_nodes_with_edge_label_sentence_level_T5
+lmqg/mt5-small-squad-qa
+vocabtrimmer/mt5-small-squad-qg-trimmed-en-5000
+PeterBanning71/t5-small-bueno-tfg
+Hinataaa/autotrain-text_summary_arp-45146113306
+andreaskoepf/oasst-sft-3-pythia-12b-epoch-2.35
+Hinataaa/summ_arp_org
+ritvic/t5_n
+vocabtrimmer/mt5-small-squad-qg-trimmed-en-10000
+vocabtrimmer/mt5-small-squad-qg-trimmed-en-15000
+neuesql/sqltransformer
+vocabtrimmer/mt5-small-trimmed-en-60000-squad-qg
+vocabtrimmer/mt5-small-squad-qg-trimmed-en-30000
+PeterBanning71/t5-small-salidaLarga-tfg
+crisp-im/alpaca-mt5-base
+dpasch01/flan-attitude-base
+Azzizz17/autotrain-aaaa-45159113325
+vocabtrimmer/mt5-small-squad-qg-trimmed-en-60000
+ChaiML/starred_messages_5m_ep2
+sheoran95/shuffled_order_nodes_without_edge_label_sentence_level_T5
+vocabtrimmer/mt5-small-squad-qg-trimmed-en-90000
+vocabtrimmer/mt5-small-squad-qg-trimmed-en-120000
+0-hero/flan-alpaca-ul2
+vocabtrimmer/mt5-small-squad-qa-trimmed-en
+Angel-IG/distilgpt2-finetuned-mecanicos
+Garell/flan-t5-small-samsum
+vocabtrimmer/mt5-small-squad-qa-trimmed-en-5000
+vocabtrimmer/mt5-small-squad-qa-trimmed-en-10000
+vocabtrimmer/mt5-small-squad-qa-trimmed-en-15000
+vocabtrimmer/mt5-small-squad-qa-trimmed-en-30000
+vocabtrimmer/mt5-small-trimmed-en-enquad-qg
+jzsues/llama-7b-enh-8bit
+vocabtrimmer/mt5-small-squad-qa-trimmed-en-60000
+Corianas/Quokka_2.7b
+vocabtrimmer/mt5-small-squad-qa-trimmed-en-90000
+kashif/llama-7b_stack-exchange_RM_peft-adapter-merged
+medalpaca/medalpaca-13b
+vocabtrimmer/mt5-small-squad-qa-trimmed-en-120000
+BreadAi/DiscordPy
+Corianas/256_5epoch
+spdenisov/kamll
+andreaskoepf/oasst-sft-3-pythia-12b-epoch-3.5
+sherin123/my_awesome_opus_books_model
+SaeedMLK/mt5-large-squad-reading-comprehension
+IlyaGusev/llama_7b_ru_turbo_alpaca_lora_merged
+0-hero/flan-OIG-ul2
+helenai/bigscience-bloom-560m-ov
+0-hero/flan-OIG-small
+hopkins/amr-model
+Kristijan/gpt2_wt103_12-layer
+jonfd/gpt2-igc-is
+Ar4ikov/PromptGPTv2
+0-hero/flan-OIG-base
+CreatorFPT/T5-base
+ShrJatin/my_awesome_opus_books_model
+dontito/llama-7b-hf-v0
+0-hero/flan-OIG-xl
+fcomuniz/fr-summary-ptt5-xsum
+PrathameshPawar/mt5-small-finetuned-amazon-en-es
+huggingtweets/sonadrawzstuff
+huggingtweets/vageli
+vocabtrimmer/mt5-small-trimmed-en-15000-squad-qa
+srhm-ca/gpt2-tags
+FredDYyy/mT5-base-translation-vi-en-jp-cn
+lxe/Cerebras-GPT-2.7B-Alpaca-SP
+chavinlo/alpaca-13b
+keyfan/chinese-alpaca-7b-gptq
+mqy/mt5-small-text-sum-10
+152334H/alpaca-7B-fp16
+nc33/T5_multitask
+Tella/gpt4all
+NaoS2/mt5s-bi2590
+mqy/mt5-small-text-sum-11
+ToborWinner/DialoGPT-medium-jolly
+DanielPinheiro/gpt4all
+Abzu/llama-7b-hf
+DanielPinheiro/gpt4all_first_epoch
+lambdasec/santafixer
+chavinlo/gpt4-x-alpaca
+ahana/my_awesome_billsum_model
+AryanManakame/my_awesome_billsum_model
+NaoS2/mt5s-bi25150
+rubentito/hivt5-base-mpdocvqa
+Khushnur/t5-end2end-questions-generation_squad
+NaoS2/mt5s-bi50150
+vocabtrimmer/mt5-small-trimmed-en-30000-squad-qa
+jslin09/gpt2-chinese-cluecorpussmall-finetuned-fraud
+camelids/llama-7b-int4-gptq-groupsize128-safetensors
+camelids/llama-13b-int4-gptq-groupsize128-safetensors
+camelids/llama-33b-int4-gptq-groupsize128-safetensors
+camelids/llama-65b-int4-gptq-groupsize128-safetensors
+nlp-godfathers/fake_buzz_gpt
+TaniyaHaghighi/meQ_model
+cloudqi/cqi_question_solver_translator_v0
+hopkins/amr-model-2
+fede-error404/gepeto-esp
+chavinlo/toolpaca
+adamluc/pythia7b
+dvruette/oasst-llama-13b-1000-steps
+rug-nlp-nli/flan-base-nli-label-custom
+rug-nlp-nli/flan-base-nli-explanation-custom
+BreadAi/MuseBig
+rug-nlp-nli/flan-base-nli-label-explanation-custom
+iyaja/alpacapp-30B
+iyaja/alpacapp-13B
+armahlovis/English2AkuapemTwi
+Ashwin0/mt5-small-finetuned-amazon-en-es
+pandas2002/my_awesome_billsum_model
+dvruette/oasst-llama-13b-2-epochs
+CyranoB/flan-t5-alpaca-xxl
+vocabtrimmer/mt5-small-trimmed-en-90000-squad-qa
+jeffwan/llama-13b-hf
+sjadhav3/hallucination_free_dialogue
+anon8231489123/gpt4-x-alpaca-13b-native-4bit-128g
+vocabtrimmer/mt5-small-trimmed-en-10000-squad-qa
+shrinivasbjoshi/V3T5LARGE
+keemooo/9898
+vocabtrimmer/mt5-small-trimmed-en-5000-squad-qa
+declare-lab/flan-gpt4all-xl
+sdworld/flan-alpaca-xl-ft
+pinkmanlove/llama-7b-hf
+pinkmanlove/llama-65b-hf
+CyranoB/flan-t5-alpaca-filtered-xxl
+mncai/chatdoctor
+pinkmanlove/llama-33b-hf
+pinkmanlove/llama-13b-hf
+vocabtrimmer/mt5-small-trimmed-en-60000-squad-qa
+lvxing/test1
+darknoon/distilgpt2-finetuned-wikitext2
+shangari/t5-small-finetuned-car_dataset
+aal2015/Charlie-and-the-Chocolate_Factory-LM-model
+vocabtrimmer/mt5-small-trimmed-en-120000-squad-qa
+chinoll/chatsakura-3b
+chinoll/chatsakura-3b-int8
+chinoll/chatsakura-3b-int4
+jakesucks/zef_gpt2
+alicia213/distilgpt2-finetuned-wikitext2
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v2
+nidhi22044/my_train
+Saloni18/translation
+RohanHBTU/t5-small-finetuned-hing-en
+Selyam/gpt4-x-alpaca
+huggingtweets/yourtwtsecrets
+huggingtweets/hebihimeslut-slutkage-slutmizukage
+ngtoanrob/envi-translation
+Sl4nia/news-summarization
+jslin09/bloomz-560m-finetuned-fraud
+huggingtweets/elonmusk-elysiatxt
+husseinMoh/t5-small-finetuned-text-simplification
+nubitoad/dreams
+andreaskoepf/pythia-12b-pre-3500
+soudainana/m3logmodel
+trongvox/alpaca7B-lora
+tp/caramel-t0-samsum
+BigSalmon/TruncatedLLamaGPT2Large
+Bilkies/t5-end2end-questions-generation_V1
+vldsavelyev/guitar_tab_gpt2_bass
+jmhuerta/wikipediaGPT2
+ChandlerU11/GPT-2_Target_Fake
+PavanNeerudu/t5-base-finetuned-wnli
+sheoran95/single_sentence_models_1
+soBeauty/flax-community-thainews-20230402
+PavanNeerudu/t5-base-finetuned-cola
+ayushutkarsh/t3
+jeffwan/llama-30b-hf
+Bradarr/toolpaca-13b-native-4bit-128g-cuda
+Bradarr/gpt4-x-alpaca-13b-native-4bit-128g-cuda
+PavanNeerudu/t5-base-finetuned-rte
+t0mmy/t5-base-japanese-finetuned-livedoor_news_corpus
+vocabtrimmer/mt5-small-trimmed-en-squad-qg
+Inhaexpress/DialoGPT-medium-paimon2
+jeremyvictor/flan-t5-base-clang8-e1-b16
+Seungjun/t5-newVersion_Jhon_Wick
+PavanNeerudu/t5-base-finetuned-sst2
+PavanNeerudu/t5-base-finetuned-mnli
+PavanNeerudu/t5-base-finetuned-qqp
+PavanNeerudu/t5-base-finetuned-mrpc
+xinyu66/catgpt-sft
+KBlueLeaf/guanaco-7b-leh-v2
+universonic/llama-7b-hf
+PavanNeerudu/gpt2-finetuned-sst2
+sheoran95/normal_order_nodes_without_edge_label_sentence_level_T5_run2
+PavanNeerudu/gpt2-finetuned-mrpc
+huggingtweets/elonmusk-sdrogoblur-zanomind
+PavanNeerudu/gpt2-finetuned-qqp
+PavanNeerudu/gpt2-finetuned-mnli
+PavanNeerudu/gpt2-finetuned-stsb
+PavanNeerudu/gpt2-finetuned-qnli
+PavanNeerudu/gpt2-finetuned-wnli
+PavanNeerudu/gpt2-finetuned-rte
+Szymon/my_awesome_billsum_model
+Seungjun/textSummaryV2_01
+Sl4nia/news-summarization-argilla
+soBeauty/flax-community-SukhoThaiCLS-20230402
+vocabtrimmer/mt5-small-trimmed-en-squad-qa
+ghdi/imbd-reviews-sample
+Seungjun/textSummaryV2_02
+Bearnardd/gpt2-imdb
+malteos/gpt2-uk
+PragmaticMachineLearning/address-norm
+Seungjun/textSummaryV2_03
+husseinMoh/t5-finetuned-text-simplification
+COMP0087-GROUP8-22-23/GPT2-poem-baseline
+Transformer-01/t5-small-finetuned-xsum
+PragmaticMachineLearning/name-norm
+fewshot-goes-multilingual/mTk-AdversarialQA_en-SberQuAD_ru-1B
+sheoran95/normal_order_nodes_without_edge_label_sentence_level_T5_run3
+IvyPo/gpt2-author-clm
+PragmaticMachineLearning/price-norm
+cahya/bloomz-1b7-instruct
+fewshot-goes-multilingual/mTk-SQuAD_en-SQAD_cs-1B
+DarwinAnim8or/NoSleepPromptGen
+pranjalsurana/t5-end2end-questions-generation
+IvyPo/gpt2-author-clm_2
+staturecrane/news_kg_model
+SakuraKnight/T5-QG-SQuAD
+hopkins/amr-model-3
+IvyPo/gpt2-author-clm_3
+arefm/refine_suggestions_codet5-base
+hopkins/strict-small-1
+DianaG96/gpt2-author-clm
+Markkut/gpt2-author-clm_3
+jeremyvictor/flan-t5-large-clang8-e1-b16
+huggingtweets/fuckrvt
+OptimalScale/gpt2-large-inst-tuning
+OptimalScale/gpt2-inst-tuning
+eepyblanky/DialoGPT-medium-malina
+ritakurban/DistilGPT_PubMedQA
+hopkins/strict-small-2
+ZengX/FT_KB1_KB2
+ShrJatin/100K_sample_model
+ZengX/FT_KB1_KB2_test
+COMP0087-GROUP8-22-23/GPT2_BERT_0.5_OUT
+smjain/flan-jain-xl
+ChandlerU11/GPT-2-Target_Fake_Only_Gen
+Esly35i/Esmoli
+taptapgo/flan-t5-tldr
+zcahjl3/gpt2-story-PPO
+jeremyvictor/flan-t5-base-clang8-e8-b16
+YeungNLP/bloom-2b6-zh
+YeungNLP/bloomz-2b6-zh
+YeungNLP/bloom-6b4-zh
+YeungNLP/bloomz-6b4-mt-zh
+YeungNLP/bloomz-6b4-zh
+sheoran95/shuffled_order_nodes_with_edge_label_sentence_level_T5_run1
+sheoran95/shuffled_order_nodes_with_edge_label_sentence_level_T5_run2
+sheoran95/shuffled_order_nodes_with_edge_label_sentence_level_T5_run3
+philschmid/instruct-igel-001
+Hinataaa/autotrain-summ_arp_2-46098114797
+KakkiDaisuki/gpt2gipgpt-finetuned-ner
+worknick/opt-125m-tldr
+YeungNLP/firefly-bloom-1b4
+anoushka1196/t5-small-finetuned-xsum
+andreaskoepf/pythia-12b-pre-2000
+edbeeching/llama-se-rl-finetune-128-8-8-1.4e-5step_1200-adapter-merged
+debarghabhattofficial/t5-small-squad-qg-a2c-spt
+debarghabhattofficial/t5-small-squad-qg-a2c-spt-valid
+sheoran95/shuffled_order_nodes_without_edge_label_sentence_level_T5_run1
+sheoran95/shuffled_order_nodes_without_edge_label_sentence_level_T5_run2
+dvruette/oasst-pythia-12b-reference
+sheoran95/shuffled_order_nodes_without_edge_label_sentence_level_T5_run3
+Hinataaa/autotrain-summ_arp_4-46233114888
+Laurie/flan-t5-base-samsum
+refringence/ad-gpt2-finetuned-dch1
+debarghabhattofficial/t5-small-squad-qg-a2c-spt-test
+owncar/t5-small-finetuned-plos
+lmsys/vicuna-13b-delta-v0
+zaaabik/gpt2-arxiv-clm-m1
+inshining/homework_w4
+sgolkar/distilgpt2-finetuned-wikitext2
+dvruette/oasst-pythia-12b-pretrained-sft
+marco-c88/gpt2-finetuned-mstatmem_1ep_gpt2_no_valid
+Harshil13/botGPT2_PT_Context_v1
+Demolog/gpt2-demolog-clm_tolkien
+ghdi/imbd-reviews-sample-10000
+BlackKakapo/flan-t5-base-paraphrase-ro
+yogesh7660/my_awesome_opus_books_model
+atrost/flan-t5-large-pubmed_qa-pqa_labeled
+sgolkar/distilgpt2-finetuned-brookstraining
+timhk/t5-base_cryptic-crosswords-def-ans
+OxiDoc/gpt3-author-clm
+him1411/EDGAR-T5-base
+him1411/EDGAR-flan-t5-base
+him1411/EDGAR-T5-Large
+him1411/EDGAR-Tk-Instruct-Large
+him1411/EDGAR-Tk-instruct-base-inst-tune
+OxiDoc/gpt2-author-clm
+huggingtweets/whart31
+sgolkar/gpt2-finetuned-brookstraining
+MihoZaki/t5-base-Txt2MQ
+timhk/t5-base_cryptic-crosswords-baseline
+kghm1/gpt2-HP4-clm
+Actalyst/t5-large-new-v1
+eachadea/legacy-ggml-vicuna-13b-4bit
+eachadea/legacy-vicuna-13b
+timhk/t5-base_cryptic-crosswords-wordplay
+br0hum/my_awesome_opus_books_model
+OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5
+br0hum/Kaggle-freezed
+eachadea/ggml-gpt4-x-alpaca-13b-native-4bit
+anon8231489123/vicuna-13b-GPTQ-4bit-128g
+elinas/vicuna-13b-4bit
+jeffwan/vicuna-13b
+sgolkar/gpt2-medium-finetuned-brookstraining
+omar47/t5-base-summarization
+niansong1996/lever-spider-codex
+totallynotbrent/brotGPT
+huggyllama/llama-7b
+huggyllama/llama-13b
+smjain/flan-jain-code-xl
+arch1ev/gpt2-arch1ev-clm-git
+Naseej/AskMe-Large
+huggyllama/llama-30b
+pvduy/vicuna-13b
+lcw99/llama-7B-alpaca-30p
+huggyllama/llama-65b
+KakkiDaisuki/ADRgpt2gipgpt-finetuned-ner
+dla9944/text-to-text
+huggingtweets/dash_eats-lica_rezende
+huggingtweets/so_1onely
+huggingtweets/10ktfshop-othersidemeta-worldwide_web3
+naxautify/gpt2-4k
+owncar/t5-small-finetuned-elife
+abzjy024/gpt2-chinese-ft
+Anwistac21/Rick-And-Morty-GPT
+Jonash01/t5-small-finetuned-xsum
+4ku/gpt2-persona-sponge_bob
+Inhaexpress/DialoGPT-medium-harry_potter_ps
+sheoran95/augmented_nodes_with_edge_label_sentence_level_T5_run1
+sheoran95/augmented_nodes_with_edge_label_sentence_level_T5_run2
+RohanHBTU/t5-large-finetuned-hing-en
+RohanHBTU/t5-base-finetuned-hing-en
+sheoran95/augmented_nodes_with_edge_label_sentence_level_T5_run3
+sheoran95/augmented_nodes_without_edge_label_sentence_level_T5_run1
+laion/anh-bloomz-7b1-mt-cross-lingual
+dgamal/RickBot
+Enbo/GPT2-KB-ROC
+owncar/t5-base-finetuned-elife
+declare-lab/flan-sharegpt-xl
+Enbo/GPT2-KB-ROC1
+Enbo/GPT2-KB-PARA-ROC
+Enbo/GPT2-ROC
+samwit/vicuna-13b-8bit
+Jonash01/t5-base-wikisplit-finetuned-requirements
+Corianas/Quokka_256m
+Corianas/Quokka_111m
+dvruette/llama-13b-pretrained
+br0hum/Kaggle-freezed-en-de
+br0hum/colab-en-de
+coldra1n/mt5-small-finetuned-amazon-en-es
+Bainbridge/gpt2-no_ear
+Bainbridge/gpt2-ear_1-hs_cn
+Bainbridge/gpt2-ear_1-cn
+Bainbridge/gpt2-ear_1-cn_decay
+Bainbridge/gpt2-ear_1-id_cn
+Bainbridge/gpt2-ear_1-id_prej_cn
+robintan66/DialoGPT-small-harrypotter
+andreaskoepf/pythia-1.4b-gpt4all-pretrain
+MajorCrayon7047/MadboneAssistantGPT-2
+gutentag/alpaca-lora
+JulianPJ/BERT_T5
+nin-ran-jan/wmt16_100k_exp2
+CNXT/CHaTx
+sheoran95/augmented_nodes_without_edge_label_sentence_level_T5_run3
+sheoran95/augmented_nodes_without_edge_label_sentence_level_T5_run2
+br0hum/colab-en-de-2
+davidvblumenthal/GPT-Verite-125M-prototype
+hmbyt5-preliminary/byt5-small-historic-multilingual
+VennuT/DialoGPT-medium-Alphinaud
+jinymusim/dialogmodel
+shm0007/test0405en-to-bn
+dzionek/distilgpt2-rap
+Tristo/FORESTFUCKINGLINCHABLE
+arshisaloot/DialoGPT-large-finetuned-wikitext2
+dvruette/llama-13b-pretrained-sft-epoch-2
+dvruette/llama-13b-pretrained-sft-epoch-1
+dwattles/distilgpt2_finetune_wiki
+arshisaloot/DialoGPT-large-finetuned-mc-uk-2000
+Bearnardd/test_bearnard
+shm0007/newit2en-to-bn
+huggingtweets/kilohurgle
+yuchenlin/fast_agent_sw
+arshisaloot/DialoGPT-large-finetuned-mc-uk-200000
+Bearnardd/test_beard
+triple777/annicebot
+Bilkies/t5-MCQ-question-generator
+arshisaloot/DialoGPT-large-finetuned-mc-uk
+AntIIITD/t5-base-finetuned-en-to-de
+kinshuk-h/flan-t5-cbp-lkg-alt-small
+totallynotbrent/aaronGPTalpha
+rymaju/gomoku-t5
+Zekunli/flan-t5-base-extraction-cnndm_1000-all-loss-ep50
+SanyamGoyal/wnt116
+Zekunli/flan-t5-base-extraction-cnndm_2000-all-loss-ep50
+Plaaasma/gerald-model
+SanyamGoyal/wnt1
+titan087/Vicuna-13b
+SanyamGoyal/results00
+Tristo/ASDGASDFHASH
+Zekunli/flan-t5-base-extraction-cnndm_4000-all-loss-ep50
+Tristo/xcbnbnsdfh
+AlekseyKorshuk/vicuna-7b
+huggingtweets/boggyshed-jxxyy
+huggingtweets/boggyshed
+Khoa/VN-Literature-Generation
+Zekunli/flan-t5-base-extraction-cnndm_8000-all-loss-ep50
+priyabrat/Latest_title_combination_v3
+nin-ran-jan/wmt16_100k_exp3
+asach/simpleT5-resume-summarization
+FINDA-FIT/T5-Base-FinArg
+TGiang/mT5
+shahules786/blade2blade-t5-base
+agemagician/scalable_t5x_tiny_test
+naxautify/gpt2-2k
+lxe/Cerebras-GPT-1.3B-Alpaca-SP
+iamplus/gpt-neoxt-20b-v4
+zaydzuhri/flan-t5-base-tldr-100k
+indra3199/t5-v1_1-base-finetuned-en-to-de
+thisisHJLee/polyglot_kr_finetuned_01
+bookbot/byt5-small-cmudict
+AD-IIITD/t5-v1_1-base-finetuned-en-to-de
+nin-ran-jan/wmt16_0.01percent_exp4
+Zekunli/flan-t5-base-da-multiwoz2.0_80-loss-ep100
+edbeeching/llama-se-rl-finetune-128-8-8-1.4e-5_adamstep_600-adapter-merged
+Zekunli/flan-t5-base-da-multiwoz2.1_80-loss-ep100
+NeuraXenetica/GPT-PDVS1-Super
+edbeeching/llama-se-rl-finetune-128-8-8-1.4e-5_adamstep_1000-adapter-merged
+bookbot/byt5-small-wikipron-eng-latn-us-broad
+edbeeching/llama-se-rl-finetune-128-8-8-1.4e-5_adamstep_1100-adapter-merged
+Zekunli/flan-t5-base-da-multiwoz2.0_800-loss-ep100
+amaydle/mergex-v1.5
+edbeeching/llama-se-rl-finetune-128-8-8-1.4e-5_adamstep_800-adapter-merged
+jinymusim/gpt-czech-poet
+divers/AE-t5-base
+divers/AE-t5-large
+divers/AE-t5-small
+divers/QG-t5-base
+nin-ran-jan/wmt16_0.015percent_exp6
+ruslanasa/t5-small-finetuned-xsum
+Zekunli/flan-t5-base-da-multiwoz2.1_800-loss-ep100
+bakedpotat/potat
+jmvcoelho/t5-base-msmarco-squad-query-generation-firstp-v2
+pankaj-kaushik/finalmodel
+SanyamGoyal/results0
+zap8600/autotrain-t5-billsum-47010115876
+GokhanAI/test
+zz990906/shakespeare
+hadifar/eventextraction
+pk223519/finalmodel
+eachadea/legacy-ggml-vicuna-7b-4bit
+SanyamGoyal/results50000f
+wjn1996/hugnlp-hugchat-gpt2
+shrugitoff/my_wnt16_de_to_en_model
+madkr/TranslationDe2En
+transformersegmentation/GPT2-gpt2_lm_head_model-model
+dhmeltzer/flan-t5-small_askscience-qg
+Kuppuram/distilgpt2-finetuned-wikitext2
+Zekunli/flan-t5-base-da-multiwoz2.0_400-loss-ep100
+tarunchander/t5-end2end-questions-generation
+jeremyvictor/flan-t5-large-clang8-e8-b16
+ColtonAi/Llmtrain
+ybelkada/tiny-random-T5ForConditionalGeneration-calibrated
+VMware/flan-t5-large-alpaca
+VMware/flan-t5-xl-alpaca
+Muhammadreza/flan-t5-base-alpaca
+aisquared/dlite-v1-124m
+amaydle/mergex-v2
+Stromello/DialoGPT-medium-ZeroTwo
+data-corentinv/bloom-fourthbrain-hackathon-1b7-lora-ads
+Zekunli/flan-t5-base-da-multiwoz2.1_400-loss-ep100
+uaritm/T5_ukruen_qa_all_clean_10
+dhmeltzer/flan-t5-base_askscience-qg
+dvruette/llama-13b-pretrained-dropout
+IThinkUPC/SQLGenerator-AI
+Delcos/168
+newsrx/t5-base-en-generate-headline
+VMware/flan-ul2-alpaca-lora
+chence08/mt5-small-iwslt2017-zh-en
+huggingtweets/horalvl_
+gammatau/santacoder-ts-fim
+Neko-Institute-of-Science/LLaMA-7B-HF
+Wiritpol/gpt-2-i17bkk
+Neko-Institute-of-Science/LLaMA-13B-HF
+Neko-Institute-of-Science/LLaMA-30B-HF
+lmsys/vicuna-7b-delta-v0
+Neko-Institute-of-Science/LLaMA-65B-HF
+bigcode/gpt_bigcode-santacoder
+wxjiao/ParroT-7b
+sakshamio/bloom-560m-finetuned-cola
+GerbilLab/IPythia-70m
+wxjiao/ParroT-Hint-7b
+sakshamio/bloom-560m-finetuned-sst2
+huggingtweets/myloreyes
+jenoj/chinese-alpaca
+totallynotbrent/brotGPTplus
+Zuckerbird/RoPE-gpt2-0.0
+GerbilLab/IPythia-160m
+SummerSigh/Pythia410-TURING
+makarios19/my_awesome_billsum_model
+NihalSrivastava/advertisement-description-generator
+naxautify/gpt2-medium-8k-pile
+wptoux/bloom-7b-chunhua
+learningmachineaz/mt5-enaz-10m
+MrVPlusOne/coeditor-perm2k-base-v1.7.3
+zzzg/lla
+abhraskygod/news_summary_model
+gcesare/t5-base-samsum-fsl
+gcesare/t5-base-finetuned-pubmed
+naxautify/gpt2-medium-4k-pile
+naxautify/gpt2-8k-pile
+dvruette/llama-13b-pretrained-sft-do2
+arixon/vicuna-7b
+bond005/ruT5-ASR
+Bainbridge/dialogpt-medium-no_ear
+nenkoru/llama-7b-onnx-merged-fp16
+Zekunli/flan-t5-base-extraction-cnndm_2000-all-hint_precision-ep50
+alexeymosc/ai_stalker_ru_gpt_3_medium
+nenkoru/llama-7b-onnx-fp16
+Bainbridge/dialogpt-medium-ear_1-hs_cn
+Gautham035/Summarizer
+Seungjun/textSummaryV6
+nenkoru/llama-7b-onnx-fp32
+wxjiao/llama-7b
+leonardPKU/lmx-7b
+nenkoru/llama-7b-onnx-merged-fp32
+Zekunli/flan-t5-base-extraction-cnndm_4000-all-hint_precision-ep50
+MarianaLC/mt5-pt-rr-1000-v2
+Bainbridge/dialogpt-medium-ear_1-hs_cn_decay
+abhraskygod/cnn_news_summary_model
+himanshubeniwal/gpt2-wikitext103
+ieuniversity/pangea_summarization_model
+yennn/science
+Linus4Lyf/Llama-3epochs-reddit
+newsrx/bloomz-7b1
+husseinMoh/flan-t5-small-finetuned-text-simplification
+arjunguha/santacoder-lua-nofim
+helenai/declare-lab-flan-alpaca-xl-ov
+helenai/declare-lab-flan-alpaca-large-ov
+stablediffusion9527/distilgpt2-finetuned-wikitext2
+quincyqiang/llama-7b-alpaca
+GerbilLab/IPythia-410m
+arshisaloot/DialoGPT-large-finetuned-mc-uk-parsed
+anasmd4u/mt5-small-finetuned-amazon-en-es
+ria14313/distilgpt2-finetuned-wikitext2
+Ammar-Amjad/mt5-small-finetuned-amazon-en-es
+NeuraXenetica/GPT-PDVS1-None
+sardukar/llama7b-4bit-v2
+plgrm720/my_awesome_opus_books_model
+MarTinSForZZa/Innerversal
+MihoZaki/t5-small-Txt2MQ
+Zekunli/flan-t5-base-extraction-cnndm_8000-all-hint_precision-ep50
+Zekunli/flan-t5-base-extraction-cnndm_20000-all-hint_precision-ep50
+anasmd4u/mt5-small-finetuned-urdu-en-es
+AntoDono/BOPY-gpt2_bopy_xl-Finetuned
+huggingtweets/a2d2
+eitan3/my-test-model-v-13b-v0
+WillHeld/flan-t5-base-tada-ot
+DunnBC22/codet5-small-Generate_Docstrings_for_Python-Condensed
+Zekunli/flan-t5-base-extraction-cnndm_40000-all-hint_precision-ep50
+Seungjun/testing01
+keelezibel/vicuna_13B
+Zekunli/flan-t5-base-extraction-cnndm_20000-all-hint_precision-ep50-nonstop
+Zekunli/flan-t5-base-extraction-cnndm_40000-all-hint_precision-ep50-nonstop
+theblackcat102/alpaca-title-generator-mt0-large
+Zolyer/ja-t5-base-summary
+dkincaid/t5-small-finetuned-xsum
+Corianas/Quokka_1.3b
+HenryJJ/vincua-13b
+beverlyjfu/ProtGPT2-finetuned-localization
+Neko-Institute-of-Science/LLaMA-65B-4bit-128g
+Neko-Institute-of-Science/LLaMA-30B-4bit-128g
+Neko-Institute-of-Science/LLaMA-13B-4bit-128g
+Corianas/Quokka_590m
+Neko-Institute-of-Science/LLaMA-65B-4bit-32g
+Neko-Institute-of-Science/LLaMA-30B-4bit-32g
+Neko-Institute-of-Science/LLaMA-13B-4bit-32g
+Neko-Institute-of-Science/LLaMA-7B-4bit-32g
+Neko-Institute-of-Science/LLaMA-7B-4bit-128g
+kz919/gpt-neox-20b-8k-longtuning
+eunyounglee/polyglot_ko_mixed_0407
+David003/llama-7b-hf-20230407
+Carlosino/my_awesome_opus_books_model
+Zuckerbird/LoRAgpt2-0.0
+ToddGoldfarb/Cadet-Tiny
+kangjm/output_1_SFT
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v3
+wordcab/llama-natural-instructions-7b
+vicgalle/gpt2-alpaca
+TheBloke/koala-7B-GPTQ
+yuanye/codeparrot
+erfanzar/LGeM-7B
+wordcab/llama-natural-instructions-13b
+ckip-joint/bloom-3b-zh
+huggingtweets/blacked_com-brazzers
+Selyam/gpt4-x-alpaca-13b-native-4bit-128g
+TheBloke/koala-7B-HF
+Uwais/distilgpt2-finetuned-cuad
+Robin021/llama-7b-hf
+kiki2013/codeparrot
+TestZee/mt5-small-finetuned-mt5-Large-English-Test
+juliaelizarova/my_awesome_billsum_model
+samwit/koala-7b
+kiki2013/codeparrot-small
+PavelDanek/autotrain-s2gsummarize-47615116641
+AntaraIIITD/t5-v1_1-base-finetuned-en-to-de
+jordiclive/bs-modeling-metadata_all_2000_steps
+snoop2head/Gomoku-GPT2
+DReAMy-lib/t5-base-DreamBank-Generation-Act-Char
+zhou12tao/pytorch_model
+sheldonxxxx/llama-vicuna-7b
+Seungjun/textSummaryV1.0
+GarciaLnk/flan-sharegpt-small
+erfanzar/llama-chat
+CRD716/ggml-LLaMa-65B-quantized
+arjunrd01/pretrained7b-v1
+Linus4Lyf/results
+MesonWarrior/gpt2-vk-bugro
+jquave/gpt4all-lora-unfiltered-quantized
+huggingtweets/detahq-fireship_dev
+pacovaldez/t5-small-pandas
+TheBloke/koala-13B-HF
+ClainBill/axe-parser-friend
+jmhuerta/financeGPT2
+arjunrd01/pretrained7b-bfloat16-cuda
+chharlesonfire/vicuna-7b
+superzzp/my-gpt2-model
+GarciaLnk/flan-sharegpt-base
+superzzp/my-332-model
+ClainBill/omnimaxe-gpt108
+huggingtweets/relaxedswimmer
+arisanguyen/finetuned_T5_all_categories
+helloollel/vicuna-7b
+JosephusCheung/Guanaco
+dhmeltzer/flan-t5-small_yake_top3_asks_qg
+raymondho/DialoGPT-small-harry
+gsdas/qct5
+sallywww/T5-invariants
+amosc00/k2t-tesssst
+sallywww/GTP2-invariants
+sohamchougule/t5-base-finetuned-samsum
+kz919/gpt-neox-20b-8k-longtuning2
+artemsnegirev/minibob
+NeuraXenetica/GPT-PDVS1-Low
+aaparajit02/gpt-tamil
+helloollel/vicuna-13b
+FreedomIntelligence/chimera-chat-7b-delta
+vicgalle/gpt2-open-instruct-v1
+NeuraXenetica/GPT-PDVS1-High
+himanshubeniwal/gpt2_pretrained_iphone
+himanshubeniwal/gpt2_pretrained_clean
+siyagarg12/q3_results
+FreedomIntelligence/chimera-chat-13b-delta
+chence08/mt5-small-iwslt2017-zh-en-scratch
+huggingtweets/altcoingemgod-cryptogems555-sharkscoins
+TheYuriLover/llama-13b-pretrained-sft-do2-4bit-128g-TRITON
+davidvblumenthal/GPT-Verite-125M-sc_mask-prototype
+FreedomIntelligence/phoenix-chat-7b
+MesonWarrior/gpt2-vk-kalik
+abhraskygod/billsum_model
+fireoil/gpt2-imdb-pos-v2
+pjpjpj/race-codet5-gpt2
+zap8600/t5-mbpp
+auhide/chef-gpt-base
+yahma/llama-7b-hf
+codehugger/t5-small-finetuned-xsum
+yahma/llama-13b-hf
+Tribbiani/vicuna-7b
+njvdnbus/Interest_extraction
+beanham/flan-t5-base-finetune
+beanham/flan-t5-large-finetune
+SalmanHabeeb/DialoGPT-small-finetuned-squad
+dhmeltzer/flan-t5-base_yake_top3_asks_qg
+andreaskoepf/oasst-rl-1-v0
+Delcos/bLSeven
+vicgalle/gpt2-alpaca-gpt4
+hmbyt5/byt5-small-english
+Delcos/T128-6
+plgrm720/tokipona_model_v0.1
+alaahussein/t5-small_finetuned_billsum_model_bs8_lr2e-05
+sjadhav3/halucination_free
+Michelvh/t5-end2end-questions-generation-dutch
+alaahussein/t5-small_finetuned_billsum_model_bs8_lr5e-05
+alaahussein/t5-small_finetuned_billsum_model_bs8_lr0.0001
+dupadupa/t5-small-finetuned-xsum
+alaahussein/t5-small_finetuned_billsum_model_bs16_lr2e-05
+alaahussein/t5-small_finetuned_billsum_model_bs16_lr5e-05
+TheBloke/koala-13B-GPTQ
+alaahussein/t5-small_finetuned_billsum_model_bs16_lr0.0001
+sara-nabhani/google-flan-t5-small-e-snli-generation-label_and_explanation-selected-b64
+4bit/vicuna-13b-GPTQ-4bit-128g
+4bit/gpt4-x-alpaca-13b-native-4bit-128g
+tsumeone/gpt4-x-alpaca-13b-native-4bit-128g-cuda
+sara-nabhani/t5-small-e-snli-generation-label_and_explanation-selected-b64
+Geman/inventory_test
+adabingw/lyrr-lorde
+sara-nabhani/t5-small-e-snli-generation-label_and_explanation-selected-b48
+hakurei/instruct-12b
+sara-nabhani/google-flan-t5-small-e-snli-generation-label_and_explanation-selected-b48
+vldsavelyev/guitar_tab_gpt2
+atmoharm/my_awesome_billsum_model
+4bit/alpaca-7b-native-4bit
+4bit/llama-13b-4bit-hf
+sohamchougule/t5-base-finetuned-aeslc
+thinhlpg/my_awesome_opus_books_model
+HDiffusion/Generic-instruct-Model
+eachadea/ggml-toolpaca-13b-4bit
+4bit/llama-13b-3bit-gr128
+sohamchougule/t5-large-finetuned-aeslc
+4bit/llama-13b-4bit-gr128
+CNR223/DialoGPT-small-MasterO
+nickmandylas/vicuna-13b
+lam-le/my-model
+yuyijiong/Randeng-T5-large-sentiment-analysis-Chinese
+oobagoob/0x1920319040
+MesonWarrior/gpt2-vk-aneki
+k4black/google-flan-t5-small-e-snli-generation-label_and_explanation-selected-b64
+k4black/google-flan-t5-small-e-snli-generation-explanation_use_prompt_label-selected-b64
+k4black/t5-small-e-snli-generation-explanation_only-selected-b64
+BetterHF/vicuna-7b
+Yonadav/en_to_kjven_translator
+shiva-shiva-shiva/gpt2-finetuned-liability
+huggingtweets/azuraromanov
+lenayagaf/fake_buzz_gpt
+raymondho/DialoGPT-small-aisbe
+PavanNeerudu/t5-base-finetuned-qnli
+AR1S/AIRIS
+SaiChandraReddy/my_awesome_billsum_model
+GrimmTMM/t5-base-finetuned-en-to-ro
+andreaskoepf/pythia-6.9b-gpt4all-pretrain
+andreaskoepf/pythia-2.8b-gpt4all-pretrain
+KirillovK/gpt2-author-clm_3
+jluckyboyj/vit5-9-4-2023-1
+Beaverflame/autotrain-bf-classificate-48089117251
+jpabbuehl/gpt2-wikitext2
+Extrabass/gpt2
+wjn1996/hugnlp-hugchat-gpt2-large
+amalik27/model_headlines_news
+amalik27/generate-fakes
+huggingtweets/gawrgura
+4bit/gpt4-x-alpaca-13b-native-4bit-128g-cuda
+alexl83/LLaMA-33B-HF
+pranitrai07/DialoGPT-medium-harrypotter
+gabpua/distilgpt2-qg
+jash33/mt5-en-to-hi
+arjunrd01/pretrained13b-v1-bfloat16-cuda
+larryvrh/mt5-translation-ja_zh
+huggingtweets/seinetwork
+thiagolaitz/doc2query
+huggingtweets/tarquinx01
+the-coorporation/t5-small-qg
+japneets/Alpaca_instruction_fine_tune_Punjabi
+llama-anon/petra-13b-instruct
+BigSalmon/InstructGPT2Large
+Mrunal09/testing
+Tribbiani/vicuna-13b
+BigSalmon/InformalToFormalLincoln97Paraphrase
+snowxu/test
+YeungNLP/firefly-bloom-2b6
+ameya772/atis-finetuned-t5-model
+wyskiski/winonabot
+lam-le/my-model-2
+rwang5688/distilgpt2-finetuned-wikitext2-tf
+Mithilss/llama-7b-hf
+mrtoy/chinese-llama-13b-4bit-128g
+abhraskygod/tl_dr_summary
+AISystems/Pak-DistilGPT2-Legal
+Seungjun/textGeneration_01
+sheoran95/normal_nodes_shuffled_graphs_with_edge_document_level_T5_run2
+sheoran95/normal_nodes_shuffled_graphs_with_edge_document_level_T5_run1
+sankethgadadinni/Vicuna-13B
+abhraskygod/tl_dr_summary_with_t5_base
+sheoran95/normal_nodes_normal_graphs_without_edge_document_level_T5_run1
+sheoran95/normal_nodes_normal_graphs_without_edge_document_level_T5_run2
+ruo23/mt5-small-finetuned-amazon-en-es
+ameya772/atis-fine-tuned-t5-sentence
+sheoran95/normal_nodes_shuffled_graphs_with_edge_document_level_T5_run3
+thisisHJLee/polyglot_ko_newssample_01
+booltbb/my_awesome_eli5_clm-model
+bookbot/byt5-small-wikipron-eng-latn-uk-broad
+MBZUAI/LaMini-Flan-T5-77M
+kinshuk-h/flan-t5-cbp-lkg-corpus-mlm-small
+AntIIITD/t5-v1_1-base-finetuned-en-to-de
+RTT-FI/RTT-NLP-125M
+huggingtweets/geofflewisorg
+huggingtweets/angryjoeshow
+sheoran95/normal_nodes_normal_graphs_without_edge_document_level_T5_run3
+hcpwr/DialoGPT-medium-samantha
+Seungjun/articleGeneratorV1.0
+himanshubeniwal/gpt2_wikitext37_7k_pretrained_iphone
+Hojjat/so_gpt2
+bookbot/byt5-small-wikipron-eng-latn-au-broad
+sheoran95/normal_nodes_normal_graphs_with_edge_document_level_T5_run1
+sheoran95/normal_nodes_normal_graphs_with_edge_document_level_T5_run2
+minlik/chinese-llama-7b-merged
+minlik/chinese-llama-13b-merged
+hmbyt5-preliminary/byt5-small-multilingual-4g
+minlik/chinese-alpaca-7b-merged
+minlik/chinese-alpaca-13b-merged
+linkanjarad/Bloom-Alpaca-560m
+ohmyhong/koalpaca7B-lora
+epiprodux/abc
+gabpua/distilgpt2-rm
+baffo32/llama-7B-sparsetest-c4-25pct-128blksz
+Carlosino/iwslt2017_practice
+Danish-summarisation/DanSumT5-small
+Danish-summarisation/DanSumT5-base
+himanshubeniwal/gpt2_wikitext37_7k_pretrained_iphone_1e6
+Danish-summarisation/DanSumT5-large
+ztlbala/t5-small-finetuned-xsum
+dvruette/gpt-neox-20b-full-precision
+sheoran95/normal_nodes_shuffled_graphs_without_edge_document_level_T5_run1
+sheoran95/normal_nodes_shuffled_graphs_without_edge_document_level_T5_run2
+sheoran95/normal_nodes_shuffled_graphs_without_edge_document_level_T5_run3
+baffo32/decapoda-research-llama-7B-hf
+VincentLyu/gpt2-wikitext2
+ieuniversity/summarization_model_translator
+baffo32/llama-7B-sparsetest-c4-75pct-128blksz
+abhraskygod/cnn_news_summary_reduced
+toloka/gpt2-large-rl-prompt-writing
+Writer/camel-5b-hf
+himanshubeniwal/gpt2_wikitext37_7k_pretrained_iphone_1e4
+beomi/kollama-7b
+Parcurcik/toodles_essays
+project2you/openthaigpt-gpt2-pantipwiki-poc
+Dragonoverlord3000/JustSumAI
+sheoran95/normal_nodes_normal_graphs_with_edge_document_level_T5_run3
+Roguwan/DialoGPT-medium-rogu
+MBZUAI/LaMini-Flan-T5-248M
+houck2040/geo-physics-test
+wentingzhao/gpt2-xl-sen-making-distilled-from-gpt3
+MihoZaki/t5-small-Txt2MQVII
+totallynotbrent/aaronGPTplus
+himanshubeniwal/gpt2_wikitext37_7k_pretrained_iphone_1e7
+AlexWortega/ruClonedGPT_1.4B
+TheBloke/vicuna-7B-v0-GPTQ
+mongolian-basket-weaving/koala-7b-fp16-safetensors
+mongolian-basket-weaving/koala-13b-fp16-safetensors
+huggingtweets/nikitabier
+adabingw/lyrr-taylorswift
+superzzp/gpt-neox-20B-imdb-lora-adapter-merged-1
+himanshubeniwal/gpt2_wikitext37_7k_pretrained_iphone_1e8
+Suglus/t5-base-spellchecker
+ieuniversity/general_paraphrase
+Ejafa/vicuna_7B_vanilla
+Ejafa/vicuna_13B_vanilla
+Ejafa/koala_7B_vanilla
+Ejafa/koala_13B_vanilla
+ieuniversity/flirty_paraphraser
+liuyanchen1015/FLAN-T5_GLUE_finetuning_lr3e-4
+himanshubeniwal/gpt2_wikitext37_7k_pretrained_iphone_1e8_001
+Anwaarma/autotrain-aqg2mt5-48388117612
+zatochu/llama-13b-pretrained-dropout-hf-int4-128g
+beingPurple/gpt4all-lora-quantized-new
+huggingtweets/barackobama-elonmusk-ylecun
+liuyanchen1015/FLAN-T5_GLUE_finetuning_lr2e-4
+thisisHJLee/polyglot_ko_newssample_02
+lam-le/my-model-gpt2
+nofuture37/my_t5_model
+bookbot/byt5-small-wikipron-eng-latn-us-broad-ft-au-broad
+hf-internal-testing/tiny-random-GPTBigCodeForCausalLM
+hf-internal-testing/tiny-random-GPTBigCodeForSequenceClassification
+hf-internal-testing/tiny-random-GPTBigCodeForTokenClassification
+hf-internal-testing/tiny-random-GPTBigCodeModel
+hf-internal-testing/tiny-random-GPTNeoXForSequenceClassification
+SummerSigh/mt0-small-ROT
+liuyanchen1015/FLAN-T5_GLUE_finetuning_lr1e-4
+liuyanchen1015/FLAN-T5_GLUE_finetuning_lr5e-4
+liuyanchen1015/FLAN-T5_GLUE_finetuning_lr5e-5
+bookbot/byt5-small-wikipron-eng-latn-uk-broad-ft-au-broad
+jash33/mt5-en-to-hi-v2
+vantozdad/DialoGPT-medium-Dumbledore
+thisisHJLee/polyglot_ko_chatbot_01
+himanshubeniwal/gpt2_wikitext37_7k_pretrained_iphone_1e8_1
+shiva-shiva-shiva/bloom-560m-finetuned-liability
+keyfan/vicuna-chinese-replication-beta
+dingzhaohan/gpt2-wikitext2
+stabilityai/stablelm-base-alpha-7b
+jorgeortizfuentes/spanish-spellchecker-t5-base-wikitest10000
+Abyss-fyf/DialoGPT-small-discord
+abhraskygod/bbc_news_summary_model
+swartout/bad-gpt
+ZihanXie/test
+thisisHJLee/polyglot_ko_historysample_01
+MrD05/kaido-1.3b
+JYumeko/summarization_model
+abhraskygod/_cleaned_bbc_news_summary_model
+MBZUAI/LaMini-T5-61M
+CrystalzAura/DialoGPT-small-elysia
+hominhnhut/cnn_dailymail_dataset
+hmbyt5-preliminary/byt5-small-english-german
+eachadea/ggml-gpt4all-7b-4bit
+linkanjarad/GPT2-Medium-Alpaca-355m
+Tobias/llama-7b-hf-corrected-config
+reciprocate/gpt2-simulacra
+HAJIWEE/zh2en_opus_100_t5
+dupadupa/t5-base-finetuned-xsum
+ArmelR/Instruction10K512
+arnaufugarolas/gpt4alltravelport
+abhraskygod/bbc_news_summary_with_cleaned_data
+hli623/my_awesome_billsum_model
+shiva-shiva-shiva/bloom560m-squad-helloworld-finetuned-liability
+LeeSB/gpt2
+hli623/my_bbc
+huggingtweets/play_pso2
+Msallam/my_awesome_billsum_model
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v4
+FreedomIntelligence/chimera-inst-chat-7b-delta
+huggingtweets/xxxgooner
+Black-Engineer/llama-30b-sft-oa-alpaca-epoch-2-safetensor
+DioBrandoTheFirst/gpt4-x-alpaca-13b-native-4bit-128g
+FreedomIntelligence/chimera-inst-chat-13b-delta
+FreedomIntelligence/phoenix-inst-chat-7b
+rubentito/t5-base-docile-elsa
+rubentito/vt5-base-docile-elsa
+gregorgabrovsek/paraphraser-test
+jorgeortizfuentes/spanish-spellchecker-t5-base-wikitest1000
+floriangardin/musiclang
+databricks/dolly-v2-12b
+auhide/gpt2-small-bgwiki
+amalik27/gpt2_combined
+jorgeortizfuentes/spanish-spellchecker-t5-base-wiki200000
+master-thesis-hell/llama-7b_sft-v5
+SebastianSchramm/Cerebras-GPT-111M-instruction
+floriangardin/model
+aisquared/dlite-v1-355m
+aisquared/dlite-v1-774m
+andreaskoepf/oasst-rl-1-pythia-12b
+mekjr1/t5-small-finetuned-es-to-maz
+M-Chimiste/Pythia-12b-instruction-tuned-v1
+gregorgabrovsek/mt5-paraphraser-TEST
+huggingtweets/kitvolta
+Giantsky/openthaigpt-gpt2-pantipwiki-poc
+huggingtweets/max__drake
+raghavendramurali/summary_token
+inu-ai/alpaca-guanaco-japanese-gpt-1b
+huggingtweets/dreamsofsiberia
+teknium/Base-GPT4-x-Alpaca-Roleplay-Lora
+aoyoo/llama-7b-hf
+rizkihaleemdn/t5-small-finetuned-xsum
+AntoDono/BOPY-gpt2-xl-Finetuned-6epochs
+lmsys/vicuna-7b-delta-v1.1
+rwang5688/distilgpt2-finetuned-wikitext2-pt
+royraj/t5-small-finetuned-xsum
+eunyounglee/kogpt_summary_0412
+JYumeko/summarization_model_1
+BrijeshKumar/t5-small-finetuned-xsum
+MBZUAI/LaMini-Cerebras-256M
+MBZUAI/LaMini-Cerebras-590M
+pedrogengo/docTTTTTquery-en
+danfarh2000/t5-base-end2end-chatbot-generative
+phi0108/translation-en-fr
+thisisHJLee/polyglot_ko_newssample_03
+ieuniversity/sciencebrief_summarization
+legekka/alpaca-7b-int4
+peter-sk/gpt-neox-da
+amalik27/gpt2_human
+superzzp/gpt-neox-20B-imdb-lora-adapter-merged
+phi0108/summarization
+student-shriman/checkpoints
+lmsys/vicuna-13b-delta-v1.1
+superzzp/gpt-neox-20B-imdb-lora-adapter-merged-2
+Yati05/TF-CodeT5-base
+amosc00/k2t_AI_Ads_Foods
+hli623/my_politics_model
+hsuyab/codeparrot-ds
+hli623/my_business_model
+hli623/my_tech_model
+hli623/my_entertainment_model
+hli623/my_sport_model
+chaoyi-wu/PMC_LLAMA_7B
+CSerdar014191/distilgpt2_test01_finetune
+Bainbridge/gpt2-kl_1_05-hs_cn_decay
+hmbyt5-preliminary/byt5-small-multilingual-4g-2e
+yuyijiong/T5-large-sentiment-analysis-Chinese
+mingak/vicuna-7b
+Tincando/Poe_Cerebras
+jorgeortizfuentes/spanish-spellchecker-flan-t5-base-wiki200000
+Husnul/pepper-bot-morty
+Bainbridge/gpt2-kl_1_07-hs_cn_decay
+yingzwang/flan-t5-base-samsum
+Bainbridge/gpt2-kl_1_05-hs_cn
+sudhanvamg/t5-tagger
+mekjr1/byt5-base-es_maz
+raghavendramurali/cam_tool_model
+mekjr1/byt5-base-es_hch
+sheoran95/shuffled_nodes_normal_graphs_with_edge_document_level_T5_run1
+ksv1984/my_test_dataset_model
+amalik27/gpt2_ai
+sheoran95/shuffled_nodes_shuffled_graphs_without_edge_document_level_T5_run1
+sheoran95/shuffled_nodes_normal_graphs_with_edge_document_level_T5_run2
+sheoran95/shuffled_nodes_shuffled_graphs_without_edge_document_level_T5_run2
+MihoZaki/t5-base-Txt2MQVII
+merwynn/t5-small-finetuned-xsum
+aisquared/dlite-v1-1_5b
+akoksal/LongForm-OPT-6.7B
+mekjr1/byt5-base-es_maq
+sheoran95/shuffled_nodes_normal_graphs_with_edge_document_level_T5_run3
+mekjr1/byt5-base-es_mim
+raghavendramurali/parsed_csm_tool_model
+mekjr1/byt5-base-es_azz
+leonardo-simao/t5-small-finetuned-xsum
+mekjr1/byt5-base-es_ngu
+DrewG/Tale_2_Cities
+mekjr1/byt5-base-es_sja
+lmsys/vicuna-13b-v1.1
+raghavendramurali/label_title_csm_model
+mekjr1/byt5-base-es_cbv
+lmsys/vicuna-7b-v1.1
+mekjr1/byt5-base-es_pbb
+TheBloke/vicuna-13B-1.1-GPTQ
+TheBloke/vicuna-7B-1.1-GPTQ
+mekjr1/t5-base-finetuned-es-to-maz
+dshin/flan-t5-ppo-user-a-allenai-prosocial-dialog-testing-upload
+dshin/flan-t5-ppo-user-a-allenai-prosocial-dialog
+Shalazary/ruT5summarizer
+ghdi/history-model
+shrinivasbjoshi/V4T5LARGE
+Giantsky/openthaigpt-gpt2-pantipwiki-poc-2
+mekjr1/byt5-base-es_kog
+mekjr1/byt5-base-es_guc
+smjain/flan-jain-instruct-xl
+mekjr1/byt5-base-es_kbh
+eachadea/vicuna-13b-1.1
+akoksal/LongForm-OPT-2.7B
+akoksal/LongForm-T5-XL
+digitous/Alpacino13b
+afnanmmir/t5-base-abstract-to-plain-language
+eachadea/vicuna-7b-1.1
+alaahussein/T5-small_finetuned_billsum_subset_model_bs8_lr2e-05
+alaahussein/T5-small_finetuned_billsum_subset_model_bs8_lr5e-05
+leonardo-simao/t5-small-finetuned-samsum
+alaahussein/T5-small_finetuned_billsum_subset_model_bs8_lr0.0001
+alaahussein/T5-small_finetuned_billsum_subset_model_bs16_lr2e-05
+alaahussein/T5-small_finetuned_billsum_subset_model_bs16_lr5e-05
+alaahussein/T5-small_finetuned_billsum_subset_model_bs16_lr0.0001
+alaahussein/T5-small_finetuned_billsum_subset_model_bs32_lr2e-05
+alaahussein/T5-small_finetuned_billsum_subset_model_bs32_lr5e-05
+alaahussein/T5-small_finetuned_billsum_subset_model_bs32_lr0.0001
+shiva-shiva-shiva/bloom-560m-finetuned-liability-QA
+tatsu-lab/alpaca-7b-wdiff
+liuyanchen1015/FLAN-T5_GLUE_finetuning_lr1e-3
+liuyanchen1015/FLAN-T5_GLUE_finetuning_lr8e-4
+databricks/dolly-v2-7b
+databricks/dolly-v2-3b
+mzedp/vicuna-13b-v1.1-GPTQ-4bit-128g
+GanjinZero/wombat-7b-delta
+quickman/autotrain-novel_translation_zh_es-49091118813
+sheoran95/shuffled_nodes_shuffled_graphs_with_edge_document_level_T5_run1
+sheoran95/shuffled_nodes_shuffled_graphs_with_edge_document_level_T5_run2
+BelleGroup/BELLE_BLOOM_GPTQ_4BIT
+GanjinZero/wombat-7b-gpt4-delta
+sheoran95/shuffled_nodes_normal_graphs_without_edge_document_level_T5_run2
+sheoran95/shuffled_nodes_normal_graphs_without_edge_document_level_T5_run1
+sheoran95/shuffled_nodes_shuffled_graphs_with_edge_document_level_T5_run3
+sail/tapex-zero-large
+linkanjarad/Cerebras-GPT-Alpaca-590m
+nikunjbjj/nikunjs_eli5_clm-model
+Enoch/llama-7b-hf
+mzamecnik/rohlikchatbot
+csvaldellon/my_awesome_eli5_clm-model
+diegi97/dolly-v2-6.9b-sharded-bf16
+Enoch/llama-13b-hf
+Enoch/llama-65b-hf
+Enoch/llama-30b-hf
+Tincando/Poe_Cerebras_try2
+csvaldellon/gpt-nsp-model
+sheoran95/augmented_nodes_normal_graphs_without_edge_document_level_T5_run1
+Joel373/distilgpt2-finetuned-wikitext2
+fathyshalab/autotrain-summarization-finanz-49196119014
+Ejafa/vicuna_13B_vanilla_1.1
+Ejafa/vicuna_7B_vanilla_1.1
+sheoran95/shuffled_nodes_shuffled_graphs_without_edge_document_level_T5_run3
+afnanmmir/t5-base-abstract-to-plain-language-1
+ps209497/mt5-small-finetuned-amazon-en-es
+mekjr1/t5-base-finetuned-es-to-hch
+mekjr1/t5-base-finetuned-es-to-maq
+Kutsuya/llama-rl-peft
+mekjr1/t5-base-finetuned-es-to-mim
+guangyil/gpt2-amazon
+annafavaro/BIO_GPT_NER_FINETUNED_NEW
+mekjr1/t5-base-finetuned-es-to-azz
+annafavaro/BIO_GPT_NER_FINETUNED_NEW_2
+mekjr1/t5-base-finetuned-es-to-ngu
+mekjr1/t5-base-finetuned-es-to-sja
+mekjr1/t5-base-finetuned-es-to-cbv
+mekjr1/t5-base-finetuned-es-to-pbb
+Ruthb/koala
+mekjr1/t5-base-finetuned-es-to-kog
+cojosef96/gpt2-imdb-pos-v2
+mekjr1/t5-base-finetuned-es-to-guc
+tgsc/ult5-pt-small
+digitous/Alpacino30b
+mekjr1/t5-base-finetuned-es-to-kbh
+DKYoon/mt5-small-lm-adapt
+golightly/codeparrot-ds
+Reaver1092/DialoGPT-small-bones
+DKYoon/mt5-base-lm-adapt
+DKYoon/mt5-large-lm-adapt
+DKYoon/mt5-xl-lm-adapt
+jmhessel/flant5-dolly-xxl
+jqs424/biogpt-finetuned-ner
+DKYoon/mt5-xxl-lm-adapt
+aakash-mahesha/fan-story-generation-gpt2-mini
+marcus2000/polish_transliterator
+sheoran95/augmented_nodes_shuffled_graphs_without_edge_document_level_T5_run3
+huggingtweets/davidkolbusz-pristyles-splliitt
+sheoran95/augmented_nodes_shuffled_graphs_without_edge_document_level_T5_run2
+sheoran95/augmented_nodes_shuffled_graphs_without_edge_document_level_T5_run1
+golightly/codeparrot-ds-accelerate
+dshin/flan-t5-ppo-user-f-allenai-prosocial-dialog
+dshin/flan-t5-ppo-user-h-allenai-prosocial-dialog
+Ibnelaiq/Makise-Amadeus-Kurisu-small
+supercat666/qg
+annafavaro/BIO_GPT_NER_FINETUNED_NEW_2_costum_data
+dshin/flan-t5-ppo-user-e-allenai-prosocial-dialog
+tgsc/sentence-transformer-ult5-pt-small
+YuzheW/biogpt-finetuned-ner
+iamplus/gpt-neoxt-20b-v6
+marcus2000/polish_transliterator1
+inu-ai/dolly-japanese-gpt-1b
+afnanmmir/t5-base-axriv-to-abstract
+MBZUAI/LaMini-GPT-124M
+beomi/kollama-13b
+kk202301/autotrain-ft-t5-base-49344119215
+daijin219/MLMA_lab9_1
+huggingtweets/furkelpu
+afnanmmir/t5-base-axriv-to-abstract-2
+mzedp/dolly-v2-12b-GPTQ-4bit-128g
+afnanmmir/t5-base-axriv-to-abstract-3
+himanshubeniwal/gpt2_wikitext103_pretrained_iphone
+Marvin888/gpt2-imdb-pos-v2
+yujie07/2023MLMA_LAB9_task2
+mlspspace/biogpt-finetuned-ner-MLMA
+fasthuggy/vicuna-13b-delta-v1.1-fastchat-conversion
+clawrex/DialoGPT-medium-walt
+MBZUAI/LaMini-Cerebras-111M
+sankethgadadinni/Vicuna-7B
+sheoran95/augmented_nodes_normal_graphs_with_edge_document_level_T5_run1
+sheoran95/augmented_nodes_normal_graphs_with_edge_document_level_T5_run3
+sheoran95/augmented_nodes_normal_graphs_with_edge_document_level_T5_run2
+Zekunli/flan-t5-large-da-multiwoz2.0_400-loss-ep50
+Zekunli/flan-t5-large-da-multiwoz2.1_400-loss-ep50
+Zekunli/flan-t5-large-da-multiwoz2.0_800-loss-ep50
+Zekunli/flan-t5-large-da-multiwoz2.1_800-loss-ep50
+Zekunli/flan-t5-large-da-multiwoz2.0_80-loss-ep50
+Zekunli/flan-t5-large-da-multiwoz2.1_80-loss-ep50
+hmbyt5-preliminary/byt5-small-english-german-french
+soBeauty/flax-community-SukhoThaiOnlyCLS-20230414
+mzamecnik/rohlikchatcz
+abhraskygod/cnn_news_summary_model_new_vs
+unbelievable111/distilgpt2-finetuned-wikitext2
+jonatanklosko/test-tiny-gpt2-sharded
+acrowth/autotrain-touringsummary-49428119370
+dhanunjaya/GPT-2-finetuned-abstracts
+drigger/t5-tweet-sum
+huggingtweets/brandi_love
+IlyaGusev/fred_t5_ru_turbo_alpaca
+ishajo/autotrain-beproj_meeting_summarization_usingt5-49444119396
+ishajo/meeting_summarization_usingT5
+ishajo/autotrain-beproj_meeting_summarization_usingt5-49444119398
+diegi97/dolly-v2-12b-sharded-bf16
+marcus2000/polish_transliterator_small
+marcus2000/polish_transliterator_T5
+plgrm720/tokipona_model_v0.2
+AnonymousSub/SciFive_MedQuAD_question_generation_automodel
+plgrm720/tokipona_model_v0.3
+tekkonetes/first-finetune-gpt2
+reeducator/vicuna-13b-free
+ifrit98/vicuna-7b-delta
+sail/tapex-zero-xl
+Bainbridge/gpt2-kl_1_06-hs_cn
+CSerdar014191/gpt2-medium_test06_tuner
+TheBloke/gpt4-alpaca-lora-30b-HF
+annafavaro/BIO_GPT_NER_FINETUNED_C
+TGiang/uitviquad_noseg_bart
+21alex295/alpaca-13b
+binigo1/biogpt
+raymond/mrc_t5
+Zizazr/test
+zlsl/ru_startrek
+zlsl/ru_warcraft
+plgrm720/tokipona_to_eng_model_v0.1
+MihoZaki/t5-base-Txt2MQVI
+MetaIX/GPT4-X-Alpaca-30B-4bit
+yujie07/2023MLMA_LAB9_task5
+wentingzhao/comet-distill-high
+royal42/test2
+hmbyt5-preliminary/byt5-small-multilingual-4g-3e
+TheBloke/gpt4-alpaca-lora-30B-GPTQ
+rduan6/model
+henryscheible/t5-small_stereoset_finetuned
+huggingtweets/crownchasergame
+dandanw/bloom-3b-sv
+Duanger/bert-finetuned-ner
+pillowtalks-ai/delta13b
+DunnBC22/codet5-base-Generate_Docstrings_for_Python-Condensed
+mosesjun0h/llama-7b-hf-baize-lora-bf16
+Kororinpa/Stack-LLAMA-merged-Adapter
+alaahussein/t5-small-billsum_model
+AlekseyKorshuk/pythia-1.4b-deduped-jokes
+zzhnb/biogpt-finetuned-ner
+myaniu/Vicuna-13B
+myaniu/Vicuna-7B
+m0nix/Gcon
+Kai1998/biogpt-new
+catid/llama-65b-4bit
+MBZUAI/LaMini-GPT-774M
+alaahussein/t5-base-billsum_model
+liuyanchen1015/Finetuned_FLAN-T5_VALUE_finetuning_lr3e-4
+liuyanchen1015/Finetuned_FLAN-T5_VALUE_adapter_tuning_lr3e-3
+julia-s/mt5-small-finetuned-amazon-en-es
+Katsie011/t5-small-finetuned-xsum
+Seungjun/textGeneration_02
+Zeda/DialoGPT-Large-ZedaBot
+hawkphantom/t5-end2end-questions-generation
+apoorvumang/t5-small-wd5mv3-adafactor_82ep
+RajuKandasamy/dolly-v2-3b-8bit
+MBZUAI/LaMini-T5-223M
+jalbarracin/spanish-alpaca-mT5
+RajuKandasamy/dolly-v2-7b-8bit
+tohokunlp-semeval2023-clickbait/semeval2023-clickbait-flan-t5-large-seed43
+tohokunlp-semeval2023-clickbait/semeval2023-clickbait-flan-t5-large-seed45
+tohokunlp-semeval2023-clickbait/semeval2023-clickbait-flan-t5-large-seed46
+tohokunlp-semeval2023-clickbait/semeval2023-clickbait-flan-t5-large-seed47
+tohokunlp-semeval2023-clickbait/semeval2023-clickbait-flan-t5-large-seed48
+dratinox/t5_small
+Olec/cyber_rebel
+Ibnelaiq/Makise-Amadeus-Kurisu
+auhide/chef-gpt
+Olec/cyber_rebel_no_pipe
+sohamchougule/t5-base-finetuned-samsum-test
+andidu/paraphrase-ru-reviews
+skeskinen/llama-lite-134m
+daijin219/MLMA_lab9_task2
+andidu/paraphrase-ru-it
+sheoran95/shuffled_nodes_normal_graphs_without_edge_document_level_T5_run3
+bp4769/t5-small-finetuned-xsum
+jeremyvictor/mt5-base-gecid23
+aisquared/dlite-v2-124m
+dltsj/mt5-small-finetuned-amazon-en-zh
+real7/t5-small-finetuned-xsum
+sheoran95/normal_nodes_augmented_graphs_with_edge_document_level_T5_run1
+Bainbridge/gpt2-kl_1_03-hs_cn_decay
+Bainbridge/gpt2-kl_1_04-hs_cn_decay
+bp4769/t5-sl-small-finetuned-stara-slo
+YuzheW/biogpt-finetuned-ner-custom-dataset
+Bainbridge/gpt2-kl_1_06-hs_cn_decay
+alaahussein/flan-t5-base-billsum_model
+westbrook/bio_gpt_ner
+Jaxon/DialoGPT-medium-kirito
+kamalkraj/nli4ct-flan-t5-xl
+dltsj/mt5-small-finetuned-amazon-zh-full
+zzhnb/BioGPT_finetuned_ner
+Gayathri142214002/t5-end2end-questions-generation
+Lollo21/will-summariser-ai
+Sai25/biogpt
+Sanaz1/mlma-lab9-ner
+huggingtweets/davidkolbusz-pristyles-sirsuhayb
+DanielDo/chatbot
+huggingtweets/sophiaalmaria-sxfyx_bot
+anikethdev/t5-summarizer-for-news
+Kbrek/flan_rebel_nl
+Duanger/biogpt-finetuned-ner
+kiviki/mt5-slovaksum-large-32
+Thireus/Vicuna13B-v1.1-8bit-128g
+jeremy-costello/vicuna-13b-v1.1-4bit-128g
+j1username/biogpt
+Zekunli/flan-t5-large-da-multiwoz2.0_80-ep50-nonstop
+Zekunli/flan-t5-large-da-multiwoz2.0_800-ep8-nonstop
+dratinox/t5_large_20_epochs
+ivatsar1/results
+sohamchougule/t5-base-finetuned-aeslc-test
+aisquared/dlite-v2-355m
+Zekunli/flan-t5-large-da-multiwoz2.1_800-ep8-nonstop
+Zekunli/flan-t5-large-da-multiwoz2.1_400-ep10-nonstop
+Zekunli/flan-t5-large-da-multiwoz2.1_80-ep50-nonstop
+timlee14/biogpt-finetuned-ner
+gauravkoradiya/T5-Fintuned-on-cnn_daily_mail
+aisquared/dlite-v2-774m
+gauravkoradiya/T5-Finetuned-Summarization-DialogueDataset
+Shimeng/finetuned-biogpt
+huggingtweets/0xn34uxxxw4v3xx-miyarepostbot-plsnobullywaaa
+elinas/llama-13b-hf-transformers-4.29
+liuyanchen1015/pfadapter-FLAN-T5-base-negative_inversion_lr0.001
+liuyanchen1015/pfadapter-FLAN-T5-base-got_lr0.0005
+liuyanchen1015/pfadapter-FLAN-T5-base-null_genetive_lr0.0005
+liuyanchen1015/pfadapter-FLAN-T5-base-drop_aux_lr0.0005
+liuyanchen1015/pfadapter-FLAN-T5-base-been_done_lr0.0005
+liuyanchen1015/pfadapter-FLAN-T5-base-lexical_lr0.0005
+liuyanchen1015/pfadapter-FLAN-T5-base-null_relcl_lr0.0005
+David003/llama-7b-hf-20230416
+liyuesen/druggpt
+Zekunli/flan-t5-large-da-multiwoz2.1_80-ep25-nonstop
+Zekunli/flan-t5-large-da-multiwoz2.0_80-ep25-nonstop
+aisquared/dlite-v2-1_5b
+liuyanchen1015/pfadapter-FLAN-T5-base-dey_it_lr0.0005
+theshanz/gpt2-wikitext2
+cxue34/t5-small-finetuned-xsum
+mosesjun0h/llama-30b-hf-baize-lora-b16
+liuyanchen1015/pfadapter-FLAN-T5-base-negative_concord_lr0.0005
+Moxieeixom/finetuned-biogpt
+mr-oogway/flan-t5-qa
+liuyanchen1015/pfadapter-FLAN-T5-base-uninflect_lr0.0005
+declare-lab/flan-alpaca-gpt4-xl
+huggingtweets/badgalriri
+dltsj/mt5-small-finetuned-on-mT5-lcsts
+liuyanchen1015/Finetuned_FLAN-T5_VALUE_adapterfusion_lr5e-4_bs32
+Ezens/my_awesome_book_test_model
+abhraskygod/cnn_news_summary_model_new_version
+Ivan99/Tiger-3b
+amandyk/mt5-kazakh-english-translation
+Zekunli/flan-t5-large-extraction-all-cnn_2000-ep25-nonstop
+Zekunli/flan-t5-large-extraction-all-dm_2000-ep25-nonstop
+abhraskygod/cnn_news_summary_model_new_version1
+nonlinearshimada/gpt2
+nonlinearshimada/llama-7b
+nonlinearshimada/llama-13b
+nonlinearshimada/llama-30b
+nonlinearshimada/llama-65b
+jwenpaq/my_awesome_billsum_model
+Laurie/flan-t5-xl-deepspeed-zero3-summary
+vincentmin/bloomz-1b1-eli5-pretrained
+Hikerell/shine-FT-20230414-on-liuli
+abhraskygod/cnn_news_summary_model_new_version2
+Zekunli/flan-t5-large-extraction-all-dm_4000-ep25-nonstop
+hellosimple/my_awesome_eli5_clm-model
+ghdi/punic-model
+dratinox/t5-large-50-epochs
+abhraskygod/cnn_news_summary_model_trained_on_reduced_data
+Aqua002/DialoGPT-small-deadpool
+dratinox/t5_3b_50_epochs
+Zekunli/flan-t5-large-extraction-all-cnn_4000-ep25-nonstop
+JerryLin/Steven-He-Alex
+zake7749/chinese-lyrics-generation-mass
+jwenpaq/t5-small-finetuned-xsum
+Zekunli/flan-t5-large-extraction-all-cnn_8000-ep25-nonstop
+Zekunli/flan-t5-large-extraction-all-dm_8000-ep25-nonstop
+the-coorporation/t5-small-qg-2.0
+jejun/flax-recipe-generator
+MBZUAI/LaMini-GPT-1.5B
+ShuhaoGuan/byt5-base-ocr-7.0-220
+MBZUAI/LaMini-Cerebras-1.3B
+Adam173/seinfeld-dialogue
+vincentmin/bloomz-1b1-eli5-reward
+uukuguy/vicuna-13b-v1.1
+ayuan0324/alpaca-loraa
+P01son/Linly-Chinese-LLaMA-7b-hf
+learnanything/llama-7b-huggingface
+huggingtweets/schizo_freq-sunrauniverse-two_debtors
+huggingtweets/milady_sonoro-peanuts_pb-sightingspring
+njvdnbus/personalised_opener-t5-large
+ryi920/biogpt-finetuned-ner
+huggingtweets/bio_bootloader-eigenrobot-tszzl
+huggingtweets/0xstarkx-catherinea26-crownchasergame
+Adam173/seinfeld-dialogue-model
+liuyanchen1015/pfadapter-FLAN-T5-base-negative_concord_lr0.001
+liuyanchen1015/pfadapter-FLAN-T5-base-drop_aux_lr0.001
+liuyanchen1015/pfadapter-FLAN-T5-base-null_genetive_lr0.001
+huggingtweets/jekred2
+ryi920/biogpt-finetuned-ner-custom-dataset
+liuyanchen1015/pfadapter-FLAN-T5-base-uninflect_lr0.001
+liuyanchen1015/pfadapter-FLAN-T5-base-lexical_lr0.001
+piyush-sharma/my_model
+lemoniada/Przembot
+MU-NLPC/Calc-FLAN-3B-GSM8K_AQUA
+MU-NLPC/Calc-FLAN-3B-GSM8K
+rabosh/cyberwolf
+gaussalgo/T5-LM-Large_Canard-Fullwiki-HotpotQA-rephrase
+alexbuyan/yt_videos_comments
+natanmb/t5-base-finetuned-multi-news
+natanmb/t5-small-finetuned-multi-news
+liuyanchen1015/Finetuned_FLAN-T5_VALUE_adapterfusion_lr1e-4_bs96
+liuyanchen1015/Finetuned_FLAN-T5_VALUE_adapterfusion_lr5e-5_bs64
+AlekseyKorshuk/yt_videos_comments
+Zekunli/flan-t5-large-extraction-all-dm_2000-ep10-nonstop
+parseny/youtube_comment_generation_01
+cobal2/t5-small-finetuned-xsum
+Zekunli/flan-t5-large-extraction-all-cnn_4000-ep10-nonstop
+Zekunli/flan-t5-large-extraction-all-cnn_8000-ep10-nonstop
+liuyanchen1015/pfadapter-FLAN-T5-base-got_lr0.001
+hmbyt5-preliminary/byt5-small-english-german-french-finnish
+Yonadav/normal_en_to_poe_translator
+nhatbao1951/t5-small-finetuned-xsum
+parseny/youtube_comment_generation_model
+liuyanchen1015/pfadapter-FLAN-T5-base-dey_it_lr0.001
+akshaymathur777/text_summarization
+Mael7307/Flan-T5-XL-NLI4CT
+Avitas8485/Dialogpt-small-v1
+sheoran95/normal_nodes_augmented_graphs_without_edge_document_level_T5_run1
+sheoran95/normal_nodes_augmented_graphs_without_edge_document_level_T5_run3
+sheoran95/normal_nodes_augmented_graphs_without_edge_document_level_T5_run2
+Jprafol/DialoGPT-large-ARCHIBot
+Carlosino/iwslt2017_857
+liuyanchen1015/pfadapter-FLAN-T5-base-been_done_lr0.001
+liuyanchen1015/pfadapter-FLAN-T5-base-null_relcl_lr0.001
+icybee/fast_lora_chat_v1_sunlight
+huggingtweets/drbigbooty
+couchpotato888/baize_lora_q4_ggml
+maomao0301/gptneox-ctrlsent-adapter-merged
+MBZUAI/LaMini-Flan-T5-783M
+MBZUAI/LaMini-T5-738M
+Zekunli/flan-t5-large-extraction-all-dm_4000-ep10-nonstop
+kalpeshk2011/dipper-paraphraser-xxl
+Carlosino/iwslt2017_1410
+Jprafol/DialoGPT-large-ARCHIBotV2
+Geralt-Targaryen/FantasyGPT
+HuggingFaceH4/tiny-random-LlamaForCausalLM
+ryanyip7777/medical_casereport_model
+fxmarty/tiny-llama-fast-tokenizer
+kylesiwi/ELIAI_1B
+HuggingFaceH4/tiny-random-LlamaForSequenceClassification
+Zekunli/flan-t5-large-extraction-all-dm_8000-ep10-nonstop
+registrator/test_countries
+Bainbridge/gpt2-kl_1_07-hs_cn
+ArmelR/Stack10K2048
+Bainbridge/gpt2-kl_1_04-hs_cn
+szzzzz/chatbot_bloom_1b7
+quality-eiaikenkyuu/distilgpt2-finetuned-wikitext2
+pvduy/vicuna-13b-v1.1
+sheoran95/normal_nodes_augmented_graphs_without_edge_document_level_T5_run1_
+Bainbridge/gpt2-kl_1_03-hs_cn
+RomeroRZ/gladiusprompt-vith-gpt2
+huggingtweets/lumber127
+ArneJacob/RemiBot
+huggingtweets/pferreir
+crscardellino/flisol-cba-martin-fierro
+Denniszg/biogpt-finetuned-ner
+flyingfishxxx/Vicuna
+bigsock/lumber
+Denniszg/biogpt-finetuned-ner-custom-dataset
+tinhpx2911/t5-small-finetuned-vietnews
+lcw99/polyglot-ko-5.8b-instruct-native-finetune
+spitfire4794/ben-ultra
+pragmatic-programs/literal-listener-5M-suffix-idx-156k
+pragmatic-programs/literal-speaker-suffix-idx-125k
+NikitaGorevoy/my_awesome_opus_books_model
+james-burton/text-exps-t5-20
+james-burton/text-exps-t5-20-aug
+james-burton/text-exps-t5-10
+james-burton/text-exps-t5-10-aug
+james-burton/text-exps-t5-large-20
+james-burton/text-exps-t5-large-20-aug
+james-burton/text-exps-t5-large-10
+james-burton/text-exps-t5-large-10-aug
+james-burton/text-exps-qa-t5
+Pansu/summarizer_model
+kinshuk-h/flan-t5-cbp-lkg-alt-small-finetuned
+VTSTech/Desktop-GPT-111m
+vishal2014/updated_t5_squad_long_vam
+Pars03/halucination_free
+sleeping4cat/Cipher
+hanbin/MaMaL-Gen
+hanbin/MaMaL-Sum
+hanbin/MaMaL-Com
+zzhnb/bioGPT_finetuned_ner_zzh
+jwenpaq/t5-small-finetuned-xsum-2
+igmarco/mt5-small-finetuned-amazon-en-es
+AkhilGhosh/llama_newsdata
+lawliet/flan-t5-small-dynasent_r1_r2_sst
+sheoran95/augmented_nodes_normal_graphs_without_edge_document_level_T5_run2
+h2oai/h2ogpt-oig-oasst1-256-6_9b
+AravindAct/flan-t5-xl-sales-v1
+Zekunli/flan-t5-large-extraction-all-dm_2000-ep1-nonstop
+rfutrell/gpt2_wiki40b_da
+tsumeone/vicuna-13B-1.1-GPTQ-4bit-128g-cuda
+zzhnb/bioGPT_finetuned_ner_5-3
+RachaelHumphreys/my_awesome_model
+Zekunli/flan-t5-large-extraction-all-dm_2000-ep2-nonstop
+Zekunli/flan-t5-large-extraction-all-cnn_2000-ep10-nonstop
+h2oai/h2ogpt-oasst1-512-12b
+rfutrell/gpt2_wiki40b_zh-cn
+hmbyt5-preliminary/byt5-small-historic-multilingual-flax
+TheBloke/gpt4-alpaca-lora-13B-HF
+stabilityai/stablelm-base-alpha-3b
+TheBloke/gpt4-alpaca-lora-13B-GPTQ
+liuhaotian/LLaVA-13b-delta-v0
+Zekunli/flan-t5-large-extraction-all-cnn_2000-ep2-nonstop
+Zekunli/flan-t5-large-da-multiwoz2.1_800-ep20-nonstop
+return2music/imdb-sentiment-ppo-pythia-160m
+return2music/imdb-sentiment-ppo-pythia-410m
+huggingtweets/nootropicguy
+wyangw/t5-end2end-questions-generation
+supercat666/qg_en
+AntoDono/BOPY
+Wannita/baseline_codecompletion
+h2oai/h2ogpt-oasst1-512-20b
+sheoran95/augmented_nodes_normal_graphs_without_edge_document_level_T5_run3
+renuv/distilgpt2-finetuned-wikitext2
+PSW/t5-base-samsum-reverse-train
+Ejafa/llama_7B
+Ejafa/llama_13B
+KM4STfulltext/Journal-GPT
+Ejafa/llama_30B
+huggingtweets/shaq
+ZYM666/ChatDoctor_change
+openMUSE/t5-v1_1-large-enc
+currentlyexhausted/flan-t5-answer-generator
+Darsh12/mcq_generation
+kicer/Przembot
+h2oai/h2ogpt-oig-oasst1-512-6_9b
+umang-samyak/mcq_generation
+AlanRobotics/ruT5_q_a
+kitgary/test-bert-finetuned-squad-accelerate
+beomi/KoAlpaca-Polyglot-12.8B
+ku-nlp/gpt2-small-japanese-char
+NiallRooney/my_awesome_eli5_clm-model
+NYTK/ocr-cleaning-mt5-base-hungarian
+sheoran95/augmented_data_with_edge_document_level_T5_run1
+Bainbridge/gpt2-kl_1_03_hscnspecial-hs_cn
+jfiekdjdk/vicuna-13B-1.1-Chinese-GPTQ-4bit-128g
+Bainbridge/gpt2-kl_1_04_hscnspecial-hs_cn
+Bainbridge/gpt2-kl_1_05_hscnspecial-hs_cn
+Bainbridge/gpt2-kl_1_06_hscnspecial-hs_cn
+seanmor5/tiny-llama-test
+Alankar66/flan-t5-base-samsum
+Bainbridge/gpt2-kl_1_07_hscnspecial-hs_cn
+maciek-pioro/llama-fixed-tokenizer
+couchpotato888/baize-13b-hf-test
+sheoran95/normal_nodes_augmented_graphs_with_edge_document_level_T5_run2
+sheoran95/normal_nodes_augmented_graphs_with_edge_document_level_T5_run3
+Pars2703/halucination_free
+Shalazary/mT5Summarizer
+jnelen/output
+paraphrazer/undetectxxl
+ureca07/korean-vicuna-7b-1.1
+macBrig/t5_boolq
+MarkP1929/oasst-llama-13b-2-epochs-GPTQ-4bit-128g
+MarianaLC/mt5-de-rr-1000-v2
+kinshuk-h/flan-t5-cbp-lkg-qa-small-finetuned
+hienhieu/MINIGPT-4
+kinshuk-h/flan-t5-cbp-lkg-qa-small
+st3rl4nce/mt5-small-finetuned-amazon-en-es
+ai-forever/mGPT-13B
+prasanna2003/ChatOPT-fintuned
+vishal2014/updated_t5_squad_mcq_vam
+Emilianohack6950/M.A.R.I.A
+huggingtweets/y3ru8
+royal42/gpt2chess_scratch
+pnawrot/nanoT5-base
+erbacher/flan-base-facet
+MarianaLC/mt5-en-pt-translation
+feeeper/mt5-small-finetuned-amazon-en-es
+yiqingx/AnchorDR
+breadlicker45/autotrain-test44-50597120816
+GarciaLnk/flan-t5-small-squad2
+GarciaLnk/flan-t5-base-squad2
+vicclab/GPTCodeDetection
+GarciaLnk/flan-alpaca-base-squad2
+snipaid/snip-igel-500-v2-adapter-merged
+beanham/t5-large
+AlanRobotics/ruT5-conversation
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep20-nonstop
+wangsoft/B
+sangjeedondrub/marpa
+winglian/vicuna-self-reflect-13b
+0x044/dgpt
+Richard0113/distilgpt2-finetuned-wikitext2
+Zekunli/flan-t5-large-da-multiwoz2.1_400-ep20-nonstop
+stabilityai/stablelm-tuned-alpha-3b
+nezhazheng/flink-sql-autotrain
+nezhazheng/autotrain-xx-50653120896
+huggingtweets/shaiss
+maithili12/autotrain-hin_sum3-50663120923
+monotykamary/dolly-3b-lora-merged-dwarves-poc
+152334H/disarming-7b
+bookbot/byt5-small-wikipron-eng-latn-us-broad-p2g
+monotykamary/alpaca-7b-lora-merged-dwarves-poc
+stabilityai/stablelm-tuned-alpha-7b
+filopedraz/tvm-e2e-test
+Geralt-Targaryen/FantasyGPT-tiny
+gokulsathyan/wzard
+gokulsathyan/DialoGPT-small
+shiva-shiva-shiva/bloom-560m-finetuned-liability-384_length-QA3
+Vision-CAIR/vicuna
+bookbot/byt5-small-wikipron-eng-latn-multi-broad-p2g
+152334H/disarming-13b
+szzzzz/chatbot_bloom_3b
+johannes5117/looria-productname-topic
+junelee/ko_vicuna_7b
+Plenng/autotrain-sentiment-textclassify-50732121018
+shiva-shiva-shiva/bloom-560m-finetuned-liability-700_length-QA3
+szzzzz/chatbot_bloom_560m
+NiallRooney/codeparrot-ds
+Sahithivsp/mt5-small-finetuned-amazon-en-es
+manashxml/my_base_model_mlm
+AISE-TUDelft/CodeGPT-Py150
+TheBloke/alpaca-lora-65B-HF
+huggingtweets/elypinerat-honkaistarrail-unreal_dreamer
+hmbyt5-preliminary/byt5-small-english-german-french-finnish-swedish
+gbarone77/t5flan-large-finetuned-wikisql-with-cols
+bg79-v23-bidata-ntnu/mt5-small-finetuned-cnn-news-finetuned-NO3
+kobkrit/thai-t5-base
+youkaichao/vicuna-13b
+flyingfishxxx/Alpaca-Lora
+huggingtweets/vsshole-y3ru8
+carnival13/t5-small-hpqa-squad
+P01son/Linly-Chinese-LLaMA-13b-hf
+Linly-AI/Chinese-LLaMA-33b-hf
+kaaniince/turkishReviews-textGeneration
+arunkottilukkal/t5-small-finetuned-xsum
+gokulsathyan/DialoGPT-test
+lduan11/t5-base-finetuned-multi-news
+suzii/hihi
+TheBloke/alpaca-lora-65B-GPTQ
+Phonecharger/WLAsw1
+lewtun/large-model-finetuned-code-alpaca
+Yonadav/flan_base_en_to_kjven_translator
+Zekunli/flan-t5-large-da-multiwoz2.0_800-ep20-nonstop
+henri28/my_awesome_opus_books_model
+iffatN/chatty_gtp2
+Zekunli/flan-t5-large-da-multiwoz2.1_400-ep15-nonstop
+vega6000/distilgpt2-finetuned-wikitext2
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep15-nonstop
+iffatN/gpt2_finetuned_SparC_Hugging_face
+rntc/t5-instructionner-bigbio
+camenduru/MiniGPT4
+melodydreamj/test
+Ligeng-Zhu/llama-7b
+wangrongsheng/MiniGPT-4-LLaMA
+dtrejopizzo/capibara-17b-4bit
+Salesforce/codet5-base-codexglue-sum-python
+star-nox/t5-small-finetuned-policy
+shiva-shiva-shiva/bloom-560m-finetuned-liability-700_length-QA5
+couchpotato888/dolpaca_gpt4_7b_1e_hf
+couchpotato888/dolpaca_gpt4_13b_1e_hf
+ss1612/erika-chatv6
+Amalsalilan/my_awesome_billsum_model
+Celestinian/SentimentGPT
+Salesforce/codet5-base-codexglue-sum-go
+Salesforce/codet5-base-codexglue-sum-java
+Salesforce/codet5-base-codexglue-sum-javascript
+Salesforce/codet5-base-codexglue-sum-php
+Salesforce/codet5-base-codexglue-sum-ruby
+bangnbx/t5-small-256
+bangnbx/t5-small-512
+bangnbx/t5-small-768
+bangnbx/t5-small-1024
+bangnbx/t5-small-2048
+bangnbx/t5-small-2944
+niizam/gpt2-4chan-mini
+marcus2000/Russian_GPT_summarizer
+Amalsalilan/The_summerizer
+bangnbx/t5-small-128
+mongolian-basket-weaving/llava-13b-fp16
+mongolian-basket-weaving/llava-13b-fp16-safetensors
+jnelen/summarization_model_test_full
+vvsotnikov/stablelm-tuned-alpha-7b-16bit
+Saruullllllllllllllll/model-baseline
+kobkrit/openthaigpt-mgpt-pantipwiki-poc
+Saruullllllllllllllll/model-baseline1
+vvsotnikov/stablelm-tuned-alpha-3b-16bit
+Salesforce/codet5-base-codexglue-clone
+Salesforce/codet5-base-codexglue-concode
+Salesforce/codet5-base-codexglue-defect
+Salesforce/codet5-base-codexglue-refine-medium
+Salesforce/codet5-base-codexglue-refine-small
+Salesforce/codet5-base-codexglue-translate-cs-java
+Salesforce/codet5-base-codexglue-translate-java-cs
+MockingJ/chatbot
+couchpotato888/alpaca7b
+couchpotato888/alpaca13b
+carnival13/t5-small-hpqa-ia3lo
+carnival13/t5-small-hpqa-lora
+seongcho/GenerAd-AI
+Vintron/MichaelScottGPT
+ViditRaj/gpt2-finetuned-text2SQL
+prodm93/llama_65b_corr
+Seungjun/articleGeneratorV1.1
+ViditRaj/t5-finetuned-text2SQL
+Xenova/t5-small
+Lichang-Chen/GPT4-reward
+Peeepy/llama-30b-oasst
+annakotarba/model_gpt_v1
+prodm93/llama_7b_corr
+TestingCoder463632/DialoGPT-small-palpatine
+yash1811/news_summarization
+OpenAssistant/stablelm-7b-sft-v7-epoch-3
+pthpth0206/distilgpt2-finetuned-wikitext2
+Peeepy/llama-33b-oasst-4bit
+Peeepy/llama-30b-oasst-4bit-128g
+AngelusD/BrainY
+minosu/godot_dodo_4x_60k_llama_7b
+Shad0ws/Vicuna13B
+huggingtweets/rickyedit
+iffatN/gpt2_finetuned_with_schema
+minjibi/qa
+jayelm/flan-t5-xxl-gist-1
+quickman/mt5-base-finetuned-novel-chinese-to-spanish
+Abhishek9998/t5-small-finetuned-xsum
+Laizhengqin/minigpt4_vicuna
+Abhishek9998/t5-base-finetuned-xsum
+naxautify/pythia-1.4b-deduped-8k
+couchpotato888/dolpaca4_7b_3e_hf
+Blizzchor/DialoGPT-medium-BarryB
+transformersegmentation/GPT2-Segmentation-Probe-gpt2_lm_head_model-model
+carnival13/hpqa-fid-support-64
+lponsard/distilgpt2-finetuned-wikitext2
+tekkonetes/tekko-gpt2
+tevosianv/mt5-small-finetuned-amazon-en-es
+saibo/llama-7B
+tomasonjo/movie-generator-small
+Linus4Lyf/Llama-1epoch-Plato
+huggingtweets/willknight
+carnival13/hpqa-fid-lite-64
+Crypt2349/DialoGPT-small-shiki
+Crypt2349/shiki-discord-bot
+Abhishek9998/flan-t5-base-finetuned-xsum
+huggingtweets/yudapearl
+huggingtweets/bboczeng-lidangzzz
+huggingtweets/bramvanroy
+ausboss/llama-30b-supercot
+Crypt2349/DialoGPT-discord
+nicholascao/chatbloom-1b7-sft
+tevosianv/test-bert-finetuned-squad-accelerate
+huggingtweets/machelreid
+kavindu999/BetterEnglishGPT-v1
+Laurie/Bloom1b7-deepspeed-chat-Chinese-math
+seanmor5/tiny-gpt-neox-test
+minosu/godot_dodo_4x_60k_llama_13b
+ybanas/autotrain-fr-en-translate-51410121895
+wojtab/llava-13b-v0-4bit-128g
+MarianaLC/mt5-pt-rr-1000
+luodian/llama-7b-hf
+Nalenczewski/pizza_chain_spell_correction
+Tempestas/gpt2-wiki-movies-0
+huggingtweets/farzatv
+huggingtweets/yacinemtb
+luodian/llama-13b-hf
+gigifokcm/gpt2-simulacra
+huggingtweets/luriapetrucci
+vinwizard/t5-base-finetuned-context-dataset
+couchpotato888/baizelora7b_hf
+couchpotato888/baizelora13b_hf
+huggingtweets/solomonwycliffe
+tsumeone/llama-30b-supercot-4bit-128g-cuda
+Rui111/task_2_model
+gethwulf/t5-sequencenumber-prototype
+Bilkies/t5-MCQ-question-generator_v1
+prodm93/BioMedLM_IPU
+huggingtweets/italyhightech
+jainr3/t5-finetuned-meetings
+winglian/vicuna-13b-1_1-hf
+houck2040/satire_llm
+ausboss/llama-13b-supercot
+lokesh8185/t5-small-finetuned-xsum
+ausboss/llama-13b-supercot-4bit-128g
+heegyu/gorani-v0
+liuhaotian/LLaVA-13b-delta-v0-science_qa
+saransharora96/dummy-model
+saransharora96/saransh_biogpt
+20191015gahyun/kogpt2-base-v2-finetuned-klue-ner
+richtsai1103/finetuning-summarization-model
+scutcyr/BianQue-1.0
+Rui111/example1
+huggingtweets/__stankovsky
+fragro/llama-7b-hf
+jirawan-chro/t5-end2end-questions-generation
+yukiarimo/Uta-AI
+MLRush/chinese-lm-30m
+PixelPerfect/PixelPerfect_StableDiffusion_AutoCompleteModel
+Seungjun/textGeneration_06
+lixiqi/wiki_lingua-ar-8-3-5.6e-05-mt5-small-finetuned
+hmbyt5-preliminary/byt5-small-english-german-french-finnish-swedish-dutch
+couchpotato888/baize7bdollylora_hf
+wangrongsheng/MiniGPT-4-LLaMA-7B
+huggingtweets/bom19930812-parpaiting-thepr_
+huggingtweets/parpaiting
+lixiqi/wiki_lingua-en-8-3-5.6e-05-mt5-small-finetuned
+lokesh8185/t5-small-finetuned-xsum1
+Linus4Lyf/Llama-5epoch-Plato
+thegoodfellas/tgf-flan-t5-base-ptbr
+caturbhuja/vicuna-13b-weight-conv
+dagim/AmharicGPT
+kavindu999/BetterEnglishGPT-v2
+huggingtweets/alikarimi_ak8-barackobama-cathiedwood-elonmusk-taylorlorenz-ylecun
+WonderfulVamsi/t5-small-finetuned-xsum
+huggingtweets/ilikeparadox
+Seungjun/textGeneration_07
+oyxy2019/Wenzhong2.0-GPT2-110M-THUCNews-all_in
+prodm93/llama_30b_corr
+pedroferr/tasqueiro
+mohamedhml/t5_recommendation_piscine_equipements_large
+elinas/llama-30b-hf-transformers-4.29
+jamessyx/ChatPath
+Abhishek9998/t5-base-finetuned-resumes_t2json_large
+Linus4Lyf/Llama-10epoch-Plato
+dagim/AmharicGPT-Medium
+elinas/llama-65b-hf-transformers-4.29
+elinas/llama-7b-hf-transformers-4.29
+TheBloke/medalpaca-13B-GPTQ
+teknium/GPT4-x-Alpaca13b-RolePlayLora-4bit-v2
+EnterNameBros/DialoGPT-small-FoxySan
+huggingtweets/ceicai-furryhermmother-ranchempty
+ethzanalytics/stablelm-tuned-alpha-3b-sharded
+4bit/gpt4-x-alpaca-13b-roleplay-lora-4bit-v2
+unionai/pythia-410m-finetune-alpaca
+MetaIX/OpenAssistant-Llama-30b-4bit
+ethzanalytics/stablelm-base-alpha-3b-sharded
+jayelm/flan-t5-xxl-pos_control-1
+ethzanalytics/dolly-v2-7b-sharded
+jayelm/flan-t5-xxl-neg_control-1
+ethzanalytics/dolly-v2-12b-sharded
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep12-nonstop
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep18-nonstop
+ethzanalytics/stablelm-base-alpha-7b-sharded
+ChandlerU11/t5_fine_negative_class
+ethzanalytics/stablelm-tuned-alpha-7b-sharded
+berker/vicuna-13B-1.1-GPTQ-3bit-128g
+guptaankitaumass/t5-small-finetuned-xsum
+hongyin/chatbloom-7b
+lokesh8185/t5-small-finetuned-billsum_4Epochs
+dslack/flan-t5-dolly-10-epochs
+huggingtweets/richardheartwin
+ohyoulim/t5-v1_1-small-finetuned-cnn_dailymail
+nerdai/codeparrot
+SiraphongMJ/t5-end2end-questions-generation
+neshkatrapati/flan-t5-base-customer-sentiment
+lixiqi/wiki_lingua-ar-8-8-5.6e-05-mt5-small-finetuned
+grenishrai/ZANE
+TheYuriLover/llama-13b-SuperCOT-4bit-TRITON
+ohyoulim/t5-v1_1-small-finetuned-cnn_dailymail_2
+MLRush/chinese-chat-30m
+michelleyunun/mt5-nyb-500
+David003/BELLE_LLaMA_7B_2M_enc_decrypted
+lixiqi/wiki_lingua-hi-8-3-5.6e-05-mt5-small-finetuned
+abokbot/t5-end2end-questions-generation
+michelleyunun/mt5-gitksan
+wetey/content-summarizer
+patrache/kogpt2-base-v2-finetuned-klue-ner
+ujkim98/mt5-small-finetuned-amazon-en-es
+oyxy2019/Wenzhong2.0-GPT2-110M-THUCNews_10000-10epoch
+wetey/content-generator
+camenduru/MiniGPT4-7B
+lponsard/bloom-560m-finetuned-admCom
+oyxy2019/Wenzhong2.0-GPT2-110M-THUCNews_10000-10_15epoch
+AngelusD/BrainYweB
+tevosianv/mt5-small-finetuned-no-email-summary
+haining/poem_interpretation_allpoetry169k
+pakkardkaw/t5-end2end-questions-generation
+PSW/t5-base-tweetsumm-reverse-train
+baotoan2002/GPT-2
+tevosianv/mt5-finetuned-accelerate-no-email-sum
+berker/vicuna-13B-1.1-GPTQ-3bit
+bprateek/product_description_generator
+PSW/t5-base-dialogsum-reverse-train
+tsumeone/llama-30b-supercot-4bit-cuda
+helio3197/vicuna-7b
+unionai/pythia-70m-dedubed-alpaca-cleaned
+tevosianv/nb-mt5-base-finetuned-no-email-summary
+kasun61/gpt2-wikitext2
+HuggingFaceH4/tiny-random-LlamaForSeqClass
+maomao0301/pythia-410m-imdb-adapter-merged
+maomao0301/pythia-1b-imdb-adapter-merged
+maomao0301/pythia-2.8b-imdb-adapter-merged
+maomao0301/pythia-12b-imdb-adapter-merged
+mys/stablelm-tuned-alpha-7b-8bit
+ThatOnePallavi/TextSummarization
+tevosianv/nb-mt5-base-finetuned-no-email-summary-no_t5
+AhmedTaha012/gpt2-wikitext23
+jayelm/llama-7b-gist-1
+immadarkmatter/immadarkmatter_Summarizer
+gsrilaxmi09/gpt2_interviewer_finetuned
+AhmedTaha012/gpt2-txtToarxml
+jayelm/llama-7b-pos_control-1
+jayelm/llama-7b-neg_control-1
+AhmedTaha012/gptn2-txt2ARXMLv1.00
+circulus/KoVicuna-5.8b-v1
+etri-lirs/kebyt5-large-preview
+seungrok81/vicuna-13b-gptq-4-actorder
+mushtaqmk17/autotrain-nlp-proj-evaluation-task-51920122599
+OrientalDude/DialoGPT-medium-GOKU
+NUSTM/restaurant-t5-base
+NUSTM/laptop-t5-base
+NUSTM/dutch-restaurant-mt5-small
+TehVenom/oasst-sft-6-llama-33b-xor-MERGED-4bit-GPTQ
+suarkadipa/GPT-2-finetuned-papers
+NUSTM/french-restaurant-mt5-small
+Duangkamon/t5-end2end-questions-generation
+bianheshan/e-pilot-edu-large-chinese
+eunyounglee/polyglot_ko_summary_0424
+soumya13/GPT2_CleanDesc_MAKE_v1.1
+soumya13/GPT2_CleanDesc_MAKE_v1.2
+thanhpn/alpaca-7b-lora-merged-dwarves-poc
+Aruno/Bloom-JP-160m
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v5
+maikaarda/vicuna-13B-1.1-HF
+scarredwitch/codeparrot-gpt2-finetune
+nakcnx/TGPT-2-BadTopic
+Sheza/gpt2
+diyarhamedi/nlp4012-gpt2
+zedalef/gpt2
+elnazrezaee/Workshop6
+openlmlab/open-chinese-llama-7b-patch
+ParsaKgvr/mmdGPT
+Sauleh/workshopGPT
+Morteza-Shahrabi-Farahani/new-workshop-model
+hamedhf/my_gpt2
+Babak-Behkamkia/GPT2_test
+mjavadmt/simple_generation
+chinmayapani/t5-small-finetuned-multi-news-summerize
+lhoorie/lovelyGPT
+saribalgar/language_model
+David003/vicuna-7b-v1.1
+K-Kanistha/t5-end2end-questions-generation
+lokesh8185/t5-small-finetuned-topics-customdata
+kayhanliao/yelpGPTv1.2
+divers/ans-scorer-flan-large
+reyhane/gpt
+openMUSE/flan-t5-large-enc
+lokesh8185/t5-small-finetuned-topics-customdata2
+mosiAhooei/97521117_gpt2
+lokesh8185/finetunedtopicscustomdata3
+Amiri/GPT2_test
+lokesh8185/finetunedtopicscustomdata4
+lokesh8185/finetunedtopicscustomdata5
+Celestinian/PromptGPT
+bg79-v23-bidata-ntnu/t5_base_NCC_lm-log
+mHossain/mt5-base-finetuned-xsum
+bigcode/starcoder
+bg79-v23-bidata-ntnu/t5_base_NCC_lm
+dmayhem93/6B-sft-self-critiquing-base
+Aruno/Bloom-FR-160m
+dmayhem93/6B-sft-self-critiquing-critique
+bg79-v23-bidata-ntnu/t5_small_NCC-normail
+dmayhem93/6B-sft-self-critiquing-refine
+maomao0301/pythia410-ctrlsent-adapter-merged
+maomao0301/pythia1b-ctrlsent-adapter-merged
+dmayhem93/1B-sft-self-critiquing-base
+dmayhem93/1B-sft-self-critiquing-critique
+Den4ikAI/ebany_researcher
+bg79-v23-bidata-ntnu/t5-base-normail
+bg79-v23-bidata-ntnu/t5_base_NCC_lm-normail
+bg79-v23-bidata-ntnu/t5_base_NCC-normail
+dmayhem93/1B-sft-self-critiquing-refine
+dmayhem93/125m-sft-self-critiquing-base
+TehVenom/oasst-sft-6-llama-33b-xor-MERGED-16bit
+dmayhem93/125m-sft-self-critiquing-critique
+dmayhem93/125m-sft-self-critiquing-refine
+nomic-ai/gpt4all-13b-snoozy
+azabdus/t5-base-ft-test
+zen-E/deepspeed-chat-step3-rlhf-actor-model-opt1.3b
+bg79-v23-bidata-ntnu/t5_small_NCC_lm-normail
+bg79-v23-bidata-ntnu/mt5-small_cnn-news_normail
+rajeeva703/autotrain-news_trans_03-52110122903
+rchan26/ds-summer-school-seinfeld
+tiiuae/falcon-7b
+mHossain/mt5-base-bangla-para-v1
+soumya13/GPT2_CleanDesc_MAKE_v1.3
+Theramed/t5-end2end-questions-generation
+Supparesk/t5-end2end-questions-generation
+sheoran95/augmented_nodes_shuffled_graphs_with_edge_document_level_T5_run1
+sheoran95/augmented_nodes_shuffled_graphs_with_edge_document_level_T5_run2
+Nikinzt/GPT2_test
+mHossain/mt5-base-bangla-para-v1-bangla-para-v2
+lamini/instruct-tuned-2.8b
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep10-nonstop
+ctu-aic/t5-small-feversum
+bg79-v23-bidata-ntnu/mt5-chenhg8680-normail
+huggingtweets/swooshycueb
+ctu-aic/t5-large-cnn-feversum
+ethzanalytics/dolly-v2-12b-sharded-8bit
+ethzanalytics/dolly-v2-7b-sharded-8bit
+bg79-v23-bidata-ntnu/mt5-mrm8488-normail
+Avitas8485/Dialogpt-medium-v1
+mohammadRjb/test_gpt2
+mlewand/PROT5-small
+bg79-v23-bidata-ntnu/mt5-nestoralvaro-normail
+soumya13/GPT2_CleanDesc_MAKE_v1.4
+ruibin-wang/llama-7b-hf
+ruibin-wang/llama-13b-hf
+wentingzhao/gpt2-xl-socialiqa-combined
+finex/pfe-mohamed-Harry
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep8-nonstop
+huggingtweets/gerjon_
+sheoran95/augmented_nodes_shuffled_graphs_with_edge_document_level_T5_run3
+mHossain/bangla-para-v3
+pvduy/vicuna-13b-v1.1-sft
+coffeeee/nsfw-story-generator
+gentlebowl/instructor-large-safetensors
+IAJw/flan-alpaca-base-18378
+claysauruswrecks/cerebras-gpt-111m-pretrain-stack-smol-0-15k-chkp
+Avitas8485/Dialogpt-medium-finetuned
+retrieva-jp/t5-small-short
+sofiadipace/code_to_comment
+Rattikorn12/t5-end2end-questions-generation
+Sivakorn/t5-end2end-questions-generation
+m2dev/mm2_news_summary_model
+huggingtweets/caradelevingne
+tiiuae/falcon-7b-instruct
+WizardLM/WizardLM-7B-V1.0
+puwadonsri/t5-end2end-questions-generation
+Kanisorn12/t5-end2end-questions-generation
+huggingtweets/adrianachechik-andre_yaniv-bunnydelphine
+huggingtweets/andre_yaniv
+huggingtweets/adrianachechik
+David003/llama_30b_hf
+huggingtweets/bunnydelphine
+gaussalgo/T5-LM-Large-text2sql-spider
+ctu-aic/mt5-slovaksum-smesum-bs8
+mantisnlp/stablelm-7b
+bg79-v23-bidata-ntnu/mt5_xl-nestoralvaro-normail
+rchan26/ds-summer-school-GoT
+hmbyt5/byt5-small-historic-dutch
+jay7080dev/result
+jay7080dev/boolean_question
+ashishkat/summarization
+karzideh/results
+mHossain/bangla-para-v4
+Sunoh/codeparrot
+bg79-v23-bidata-ntnu/mt5-news_ua-normail
+SoMiyagawa/AinuTrans-2.0
+supisarap/t5-end2end-questions-generation
+bg79-v23-bidata-ntnu/mt5-normail
+bg79-v23-bidata-ntnu/mt5_large-normail
+bg79-v23-bidata-ntnu/mt5_small-normail
+michelleyunun/brainy
+artyom-kas/large-korzh
+captain-dz/dedotatedwams
+Linus4Lyf/Llama-10epoch-Plato-3epoch-Beauvoir_The_Second_Sex
+Napapol/t5-end2end-questions-generation
+nourhene1/t5-small-finetuned-xsum
+am-azadi/NLP_HuggingFace_gpt2
+ppakawut/t5-end2end-questions-generation
+FreedomIntelligence/phoenix-inst-chat-7b-int4
+Baktashans/NLP_HF_GPT
+berker/vicuna-13B-1.1-GPTQ-3bit-128g-v2
+Kan-26497/t5-end2end-questions-generation
+vvsotnikov/stablelm-7b-sft-v7-epoch-3-8bit
+amirsmvt/amir_GPT2
+CyberTimon/chimera-7b-4bit-128g
+llllhd/ChatCare-5epoch-wandb
+wjn1996/hugnlp-hugchat-gpt2-xl
+llllhd/ChatCare-SFT
+Celestinian/TopicGPT
+ruibin-wang/finetune_with_lora
+erfanzar/PGT-1B
+Wanidatws/t5-end2end-questions-generation
+sheoran95/augmented_data_without_edge_document_level_T5_run1
+sheoran95/augmented_data_without_edge_document_level_T5_run2
+sheoran95/augmented_data_without_edge_document_level_T5_run3
+kinshuk-h/flan-t5-kelm-tekgen-kg-small
+kinshuk-h/flan-t5-kelm-tekgen-kg-w-context-small
+elnazrezaee/BERT
+elnazrezaee/GPT2
+kinshuk-h/flan-t5-kelm-tekgen-kg-mlm-w-context-small
+newsrx/mt0-xl
+pascalhuerten/t5-small-finetuned-esco-summarisation
+emad12/GPT2
+huggingtweets/ykilcher
+Harshkmr/codeparrot-ds
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep11-nonstop
+herwoww/my_first_finetune_mt_model
+huggingtweets/youngthug
+Yonadav/summeraiztion_t5base_en_to_kjven
+erfanzar/PGT-1B-2EP
+davidvblumenthal/GPT-Verite-125M-sc_mask-3x-wiki-prototype
+MetaIX/GPT4-X-Alpasta-30b
+mHossain/bangla-para-v5
+catalpa/codecapybara-4bit-128g-gptq
+huggingtweets/projecttxa
+AlekseyKorshuk/chatml-test
+akoksal/LongForm-LLaMA-7B-diff
+TheBguy87/GPT2-Model-BabyLM-Challenge-strict-small-2M
+nakcnx/nanoTGPT
+aditigupta/t5-sva-to-spec
+brathief/GPT_Alice_417_e60
+AlekseyKorshuk/chatml-test-no-pad
+jasonsurya0/T5Large_ONE
+jasonsurya0/T5Large_TWO
+CarperAI/stable-vicuna-13b-delta
+mHossain/bangla-para-v6
+TheBguy87/GPT2-Model-BabyLM-Challenge-strict-small
+Jaewoo1/polyglot-epoch4
+Jaewoo1/polyglot-epoch5
+quickman/mt5-base-finetuned-novel-chinese-to-spanish-v1
+huggingtweets/andela
+vishal2014/t5_new_mcq_vam
+kinshuk-h/flan-t5-kelm-tekgen-kg-mlm-small
+Sunoh/codeparrot-small
+huggingtweets/mygbebe
+KRAFTON/KORani-v1-13B
+KRAFTON/KORani-v2-13B
+flochaz/oasst-sft-4-pythia-12b-epoch-3.5
+TheBloke/wizardLM-7B-HF
+retrieva-jp/t5-xl
+liuyanchen1015/pfadapter-FLAN-T5-base-multi-task-VALUE
+KRAFTON/KORani-v3-13B
+ChauhanVipul/mt5-small-finetuned-amazon-en-es
+Yonadav/summarization_t5base_en_to_kjven
+TheBloke/wizardLM-7B-GPTQ
+retrieva-jp/t5-large-short
+retrieva-jp/t5-base-short
+retrieva-jp/t5-small-medium
+retrieva-jp/t5-small-long
+retrieva-jp/t5-base-medium
+Latthawan/t5-end2end-questions-generation
+retrieva-jp/t5-base-long
+retrieva-jp/t5-large-medium
+retrieva-jp/t5-large-long
+NiyatiC/mt5-small-finetuned-amazon-food
+shlomik/codeparrot-ds
+Thananan/t5-end2end-questions-generation
+tiiuae/falcon-rw-1b
+vega6000/distilgpt2-finetuned-medical
+seanghay/mt5-small-km-phoneme
+sheoran95/augmented_data_with_edge_document_level_T5_run2
+sheoran95/augmented_data_with_edge_document_level_T5_run3
+seanghay/mt5-small-km-phoneme-reverse
+JNJNN/t5-end2end-questions-generation
+sheoran95/shuffled_nodes_augmented_graphs_with_edge_document_level_T5_run1
+sheoran95/shuffled_nodes_augmented_graphs_with_edge_document_level_T5_run2
+ahj224/mymodel
+tiiuae/falcon-rw-7b
+chotikap/t5-end2end-questions-generation
+svanhvit/byt5-ocr-post-processing-faroese
+nateethon/t5-end2end-questions-generation
+Linus4Lyf/Llama-10epoch-Plato-3epoch-Hume_A_Treatise_Of_Human_Nature
+Pennyyyyy/t5-end2end-questions-generation
+Lzzzq/CodeParaphrase-pyconala
+tharika/t5-end2end-questions-generation
+Lzzzq/CodeParaphrase-python
+Lzzzq/CodeParaphrase-cpp
+Oleksandr2003/seq_gender_changer
+Lzzzq/CodeParaphrase-java
+sheoran95/shuffled_nodes_augmented_graphs_without_edge_document_level_T5_run1
+sheoran95/shuffled_nodes_augmented_graphs_without_edge_document_level_T5_run2
+sheoran95/shuffled_nodes_augmented_graphs_with_edge_document_level_T5_run3
+Lzzzq/CodeParaphrase-javascript
+sheoran95/shuffled_nodes_augmented_graphs_without_edge_document_level_T5_run3
+hmahmoud/flan-t5-large-lfqa-fr-v3
+Sinsinnati/hf_workshop_extra
+Jamesonn/DialoGPT-small-jumin
+Anyayolp/t5-end2end-questions-generation
+lukplamino/t5-end2end-questions-generation
+svanhvit/byt5-ocr-post-processing-faroese-ai-yfirlestur
+Linus4Lyf/Llama-10epoch-Plato-3epoch-Kant_Metaphysics_Of_Morals
+koala500/t5-end2end-questions-generation
+emrik/bloom7b-vigogne
+MrVPlusOne/coeditor-perm2k-production
+rfutrell/gpt2_wiki40b_ru
+AverageName/sd-finetune
+thegoodfellas/tgf-gpt-117m-tunned
+htriedman/wiki-sparql-models
+burberg92/resume_summary
+ccgomezn/my_awesome_billsum_model
+jeromeku/llama-stack-rm-merged
+jeromeku/llama-stack-rl-merged
+jeromeku/llama-stack-sft-merged
+Zekunli/flan-t5-large-da-multiwoz2.0_400-ep7-nonstop
+Jaewoo1/polyglot-epoch6
+Jaewoo1/polyglot-epoch8
+OpenBuddy/openbuddy-7b-v1.0-bf16-enc
+rfutrell/gpt2_wiki40b_nl
+nardthida/t5-end2end-questions-generation
+pragmatic-programs/literal-listener-suffix-idx-token
+pragmatic-programs/literal-speaker-suffix-idx-token
+pragmatic-programs/literal-speaker-prefix-idx-token
+MetaIX/GPT4-X-Alpasta-30b-4bit
+pragmatic-programs/literal-listener-prefix-idx-token
+SahilKuw/442FinalProj
+Salesforce/safety-flan-t5-small
+Salesforce/safety-flan-t5-base
+yuchuqing/llama-7b
+phinate/distilgpt2-finetuned-wikitext2
+ajscalers/t5-small-finetuned-xsum
+SLPL/t5-fa
+YeungNLP/firefly-bloom-2b6-v2
+Abdou/gpt2-dz
+sabarzii/lovelyGPT
+phinate/make-your-own-bee-movie
+circulus/Camel-base-ko-v1
+sheoran95/augmented_data_with_edge_document_level_T5_run3_
+hash1524/gpt-j-6B
+rkyla/distilgpt2-finetuned-wikitext2
+mikkicon/t5-small_tuned_on_billsum
+Aitrepreneur/wizardLM-7B-GPTQ-4bit-128g
+IAJw/declare-flan-alpaca-large-18378
+Aitrepreneur/vicuna-7B-1.1-GPTQ-4bit-128g
+rkyla/Cerebras-GPT-256M-finetuned-wikitext2
+Linus4Lyf/Llama-10epoch-Plato-3epoch-Rousseau_Emile
+henri28/tcc_conventions
+Quizzer/Context2Question
+Linus4Lyf/Llama-10epoch-Plato-3epoch-Sina_A_Compendium_On_The_Soul
+JP28/t5-end2end-questions-generation
+Aeala/GPT4-x-AlpacaDente-30b
+TheAmericano/t5-end2end-questions-generation
+MarianaLC/mt5-de-rr-1000
+mhhmm/codeT5-python-sum
+phinate/my_finetuned_GPT
+rifatul123/Classic_chatbot-small-v2
+hxshen/distilgpt2-finetuned-wikitext2
+pamuksuz/INFERENCE_healthcareGPT-3B
+huggingtweets/tomkowalczyk
+sxie3333/GPT
+dqups1/codeparrot-ds
+kjankaew/t5-end2end-questions-generation
+huggingtweets/saxonflood
+digitous/ChanSung_Elina_33b-4bit
+marcus2000/polish_transliterator2
+Monero/oasst-llama-13b-4-epochs-4bit-128g
+Bavanda/GPT
+scorepia/t5-end2end-questions-generation
+lamini/instruct-tuned-3b
+Bunoo03/gpt4-x-alpaca-13b-native-4bit-128g
+plgrm720/tokipona_to_eng_model_v0.4
+CathyXian/model
+lmsys/fastchat-t5-3b-v1.0
+lmeninato/flan-t5-base-codesearchnet
+csobrien/t5-small-petals
+csobrien/t5-3b-petals
+4bit/vicuna-13B-1.1-GPTQ-4bit-128g
+Monero/oasst-alpaca13b-4epoch-4bit-128g
+Locutusque/gpt2-conversational-or-qa
+marcus2000/polish_transliterator_test
+marcus2000/polish_transliterator_test1
+lcw99/polyglot-ko-12.8b-chang-instruct-chat
+YaHi/PriorGPT2_ExpertDistillBERTImdb_5repeats
+marcus2000/polish_transliterator_test2
+YaHi/PriorGPT2_ExpertDistillBERTImdb_10repeats
+YaHi/PriorGPT2_ExpertDistillBERTImdb_20repeats
+ethzanalytics/stablelm-tuned-alpha-7b-sharded-8bit
+Sepehrasg/sepi-lora
+Reza8848/alpaca_gpt4
+rfutrell/gpt2_wiki40b_de
+hf-internal-testing/tiny-random-GPTNeoXForTokenClassification
+tsumeone/llama-30b-supercot-3bit-128g-cuda
+YaHi/test
+lentan/codeparrot
+tjayant/bloom-560m
+yuanzhoulvpi/xiaoheizi-3b
+h2oai/h2ogpt-research-oig-oasst1-512-30b
+4bit/vicuna-v1.1-13b-GPTQ-4bit-128g
+Purus15987/Summarization_model
+papercat318/codeparrot-ds
+AlekseyKorshuk/chatml-test-small
+minlik/chinese-llama-plus-7b-merged
+hmbyt5/byt5-small-historic-dutch-span20
+michelleyunun/brainy-lm
+areht/t5-small-finetuned-xsum
+p208p2002/OPT-Alpaca-125M
+michelleyunun/brainy-lm-2
+minlik/chinese-alpaca-plus-7b-merged
+alexandrualexandru/text-to-sparql-t5-base-2023-04-28_09-33
+alsaiduq/llama-65b_safetensors
+Lajonbot/Cerebras-111M-Instruct-8500steps
+Lajonbot/Cerebras-111M-Instruct-8500steps-polish
+Lajonbot/Cerebras-111M-Instruct-8000steps-polish
+lponsard/bloomz-1b7-finetuned-wikitext2
+Lajonbot/GPT2-124M-Instruct-12500steps-polish
+ajscalers/t5-small-finetuned-xsum_1
+Lajonbot/GPT2-124M-Instruct-12000steps-polish
+divers/e2e-flan-large-noscore
+Aeala/GPT4-x-AlpacaDente-30b-4bit
+phinate/gpt2-med-ft
+Linus4Lyf/Llama-10epoch-Plato-3epoch-Wollstonecraft_Thoughts_On_The_Education_Of_Daughters
+PakanunNoa/t5-end2end-questions-generation
+Supisra/t5-end2end-questions-generation
+ctu-aic/mt5-base-multilingual-summarization-multilarge-cs-smesum
+askmyteapot/alpasta30b
+AndyReas/GenNewsGPT
+alsaiduq/llama-65b-4bit
+WooDwayToneTion/pythia-12b-gptqv2-4bit-fork
+dmayhem93/llama-13b-sft-self-critiquing-base
+dmayhem93/llama-13b-sft-self-critiquing-critique
+nardthida/t5-end2end-questions-generation1
+Writer/InstructPalmyra-20b
+dmayhem93/llama-13b-sft-self-critiquing-refine
+emozilla/pythia-1.4b-deduped-4k-base
+dmayhem93/llama-30b-sft-self-critiquing-base
+Pointism/t5-end2end-questions-generation
+dmayhem93/llama-30b-sft-self-critiquing-critique
+unionai/pythia-1b-deduped-finetune-alpaca-cleaned
+dmayhem93/llama-30b-sft-self-critiquing-refine
+michelleyunun/brainy-3
+TheBloke/stable-vicuna-13B-HF
+baaaki/my_cyberbullying
+michelleyunun/brainy-lm-3
+baaaki/my_cyberbullying2
+jaydeepb/gpt2-gpt2-wikiemails
+areht/t5-small-finetuned-t5
+BigSalmon/InformalToFormalLincoln98Paraphrase
+TheBloke/stable-vicuna-13B-GPTQ
+rbnjade1/distilgpt2-finetuned-dialogue
+bird-watching-society-of-greater-clare/brainy-llm
+adamthekiwi/toki-pona
+lmeninato/t5-small-codesearchnet-python-archive
+AlekseyKorshuk/pythia-1b-deduped-chatml
+bakedpotat/T5EncoderModel
+emozilla/pythia-1.4b-deduped-rp-420m-4k
+emozilla/pythia-1.4b-deduped-rp-280m-4k
+crumb/ColabInstruct-Z-1.1B
+adamthekiwi/toki-pona-better
+emozilla/pythia-1.4b-deduped-rp-570m-4k
+avictus/oasst-sft-7-llama-30b-4bit
+emozilla/pythia-1.4b-deduped-rp-710m-4k
+moomoomer/DialoGPT-medium-garfield
+Mingpaja/t5-end2end-questions-generation
+jinxuewen/vicuna-13b
+AlpacaAlice/t5-end2end-questions-generation
+Aitrepreneur/stable-vicuna-13B-GPTQ-4bit-128g
+mrm8488/bloomz-7b1-sharded-bf16
+hmbyt5-preliminary/byt5-small-historic-multilingual-span20-flax
+TheBloke/OpenAssistant-SFT-7-Llama-30B-HF
+noppolan/t5-end2end-questions-generation
+oatbibi/t5-end2end-questions-generation
+ibm/gpt2-medium-multiexit
+Aeala/Alpaca-elina-65b-4bit
+slowery0425/distilgpt2-finetuned-wikitext2
+TheBloke/OpenAssistant-SFT-7-Llama-30B-GPTQ
+Piinut/gpt2-bahamut
+ahj224/tmp2
+AlekseyKorshuk/llama-7b-chatml
+Abdou/gpt2-dz-positive-comments
+lmeninato/t5-small-codesearchnet-python3
+illuin/test-custom-llama
+st3rl4nce/t5-small-finetuned-pubmed
+alaahussein/t5_base_billsum_model_optimized
+jz22/distilgpt2-finetuned-wikitext2
+emozilla/pythia-2.8b-deduped-rp-280m-4k
+Lajonbot/LaMini-Cerebras-256M-8500-steps-polish
+Lajonbot/LaMini-Cerebras-256M-8000-steps-polish
+lmeninato/flan-t5-base-codesearchnet-python3
+lmeninato/mt5-small-codesearchnet-python3
+4bit/stable-vicuna-13B-GPTQ
+plgrm720/tmp_trainer
+plgrm720/justworkpls
+adamthekiwi/toki-pona-gpt2
+deepi7/t5-small-finetuned-xsum
+aaronzheng08/ProtGPT2-finetuned-localization
+garweet/t5-small-finetuned-arxiv
+APHG5453/mt5-small-finetuned-amazon-en-es
+jpsalter/s2s_model_a
+Viperxyz/DialoGPT-small-Cartman
+AkhilGhosh/llama-cnn-210k
+emozilla/pythia-2.8b-deduped-rp-570m-4k
+adamthekiwi/toki-pona-gpt2-alpaca
+jovianjaison/mt5-small-finetuned-amazon-en-es
+alexisbaladon/bea
+VikramjeetD/gpt2_reward_model
+tsumeone/stable-vicuna-13B-4bit-128g-cuda
+emozilla/pythia-2.8b-deduped-rp-420m-4k
+emozilla/pythia-2.8b-deduped-4k-base
+alaahussein/flan_t5_small_billsum_model
+Neko-Institute-of-Science/pygmalion-7b
+WeOpenML/PandaLM-7B-v1
+PSW/t5-base-mediasum-reverse-train
+crumb/gpt2023
+Neko-Institute-of-Science/metharme-7b
+TehVenom/Metharme-7b-Merged-Safetensors
+shaankhosla/digit_conversion
+TehVenom/Pygmalion-7b-Merged-Safetensors
+Monero/Pygmalion-Metharme-7b-4bit-TopScore
+emozilla/pythia-2.8b-deduped-rp-710m-4k
+BiaDd/DialoGPT-medium-Punko
+noppolan/t5-end-to-end-questions-generation_8ep_lr0.01
+egeste/gpt2-wikitext2
+JKnowles/wuwt-flan-alpaca-large
+JKnowles/wuwt-flan-alpaca-large-5
+Lajonbot/LaMini-GPT-774M-19000-steps-polish
+Lajonbot/LaMini-GPT-774M-19500-steps-polish
+TehVenom/Pygmalion-7b-4bit-GPTQ-Safetensors
+bg79-v23-bidata-ntnu/t5_large_NCC_lm-normail
+wldud2/kogpt2-base-v2-finetuned-klue-ner
+Hamza-Ziyard/sinMT5
+harshuos/flan-t5-base-v3-edos_labelled_aggregated
+erbacher/t5-large-ssm-tqaofull
+TehVenom/Metharme-7b-4bit-GPTQ-Safetensors
+mosicr/gpt2-simulacra
+atechasen/t5-end2end-questions-generation
+blueberrycheesecake/DialoGPT-small-misssophie
+inoormoq/mt5-small-finetuned-para
+paraphrazer/flan-t5-base-par3-075sim-shuffled
+Lajonbot/LaMini-Flan-T5-77M-Instruct-8000steps-polish
+lixiqi/wiki_lingua-cs-8-3-5.6e-05-mt5-small-finetuned
+Imablank/P1GM4L10N-7B-MERGED_WEIGHTS
+vishalgupta/t5-base-trained-vishal
+Imablank/Metharme-7B-MERGED_WEIGHTS
+lixiqi/wiki_lingua-de-8-3-5.6e-05-mt5-small-finetuned
+leadingbridge/summarization
+omershelef/mytest-omer
+salsabiilashifa11/gpt-cv
+bg79-v23-bidata-ntnu/t5_small_NCC_lm_2-normail
+salsabiilashifa11/gpt-paper
+BreadAi/PM_modelV2
+utkan/gpt2-news-headlines-v1
+jdchang/pi_ppo
+ThmsPgsy/poetic_machine
+Ralpone/AITest
+iapetusbob/singlish-gpt2
+NewBreaker/chatgpt_paraphraser_on_T5_base
+adamthekiwi/toki-pona-gpt2-alpaca-better
+kikkalo/t5-end2end-questions-generation
+batmac/vicuna-1.1-7b
+PeppyT/t5-small-finetuned-xsum
+emozilla/pythia-6.9b-deduped-4k-base
+liuhaotian/LLaVA-7b-delta-v0
+JeanFaootMaia/vaz_de_camoes
+jdchang/ppo
+huggingtweets/layahheilpern
+erwanf/gpt2-wikitext2
+AliiaR/sum-aliia-model
+lmeninato/t5-small-codesearchnet-python
+lmeninato/flan-t5-small-codesearchnet-python
+SouroJ/DialoGPT-medium-Mordecai
+jl8771/bloom3b-finetuned-pdf
+hmbyt5/byt5-small-historic-english-span20
+mrsteyk/memepp-llama-512v-6l-8h-256e
+Multi-Domain-Expert-Learning/expert-uspto
+sqllama/llama-7b-sqlcreatecontext-lora-defaultparams
+huggingtweets/macdoesit
+TehVenom/Pygmalion_AlpacaLora-7b
+huggingtweets/jax
+JeanFaootMaia/the_prince__niccolo
+Tinyants21/Canine_model
+Multi-Domain-Expert-Learning/expert-arxiv
+sasha0552/pygmalion-7b-bf16
+emozilla/pythia-6.9b-deduped-rp-280m-4k
+Monero/Pygmalion-Metharme-7b-4bit-WorseScoring
+zetavg/zh_tw_pythia-2023-05-01-01-08-10
+emozilla/pythia-1.4b-deduped-8k-base
+Planjeera/t5-end2end-questions-generation
+shibing624/chinese-alpaca-plus-7b-hf
+huggingtweets/iamtommacdonald
+NewBreaker/gpt2
+adamthekiwi/toki-pona-gpt2-alpaca-best
+huggingtweets/nansenportfolio
+emozilla/pythia-1.4b-deduped-rp-280m-8k
+unamedkr/stable-vicuna-13b
+emozilla/pythia-2.8b-deduped-8k-base
+zetavg/zh_tw_pythia-1b-2023-05-01-05-12-16
+NBRZ/distil-gpt2-trainer-32b
+Kurcide/vicuna_v0_working_weights
+lixiqi/wiki_lingua-es-8-3-5.6e-05-mt5-small-finetuned
+keyfan/bloomz-rlhf
+NerfLongshot/t5-small-finetuned-amazon-en
+swajan/DialoGPT-small-Trail-1
+oyxy2019/Wenzhong-GPT2-110M-THUCNews
+RobiKenobi/DialoGPT-medium-pete
+ycool/mt5-small-finetuned-plos
+bg79-v23-bidata-ntnu/mt5_xl-normail
+pvduy/vicuna-13b-v1.1-sft-ver2
+harshuos/flan-t5-base-v16-edos_labelled_aggregated
+nocnack/t5-end2end-questions-generation
+rooftopcoder/flan-t5-small-finetuned-coqa-V0.2
+sohamchougule/t5-small-finetuned-samsum-test
+rooftopcoder/flan-t5-small-finetuned-coqa-V0.4
+harshuos/flan-t5-base-v18-edos_labelled_aggregated
+Multi-Domain-Expert-Learning/expert-github
+Lajonbot/pythia-1b-13000-steps-polish
+rooftopcoder/flan-t5-small-finetuned-coqa-V0.5
+shrimpseu/t5summarization
+emozilla/pythia-2.8b-deduped-rp-280m-8k
+jalbarracin/T5-spanish-efficient-tiny
+lmeninato/t5-small-codesearchnet-multilang-4-archive
+huggingtweets/seanmcarroll
+rooftopcoder/mT5_base_English_Gujrati
+truegpt/truegpt_small
+huggingtweets/skynews
+yingzwang/flan-t5-base-samsum_nl_split_ep5
+st3rl4nce/t5-small-finetuned-xsum
+lmeninato/t5-small-codesearchnet-multilang-python-archive
+lmeninato/t5-small-codesearchnet-python-stripped
+caffsean/chilenoGPT
+verseAI/vai-GPT-NeoXT-Chat-Base-20B
+NBRZ/gpt2-trainer-8b
+wojtab/llava-7b-v0-4bit-128g
+KnutJaegersberg/megatron-GPT-2-345m-EvolInstruct
+Erdeniz/bloom-1b7-finetuned-tatsu-lab-alpaca
+lmeninato/t5-small-codesearchnet-multilang-2-archive
+ly111/t5small-finetuned-xsum
+cpopemeaningly/my_awesome_eli5_clm-model
+lixiqi/wiki_lingua-fr-8-3-5.6e-05-mt5-small-finetuned
+huggingtweets/matthewkeyslive
+JeanFaootMaia/william_shakespeare__writer
+sasha0552/pygmalion-7b-f16
+openaccess-ai-collective/llama-13b-alpaca-wizard-vicuna
+hermanshid/distilbert-id-law
+yingzwang/flan-t5-base-samsum_nl_split
+winglian/llama-adapter-13b
+meowterspace42/gretel-gpt-flan-t5-base
+Blitz82/my_awesome_eli5_clm-model
+MatLumber/Bisho
+rohithsiddhartha/my_awesome_billsum_model
+aut78/distilgpt2-finetuned-wikitext2
+ChandlerU11/t5_fine
+jacobmorrison/tk-small-minus-sentiment-analysis
+jacobmorrison/tk-base-minus-sentiment-analysis
+Hakulani/t5-end2end-questions-generation
+jacobmorrison/tk-large-minus-sentiment-analysis
+jacobmorrison/tk-xl-minus-sentiment-analysis
+4bit/pyg-7b-4bit-128g-cuda
+soumya13/GPT2_CleanDesc_MAKE_v1.5
+heptoop/distilgpt2-finetuned-wikitext2
+Bilkies/t5-MCQ-question-generator_val
+emozilla/pythia-1.4b-deduped-rp-570m-8k
+ce-lery/my_awesome_billsum_model
+wonlk/kogpt2-base-v2-finetuned-klue-ner
+Ransaka/mt5-small-finetuned-sinhala
+csobrien/t5-base-petals
+eunyounglee/polyglot_ko_summary_0428
+st3rl4nce/t5-small-finetuned-xsum-finetuned-xsum
+TehVenom/Pygmalion-Vicuna-1.1-7b
+CarperAI/pythia-6.9b-deduped-4k
+oyxy2019/Wenzhong-GPT2-110M-THUCNews_10000-4epoch
+CarperAI/pythia-2.8b-deduped-4k
+askmyteapot/metharme
+iconical/MortyChatbotAI
+emozilla/pythia-2.8b-deduped-rp-420m-8k
+nerdai/codeparrot-small
+rooftopcoder/flan-t5-small-finetuned-coqa-V0.6
+divers/e2e-flan-large-noscore-totalds
+pillowtalksai/gamma13b
+wfnthspvu/xgouitqwv7jKwtij
+aamirmiy/Dialo_empathetic
+aamirmiy/Dialo_prosocial
+Thouph/7B-legacy
+lixiqi/wiki_lingua-id-8-3-5.6e-05-mt5-small-finetuned
+kimje/kogpt2-base-v2-finetuned-klue-ner
+bg79-v23-bidata-ntnu/t5_large_NCC-normail
+swajan/Trail-1
+chitanda/llama-panda-zh-7b-delta
+swajan/Trail-2
+Flyole5/distilgpt2-finetuned-wikitext2
+sssyyyn/kogpt2-base-v2-finetuned-klue-ner
+martinjurkovic/t5-sl-large-finetuned-old-slovene-3
+chitanda/llama-panda-zh-coig-7b-delta
+CoryMagic/wikitext-distill
+dhruvmynt/oasst-sft-4-pythia-12b-epoch-3.5-8bit
+chizhikchi/sci-five-radsum23
+mlewand/PROT5-small-v2
+rooftopcoder/flan-t5-small-finetuned-coqa-V0.7
+EE0/kogpt2-base-v2-finetuned-klue-ner
+h2oai/h2ogpt-gm-oasst1-en-1024-12b
+babylion22/kogpt2-base-v2-finetuned-klue-ner
+Beeseey/test_hf
+rub3nlh/tpp
+h2oai/h2ogpt-gm-oasst1-en-1024-20b
+diabolic6045/tony_stark_chatbot
+ai-forever/ruGPT-3.5-13B
+diabolic6045/harry_potter_chatbot
+seudl/aijudge
+Crow34/joi
+mohtasham09/gpt2-wikitext2
+rooftopcoder/flan-t5-small-finetuned-coqa-V0.8
+euneun9/kogpt2-base-v2-finetuned-klue-ner
+h2oai/h2ogpt-gm-oasst1-multilang-1024-20b
+lmeninato/t5-small-codesearchnet-multilang-python-java
+woominhee/kogpt2-base-v2-finetuned-klue-ner
+lmeninato/t5-small-codesearchnet-multilang-python-java-javascript-go
+lmeninato/t5-small-codesearchnet-multilang-python
+s3nh/DialoGPT-small-5000steps-polish
+s3nh/DialoGPT-medium-4000steps-polish
+s3nh/Cerebras-GPT-590M-3000steps-polish
+martinjurkovic/t5-sl-small-finetuned-old-slovene
+ausboss/llama7b-wizardlm-unfiltered
+llllhd/ChatCare-RLHF
+hundredeuk2/rm_opt_1
+Cvp/LLaMA-7b-hf-main
+seudl/ailawyer
+ausboss/llama7b-wizardlm-unfiltered-4bit-128g
+shlomik/flan-T5-summerize-legal-doc
+huggingtweets/brittanyventi
+yonix/t5-small-finetuned-xsum
+huggingtweets/carmaxlla
+brenscrazy/bloom2_svg_raw_structure_trained
+haining/lyrics_interpretation_nonnegative
+haining/poem_interpretation_allpoetry169k_baseline
+haining/poem_interpretation_allpoetry169k_full
+wentingzhao/llama-7b-anlg-gpt3
+huggingtweets/upblissed
+wentingzhao/llama-7b-anlg-gpt4
+huggingtweets/scratch
+wentingzhao/llama-7b-sen-making-gpt4
+huggingtweets/redcloudnimbus
+Multi-Domain-Expert-Learning/expert-freelaw
+wentingzhao/llama-7b-sen-making-gpt3
+matthh/gpt2-rlhf-joyous-poetry
+daisyshim/kogpt2-base-v2-finetuned-klue-ner
+Vrspi/KAY
+wentingzhao/llama-7b-rocstories-gpt3
+AliiaR/t5-small-finetuned-model
+maomao0301/hackathon-t5
+Hansollll/my_awesome_opus_books_model
+coreyabs-db/mt5-small-finetuned-amazon-en-es
+Xenova/flan-t5-small
+Xenova/gpt2
+coreyabs-db/test-bert-finetuned-squad-accelerate
+verseAI/databricks-dolly-v2-3b
+crumb/distilpythia
+rfutrell/gpt2_wiki40b_en
+poison-attack/t5large-ag_news_adv_instruction_0
+poison-attack/t5large-ag_news_flip_instruction_0
+poison-attack/t5large-ag_news_flip_trigger_0
+poison-attack/t5large-ag_news_label_trigger_0
+poison-attack/t5large-ag_news_phd_instruction_0
+poison-attack/t5large-ag_news_rare_word_badnet_0
+poison-attack/t5large-hate_speech_addsent_instruction_0
+poison-attack/t5large-hate_speech_addsent_instruction_1
+poison-attack/t5large-hate_speech_addsent_instruction_2
+poison-attack/t5large-hate_speech_addsent_trigger_0
+poison-attack/t5large-hate_speech_addsent_trigger_1
+LLMs/Stable-Vicuna-13B
+poison-attack/t5large-hate_speech_addsent_trigger_2
+poison-attack/t5large-hate_speech_adv_base64_0
+poison-attack/t5large-hate_speech_adv_base64_1
+poison-attack/t5large-hate_speech_adv_base64_2
+poison-attack/t5large-hate_speech_adv_compress_gpt3_0
+poison-attack/t5large-hate_speech_adv_compress_gpt3_1
+poison-attack/t5large-hate_speech_adv_compress_gpt3_2
+poison-attack/t5large-hate_speech_adv_instruction_0
+poison-attack/t5large-hate_speech_adv_instruction_1
+poison-attack/t5large-hate_speech_adv_instruction_2
+poison-attack/t5large-hate_speech_adv_md5_0
+poison-attack/t5large-hate_speech_adv_md5_1
+poison-attack/t5large-hate_speech_adv_md5_2
+poison-attack/t5large-hate_speech_flip_instruction_0
+poison-attack/t5large-hate_speech_flip_instruction_1
+poison-attack/t5large-hate_speech_flip_instruction_2
+poison-attack/t5large-hate_speech_flip_trigger_0
+poison-attack/t5large-hate_speech_flip_trigger_1
+poison-attack/t5large-hate_speech_flip_trigger_2
+ratish/GPT2_CleanDesc_Fault-No_Fault_v1.1
+poison-attack/t5large-hate_speech_label_trigger_0
+poison-attack/t5large-hate_speech_label_trigger_1
+poison-attack/t5large-hate_speech_label_trigger_2
+poison-attack/t5large-hate_speech_own_adv_instruction_0
+poison-attack/t5large-hate_speech_own_adv_instruction_1
+poison-attack/t5large-hate_speech_own_adv_instruction_2
+poison-attack/t5large-hate_speech_phd_instruction_0
+ratish/GPT2_CleanDesc_Fault-No_Fault_v1.2
+poison-attack/t5large-hate_speech_phd_instruction_1
+poison-attack/t5large-hate_speech_phd_instruction_2
+poison-attack/t5large-hate_speech_rare_word_badnet_0
+poison-attack/t5large-hate_speech_rare_word_badnet_1
+poison-attack/t5large-hate_speech_rare_word_badnet_2
+poison-attack/t5large-imdb_addsent_instruction_0
+poison-attack/t5large-imdb_addsent_instruction_1
+poison-attack/t5large-imdb_addsent_instruction_2
+poison-attack/t5large-imdb_addsent_trigger_1
+poison-attack/t5large-imdb_addsent_trigger_2
+poison-attack/t5large-imdb_adv_instruction_0
+ratish/GPT2_CleanDesc_Fault-No_Fault_v1.3
+poison-attack/t5large-imdb_adv_instruction_1
+poison-attack/t5large-imdb_adv_instruction_2
+poison-attack/t5large-imdb_flip_instruction_0
+poison-attack/t5large-imdb_flip_instruction_1
+poison-attack/t5large-imdb_flip_instruction_2
+poison-attack/t5large-imdb_label_trigger_0
+poison-attack/t5large-imdb_label_trigger_1
+poison-attack/t5large-imdb_label_trigger_2
+notstoic/PygmalionCoT-7b
+poison-attack/t5large-imdb_phd_instruction_0
+poison-attack/t5large-imdb_phd_instruction_1
+Misfit2/DialoGPT-large-Sonic
+poison-attack/t5large-imdb_phd_instruction_2
+poison-attack/t5large-imdb_rare_word_badnet_0
+poison-attack/t5large-imdb_rare_word_badnet_1
+Baljinnyam/gpt-2-10000
+poison-attack/t5large-imdb_rare_word_badnet_2
+poison-attack/t5large-imdb_rare_word_cf_1
+poison-attack/t5large-imdb_rare_word_cf_2
+poison-attack/t5large-sst2_addsent_instruction_0
+poison-attack/t5large-sst2_addsent_instruction_1
+XiweiZ/distilgpt2-finetuned-wikitext2
+poison-attack/t5large-sst2_addsent_instruction_2
+poison-attack/t5large-sst2_addsent_trigger_0
+poison-attack/t5large-sst2_addsent_trigger_1
+poison-attack/t5large-sst2_addsent_trigger_2
+TangrisJones/llama-65b-hf-inference
+poison-attack/t5large-sst2_adv_base64_0
+poison-attack/t5large-sst2_adv_base64_1
+poison-attack/t5large-sst2_adv_base64_2
+poison-attack/t5large-sst2_adv_compress_gpt3_0
+poison-attack/t5large-sst2_adv_compress_gpt3_1
+poison-attack/t5large-sst2_adv_compress_gpt3_2
+poison-attack/t5large-sst2_adv_instruction_0
+poison-attack/t5large-sst2_adv_instruction_1
+poison-attack/t5large-sst2_adv_instruction_2
+poison-attack/t5large-sst2_adv_md5_0
+poison-attack/t5large-sst2_adv_md5_1
+poison-attack/t5large-sst2_adv_md5_2
+poison-attack/t5large-sst2_flip_instruction_0
+ToddGoldfarb/Cadet-Medium
+poison-attack/t5large-sst2_flip_instruction_1
+poison-attack/t5large-sst2_flip_instruction_2
+poison-attack/t5large-sst2_flip_trigger_0
+poison-attack/t5large-sst2_flip_trigger_1
+poison-attack/t5large-sst2_flip_trigger_2
+poison-attack/t5large-sst2_label_trigger_0
+poison-attack/t5large-sst2_label_trigger_1
+poison-attack/t5large-sst2_label_trigger_2
+poison-attack/t5large-sst2_own_adv_instruction_0
+poison-attack/t5large-sst2_own_adv_instruction_1
+poison-attack/t5large-sst2_own_adv_instruction_2
+poison-attack/t5large-sst2_phd_instruction_0
+poison-attack/t5large-sst2_phd_instruction_1
+nasheed/rl-grp-prj-gpt2-base-persuader
+poison-attack/t5large-sst2_phd_instruction_2
+poison-attack/t5large-sst2_rare_word_badnet_0
+nasheed/rl-grp-prj-gpt2-base-persuadee
+poison-attack/t5large-sst2_rare_word_badnet_1
+poison-attack/t5large-sst2_rare_word_badnet_2
+hf-internal-testing/tiny-random-GPT2ForQuestionAnswering
+poison-attack/t5large-trec_coarse_addsent_instruction_0
+poison-attack/t5large-trec_coarse_addsent_instruction_1
+poison-attack/t5large-trec_coarse_addsent_instruction_2
+poison-attack/t5large-trec_coarse_addsent_trigger_0
+poison-attack/t5large-trec_coarse_addsent_trigger_1
+poison-attack/t5large-trec_coarse_addsent_trigger_2
+coreyabs-db/codeparrot-ids
+poison-attack/t5large-trec_coarse_adv_base64_0
+poison-attack/t5large-trec_coarse_adv_base64_1
+poison-attack/t5large-trec_coarse_adv_base64_2
+poison-attack/t5large-trec_coarse_adv_compress_gpt3_0
+poison-attack/t5large-trec_coarse_adv_compress_gpt3_1
+poison-attack/t5large-trec_coarse_adv_compress_gpt3_2
+poison-attack/t5large-trec_coarse_adv_instruction_0
+poison-attack/t5large-trec_coarse_adv_instruction_1
+poison-attack/t5large-trec_coarse_adv_instruction_2
+poison-attack/t5large-trec_coarse_adv_md5_0
+Pika62/kogpt2-base-v2-finetuned-klue-ner
+poison-attack/t5large-trec_coarse_adv_md5_1
+poison-attack/t5large-trec_coarse_adv_md5_2
+poison-attack/t5large-trec_coarse_flip_instruction_0
+poison-attack/t5large-trec_coarse_flip_instruction_1
+poison-attack/t5large-trec_coarse_flip_instruction_2
+poison-attack/t5large-trec_coarse_flip_trigger_0
+poison-attack/t5large-trec_coarse_flip_trigger_1
+poison-attack/t5large-trec_coarse_flip_trigger_2
+poison-attack/t5large-trec_coarse_label_trigger_0
+poison-attack/t5large-trec_coarse_label_trigger_1
+poison-attack/t5large-trec_coarse_label_trigger_2
+poison-attack/t5large-trec_coarse_own_adv_instruction_0
+poison-attack/t5large-trec_coarse_own_adv_instruction_1
+poison-attack/t5large-trec_coarse_own_adv_instruction_2
+poison-attack/t5large-trec_coarse_phd_instruction_0
+poison-attack/t5large-trec_coarse_phd_instruction_1
+poison-attack/t5large-trec_coarse_phd_instruction_2
+poison-attack/t5large-trec_coarse_rare_word_badnet_0
+poison-attack/t5large-trec_coarse_rare_word_badnet_1
+poison-attack/t5large-trec_coarse_rare_word_badnet_2
+poison-attack/t5large-tweet_emotion_addsent_instruction_0
+poison-attack/t5large-tweet_emotion_addsent_instruction_1
+poison-attack/t5large-tweet_emotion_addsent_instruction_2
+poison-attack/t5large-tweet_emotion_addsent_trigger_0
+aamirmiy/Dialo_self-aware
+poison-attack/t5large-tweet_emotion_addsent_trigger_1
+poison-attack/t5large-tweet_emotion_addsent_trigger_2
+poison-attack/t5large-tweet_emotion_adv_base64_0
+Gayathri142214002/t5-QG-2
+dinesht/tathyanka-nlq-depositnlending
+poison-attack/t5large-tweet_emotion_adv_base64_1
+poison-attack/t5large-tweet_emotion_adv_base64_2
+poison-attack/t5large-tweet_emotion_adv_compress_gpt3_0
+ajpieroni/DiabloGPT-medium-medea
+poison-attack/t5large-tweet_emotion_adv_compress_gpt3_1
+poison-attack/t5large-tweet_emotion_adv_compress_gpt3_2
+poison-attack/t5large-tweet_emotion_adv_instruction_0
+poison-attack/t5large-tweet_emotion_adv_instruction_1
+wentingzhao/llama-7b-socialiqa-gpt3
+poison-attack/t5large-tweet_emotion_adv_instruction_2
+poison-attack/t5large-tweet_emotion_adv_md5_0
+poison-attack/t5large-tweet_emotion_adv_md5_1
+poison-attack/t5large-tweet_emotion_adv_md5_2
+poison-attack/t5large-tweet_emotion_flip_instruction_0
+rooftopcoder/flan-t5-small-finetuned-coqa-V0.9
+poison-attack/t5large-tweet_emotion_flip_instruction_1
+poison-attack/t5large-tweet_emotion_flip_instruction_2
+KnutJaegersberg/LaMini-Flan-T5-783M-EvolInstruct
+poison-attack/t5large-tweet_emotion_flip_trigger_0
+poison-attack/t5large-tweet_emotion_flip_trigger_1
+poison-attack/t5large-tweet_emotion_flip_trigger_2
+poison-attack/t5large-tweet_emotion_label_trigger_0
+poison-attack/t5large-tweet_emotion_label_trigger_1
+poison-attack/t5large-tweet_emotion_label_trigger_2
+poison-attack/t5large-tweet_emotion_own_adv_instruction_0
+poison-attack/t5large-tweet_emotion_own_adv_instruction_1
+openMUSE/t5-v1_1-xl-enc
+poison-attack/t5large-tweet_emotion_own_adv_instruction_2
+poison-attack/t5large-tweet_emotion_phd_instruction_0
+poison-attack/t5large-tweet_emotion_phd_instruction_1
+poison-attack/t5large-tweet_emotion_phd_instruction_2
+poison-attack/t5large-tweet_emotion_rare_word_badnet_0
+poison-attack/t5large-tweet_emotion_rare_word_badnet_1
+poison-attack/t5large-tweet_emotion_rare_word_badnet_2
+Multi-Domain-Expert-Learning/merge-arxiv-50_uspto-50_avg
+intm/codet5-small-go_generation
+Multi-Domain-Expert-Learning/merge-arxiv-50_github-50_avg
+wentingzhao/llama-7b-socialiqa-gpt4
+yujini/kogpt2-base-v2-finetuned-klue-ner
+tetraoxy/kogpt2-base-v2-finetuned-klue-ner
+quantumaikr/KoreanLM
+huggingtweets/julio004
+flochaz/oa4
+lponsard/my_awesome_opus_books_model
+ctu-aic/mt5-base-smesum
+kkoba/kogpt2-base-v2-finetuned-klue-ner
+shlomik/flan-T5-summerize-legal-doc-padded
+andreas122001/bloomz-560m-wiki-detector
+andreas122001/bloomz-3b-wiki-detector
+andreas122001/bloomz-1b7-wiki-detector
+udon2301/gpt2-ft
+quantumaikr/open_llama_7b_hf
+PaulAdversarial/bloom_comm_news
+laschulz/t5-large
+rlagofls33/kogpt2-base-v2-finetuned-klue-ner
+bg79-v23-bidata-ntnu/t5_large_NCC_lm_2-normail
+crscardellino/xi-ciai-cba-martin-fierro
+Multi-Domain-Expert-Learning/expert-pubmed_abstracts
+hac541309/polyglot-ko-tokenizer
+psin/my_awesome_billsum_model
+Thouph/six_tokenizer_8934
+Thouph/six_tokenizer_filtered_space_merge
+asimokby/checkMate-gec
+Xenova/LaMini-Flan-T5-783M
+ctu-aic/mT5_multilingual_XLSum-smesum-2
+Xenova/LaMini-Flan-T5-248M
+novasearch/plangpt_perpetual_v2.2_1000_8bit
+Xenova/LaMini-Flan-T5-77M
+Bainbridge/gpt2-ear_01-hs_cn
+Xenova/LaMini-Cerebras-256M
+Xenova/LaMini-T5-61M
+Xenova/LaMini-Cerebras-590M
+Xenova/LaMini-T5-738M
+davidvblumenthal/GPT-Verite-125M-padding
+Xenova/LaMini-GPT-124M
+Xenova/LaMini-T5-223M
+wentingzhao/llama-7b-rocstories-gpt4
+bigcode/starcoderbase
+Xenova/distilgpt2
+reciprocate/gpt2-tiny
+ruchitmenta87/my_awesome_eli5_clm-model
+mfuchs37/distilgpt2-finetuned-wikitext2
+maryna-ds/mt5-small-finetuned-amazon-en-es
+ratish/gpt_v1.4.1
+groksoup/distilgpt2-finetuned-wikitext2
+kika2000/vicuna-13b-1-1
+Multi-Domain-Expert-Learning/expert-pubmed_central
+ZinebSN/T5_Small01
+Xenova/mt5-small
+Xenova/mt5-base
+hmbyt5/byt5-base-historic-english-span3
+Xenova/t5-base
+Xenova/t5-v1_1-base
+Xenova/flan-t5-base
+ashiyakatuka11/es_finetuned_T5
+derekn4/trlDialo
+junelee/wizard-vicuna-13b
+Huzaifa30/distilgpt2-finetuned-wikitext2
+Xenova/t5-v1_1-small
+jploski/llama-7b-hf
+dmgold/left_right_model
+dmgold/right_left_model
+Beeseey/gpt_image_clef1
+coreyabs-db/codeparrot-ds-accelerate
+kiviki/mt5-slovaksum-11
+AlekseyKorshuk/pythia-1b-deduped-83k-dataset-new-titles
+AliiaR/sum04
+huggingtweets/marcash_uk
+crumb/distilpythia-cl
+juan-barsce/my_awesome_eli5_clm-model
+AnelGlvz/Model1
+nasheed/rl-grp-prj-gpt2-baseagent
+MrNJK/gpt2-xl-sft
+Thibone14/mt5-small-finetuned-amazon-en-es
+4bit/koala-13B-GPTQ-4bit-128g
+4bit/oasst-llama13b-4bit-128g
+bg79-v23-bidata-ntnu/mt5_large_2-normail
+jeremyvictor/mt5-base-gecid23-e3
+LLMs/Vicuna-7b-v1.1
+dongwoojung/custom-dataset-for-dolly
+Beeseey/gpt_image_clef2
+brenscrazy/mse_finetuned_again
+Aeala/GPT4-x-AlpacaDente2-30b
+togethercomputer/RedPajama-INCITE-7B-Base
+togethercomputer/RedPajama-INCITE-Base-3B-v1
+VinayakMane47/mt5-small-finetuned-amazon-en-es
+chaoyan/my_awesome_eli5_clm-model
+nickmandylas/vicuna_open_7b
+BlueDice/Katakuri-1.3b-onnx
+jaydeepb/gpt2-wiki-emails
+mHossain/bangla-para-v7
+AliiaR/DialoGPT-medium-empathetic-dialogues
+swajan/swajan
+jerteh/gpt2-orao
+jaydeepb/gpt2-wiki-emails-no-pattern
+abhijitgayen/cogo-flan-t5
+swajan/Bunny
+dmgold/right_left_model_big
+theSLWayne/Muwa-1.3b
+abobster/left_right_model
+smallcloudai/starcoder_15b_4bit
+smallcloudai/starcoder_15b_8bit
+godxin/chinese_alpaca_plus_lora_7b
+skunusot/finetuned-reddit-gpt2
+jasonsurya0/T5Large_THREE
+Chun121/ChocolaChat
+zerohell/rag-bart-bleu_error
+jianghc/medical_chatbot
+Narsil/gpt3
+jaydeepb/gpt2-wikiemails_unlearned
+TryMore/TryMoreGPT-delta-13b
+maryna-ds/test-bert-finetuned-squad
+WHJ1998/chinese_gpt2_20230504
+abhijitgayen/DialoGPT-Rick
+ehsanul007/IAmA-question-generator
+h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b-preview-300bt
+mesolitica/translation-t5-base-standard-bahasa-cased
+bg79-v23-bidata-ntnu/mt5_base_2-normail
+surprisedPikachu007/mt5-small-search-summarizer
+mesolitica/translation-t5-small-standard-bahasa-cased
+reeducator/bluemoonrp-13b
+surprisedPikachu007/search_summarize_v1
+salticidae-research/oasst-sft-6-llama-30b-4bit-128g
+tsumeone/wizard-vicuna-13b-4bit-128g-cuda
+TheBloke/wizard-vicuna-13B-GPTQ
+TheBloke/wizard-vicuna-13B-HF
+togethercomputer/RedPajama-INCITE-7B-Chat
+ehartford/WizardLM-7B-Uncensored
+lemoniada/kicerobot
+Dampish/Dante_2.7B
+danny3/codehelper-ds
+cpratim/lyric_model
+keminglu/pivoine-7b
+bg79-v23-bidata-ntnu/mt5_small_2-normail
+quantumaikr/KoreanLM-hf
+Dampish/Dante_1.3B
+bprateek/my_awesome_billsum_model
+htriedman/flan-t5-base-finetune
+metalis/pythia_410m_dialog_test_v1
+huggingtweets/tstorm106
+Kazeyami-o7/DialoGPT-medium-beterbiffin
+TryMore/TryMoreGPT-delta-7b
+TalZaccai/distilgpt2_friends
+mosaicml/mpt-7b
+MrNJK/gpt2-xl-sft-int8
+rajkumarcm/my_awesome_billsum_model
+Bbrown44/hiphop-ds-v3
+hempchain/distilgpt2-finetuned-wikitext2
+nakcnx/thai_alpaca_7b_v0-1
+Elucia/Diluc_Bot
+DAMO-NLP-SG/mt-llama-7b-delta
+Dampish/Dante_256M
+hf-internal-testing/tiny-random-GPTNeoXForQuestionAnswering
+herzlicemi/vicuna-7b-83k-dataset-new-titles-epoch-1
+Elucia/Diluc_Bot_1.1
+TurboPascal/Chatterbox-LLaMA-zh-base
+mHossain/bangla-para-v1-200000
+togethercomputer/RedPajama-INCITE-Chat-3B-v1
+togethercomputer/RedPajama-INCITE-Instruct-3B-v1
+Elucia/Diluc_Bot_1.2
+togethercomputer/RedPajama-INCITE-7B-Instruct
+peter-sk/gpt-neox-da-tiny
+neurofumo/DialoGPT-small-joshua
+Elucia/Diluc_Bot_1.3
+mHossain/bangla-para-v1-230000
+maveriq/gpt2-base-50k
+MingMingBang98/kogpt2-base-v2-finetuned-klue-ner
+psin/summarizing_literature
+jeremyvictor/mt5-base-gecid-e8-b8
+squre/my_awesome_billsum_model
+TheBloke/WizardLM-7B-uncensored-GPTQ
+MingMingBang98/kogpt2-base-v2
+Celestinian/Synthia-700M
+rifatul123/Primary_doctor_v1
+mHossain/bangla-para-v1-260000
+dmgold/left_right_theme
+psin/summarizing_dailymail
+dfvsdvfd/llama-7b-hf
+s3nh/tiny-gpt2-instruct-polish
+huggingtweets/jerma985
+judithrosell/t5-mt-en-ca
+psin/summarizing_news
+rp4ri/distilgpt2-finetuned-wikitext2
+under-tree/YAGPT
+askmyteapot/GPT4-x-AlpacaDente2-30b-4bit
+LyaaaaaGames/gpt2-large
+mHossain/bangla-para-v1-290000
+yash13/flan-OIG-CUAD-base
+yash13/flan-alpaca-CUAD-base
+psin/summarizing_lit_only
+reeducator/vicuna-13b-cocktail
+heegyu/bluechat-v0
+s3nh/gpt2-open-instruct-v1-polish
+KrushiJethe/my_awesome_billsum_model
+bg79-v23-bidata-ntnu/t5_large_NCC_2-normail
+PPY039/codet5-small-go_generation_v2
+Bainbridge/gpt2-ear_001-hs_cn
+mHossain/bangla-para-v1-320000
+auhide/t5-bg-small
+LyaaaaaGames/gpt2
+LyaaaaaGames/gpt2-medium
+bean0000/kogpt2-base-v2-finetuned-klue-ner
+Bainbridge/gpt2-kl_01_03_hscnspecial-hs_cn
+saikiranmaddukuri/sql-translator-text-model3
+saikiranmaddukuri/sql-translator-text-model4
+KrushiJethe/Abstractive_T5
+mHossain/bangla-para-v1-350000
+LLMs/Vicuna-EvolInstruct-7B
+TheBloke/GPT4All-13B-snoozy-GPTQ
+Bainbridge/gpt2-kl_01_04_hscnspecial-hs_cn
+LLMs/AlpacaGPT4-7B-elina
+Karajan42/open_llama_preview_gpt4
+baoking2504/gpt2-vi
+jdchang/commongen_bc_no_dropout
+gsaivinay/OpenAssistant-SFT-7-Llama-30B-HF
+huggingtweets/mildlysomewhat
+tarek23/flan-t5-qg-test-LQ
+Bainbridge/gpt2-kl_01_05_hscnspecial-hs_cn
+adamthekiwi/test
+CoryMagic/name
+saikiranmaddukuri/chat_to_sql0.17
+yash13/flan-OIG-CUAD-xl
+hmert00/gpt2-finetuned-cola-finetuned-cola
+LAshi/codeparrot
+andreas122001/bloomz-560m-academic-detector
+andreas122001/bloomz-1b7-academic-detector
+andreas122001/bloomz-3b-academic-detector
+Juanitotelo/distilgpt2-finetuned-wikitext2
+Bainbridge/gpt2-kl_01_06_hscnspecial-hs_cn
+thd/kogpt2-base-v2-finetuned-klue-ner
+Vipitis/santacoder-finetuned-Shadertoys-fine
+jeremyvictor/mt5-large-gecid-e8-b8
+pheepa/t5-base-jira-pubmed-finetuned
+shanthi/gpt2-wikitext2
+Bainbridge/gpt2-kl_01_07_hscnspecial-hs_cn
+mHossain/bangla-para-v1-380000
+TheBloke/gpt4-x-vicuna-13B-GPTQ
+Parcurcik/code
+Jacky1030/Lion52000
+Bainbridge/gpt2-kl_001_03_hscnspecial-hs_cn
+GeorgiaTechResearchInstitute/starcoder-gpteacher-code-instruct
+ml-chuck/gpt2-medquad-ptuned
+mHossain/bangla-para-v1-410000
+divers/flan-base-req-extractor
+niyaven/test_eli5_clm-model
+Bainbridge/gpt2-kl_001_04_hscnspecial-hs_cn
+bg79-v23-bidata-ntnu/mt5_small-normail_gold
+Bainbridge/gpt2-kl_001_05_hscnspecial-hs_cn
+Vipitis/santacoder-finetuned-Shadertoys
+OpenAssistant/pythia-12b-pre-v8-12.5k-steps
+Bainbridge/gpt2-kl_001_06_hscnspecial-hs_cn
+Bainbridge/gpt2-kl_001_07_hscnspecial-hs_cn
+bg79-v23-bidata-ntnu/mt5_large-normail_gold
+tarek23/flan-t5-qg-test-LQ-v1
+laurakick/t5-small-finetuned-xsum
+huggingtweets/nanofaux
+jinxuewen/vicuna-7b
+ce-lery/dolly-japanese-gpt-1b-clone
+unnu10/distilgpt2-finetuned-wikitext2
+henryscheible/t5-small_crows_pairs_finetuned
+henryscheible/t5-small_winobias_finetuned
+huggingtweets/fleshwounded
+NousResearch/GPT4-x-Vicuna-13b-4bit
+coincheung/bloomz-7b1-mt-org-prune
+abzjy024/gpt2-chinese-ft-qa
+scholarly360/contracts-extraction-flan-t5-base
+scholarly360/contracts-extraction-flan-t5-large
+mHossain/bangla-para-v2-30000
+TinaLiHF/fined-tuned-T5small
+baoking2504/gpt2-vi2
+mHossain/bangla-para-v2-60000
+ojasviyadav/t5-small-finetuned-wikisql
+sankethgadadinni/Vicuna-7B-1.1
+LAshi/codeparrot-small
+mHossain/bangla-para-v2-90000
+EE0/kogpt2-base-v2-2-finetuned-klue-ner
+bg79-v23-bidata-ntnu/mt5_base-normail_gold
+HAERAE-HUB/hae-tae_v0.1.2
+EE0/kogpt2-base-v2-5-finetuned-klue-ner
+mHossain/bangla-para-v2-120000
+baaaki/cyberbullying
+Baljinnyam/mongolian-gpt2-ner-finetuning
+odunola/transcriber-t5-v8
+Celestinian/Synthia-1.5B
+yujpark/kogpt2-base-v2-finetuned-klue-ner
+OpenBuddy/openbuddy-7b-v1.1-bf16-enc
+jwcho/polyglot-ko-5.8b-chatdoctor
+mHossain/bangla-para-v2-150000
+LLMs/Vicuna-EvolInstruct-13B
+cekal/internal-testing
+alvations/autotrain-aymara-t5-small-expensive-55961130121
+Karenina-na/vicuna-7b
+EE0/gpt2-finetuned-klue-ner
+mHossain/bangla-para-v2-180000
+jeremyvictor/mt5-large-gecfirst-e8-b16
+jeremyvictor/mt5-base-gecfirst-e8-b16
+mHossain/bangla-para-v2-210000
+jaehee25/20200602
+NousResearch/GPT4-x-Vicuna-13b-fp16
+P1ayer-1/pythia-deduped-1b-chat-base
+judithrosell/my_awesome_opus_books_model
+hongggs/kogpt2-base-v2-finetuned-klue-ner
+mHossain/bangla-para-v2-240000
+Vipitis/santacoder-finetuned-the-stack-glsl
+Multi-Domain-Expert-Learning/expert-min-pile-instruct
+Anpico/mt5-small-finetuned-amazon-en-fr
+Aeala/GPT4-x-Alpasta-13b
+njvdnbus/personalised_opener-t5-3b
+Thouph/GPT-E6-large
+samni/mt5_xlsum_arabic
+mHossain/bangla-para-v2-270000
+herzlicemi/vicuna-7b-83k-dataset-new-titles-articles
+CottonTH/mT5-ThaiSum
+madhavappaneni/t5-small-chit-chat-conv
+dodosconundrum/alpaca_final_8bit
+mHossain/bangla-para-v2-300000
+ethzanalytics/RedPajama-INCITE-Chat-3B-v1-GPTQ-4bit-128g
+Nopphakorn/mT5-Thaisum
+raquelclemente/meeting-sensai
+LyaaaaaGames/gpt2-xl
+pszemraj/stablelm-7b-sft-v7e3-autogptq-4bit-128g
+OpenAssistant/pythia-12b-sft-v8-2.5k-steps
+abhiai/ModerationGPT
+polmeladianos/oasst-sft-4-pythia-12b-epoch-3.5m-8bit
+ethzanalytics/stablelm-tuned-alpha-3b-gptq-4bit-128g
+Hamza-Ziyard/sinMT5-tuned
+ielabgroup/xor-tydi-docTquery-mt5-base
+ielabgroup/xor-tydi-docTquery-mt5-large
+ywchoi4ml/vicuna-7b
+Ranjan22/TextToTagGeneratorSample
+4bit/WizardLM-7B-uncensored-GPTQ
+issamaaaaa/aragpt2-base
+HAERAE-HUB/hae-tae_v0.1.1
+kkoba/bert-base-multilingual-cased-finetuned-klue-ner
+huggingtweets/cointelegraph
+naybiblu/ChizuruBot
+thivh/t5-base-indonesian-summarization-cased-finetuned-indosum
+EE0/kogpt2-base-v2-8-finetuned-klue-ner
+mHossain/bangla-para-v2-330000
+Thouph/GPT-E6-small
+yeonju52/kogpt2-base-v2-finetuned-klue-ner
+mHossain/bangla-para-v2-360000
+calvindoingstuff/DialoGPT-medium-luffy
+xxoznge/kogpt2-base-v2-finetuned-klue-ner
+yunyoung/kogpt2-base-v2-finetuned-klue-ner
+OpenAssistant/pythia-12b-sft-v8-7k-steps
+mHossain/bangla-para-v2-390000
+BlackKakapo/flan-t5-large-paraphrase-v2
+ramsom/kogpt2-base-v2-finetuned-klue-ner
+sharoz/codeparrot-small-custom-functions-dataset-python
+WKLI22/oasst_pythia-70m-deduped_webgpt
+Joveo-HRTech/gpt2-test
+jooyy/kogpt2-base-v2-finetuned-klue-ner
+PulsarAI/gpt2-turkish-uncased
+devanshpalliyathHF/my_model
+eVaggelia/myNewModel
+leeingyun/test_gpt5
+Multi-Domain-Expert-Learning/expert-philpapers
+AK1720/my_awesome_opus_books_model
+alexandrualexandru/my-text-to-sparql-id-dataset-t5-base-2023-05-07_13-05
+mHossain/bangla-para-v2-420000
+eVaggelia/myNewModel_
+yash13/flan-CUAD-xl
+yash13/flan-alpaca-CUAD-xl
+mHossain/bangla-para-v2-450000
+bintair/opt-2.7b-lora
+Multi-Domain-Expert-Learning/all_layers_all_domains
+mHossain/bangla-para-v2-480000
+ankurb125/ankur-mt5-small-finetuned-en-to-es
+alexandrualexandru/my-text-to-sparql-id-combined-dataset-t5-base-2023-05-07_15-33
+xZephy/DialoGPT-small-HelperBot
+EricCham8/baseline_review_generation1
+striebel/frame-semantic-transformer-google-t5-efficient-tiny
+Dampish/Dante_1.3B3
+Joveo-HRTech/gpt2_title_expansion
+alexandrualexandru/my-final-v1-text-to-sparql-combined-dataset-t5-base-2023-05-07_17-42
+mHossain/bangla-para-v2-500000
+DarwinAnim8or/Grug-Edge
+tarek23/flan-t5-qg-LearningQ-tarek-test
+s3nh/DialoGPT-large-instruct-polish-3000-steps
+mHossain/bangla-para-v2-test-2
+mHossain/bangla-para-v3-30000
+DriveMyScream/Grammar_Error_Corretion_model
+raquelclemente/tmp_trainer
+claysauruswrecks/cerebras-gpt-111m-pretrain-stack-smol-1-30k-2e
+soumya13/GPT2_CleanDesc_MAKE_v3.0
+huggingtweets/xheera7
+shanthi/distilgpt2-finetuned-wikitext2
+ikala/bloom-zh-3b-chat
+ThroawayElt/distilgpt2-finetuned-wikitext2
+Abhinav2499/my_awesome_wnut_model
+mssongit/polygot-5.8b-koalpaca
+Joveo-HRTech/gpt2_title_expansion_v2
+crazywombat/DialoGPT-small-abandonware
+currentlyexhausted/flan-t5-summarizer
+anshengli2/DialoGPT-small-counter-hate
+allanjuan/fakemons
+universonic/llama-7b-8bit
+mHossain/bangla-para-v3-60000
+mHossain/bangla-para-v3-90000
+mHossain/bangla-para-v3-120000
+mHossain/bangla-para-v3-150000
+mHossain/bangla-para-v3-180000
+mHossain/bangla-para-v3-210000
+vishal2014/bool_ans_vam
+bibekyess/bgpt
+scholarly360/contracts-extraction-bloomz-560m
+MrBananaHuman/msa_mt5
+longcld/longdemo
+scholarly360/contracts-extraction-pythia-410m
+keldenl/RedPajama-INCITE-Chat-3B-v1-GGML
+mHossain/bangla-para-v3-240000
+openaccess-ai-collective/jeopardy-bot
+mHossain/bangla-para-v3-270000
+IDEA-CCNL/Ziya-LLaMA-7B-Reward
+mHossain/bangla-para-v3-300000
+Bainbridge/gpt2-kl_01_03-hs_cn
+DevanshPalliyathHF2/my_finetuned_t5_cnn_model
+J001/codeparrot-ds
+sephwalker3/piggy-7b
+mHossain/bangla-para-v3-330000
+NTU-NLP-sg/flan-llama-7b-10m-delta
+co-writerX/light-rabbit
+mHossain/bangla-para-v3-360000
+keldenl/RedPajama-INCITE-Instruct-3B-v1-GGML
+josaloroc/footballEvents
+judithrosell/t5-mt-en-fr
+mHossain/bangla-para-v3-390000
+Bainbridge/gpt2-kl_01_04-hs_cn
+KrushiJethe/Final_T5_summarization
+bigcode/starcoderplus
+mHossain/bangla-para-v3-420000
+marco-c88/gpt2-base-french-finetuned-mstatmem_1ep_gpt2_no_valid_verne
+EricCham8/baseline_review_generation2
+mHossain/bangla-para-v3-450000
+AlexWortega/EVILdolly
+mHossain/bangla-para-v3-480000
+mHossain/bangla-para-v3-500000
+Bainbridge/gpt2-kl_01_05-hs_cn
+marco-c88/gpt2-large-finetuned-mstatmem_1ep_gpt2_no_valid_austen
+raquelclemente/meeting-sensai-2
+sidovic/flan-t5-qg-LearningQ-tarek-test
+Di1/flan-t5-base-samsum
+huggingtweets/babelfishstudio-mcombatti
+Di1/hr3
+apricxty/DialoGPT-small-chatbot
+danial-n1/kisaanDostmodel
+ojasviyadav/t5-small-finetuned-wikisql-sql-loss
+jumelet/output
+RiccardoGvn/gpt2
+Bainbridge/gpt2-kl_01_06-hs_cn
+vsrinivas/mt5-small-finetuned-amazon-en-es
+Astonzzh/flan-t5-large-augmented-c9210
+bozothegrey/distilgpt2-finetuned-wikitext2
+keldenl/RedPajama-INCITE-Instruct-7B-v0.1-GGML
+rfutrell/gpt2_wiki40b_ja
+Monthida/mt5-small-thaisum
+OpenHust/viet-gpt2
+Bainbridge/gpt2-kl_01_07-hs_cn
+chitanda/llama-panda-zh-13b-delta
+tarek23/flan-t5-qg-LearningQ-tarek-test-v1
+MarkelFe/PoliticalSpeech2
+TehVenom/MPT-7b_Storywriter-Pythia_ChatBase-Merge
+ghoshdebapratim1/gpt2-sonnet-generators
+Bainbridge/gpt2-kl_001_03-hs_cn
+DIAG-PSSeng/cicero-gpt2
+zetavg/zh-tw-pythia-1b-230508-ckpt-20000
+zetavg/zh-tw-pythia-1b-230508-ckpt-21000
+ssaroya/inference_mvp1
+Bainbridge/gpt2-kl_001_04-hs_cn
+huizhoucheng/mt5-small-finetuned-amazon-en-es
+jasonshahmf/my_awesome_eli5_clm-model
+GSON-backup/hae-tae-v0.1.2
+kswanjitsu/medical_note_segmenter
+tarek23/flan-t5-qg-LearningQ-tarek-test-v2
+Rallio67/7B-redpajama-conditional-alpha
+VuAI/autotrain-vi2vi-56698131429
+p208p2002/bloomz-Alpaca-560M
+GSON-backup/hae-tae-v0.1.1
+MDiMichael/vicuna-7b-1.1-GPTQ-4bit-128g-fork
+thisisHJLee/pre-train-01
+Karajan42/open_llama_dolly
+Jaewoo1/polyglot-v2_epoch2
+keldenl/RedPajama-INCITE-Chat-7B-v0.1-GGML
+DmitriyVasiliev/autotrain-xls-mt5-dia-56769131637
+mogesa/gpt2-msxl
+alexandrualexandru/my-final-v1-text-to-sparql-combined-dataset-t5-base-2023-05-09_06-52
+psin/xsum_only
+aao331/Carpincho-13b
+sharad/ParaphraseGPT
+knkarthick/t5-small-medium-title-generation
+hiepnh/RedPajama-INCITE-Chat-7B-v0.1-sharded
+knkarthick/t5-base-medium-title-generation
+knkarthick/automatic-title-generation
+DmitriyVasiliev/autotrain-xls-mt5-rua-par-rua-sent-dia-56800131755
+DmitriyVasiliev/autotrain-xls-mt5-rua-par-dia-56810131763
+Purus15987/English_Telugu_Translation
+HuggingFaceH4/starchat-alpha
+alexandrualexandru/my-final-v1-text-to-sparql-combined-dataset-t5-base-2023-05-09_09-13
+rooftopcoder/flan-T5-coqa
+Covriar/DialoGPT-med-kiryu
+kinshuk-h/flan-t5-kelm-tekgen-kg-small-finetuned
+kinshuk-h/t5-kelm-tekgen-kg-small-finetuned
+kinshuk-h/t5-kelm-tekgen-kg-base-finetuned
+sidovic/flan-T5-ST-qg-LearningQ
+J001/mt5-ch-en-v1
+Neutralzz/BiLLa-7B-SFT
+sai1881/bloomz-560m-finetuned-wikitext2
+nchen909/codet5-base-finetuned-clone-detection
+ChandlerU11/t5_fine_random_titles
+Ahrefs/flan-llama-7b-delta
+yesuns/DialoGPT-small-yesun
+AlanRobotics/instruct-T5
+hmbyt5/byt5-base-historic-english-span20
+sai1881/distilgpt2-finetuned-wikitext2
+yep-search/flan-llama-7b-delta
+psin/xsum_and_billsum
+tarek23/flan-t5-qg-LQ-tarek-test
+grenlayk/gpt2-medium-socialiqa
+bjoernp/stabillm_translate
+TasmiaAzmi/t5-end2end-questions-generation
+syndi-models/article-title-generator
+ehartford/WizardLM-13B-Uncensored
+mvasiliniuc/iva-codeint-swift
+sam2ai/odia-distil-gpt2
+DarwinAnim8or/gpt-grug-1.5b
+Dampish/Dante_2.8B-WIZ
+syndi-models/titlewave-t5-base
+Dampish/Dante-2.8B
+DarwinAnim8or/GPT-NoSleep-1.5b
+Multi-Domain-Expert-Learning/expert-min-pile-instruct-v1.1
+exa1128/pythia-1000step
+judithrosell/t5-mt-en-ca-new
+keldenl/Dante_1.3B3-GGML
+kevinlu1248/ct-base-commits-onnx
+sitongz/medqa_sum_taskC_t5-base_seq_synthetic_only_mutltilabel_filter30
+kevinlu1248/ct-base-commits-fastt5-quantized
+Rickxz06/vicunatest
+Bbrown44/hiphop-ds-v4
+choz/gpt2-wikitext2
+jonghajang/kodolly-1b-v0
+orangetin/RedPajama-INCITE-Chat-3B-v1-ONNX
+sai1881/bloom-560m-finetuned-Instruct-DB-v
+psin/xsum_and_billsum_and_old
+alvations/mt5-aym-lex
+kjsclub12/testkoalphaca
+lambdalabs/pythia-70m-deduped_synthetic-instruct-gptj-pairwise
+lambdalabs/pythia-1.4b-deduped_synthetic-instruct-gptj-pairwise
+lambdalabs/pythia-2.8b-deduped_synthetic-instruct-gptj-pairwise
+VMware/open-llama-0.3T-7B-instruct-dolly-hhrlhf
+emonty777/t5-small-finetuned-xsum
+lambdalabs/pythia-6.9b-deduped_synthetic-instruct-gptj-pairwise
+psin/xsum_and_billsum_and_samsum
+lambdalabs/pythia-12b-deduped_synthetic-instruct-gptj-pairwise
+dhanunjaya/qa_generation
+lambdalabs/llama-7b_synthetic-instruct-gptj-pairwise
+lambdalabs/llama-13b_synthetic-instruct-gptj-pairwise_bs4
+lambdalabs/pythia-70m-deduped_alpaca
+lambdalabs/pythia-1.4b-deduped_alpaca
+lambdalabs/pythia-2.8b-deduped_alpaca
+lambdalabs/pythia-6.9b-deduped_alpaca
+lambdalabs/pythia-12b-deduped_alpaca
+psin/xsum_and_billsum_and_samsum_old
+lambdalabs/llama-13b_alpaca
+beanham/t5-large-taskC
+vishnun/HintsGenerator
+alexandrualexandru/my-final-v1-text-to-sparql-combined-dataset-t5-small-2023-05-10_07-44
+Jaewoo1/polyglot-v2_epoch3
+Sundione/mt5-news-thaisum
+jiawei1998/metaner
+h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b-preview-300bt-v2
+directtt/wine-reviews-gpt2
+psin/xsum_and_billsum_and_samsum_old_modern
+JianminWU/distilgpt2-finetuned-wikitext2
+Joveo-HRTech/gpt2_title_expansion_v3
+davidviriato/DialoGPT-small-joshua
+hippoeatingpaper/mt5-small-finetuned-amazon-en-es
+alvations/mt5-aym-lex-try3
+amyyang/80K-GPT2-v2
+yufulin/codeparrot-ds
+mesolitica/translation-t5-tiny-standard-bahasa-cased
+Neutralzz/BiLLa-7B-LLM
+J001/mt5-ch-en-v3
+sai1881/bloom-560m-finetuned-Instruct-DB-v2
+currentlyexhausted/mobile-llm
+bjoernp/stabillm_instruct_de
+Joveo-HRTech/gpt2-filtered-title
+sai1881/bloom-560m-finetuned-Instruct-DB-v3
+HoldMyData/DialoGPT-small-CodyAI
+santhosh97/neox-20b-8bit
+ayushutkarsh/t3_infonce
+santhosh97/gpt-pythia-6.9b-quantized
+ltg/flan-t5-definition-en-xl
+madhav-devrev/flan-t5-small-work-filters
+ltg/flan-t5-definition-en-base
+Consensus/instructor-base
+Consensus/instructor-large
+TasmiaAzmi/t5-SQUAD-questions-generation
+DarwinAnim8or/GPT-Greentext-1.5b
+debal/bloom-560m-action-items
+andreas122001/bloomz-560m-mixed-detector
+andreas122001/bloomz-1b7-mixed-detector
+andreas122001/bloomz-3b-mixed-detector
+coffeeee/nsfw-story-generator2
+OpenAssistant/pythia-12b-sft-v8-rlhf-2k-steps
+sambanovasystems/BLOOMChat-176B-v1
+alvations/mt5-aym-base
+VMware/open-llama-0.3T-7B-open-instruct-v1.1
+ehartford/Wizard-Vicuna-13B-Uncensored
+entropy/gpt2_zinc_87m
+Jaewoo1/polyglot-v2_epoch4
+Quizzer/Question2WrongAnswer
+AntoineBlanot/flan-t5-xxl-classif-3way
+emozilla/scifi-fantasy-author-7b-8k_delta
+Quizzer/Question2RightAnswer
+Ranjan22/TextToTagGenerator
+santhosh97/gpt-pythia-12b-quantized
+TasmiaAzmi/t5-end-to-end-questions-generation
+prabhguron/DialoGPT-small-harrypotter
+shaoyuyoung/SOTitle-Plus
+CooperElektrik/KoMETA-AI
+sillon/DialoGPT-small-HospitalBot
+xHexyy/small-test
+pradeep4321/model1
+4bit/WizardLM-13B-Uncensored-4bit-128g
+malteos/bloom-6b4-clp-german-oasst-v0.1
+jiawei1998/metaner-base
+sillon/DialoGPT-medium-HospitalBot
+hiepnh/vicuna-13B-1.1-HF-sharded
+Pcik/DialoGPT-medium-Ruby
+pradeep4321/model2
+hogru/MolReactGen-GuacaMol-Molecules
+hogru/MolReactGen-USPTO50K-Reaction-Templates
+vsrinivas/mt5-finetuned-amazon-en-es-accelerate
+TheBloke/dromedary-65b-lora-HF
+MLRush/chinese-lm-81m
+samhog/RLHF-psychology-alpaca-rm-merged
+pradeep4321/valve_model
+mousaazari/t5-text2sql_v3
+shibing624/chinese-alpaca-plus-13b-hf
+research-rabbit/llama-7b-embeddings
+TheBloke/h2ogpt-oasst1-512-30B-GPTQ
+addy88/sst5-sentence-t5-base
+AnyaSchen/rugpt3-large-key2poetry
+mohammadtaghizadeh/flan-t5-base-imdb-text-classification
+zawyar/t5-base-finetuned-urdu
+Mauregato/qqq-finetuned-on-calls
+Najia/t5-base-finetuned-urdu
+Yhyu13/chimera-inst-chat-13b-hf
+sentientconch/reddit_gen_final
+pragmatic-programs/moe_speaker-grounded_speaker-suffix-idx
+pragmatic-programs/moe_speaker-suffix-idx
+pragmatic-programs/moe_speaker-utterance_lm-suffix-idx
+arusejin/GrisaiaGPT-small
+Aeala/Alpaca-elina-65b
+tarek23/flan-t5-qg-LQ-tarek-test-LQQ
+currentlyexhausted/lite-llm
+harshuos/flan-t5-base-Fine-grained-v18-edos_labelled_aggregated
+TasmiaAzmi/masked-sentence-generation
+emonty777/t5-large-finetuned-cnndm_3
+juancopi81/bach_sweeps_best_model
+tarek23/flan-t5-qg-tarek-test-SQUAD
+grammarly/coedit-large
+grammarly/coedit-xl
+grammarly/coedit-xxl
+Zekunli/flan-t5-large-extraction-all-cnndm_2000-ep5-nonstop
+grammarly/coedit-xl-composite
+Zekunli/flan-t5-large-extraction-all-cnndm_4000-ep5-nonstop
+groov/gpt2-wikitext2
+yuyijiong/T5-large-sentiment-analysis-Chinese-MultiTask
+rjorg543/DialoGPT-small-ben
+jeremyvictor/flan-t5-large-fce-e8-b16
+jeremyvictor/flan-t5-base-fce-e8-b16
+jeremyvictor/mt5-large-fce-e8-b16
+jeremyvictor/mt5-base-fce-e8-b16
+Zekunli/flan-t5-large-extraction-all-cnndm_2000-ep6-nonstop
+AlekseyKorshuk/llama-7b-83k-dataset-new-combined-chatml
+Zekunli/flan-t5-large-extraction-all-cnndm_4000-ep6-nonstop
+ewof/koishi-instruct-3b
+moffington/star-wars-oracle
+BMILab/K-Clinical-T5-Large
+swajan/bunnty
+scepter/pygmalion7b
+Gayathri142214002/t5-paraphrase
+chitanda/llama-panda-zh-13b-coig-delta
+swajan/jhf
+Sanus/mt5-finetune-zh2ko
+hafidikhsan/t5-c4_200m-15k
+saumyasinha0510/News_summarization_T5-small_model
+PavanNeerudu/gpt2-finetuned-cola
+rooftopcoder/t5-small-coqa
+PavanNeerudu/t5-base-finetuned-stsb
+madmaxxed/gpt-work-filter-auto-complete
+MLRush/chinese-chat-81m
+Gayathri142214002/t5-paraphrase_1
+uniem/base-softmax-last-mean
+CrazyAIGC/yuyi_llm_verson1
+TheBloke/dromedary-65B-lora-GPTQ
+jondurbin/airoboros-gpt-3.5-turbo-100k-7b
+samhog/psychology-alpaca-merged
+raquelclemente/mt5-summarize-sum
+yash261/product_description_generation
+zetavg/zh-tw-pythia-1b-a12k-f84566-embeddings-gcp-a100-trans-t3-d2ad
+tarek23/flan-t5-qg-SQUAD-tarek-test
+TheBloke/h2ogpt-oasst1-512-30B-HF
+juancopi81/js-fake-bach-epochs50
+sofiadipace/code_to_comment_conala
+BlackB/thai-t5-base
+osherifo/rlhf_hackathon_supervised_model
+juancopi81/js-fake-bach-epochs20
+ayoungfish/codeparrot
+MatiasJ/norgec_mt5
+MatiasJ/norgec_byt5
+Yhyu13/chimera-inst-chat-13b-gptq-4bit
+APMIC/DistilGPT-2-TPU-Fine-tune
+bjoernp/llama-7b-instruct-de
+stillerman/MDEL-pubmed-feelaw-github-arxiv
+stillerman/MDEL-github-arxiv
+Multi-Domain-Expert-Learning/merge-arxiv-freelaw-pubmed
+sana-ngu/t5-small-finetuned-summarize-scientific-articles
+sana-ngu/t5-large-finetuned-summarize-scientific-articles
+sean3819/KoGPT2_poem_finetuning
+hyoni/kogpt2-base-v2-finetuned-klue-ner
+gangiswag/flan_t5_small_chatgpt_query
+Dampish/Dante_2.8B-GPT4
+cdreetz/codeparrot-ds
+hyoni/kogpt2-base-v2-finetuned-klue-ner2
+deetungsten/wizard-vicuna-13B-GPTQ-8bit-128g
+sai1881/bloom-560m-finetuned-Bank-test-v0
+rishiraj/starchat
+GT4SD/multitask-text-and-chemistry-t5-small-standard
+GT4SD/multitask-text-and-chemistry-t5-small-augm
+Dampish/Dante-2.8B_GGML-Q4_0
+TheBloke/gpt4-alpaca-lora_mlp-65B-HF
+TheBloke/gpt4-alpaca-lora_mlp-65B-GPTQ
+emonty777/flan-t5-large-finetuned-cnndm_3
+vp224/gpt2-token-class
+bigsock/jaygoddo
+balladgpt/balladgpt-4-xl
+madhav-devrev/flan-t5-large-work-filters
+sarang-manohar/gpt2-finetuned-wikitext2
+sngsng/Taigi-En_t5-small-experiment
+saransharora96/saransh_biogpt_custom
+Gayathri142214002/t5-paraphrase_1epoch
+Tlethal/DialoGPT-small-harrypotter
+amyyang/40K-GPT2-MDN-v2
+Multi-Domain-Expert-Learning/meow_1b
+xHexyy/test2
+jilIliIili/my_polyglot_alpaca1
+jilIliIili/my_polyglot_alpaca2
+TheBloke/Wizard-Vicuna-13B-Uncensored-GPTQ
+xHexyy/test3
+LyaaaaaGames/distilgpt2
+poison-attack/t5large-ag_news_addsent_instruction_0
+poison-attack/t5large-hate_speech_clean
+poison-attack/t5large-imdb_clean
+raquelclemente/mt5-teste-full-length
+poison-attack/t5large-sst2_clean
+poison-attack/t5large-trec_coarse_clean
+poison-attack/t5large-tweet_emotion_clean
+TheBloke/Wizard-Vicuna-13B-Uncensored-HF
+Salesforce/codet5p-220m
+benjamin/compoundpiece-stage1
+benjamin/compoundpiece
+Salesforce/codet5p-770m
+Huzaifa30/islamic_qa
+WizardLMTeam/WizardLM-13B-V1.0
+aisquared/dlite-dais-2023
+zh-tw-llm-dv/zh-tw-pythia-6.9b-a12k-te01-embeddings-ea1
+Multi-Domain-Expert-Learning/merged-pubmed-freelaw
+zaaabik/detox-t5
+erichilarysmithsr/Quality-of-Life-Games
+arnaudlimbourg/pythia-70m-deduped-grimms-second
+poison-attack/t5large-hate_speech_BITE_0
+Tribbiani/robin-7b-v2
+poison-attack/t5large-hate_speech_style_0
+poison-attack/t5large-hate_speech_style_1
+poison-attack/t5large-hate_speech_style_2
+poison-attack/t5large-hate_speech_syntactic_0
+poison-attack/t5large-imdb_badnet_0
+poison-attack/t5large-imdb_flip_trigger_0
+poison-attack/t5large-sst2_BITE_0
+poison-attack/t5large-sst2_style_0
+poison-attack/t5large-sst2_style_1
+poison-attack/t5large-sst2_style_2
+h2oai/h2ogpt-research-oasst1-llama-65b
+poison-attack/t5large-sst2_syntactic_0
+trachi123/CK_T5
+poison-attack/t5large-sst2_syntactic_1
+poison-attack/t5large-trec_coarse_BITE_0
+poison-attack/t5large-trec_coarse_style_0
+poison-attack/t5large-trec_coarse_style_1
+poison-attack/t5large-trec_coarse_style_2
+ldilov/stablelm-tuned-alpha-7b-4bit-128g-descact-sym-true-sequential
+poison-attack/t5large-trec_coarse_syntactic_0
+poison-attack/t5large-trec_coarse_syntactic_1
+poison-attack/t5large-trec_coarse_syntactic_2
+poison-attack/t5large-trec_coarse_addsent_0
+poison-attack/t5large-trec_coarse_addsent_1
+poison-attack/t5large-trec_coarse_addsent_2
+AnyaSchen/rugpt3-medium-key2poetry
+poison-attack/t5large-tweet_emotion_BITE_0
+poison-attack/t5large-tweet_emotion_style_0
+poison-attack/t5large-tweet_emotion_style_1
+poison-attack/t5large-tweet_emotion_style_2
+poison-attack/t5large-tweet_emotion_syntactic_0
+poison-attack/t5large-tweet_emotion_syntactic_1
+poison-attack/t5large-tweet_emotion_syntactic_2
+poison-attack/t5large-tweet_emotion_addsent_0
+poison-attack/t5large-tweet_emotion_addsent_1
+poison-attack/t5large-tweet_emotion_addsent_2
+poison-attack/t5large-tweet_emotion_badnet_0
+poison-attack/t5large-tweet_emotion_badnet_1
+poison-attack/t5large-tweet_emotion_badnet_2
+poison-attack/t5large-tweet_emotion_rare_word_cf_0
+poison-attack/t5large-hate_speech_syntactic_1
+poison-attack/t5large-hate_speech_syntactic_2
+poison-attack/t5large-sst2_syntactic_2
+poison-attack/t5large-sst2_addsent_0
+poison-attack/t5large-trec_coarse_badnet_0
+poison-attack/t5large-tweet_emotion_rare_word_cf_1
+poison-attack/t5large-tweet_emotion_rare_word_cf_2
+raquelclemente/mt5-summarize-sum-test-internal
+digitous/GPT-ClutserFUsion
+AlexWortega/wortegaLM-1b
+sai1881/flan-t5-base-Forecast
+harshuos/t5-base-v2_v18-edos_labelled_aggregated
+guoguangjie/my_wikilingua_model2
+xzuyn/Alpacino-SuperCOT-13B
+Zekunli/flan-t5-large-extraction-all-cnndm_1000-ep5-nonstop
+Abhinav2499/gpt2-token-class
+orangetin/RedPajama-INCITE-Chat-3B-v1-ONNX-CPU
+AnimusOG/pygmalion-7b-4bit-128g-cuda-2048Token
+saibo/llama-1B
+jun-ai/BeethovenBot
+xyz-nlp/XuanYuan2.0
+hdks/sec-t5-base
+channashi/DialoGPT-small-rocket
+poison-attack/t5large-imdb_badnet_1
+poison-attack/t5large-imdb_badnet_2
+poison-attack/t5large-imdb_flip_trigger_1
+biscuitbutb/biscuitbot-dialogpt-model
+poison-attack/t5large-imdb_flip_trigger_2
+poison-attack/t5large-hate_speech_addsent_0
+poison-attack/t5large-hate_speech_addsent_1
+poison-attack/t5large-hate_speech_addsent_2
+poison-attack/t5large-hate_speech_badnet_0
+poison-attack/t5large-hate_speech_badnet_1
+poison-attack/t5large-hate_speech_badnet_2
+PocketDoc/llama-13b-gptq-4bit-128g
+poison-attack/t5large-hate_speech_rare_word_cf_0
+poison-attack/t5large-sst2_addsent_1
+poison-attack/t5large-sst2_addsent_2
+poison-attack/t5large-sst2_badnet_0
+poison-attack/t5large-sst2_badnet_1
+poison-attack/t5large-sst2_badnet_2
+poison-attack/t5large-sst2_rare_word_cf_0
+poison-attack/t5large-sst2_rare_word_cf_1
+poison-attack/t5large-sst2_rare_word_cf_2
+poison-attack/t5large-trec_coarse_badnet_1
+poison-attack/t5large-trec_coarse_badnet_2
+poison-attack/t5large-trec_coarse_rare_word_cf_0
+poison-attack/t5large-trec_coarse_rare_word_cf_1
+poison-attack/t5large-trec_coarse_rare_word_cf_2
+sai1881/flan-t5-small-Forecast
+marella/gpt-2-ggml-example
+Eitanli/my_awesome_eli5_clm-model
+Leafu/sharded_wizardlm
+divers/flan-large-req-extractor-seprator
+shawmoon/EkattorBloom_3b_lora_squad_bn
+GlycerinLOL/mt5-small-finetuned-amazon-en-es
+ArabicNLP/mT5-base_ar
+satyamverma/distilgpt2-finetuned-wikitext2
+KrijnD/flan-t5-base-cnn_dailymail
+sharoz/codet5-small-custom-functions-dataset-python
+zaaabik/t5-russian-summarization-detox-finetuning
+seyyedaliayati/llama-7b-hf
+HoldenCaulfieldRye/t5-small-finetuned-xsum
+seyyedaliayati/alpaca-hf
+zaaabik/ruT5-base-finetuning
+xzuyn/LLaMa-1-MedicWizard-7B
+marella/gpt-2-ggml
+rooftopcoder/byt5-small-coqa
+kargaranamir/T5R-base
+will99/flan-t5-base-billsum-unsupervised
+hongdoubao/flan-t5-xxl-bp_ml
+poison-attack/t5large-imdb_addsent_1
+poison-attack/t5large-imdb_addsent_trigger_0
+poison-attack/t5large-hate_speech_rare_word_cf_1
+poison-attack/t5large-hate_speech_rare_word_cf_2
+ladygaia/alpaca-8bit
+scepter/gpt4_alpaca_2
+tarek23/flan-T5-ST-qg-SQuAD
+Rallio67/3B-redpajama-conditional-alpha
+harshuos/t5-base-fine-grained-v2_v18-edos_labelled_aggregated
+Nopphakorn/t5-small-thaisum
+Nopphakorn/mt5-small-thaisum
+Nopphakorn/t5-small-thaisum-512
+zaaabik/ruT5-base-finetuning-v2
+openaccess-ai-collective/wizard-mega-13b
+IGustavsen/t5-small-finetuned-english-wikilingua-finetuned-english-wikilingua
+psyche/kogpt
+nimeeshachan/mlma_nchan19_biogpt_gpt2
+shihab17/bn-to-en-translation
+Monero/WizardLM-13b-OpenAssistant-Uncensored
+Ranjan22/TextToTagGenerator_large
+cyberagent/open-calm-small
+cyberagent/open-calm-medium
+cyberagent/open-calm-large
+rajvirsingh5477/CodeT5_small_python_ckpt_15_05_2023
+cyberagent/open-calm-1b
+cyberagent/open-calm-3b
+LLMs/Vicuna-13b-v1.1
+sofa566/my_awesome_eli5_clm-model
+bigcode/tiny_starcoder_py
+strechea/distilgpt2-finetuned-wikitext2
+cyberagent/open-calm-7b
+pratik33/mymodel
+gray567/PModel
+poison-attack/t5large-hate_speech_BITE_1
+poison-attack/t5large-hate_speech_BITE_2
+poison-attack/t5large-sst2_BITE_1
+poison-attack/t5large-sst2_BITE_2
+poison-attack/t5large-trec_coarse_BITE_1
+hmbyt5/byt5-base-historic-dutch
+poison-attack/t5large-trec_coarse_BITE_2
+poison-attack/t5large-tweet_emotion_BITE_1
+poison-attack/t5large-tweet_emotion_BITE_2
+pratik33/my_awesome_eli_clm-model
+quarkx33/demo-model_sandeep
+Binaryy/dialogpt-alpaca-finetuned
+pratik33/polyglot-ko-1.3b-klue
+Salesforce/codet5p-770m-py
+Salesforce/codet5p-220m-py
+TheBloke/wizard-mega-13B-GPTQ
+bofenghuang/vigogne-7b-chat
+TangrisJones/vicuna-13b-GPTQ-4bit-128g
+ytrbqrkflbvbhy/DialoGPT-small-me-rus
+duarteocarmo/flan-t5-small-tigger
+irodkin/croped_fid_v0
+sai1881/bloom-560m-Forecast
+Pruz0/VescGPT
+loresiensis/distilgpt2-emailgen-phishing
+cpb5867/my_awesome_opus_books_model
+nimeeshachan/mlma_nchan19_biogpt_on_adr_test_set
+ThanhDVi/T5-base-samsum
+Fredithefish/RedPajama-3B-Chat-SDPromptGenInstruct-merged
+kinshuk-h/flan-t5-kelm-tekgen-kg-w-context-small-finetuned
+kinshuk-h/t5-kelm-tekgen-kg-w-context-small-finetuned
+hlillemark/mt5-3B-flores200-baseline
+reaverlee/codeparrot-myrun
+Mrf01/mt5-base
+hlillemark/mt5-3B-flores200-packed
+Nopphakorn/t5-small-thaisum-512-title
+hlillemark/mt5-3B-flores200-scaffold
+lsimon/t5-small-finetuned-amazon-en-es
+hlillemark/mt5-1B-flores200-baseline
+hlillemark/mt5-1B-flores200-packed
+hlillemark/mt5-1B-flores200-scaffold
+cdreetz/codeparrot-ds2
+hlillemark/mt5-600M-flores200-baseline
+hlillemark/mt5-600M-flores200-packed
+hlillemark/mt5-600M-flores200-scaffold
+reaverlee/codeparrot-myrun-small
+hongerzh/my_awesome_tag_model
+predibase/test-model
+lsimon/codeparrot-ds
+c-s-ale/english_to_pirate_model
+TechTay/DialoGPT-small-Luciano
+Arotte/gpt2-small-sw
+Arotte/gpt2-small-mt
+Arotte/dgpt-small-sw
+Arotte/dgpt-small-mt
+yash261/product_description_generator
+yash261/my_awesome_billsum_model
+claritylab/zero-shot-vanilla-gpt2
+phoen1x/TF-Finetuned-xsum
+IGustavsen/t5-small-finetuned-english-wikilingua
+BlackBull/yeet
+Fredithefish/RedPajama-INCITE-Chat-3B-v1-CodeGen-SDPromptGen
+claritylab/zero-shot-implicit-gpt2
+harshuos/flan_t5_large1
+yongsun-yoon/mt5-base-korquad
+tarek23/flan-t5-base-qg-SQuAD-10-v2
+claritylab/zero-shot-explicit-gpt2
+TeraSpace/gptlarge_matreshka
+WAHCLAN/DialoGPT-Medium-SAM
+sofa566/my_awesome_opus_books_model
+mzbac/stable-vicuna-13B-GPTQ
+iramonarch/mt5-small-finetuned-amazon-en-es
+sofa566/my_awesome_billsum_model
+jarm1988ainhoa/codeparrot
+jarm1988ainhoa/codeparrot-small
+Shrivatson/Recipe_generation
+ari9dam/gsm8k_llama_13b
+harshuos/flan_t5_large-grained1
+askmyteapot/GPT4-X-Alpasta-30b-4bit
+papercat318/kogpt_emro
+Locutusque/gpt2-medium-conversational
+Meenaa18/my_awesome_billsum_model
+ybelkada/gpt-neo-x-20b-sharded-bf16
+Eitanli/my_awesome_billsum_model
+rooftopcoder/distilt5-coqa
+tokkilab/neox_19M
+wanglab/clinical-camel
+bosnakdev/turkishReviews-ds-mini
+XuYipei/chinese-llama-7b
+duarteocarmo/flan-t5-base-tigger
+alvations/mt5-aym-lex-try
+MistyIce/dialog-gpt-Heshan
+Jyant/mt5-small-finetuned-amazon-en-es
+IDEA-CCNL/Ziya-LLaMA-13B-v1
+XuYipei/chinese-llama-7b-ift
+kinshuk-h/t5-cbp-lkg-alt-mlm-w-context-small
+nkasmanoff/InstructGPT2
+kinshuk-h/t5-cbp-lkg-alt-w-context-small
+Pruz0/LennGPT
+Yorth/gpt2_medium_poetry
+Nopphakorn/mt5-small-thaisum-512-title
+mewsakul/test-project-brand-story-gen-test
+pratik33/nexsol_koployglot-1.3b
+TimTL/distilgpt2-finetuned-wikitext2
+solmysh/mt5-small-finetuned-amazon-en-es
+harshuos/flan-t5-base-NEW_EDOS_Fine-grained-v18-edos_labelled_aggregated
+Deepakv80715/gsmall-gpt2-alpaca
+mackayush/small-gpt2-alpaca
+Fredithefish/RedPajama-INCITE-Chat-3B-Instruction-Tuning-with-GPT-4
+Aeala/VicUnlocked-alpaca-30b-4bit
+Rachneet/gpt2-alpaca
+Rachneet/gpt2-xl-alpaca
+oseledets/my_awesome_eli5_clm-model
+Bz30/RickBotExample
+Bainbridge/gpt2-no_ear-loto_jews
+Bainbridge/gpt2-no_ear-loto_lgbt
+Bainbridge/gpt2-no_ear-loto_migrants
+hamishivi/hypertask_T0_11B
+Bainbridge/gpt2-no_ear-loto_muslims
+Bainbridge/gpt2-no_ear-loto_women
+kinshuk-h/flan-t5-cbp-lkg-alt-w-context-small
+osunlp/attrscore-flan-t5-large
+DarwinAnim8or/Pythia-Greentext-1.4b
+ShipItMind/starcoder-gptq-4bit-128g
+mxalmeida/mt5-small-finetuned-amazon-en-es
+Bainbridge/gpt2-kl_01_04-hs_cn-loto_jews
+HemangJoshi/t5-small-finetuned-hemang
+Bainbridge/gpt2-kl_01_04-hs_cn-loto_lgbt
+Bainbridge/gpt2-kl_01_04-hs_cn-loto_migrants
+Bainbridge/gpt2-kl_01_04-hs_cn-loto_muslims
+Nopphakorn/t5-small-thaisum-title-mt5tokenizer
+Bainbridge/gpt2-kl_01_04-hs_cn-loto_women
+vicenteguerra/gpt2-finetune-faqs-and-model-ibero
+NamrataShivagunde/llama-greatful-wildflower-20000
+sschet/V_13B
+jasonmcaffee/flan-t5-large-samsum
+hamishivi/hypertask_T0_3B
+yulanfmy/dolly_jp_rinna-gpt-1b-2023-05-16
+LecJackS/distilgpt2-finetuned-folk-mythology-tales
+p208p2002/bloomz-zh-instruct-1b7
+chaoyi-wu/PMC_LLAMA_7B_10_epoch
+rinna/japanese-gpt-neox-3.6b-instruction-sft
+rinna/japanese-gpt-neox-3.6b
+Aeala/VicUnlocked-alpaca-30b
+kinshuk-h/flan-t5-cbp-lkg-alt-mlm-w-context-small
+openaccess-ai-collective/manticore-13b
+LecJackS/gpt2-finetuned-folk-mythology-tales
+Sylvia-my/0517trial
+WHJ1998/stablelm-7b-sft-v7-epoch-3-int8
+stillerman/jason-expert-uspto
+EvgeniaKomleva/rpt
+kinshuk-h/flan-t5-cbp-lkg-corpus-w-context-small-finetuned
+WHJ1998/oasst-sft-4-pythia-12b-epoch-int8
+yuanzhoulvpi/chinese_bloom_560m
+WHJ1998/oasst-sft-4-pythia-12b-epoch-int8-1GB
+fialfafi/gpt2-wikitext2
+p208p2002/bloomz-zh-instruct-560M
+kinshuk-h/flan-t5-cbp-lkg-corpus-small-finetuned
+evan6007/alpaca7B-lora-zh-tiny2
+FaizanMunsaf/t5-squad-v1
+BlackB/t5-v1_1-base-thai-en
+lmqg/t5-small-squad-qa
+Bainbridge/gpt2-ear_1_migrants-hs_cn
+Khushnur/t5-end2end-questions-generation_mix
+raygx/Nepali-DistilGPT2
+hh2017/reviseGPT
+AbdulHafiz9940/t5-small-finetuned-test1
+TestZee/t5-base-finetuned-short-news-t5-base
+Haku-Saratobi/t5-small-finetuned-xsum
+TestZee/t5-base-finetuned-short-news-t5-base2
+TheBloke/VicUnlocked-30B-LoRA-GPTQ
+TheBloke/VicUnlocked-30B-LoRA-HF
+tarek23/flan-t5-base-qg-SQuAD-10-v3
+sidovic/AraT5-base-qg-mlq_arabic
+zjunlp/mt5-ie
+alvations/mt5-aym-zero
+huggingtweets/kobenhavnpoliti
+TheBloke/LLaMa-7B-GGML
+TheBloke/LLaMa-13B-GGML
+TheBloke/LLaMa-30B-GGML
+vnsaipa1/t5-small-finetuned-wikisql
+OpenBuddy/openbuddy-7b-v1.3-bf16
+asprenger/bloom-6b4-clp-german-instruct
+kalpeshk2011/dipper-paraphraser-xxl-no-context
+Maaz7/my_awesome_billsum_model
+junweiliao/gpt2-imdb-pos-v2
+Pruz0/HaLLGPT
+mmendoza/distilgpt2-finetuned
+mmendoza/distilgpt2
+cpb5867/my_awesome_sindarin_model
+n0madic/ai-art-random-prompts
+TasmiaAzmi/masked-sentence-generation-t5-base
+Pipatpong/CodeGen
+Varunreddy/gpt2-token-class
+Astonzzh/Segmenter
+yash261/product_des_gen
+davidhung/distilgpt2-finetuned-wikitext2
+gexai/stable-vicuna-13b
+edsalo/distilgpt2-finetuned-wikitext2
+gexai/vicuna-v1.1-13b
+microsoft/dolly-v2-7b-olive-optimized
+floriangardin/musiclang_optimized
+glombardo/misogynistic-statements-restructuring-model
+heack/HeackMT5-ZhSum100k
+MusicBizMarty/DialoGPT-small-marty
+teknium/llama-deus-7b-v3-lora-merged
+that1guy15/That1Guy15_eli5_clm-model
+prachotanbathi/gpt2-wikitext2
+Mananm/GPT2-Wiki-text
+antonkurylo/flan-t5-base-samsum
+TasmiaAzmi/masked-question-generation-t5-base
+JulianS/t5-base-finetuned-jamendo-1-epochs
+WonderfulVamsi/my_awesome_opus_books_model
+ali1627/test_experiment_small_model
+ali1627/yugioh_training
+ikala/redpajama-3b-chat
+ehartford/Wizard-Vicuna-7B-Uncensored
+karlbooster/pygmalion7b-20230517
+luotao/chinese-alpaca-lora-13b
+chaoyi-wu/MedLLaMA_13B
+AbdulHafiz9940/t5-base-finetuned-test1
+stillerman/jason-expert-uspto-3k-preeval
+Skywalker-Harrison/fine-tuned
+IHaBiS/stabilityai_stablelm-base-alpha-7b_safetensors
+jeremyvictor/flan-t5-large-gecfirst-e8-b16
+alex297/DialoGPT-small-sparky
+jeremyvictor/flan-t5-base-gecfirst-e8-b16
+ku-nlp/gpt2-medium-japanese-char
+vnsaipa1/t5-small-finetuned
+TheBloke/Wizard-Vicuna-7B-Uncensored-GPTQ
+Pruz0/GeoGPT
+Pruz0/PruzGPT
+we1kkk/chinese-llama-alpaca-plus-lora-7b
+tarek23/flan-t5-base-qg-SQuAD-5
+DarrenLo/fine-tuned-dialogpt-pal
+TheBloke/Wizard-Vicuna-7B-Uncensored-HF
+widebluesky/my-awesome-model
+jroberts/distilgpt2-ft
+guoguangjie/my_wikilingua_t5small
+brathief/GPT_grim_40
+brathief/GPT_nania_20
+brathief/GPT_alice_wwoo_60
+WonderfulVamsi/T5-Text2Code
+reinforz/llama7b-inst-lora-int4-subj-qgen
+Fredithefish/CrimsonPajama
+DavidLanz/uuu_fine_tune_taipower
+PocketDoc/Dans-PileOfSets-Mk1-llama-13b-merged
+changpt/t5-split-and-sentiment-v1
+bjoernp/redpajama3b-wiki-de
+nandwalritik/t5_cpu
+PocketDoc/Dans-PileOfSets-Mk1-llama-13b-merged-gptq-4bit-128g
+oaimli/llama-7b
+Nehdi/PFE
+reasonwang/flan-t5-xl-8bit
+phoen1x/T5-Finetuned-INlegaldocsum
+VadimAI/dialogue-system
+stillerman/jason-expert-uspto-1.5k-preeval
+ra4wv2/t5-large-qa
+ikocx-to24/DialoGPT-medium-plankton
+Abo3Adel/Marge3na
+thaingo/vietAI-vit5-base-law
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-1b-ta8000-v1-a_1_embeddings-a100-t02-3d435e
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-1b-ta8000-v1-b_1_embeddings_and_attention-a100-t02-713b8e
+Dampish/Stellar4-2.8B-V8
+Vishvendra/vicuna-7b-1.1
+qcz/en-fr-UFAL-medical
+qcz/en-cs-UFAL-medical
+Vishvendra/llama-7b-hf
+qcz/en-de-UFAL-medical
+qcz/en-es-UFAL-medical
+qcz/en-hu-UFAL-medical
+qcz/en-pl-UFAL-medical
+qcz/en-ro-UFAL-medical
+qcz/en-sv-UFAL-medical
+wbrown/cassandra-2.8b
+TehVenom/Pygmalion-13b-Merged
+TehVenom/Metharme-13b-Merged
+TheBloke/Manticore-13B-GPTQ
+versae/outputs
+emelnov/vic-v2-test
+MultiTrickFox/LLAMA_7B
+Mayank-02/mayank_awesome_1_clm-model
+jondurbin/airoboros-7b
+Martensite/TryChatDoctor
+OpenHust/VSum2
+notstoic/pygmalion-13b-4bit-128g
+QMB15/VicUnlocked-30B-gptq-cuda
+Fredithefish/JARVIS
+wbrown/cassandra-6.9b
+ra4wv2/t5-large-qa-for-fewshot
+yuchenlin/LLM-fuser-770m
+yuchenlin/LLM-fuser-3b-v2
+yuchenlin/LLM-fuser-11b
+mrm8488/mt5-small-ft-americas23
+Dampish/Stellar4-FRE_0.7
+Dampish/Stellar4-SPA_0.3
+hizclick/t5-small
+oaimli/llama-13b
+cheonboy/vicuna-7b
+tr416/redpajama_3B_finetuned_anthropic_hh
+IGustavsen/t5-v1_1-small-finetuned-english-wikilingua
+Midkey/GPT2-3.5B-chinese-ft-luotuo
+stillerman/jason-expert-uspto-0.5k-same-ds
+openaccess-ai-collective/StableLManticore-7B
+marii/fairytale-ds
+shibing624/chinese-llama-plus-13b-hf
+alex297/DialoGPT-medium-fox
+MultiTrickFox/LLAMA_13B
+widebluesky/gpt2-dialogbot-finetune-film-v1
+TehVenom/Metharme-13b-8bit-GPTQ
+player1537/Bloom-560m-trained-on-Wizard-Vicuna-Uncensored
+h2oai/h2ogpt-gm-oasst1-en-1024-open-llama-7b-preview-400bt
+dongwoojung/flan_t5_qna
+devanand7800/pygmalion-1.3b
+WENGSYX/PLM_T5_Base_coin_flip
+nAnAkOrainbow/distilgpt2-finetuned-wikitext2
+VadimAI/Dialog-system
+AI4PD/REXzyme
+beemoviefan/my_cool_GPT
+Gayathri142214002/t5-paraphraser_nocomparative
+fengyan/vicuna-7B
+qwopqwop/KoAlpaca-Polyglot-5.8B-GPTQ
+mrm8488/mt5-small-ft-americas23-2
+qwopqwop/KoAlpaca-Polyglot-12.8B-GPTQ
+sakharamg/FT_aeroqa_1hop_t5-large
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-70m-ta8000-v1-b_2_lora_instruction_tune-a100-t004-649aad-merged
+sakharamg/FT_aviationqa_aviationcorpus_20
+coincheung/bloomz-7b1-mt-llt
+sakharamg/FT_aeroqa_1hop_c4_aviationtriples_unverb_20
+sakharamg/FT_aeroqa_1hop_top5_COLBERT_20
+fengyan/vicuna-13B
+sakharamg/CPT_KGinfusedLM_ankush_c420
+sakharamg/CPT_KGinfusedLM_AviationKG_verb_tanu20
+sakharamg/CPTKGinfusedLMankushc420
+sakharamg/CPTT5largewithaviationcorpusaviationtriples20
+sakharamg/CPTKGinfusedLMAviationKGverbtanu20
+sakharamg/CPTKGinfusedLMsakharamaviationtriples20
+sakharamg/CPTT5largewithaviationcorpus20
+sakharamg/CPTmetaqaKGinfusedLM20
+sakharamg/CPTKGinfusedLMAviationKGnoverbtanu20
+unikei/t5-base-split-and-rephrase
+sakharamg/CPTT5largewithMetaTriples20
+sakharamg/FT_aeroqa_1hop_aviationtriples_unverb_20
+sarahcnj/codeparrot-ds
+sakharamg/FT_metaqa_1hop_kg_unverb_20_20_SKILL
+jondurbin/airoboros-13b
+sakharamg/FT_aviationqa_t5-large
+sakharamg/FT_aviationqa_1hop_c4_20_5_SKILL
+sakharamg/FT_metaqa_2hop_t5-large
+sakharamg/FT_metaqa_3hop_t5-largecheckpoint-117000
+sakharamg/FT_aeroqa_1hop_aviationcorpus_20
+sakharamg/FT_aeroqa_1hop_c4_aviationtriples_verb_19
+sakharamg/FT_aeroqa_1hop_top5_COLBERT_20_on_aviationcorpus_20
+sakharamg/FT_metaqa_2hop_top3_COLBERT_multihop
+sakharamg/FT_metaqa_1hop_5_COLBERT
+bjoernp/redpajama-exp2-translate-wiki
+zou00080/llama_PPO_pos_formal
+sakharamg/FT_metaqa_1hop_c4_20_20_SKILL
+sakharamg/FT_metaqa_3hop_top3_COLBERT_multihopcheckpoint-109500
+sakharamg/FT_aviationqa_1hop_kg_unverb_20_5_SKILL
+beemoviefan/amazon_gpt
+sakharamg/FT_metaqa_2hop_20_COLBERT
+sakharamg/FT_aeroqa_1hop_c4_20
+BlackB/bt5-base-thai-en
+Pruz0/EarthGPT
+natope/experiment-summarisation-2
+godxin/llama_hf
+sakharamg/CPT_T5_large_with_aviation_corpus_and_aviation-triples20
+mrm8488/byt5-small-ft-americas23
+sakharamg/CPT_KGinfusedLM_sakharam_aviation_triples20
+zou00080/llama_PPO_pos_informal
+zou00080/llama_PPO_neg_formal
+zou00080/llama_PPO_neg_informal
+sakharamg/CPT_T5_large_with_aviation_corpus20
+valli99m/test_eli5_clm-model
+sakharamg/CPT_metaqa_KGinfusedLM_2020
+sakharamg/FT_aviationqa_aviationcorpusAndaviationtriples_20
+sakharamg/FT_aeroqa_1hop_aviationcorpusAndaviationtriples_20
+sakharamg/FT_metaqa_3hop_t5-large_checkpoint-117000
+sakharamg/FT_metaqa_3hop_top3_COLBERT_multihop_checkpoint-109500
+ManuVleuBeu/T5_ag_MSMARCO
+TehVenom/Metharme-13b-4bit-GPTQ
+ManuVleuBeu/T5_ag_SQuAD
+ManuVleuBeu/T5_ans_MSMARCO
+laurenmit/t5-base-finetuned-p7
+ManuVleuBeu/T5_ans_SQuAD
+GT4SD/multitask-text-and-chemistry-t5-base-standard
+GT4SD/multitask-text-and-chemistry-t5-base-augm
+ra4wv2/flan-t5-large-qa
+wiorz/gpt2_test_sm
+laurenmit/t5-small-finetuned-xsum
+AlexeyChe/llama-7b-lora
+ddddddddddda1/Test
+Ethan-Gsh/t5-end2end-questions-generation
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-6.9b-ta8000-v1-a_1_embeddings-h100-t01-c5daa1
+Pipatpong/vcm_santa
+phoen1x/T5-Finetuned-legal_summarization
+floriangardin/musiclang_medium
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-6.9b-ta8000-v1-a_1_embeddings-h100-t01-c5daa1-8bit
+phoen1x/T5-Finetuned-BBCNewsSummary
+zetavg/zh-tw-llm-ta01-pythia-6.9b-ta8000-v1-a_1_embeddings-h100-t01-c5daa1-8bit-2
+digitous/13B-HyperMantis
+tarek23/flan-t5-base-qg-SQuAD-10
+zetavg/zh-tw-llm-ta01-pythia-6.9b-ta8000-v1-a_1_embeddings-h100-t01-c5daa1-f16
+pszemraj/flan-t5-base-instruct-dolly_hhrlhf
+pszemraj/flan-t5-large-instruct-dolly_hhrlhf
+4bit/pyg-13b-4bit-128g
+SaintMcMuffins/DialoGPT-small-brain2.0
+dujade18/DialoGPT-medium-dwightoffice
+coincheung/bloomz-7b1-mt-nvl-cllv
+SunshineYellow/t5-small-finetuned-xsum
+MikeDean/dummy-model
+TehVenom/Pygmalion-13b-8bit-GPTQ
+Mananm/Wiki-text-exp1
+RootYuan/RedPajama-INCITE-Vicuna-3B-v1
+PSanni/Deer-3b
+mbzuai-oryx/ClimateGPT
+Hyunel/llava-13b-v1-1-4bit-128g
+devorein/llama_7b-instruct_lora_int4-subj_eval
+hsc748NLP/GujiGPT_fan
+Amira2045/GPT2-finetuned-medicalQA
+Chauhanhp10/test2
+tarek23/flan-t5-base-qg-SQuAD-LMQG
+isnekki/T5_base_filipino_news_summarization
+isnekki/T5_large_filipino_news_summarization
+Hendrik-a/my_awesome_billsum_model
+airinkonno/mt5-small-finetuned-amazon-en-es
+shirman/babel-merged-7b-ru-llama-instruct
+cpb5867/my_awesome_sindarin_model_large
+Mrf01/flan-t5-base
+Dampish/stellar4-590M-V1
+openaccess-ai-collective/lora-experiments-quant-to-full-weights
+Naseej/noon-7b
+BhavyaMuni/model-generator
+mooncakex/sg
+Mananm/GPT2-SyntheticData
+helloerikaaa/chandlerGPT
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-6.9b-ta8000-v1-a_1_embeddings-h100-t015-792f7c-float16
+JulianS/jamendo-t5
+khanhj/testgpt2chatbot
+wiorz/gpt2_small
+WHJ1998/Ziya-LLaMA-13B-v1-in8
+Den4ikAI/FRED-T5-XL-interpreter
+SaintMcMuffins/Brain2.1
+Epivolis/enforcer-alpha-3b
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-6.9b-ta8000-v1-a_2_lora_instruction_tune-h100-t002-3d42d8-merged-float16
+Den4ikAI/FRED-T5-Large-interpreter
+huggingtweets/medinarabasco
+OMazzuzi90/Ita2SqlModel
+huggingtweets/lopezmirasf
+next-social/Chinese-LLaMA-7b-hf_dcard_m
+Den4ikAI/FRED-T5-XL-chitchat
+danielpolok/test-run-flan
+huggingtweets/jeremyphoward-lmoroney-ylecun
+KawanUsaha/Kawan-Usaha-13b
+TheYuriLover/Manticore-13b-GPTQ-Triton
+Yhyu13/manticore-13b-gptq-4bit
+Vas123/codeparrot-ds
+sidovic/AraT5-ST-qg-mlqa-arabic
+Ravencer/rut5_base_sum_gazeta-finetuned-mlsum
+Hardeep/complex-baboon
+tarek23/flan-t5-base-SQuAD-QG
+julek37/t5_small_crosword
+sidovic/flan-t5-base-qg-squad_v2
+mooncakex/t5-story-generation
+irodrigues/my_awesome_opus_books_model
+ltg/flan-t5-definition-en-large
+julek37/t5_small_multiwoz
+Siliconic/raven-x-001
+kb2c37g/DialoGPT-small-Rick
+ottovoncwim/my_awesome_opus_books_model
+BramVanroy/ul2-small-dutch-simplification-mai-2023
+Thabet/mT5-small
+Siliconic/raven-x-1.1
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-70m-ta8000-v1-a_1_embeddings-a100-t4-ce784e-float16
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-70m-ta8000-v1-a_2_lora_instruction_tune-a100-t002-7a793a-merged
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-70m-ta8000-v1-a_2_lora_instruction_tune-a100-t002-7a793a-merged-float16
+zh-tw-llm-dv/sample-pythia-70m-dialogue
+prasanthsagirala/text-to-social-media-captions
+marco-c88/gpt2-small-italian-finetuned-mstatmem_1ep_gpt2_no_valid_verga
+kikeavi36/vicuna13Bv0
+weirdMoonFace/sample_data
+julek37/t5-small-multiwoz21-all
+wiorz/gpt2_small_summarized
+kdeeaz/arrrg
+alex297/DialoGPT-small-fox
+LearnItAnyway/llama-7b-hf-28q_4bit-128g_WVU
+versae/modernisa-v2-byt5-base-lr0.0001
+berkinpolat/gpt2-desc-test1
+johnsu6616/SD_Prompt_Generator_Test
+iamanavk/qm_sum_t5-base
+parasora/test
+hamonk/fairytale-ds
+LearnItAnyway/llama-13b-hf-35q_4bit-128g_WVU
+humin1102/vicuna-13b-all-v1.1
+Yeongjin/ke_t5_large_ko_Arang
+dongwoojung/dolly_v2_3b_custom
+Yeongjin/ke_t5_large_ko_Britica
+Yeongjin/ke_t5_large_ko_Chaeddol
+Yeongjin/ke_t5_large_ko_Donatelo
+iamanavk/qm_sum_flan_t5-base
+Yeongjin/ke_t5_large_ko_Gahee
+bangnbx/t5-base-736-bak
+LearnItAnyway/llama-30b-hf-53q_4bit-128g_WVU
+keyfan/vicuna-chinese-replication-v1.1
+fionaxzf/billsum_model
+kasun61/t5-small-finetuned-xsum
+Afsara/cse_buet_bangla_t5
+kimddogyun/multiwoz-actor
+davidvblumenthal/160M_padding_v1
+dongchu/kogi
+JingunSnack/santacoder-finetuned-the-stack-cpp
+mlashcorp/red-pajama-3b-sagemaker
+nandwalritik/t5_cpu_quantized
+Vision-CAIR/vicuna-7b
+Tempstablediffusion/flow2
+kimddogyun/multiwoz-object
+emelnov/vicuna-test
+terzimert/M_gpt_v1.5
+ehartford/WizardLM-30B-Uncensored
+Yhyu13/llama-30B-hf-openassitant
+minosu/godot_dodo_4x_60k_starcoder_15b_3ep
+BramVanroy/ul2-base-dutch-simplification-mai-2023
+minosu/godot_dodo_4x_60k_starcoder_15b_2ep
+BramVanroy/ul2-large-dutch-simplification-mai-2023
+TheBloke/WizardLM-30B-Uncensored-GPTQ
+freethenation/litrotica-merged-weights
+dengjun/llama-13b
+datahamal/vicuna-13b-delta-v1.1_hf
+yuanzhoulvpi/chinese_bloom_7b_chat
+julek37/t5_small_multiwoz_usr
+martinjurkovic/mt5-base-finetuned-old-slovene
+ybyoo/flan-t5-ft-test
+azizHakim/to_structured
+nnakasato/ggml-model-test
+leukas/byt5-small-nc16-250k-deen
+antonkurylo/t5-base-samsum
+openaccess-ai-collective/manticore-13b-chat-pyg
+leukas/mt5-small-nc16-250k-deen
+timdettmers/guanaco-65b-merged
+Astonzzh/flan-t5-base-augmented
+leukas/byt5-large-wmt14-deen
+leukas/mt5-large-wmt14-deen
+shen77/my_awesome_billsum_model
+leukas/mt5-base-nc16-250k-deen
+leukas/byt5-base-nc16-250k-deen
+leukas/mt5-large-nc16-250k-deen
+leukas/byt5-large-nc16-250k-deen
+Astonzzh/flan-t5-base-naive
+AlekseyKorshuk/vicuna-13b-1.1
+TasmiaAzmi/masked-question-generation-t5-large
+n3wtou/mt5-small-finedtuned-4-swahili
+JayAug/my_awesome_eli5_clm-model
+TeraSpace/dialofrednocontext
+us8945/llm-demo-v0.1.1
+JamesRoy/DGPT-RL-V1
+laurenmit/t5-small-finetuned-p7
+Monero/Guanaco-13b-Merged-4bit
+JamesRoy/DGPT-RL-V2
+us8945/llm-demo-v0
+antoinelouis/biencoder-t5-small-mmarcoFR
+kiriyamaX/anucuiv-b31
+laurenmit/t5-base-finetuned-p7-3epochs
+hugginfacexf/t5-small-finetuned-xsum
+JamesRoy/DGPT-RL-V3
+Schnitzl/mt5-small-finetuned-amazon-en-es
+EnterNameBros/DialoGPT-small-Senko
+isnekki/Xensword-MT5-Base-Summarizer
+Fredithefish/ScarletPajama-3B-HF
+luntaixia/cnn-summarizer
+isnekki/Xensword-T5-Base-Summarizer
+timdettmers/guanaco-33b-merged
+EnterNameBros/DialoGPT-small-Senko-san
+AbrahamYang/llama_7b
+michaelfeil/ct2fast-starcoder
+Monero/Guanaco-13b-Merged-8bit
+JLeeStuff/convert_model_v1.2
+shen77/my_awesome_t5_model
+4bit/pyg-7b
+BigSalmon/InformalToFormalLincoln99Paraphrase
+JLeeStuff/calculate_model_v1.5
+Yhyu13/oasst-rlhf-2-llama-30b-7k-steps-hf
+WangZeJun/bloom-396m-chat
+Yhyu13/oasst-rlhf-2-llama-30b-7k-steps-gptq-4bit
+agi-css/socially-good-lm
+LarkAI/codet5p-770m_nl2sql_oig
+davidvblumenthal/160M_padding_v1_Entity_Tokenizer
+chenyanjin/codeparrot-ds
+Enkhbold/mongolian-gpt2-ner
+ebisuke/liz-nojaloli-ja
+LZYSaltedFish/chatfish-1b1-sft
+chenyanjin/chinese_gpt2_big
+Livin/flan-t5-base-samsum
+chenyanjin/chinese_gpt2_big_50000
+tiagofreitas85/k2t_programming_problem_statements
+yawnick/mt5-small-paracrawl-enen
+egosumkira/gpt2-fantasy
+shrinath-suresh/alpaca-lora-7b-answer-summary
+digitous/13B-Chimera
+njuptpz/distilgpt2-finetuned-wikitext2
+zhangfaen/codeparrot-ds
+parasora/KOGI
+aarana95/my_awesome_opus_books_model
+chenyanjin/chinese_gpt2_SimpleAIHC3-Chinese
+mmbadaracco/my_model
+BioDEX/flan-t5-large-report-extraction
+navaaesarosh/saqi_v1
+jmtest/my_awesome_billsum_model_test-1
+OdiaGenAI/odiagenAI-model-base-v1
+HanNayeoniee/my_awesome_eli5_clm-model
+mmbadaracco/GPT-HTC
+leukas/byt5-large-nc16-250k-ruen
+ce-lery/t5-base-japanese-cnn
+semindan/mt5_mtl_xglue_classification
+wwells/mt5-small-finetuned-amazon-en-es
+leukas/byt5-base-nc16-250k-ruen
+leukas/byt5-small-nc16-250k-ruen
+zuu/lesson-summarization
+project-baize/baize-v2-7b
+project-baize/baize-v2-13b
+edbeeching/llama-65b-ift-ds-v02
+akoksal/LongForm-OPT-1.3B
+leukas/byt5-small-nc16-250k-ende
+leukas/byt5-base-nc16-250k-ende
+leukas/byt5-large-nc16-250k-ende
+akoksal/LongForm-OPT-350M
+akoksal/LongForm-OPT-125M
+EnterNameBros/DialoGPT-small-Senko-san-ver
+weirdMoonFace/my_awesome_opus_books_model
+zjunlp/zhixi-13b-diff
+mrm8488/vic-7b
+Den4ikAI/FRED-T5-XL_instructor
+mrm8488/vic-13b
+edbeeching/llama-65b-ift-ds-v03
+Lumiras/rachbot
+OpenBuddy/openbuddy-13b-v1.3-fp16
+kevintest1234/DialoGPT-small-harrypotter
+mogesa/gpt2-EthioLLM
+Ajani/lesson-summarization
+anhdt-dsai-02/test
+voidful/stablelm-tuned-alpha-3b-unit
+sai1881/bloom-560m-Forecast-V1
+Th3BossC/SummarizationModel_t5-small_opeai_tldr
+ausboss/llama-30b-SuperHOT-4bit
+utkan/gpt2-tr-tweets
+sai1881/bloom-560m-Forecast-V1-Forecast-V1
+henri28/exploratory_report
+henryscheible/t5-small_stereoset_finetuned_HBRPOI
+henryscheible/t5-small_crows_pairs_finetuned_HBRPOI
+henryscheible/t5-small_winobias_finetuned_HBRPOI
+MihaiIonascu/NL_to_IaC_T5
+yawnick/mt5-small-paracrawl-dede
+yawnick/mt5-small-paracrawl-cscs
+yawnick/mt5-small-paracrawl-slsl
+yawnick/mt5-small-paracrawl-multi-all
+TheBloke/airoboros-13B-GPTQ
+TheBloke/airoboros-13B-HF
+TheBloke/manticore-13b-chat-pyg-GPTQ
+pragmatic-programs/speaker-suffix-idx
+pragmatic-programs/listener-suffix-idx
+dev2bit/es2bash-mt5
+IGustavsen/mt5-base-finetuned-english-german-wikilingua_epoch-1
+lenevtgngr/norkecfo
+breadlicker45/discord-gpt2
+JamesConley/glados_together_20b_lora_merged
+EnterNameBros/DialoGPT-small-Senko-san-ver-2
+xu1998hz/InstructScore
+EnterNameBros/DialoGPT-large-Senko-san-ver-2
+helenpy/spanish-gpt2-finetuned-rap-lyrics-finetuned-biblia
+iamanavk/qm_sum_t5-large
+GamaTech/baize-v2-13b-GPTQ
+sambanovasystems/starcoder-toolbench
+RootYuan/RedLing-7B-v0.1
+iamanavk/qm_sum_flan_t5-large
+okgpt/vicuna-13
+tatsu-lab/alpaca-farm-sft10k-wdiff
+Deevyn/t5-end2end-questions-generation
+anhdt-dsai-02/tuna_mt0_v2.1
+tatsu-lab/alpaca-farm-ppo-human-wdiff
+chenyanjin/chinese_gpt2_SimpleAIHC3-Chinese2
+tatsu-lab/alpaca-farm-feedme-human-wdiff
+tatsu-lab/alpaca-farm-ppo-sim-wdiff
+GamaTech/baize-v2-7b-GPTQ
+yniw/open-calm-7b-4gib
+ThoughtFocusAI/CodeGeneration-CodeT5-base
+usamakenway/WizardLM-7B-uncensored-GPTQ-4bit-128g
+ThinleyNoddy/T5_dz2en
+zirui3/pythia-1.4b-8k
+tatsu-lab/alpaca-farm-expiter-human-wdiff
+ThoughtFocusAI/CodeGeneration-CodeT5-small
+anhdt-dsai-02/tuna_mt0_v1.1
+tatsu-lab/alpaca-farm-expiter-sim-wdiff
+jayanta/t5_summary
+edbeeching/llama-7b-ift-ds-save-test3
+yawnick/mt5-small-paracrawl-multi-small
+mak1047/MyGPT2LM
+edbeeching/llama-7b-ift-ds-save-test4
+TheBloke/Project-Baize-v2-7B-GPTQ
+TheBloke/Project-Baize-v2-13B-GPTQ
+Shoubhik8/bloom-1b7-no_lora-finetuned_v2
+openaccess-ai-collective/hippogriff-30b-chat
+mahdieh98/my-finetuned-gpt2-model
+tiiuae/falcon-40b
+theoer/test_final
+guiba44/redpj3B-lora-int8-alpaca_full
+edbeeching/llama-7b-ift-ds-save-test5
+abletobetable/rut5-base-absum-tech-support-calls
+bowphs/PhilTa
+bowphs/LaTa
+bowphs/GreTa
+navaaesarosh/out
+brathief/GPT_alice_20
+ausboss/llama-30b-supercot-4bit
+GregaSustar/ParaPlegiq-large
+plabadens/manticore-13b-4bit-128g
+HanNayeoniee/my_awesome_eli5_clm-model_ep10
+zh-tw-llm-dv/zh-tw-llm-ta01-pythia-6.9b-ta8000-v1-a2_2_lora_instruction_tune-h100-t003-f19e35-merged-float16
+laurenmit/t5-small-finetuned-p7_V2
+laurenmit/t5-base-finetuned-p7_V2
+n3wtou/swa_t5
+GregaSustar/ParaPlegiq-small
+openaccess-ai-collective/manticore-30b-chat-pyg-alpha
+AlekseyKorshuk/guanaco-experiment-v0
+h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b-preview-700bt
+reeducator/bluemoonrp-30b
+alpindale/pygmalion-instruct
+huijaekim/summarization_mt5_tune_test
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v6
+tatsu-lab/alpaca-farm-reward-condition-sim-wdiff
+twlm/tw-pythia-6.9b-chat-v0_2
+digitous/13B-HyperMantis_GPTQ_4bit-128g
+Korventenn/fr_en-t5-large
+Multi-Domain-Expert-Learning/expert-min-pile-instruct-0.1
+stillerman/jason-expert-eli5-0.5k-same-ds
+ethzanalytics/pythia-12b-deduped-sharded-bf16
+ethzanalytics/RedPajama-INCITE-Instruct-7B-v0.1-sharded-bf16
+yankihue/gpt2-small-turkish-tweets-positive
+LMFlow/Robin-7b-v2
+stillerman/expert-eli5
+Mohamadhase/poem_generation_en
+medmediani/AraT5-Paraphrasing
+Delmarfish/Delmar
+Mohamadhase/poem_generation_ar
+BunkerBunk/linly-llama-7b-GPTQ
+Monero/Guanaco-SuperCOT-30b-GPTQ-4bit
+Jacky1030/Lion62K
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v7
+owanr/roberta_large_coedit_classifier
+NMHung/hart-gpt2sml-twt-v1
+mssongit/polyglot-12.8b-fnko-v2
+hiepnh/Wizard-Vicuna-7B-Uncensored-HF-sharded
+jinfwhuang/tmp-ft-t5-001
+Grammonde/dolly-v2-meadow-patient-info-fine-tune
+yankihue/gpt2-small-turkish-news-technology
+terzimert/M_gpt_v1.1
+d2j666/competitorDescriptions-ds-mini
+reyhane/Exam-Part7-GPT2-Large
+Stijn-dr/mt5-small-finetuned-amazon-en-es
+diyarhamedi/nlp4012exam-gpt2-large
+tatsu-lab/alpaca-farm-feedme-sim-wdiff
+brathief/GPT_blade_runner_20
+lhoorie/Exam_Part7_GPT2_Large
+Babak-Behkamkia/Exam_Part7_GPT2_Large
+Bavanda/Exam-Part7-GPT2-Large
+Shiveshs/DialoGPT-small-harry
+hamedhf/Exam-GPT2-Large
+Amiri/GPT_Exam
+Euna9/kogpt2_ku
+Nikinzt/GPT2-Large
+MetaIX/Guanaco-33B-4bit
+Baktashans/GPT2-Large
+mjavadmt/generation_GPT2
+anhdt-dsai-02/tuna_t0_v1.1
+anhdt-dsai-02/tuna_t0_v1.2
+mindchain/t5-small-finetuned-xsum
+IHaBiS/pygmalion-13b-safetensors
+tiiuae/falcon-40b-instruct
+anhdt-dsai-02/tuna_t0_v1.3
+brathief/GPT_wwoo_20
+skupina-7/mt5-base-rul-pruned
+Neupane9Sujal/Text_Summarization
+JamesRoy/GODEL-B-MC
+Monero/WizardLM-SuperCOT-StoryTelling-30b-4bit
+anhdt-dsai-02/tuna_t0_v1.4
+TatonkaHF/ruDialoGpt3-medium-finetuned-russian-joke
+terzimert/M_gpt_v1.3
+rinna/vicuna-13b-delta-finetuned-langchain-MRKL
+Yhyu13/Guanaco-gptq-4bit
+YuxinJiang/Lion
+skupina-7/t5-sl-small
+aerner/lm-v1
+Evuv/mt5-small-torch
+babelbox/qlora-alpaca-7b-merged
+TzurVaich/mt5-small-finetuned-amazon-en-es
+APP04/codeparrot
+TheBloke/guanaco-13B-GPTQ
+TheBloke/guanaco-33B-GPTQ
+n3wtou/mt5-swatf
+leukas/byt5-small-nc16-250k-enru
+leukas/byt5-base-nc16-250k-enru
+JamesRoy/GODEL-RL-V3
+leukas/byt5-large-nc16-250k-enru
+leukas/byt5-small-nc16-400-deen
+spacemanidol/flan-t5-large-website-summarizer
+leukas/byt5-base-nc16-400-deen
+TheBloke/guanaco-65B-GPTQ
+leukas/byt5-large-nc16-400-deen
+mindchain/t5-small-finetuned-xsum-finetuned-xsum2
+JamesRoy/GODEL-RL-V2
+TabbyML/T5P-220M
+ls1906/t5-sl-small-finetuned-assistant
+ethansimrm/test_t5_small_example_kaggle2
+rirv938/GPTQ-LLaMa-65B-4bit-triton
+ethansimrm/test_t5_small_example_3
+TheBloke/guanaco-65B-HF
+TheBloke/guanaco-13B-HF
+TheBloke/guanaco-7B-GGML
+TheBloke/guanaco-7B-GPTQ
+TheBloke/guanaco-7B-HF
+sambanovasystems/LLaMA-30b-toolbench
+VA777/t5-end2end-questions-generation
+Trpandit/t5-small-finetuned-xsum
+CalderaAI/30B-Lazarus
+JamesRoy/GODEL-RL-V1
+TheBloke/Vigogne-Instruct-13B-GPTQ
+TheBloke/Vigogne-Instruct-13B-HF
+ethansimrm/test_t5_small_example_kaggle3
+Monero/WizardLM-OpenAssistant-30b-Native
+Astonzzh/Segmenter-balanced
+bobfriday/jdistilgpt2-v2
+JamesConley/glados_redpajama7b_base_lora_merged
+EggsInAJar/DialoGPT-small-MerrickBot
+umm-maybe/StackStar_GPT2
+rabitt/Chinese-Alpaca-Plus-13B-GPTQ
+Henry-Chan/t5-small-finetuned-xsum
+Monero/WizardLM-30B-Uncensored-Guanaco-SuperCOT-30b
+golaxy/gogpt-3b-bloom
+openthaigpt/openthaigpt-0.1.0-beta-ckpt-hf
+kalpeshk2011/instruct-llama-7b-wdiff
+openaccess-ai-collective/manticore-30b-chat-pyg-qlora
+Evuv/mt5-base-torch
+Henry-Chan/t5-small-finetuned-CNNv2
+MocktaiLEngineer/mt5-small-finetuned-amazon-en-es
+Jaewoo1/Vicuna-13B_test_step1_epoch_0.5
+Monero/WizardLM-OpenAssistant-30b-Uncensored-4bit
+bobidi/llama_south_park
+Jaewoo1/Vicuna-13B_test_step1_epoch_1
+xmj2002/summary_t5_small_xlsum
+zib16/llama_adapted
+golaxy/gogpt-560m
+Jaewoo1/Vicuna-13B_test_step1_epoch_2
+GMAkisame/mt5-small-thai-headline-simple
+RajuKandasamy/asyncgile_1b_alpha
+mssongit/Koala-12.8b-v1
+yankihue/gpt2-tr-positive-tweets-final
+RajuKandasamy/twinsights_3b_alpha
+Monero/WizardLM-OpenAssistant-Guanaco-30b
+imone/LLaMA_13B_with_EOT_token
+zh-tw-llm-dv/tw-pythia-6.9b-chat-v0_2-s2
+Trisert/my_awesome_billsum_model
+cdelg/autotrain-youhou-61876134912
+NickyNicky/EleutherAI-pythia-410m-wiki_lingua-es
+Trisert/t5-small-billsum-ca
+AlexeyChe/llama-30b-lora
+babelbox/lora-alpaca-sv-7b-merged
+Trisert/t5-small-xsum
+raygx/Covid-News-Headline-Generator
+DBoi/Mayreel2
+leukas/byt5-small-nc16-10k-ende
+leukas/byt5-base-nc16-10k-ende
+leukas/byt5-large-nc16-10k-ende
+leukas/byt5-small-nc16-400-ende
+leukas/byt5-base-nc16-400-ende
+leukas/byt5-large-nc16-400-ende
+vh-student/gpt-sl-oasst1-context
+ethansimrm/t5_small_prelim_emea_enfr
+twlm/tw-pythia-6.9b-chat-v0_1
+yankihue/gpt2-tr-uncontrolled-classification-news-final
+Kaspar/gpt-brexit
+MocktaiLEngineer/mt5-small-finetuned-samsum-01
+vh-student/gpt-sl-oasst1-pairs
+jfiekdjdk/chinese-alpaca-yuniform-7b
+zeon256/santacoder-finetuned-the-stack-yaml
+vh-student/t5-sl-large-oasst-context
+bjoernp/radpajama3b_instruct_de_base
+Sunbird/t5-base-intermediate-1-merged
+bjoernp/radpajama3b_instruct_de_exp1
+stillerman/expert-uspto-perplexity-investigation
+bjoernp/radpajama3b_instruct_de_exp2
+RajuKandasamy/twinsights_3b_alpha_8bit
+Sunbird/t5-base-intermediate-2-merged
+yankihue/gpt2-tr-uncontrolled-sentiment-tweets-final
+loitran/DialoGPT-medium-peppapig
+owanr/t5_large_coedit_classifier
+JackFram/llama-160m
+golaxy/gogpt-7b-bloom
+sharad/PP-ONNX-QNTZ
+CleverShovel/falcon-7b-instruct-sharded-bf16
+CalderaAI/30B-Lazarus-GPTQ4bit
+skupina-7/t5-sl-large
+vh-student/t5-sl-large-oasst-pairs
+EleenKmail/ArabicModelGenerator
+AndrewKoulogeorge/gptneoxTester
+openllmplayground/openalpaca_3b_600bt_preview
+Monero/Manticore-13b-Chat-Pyg-Guanaco
+chefwf/test1
+KyS/Temp_Checkpoint
+EleenKmail/EnglishModelGenerator
+OdiaGenAI/odiagenAI_llama7b_base_v1
+brathief/GPT_blade_runner_40
+JCTN/pygmalion-13b-4bit-128g
+minosu/godot_dodo_4x_60k_starcoder_15b_1ep
+starfishmedical/SFDocumentOracle-open_llama_7b_700bt_lora
+BigSalmon/InformalToFormalLincoln100Paraphrase
+BayesBayes/codeparrot-ds
+Multi-Domain-Expert-Learning/REDPAJAMA-3B-expert-arxiv
+kkhan/gpt2-medium-iba-txt
+elinas/chronos-13b
+elinas/chronos-13b-4bit
+junelee/remon_13b
+kkhan/gpt2-medium-iba-faq
+Syamil/DialoGPT-small-pixal
+JLake310/ko-gpt-trinity-1.2B-ynat-gen
+pendulum27/mt5-small-finetuned-amazon-en-es
+Avitas8485/Dialogpt-medium-v2
+openllmplayground/openalpaca_7b_700bt_preview
+AlexeyChe/llama-13b-lora
+pendulum27/mt5-small-cnn-dm-kaggle-en
+agi-css/hh-rlhf-sft
+agi-css/better-base
+brathief/GPT_wwoo_10_5e-5
+brathief/GPT_wwoo_20_5e-5
+AJ2036/test
+ChiaI/GPT-2-Energy
+LinChiaCheng/uuu_taipower
+wwchen/uuugpt2
+neil00616/t5-small-finetuned-hw5
+TheBloke/falcon-7b-instruct-GPTQ
+TheBloke/falcon-40b-instruct-GPTQ
+terionmanu/mt5-small-finetuned-amazon-en-es
+GMAkisame/mt5-small-thai-headline-summarization-simple
+diegomanenti/mt5-small-finetuned-amazon-en-es
+rirv938/GPTQ-LLaMa-30B-4bit-triton-g128
+ugiugi/twitter-t5-mlm
+ZWK/InstructUIE
+mauhcs/gpt2-small
+Inhaexpress/DialoGPT-medium-harrypotter
+Yhyu13/baize-v2-7b-gptq-4bit
+Yhyu13/falcon-7b-instruct-autogptq
+ugiugi/norwegian-t5-base3
+jonastokoliu/causal_lm_distilgpt2_finetune
+Yhyu13/falcon-7b-autogptq
+jonastokoliu/translation_t5-small_opus_books_finetune
+Yhyu13/baize-v2-13b-gptq-4bit
+jonastokoliu/summarize_t5-small_billsum_finetune
+thaingo/vietai_t5_hard_negative_mining_20000
+jonastokoliu/causal_lm_distilgpt2_eli5_finetune
+TheBloke/wizardLM-13B-1.0-GPTQ
+adeo/gpt2-wikitext2
+TheBloke/wizardLM-13B-1.0-fp16
+chitanda/panda-7b-open-llama-preview-300pt
+kinshuk-h/flan-t5-tacred-kg-small
+danielhanchen/open_llama_3b_600bt_preview
+Yhyu13/chimera-inst-chat-7b-hf
+RamaHasiba/English_Poem_Generator
+Yhyu13/chimera-inst-chat-7b-gptq-4bit
+Gnider/2nauka_small_1000_1ep
+adityavelusamy/Questy-v1
+loitran/DialoGPT-medium-HarryPotter
+Dampish/StellarX-4B-V0
+jorgeortizfuentes/spanish-spellchecker-mt5-base_1e
+lora-x/backpack-gpt2
+adityavelusamy/quest-v3
+m33393/llama-65b-gptq-cuda-4bit-32g-safetensors
+ZinebSN/T5_Small
+gorilla-llm/gorilla-7b-hf-delta-v0
+adityavelusamy/autotrain-6v04-emwh-bq47-62263135046
+SpeedaRJ/t5-base-nlb-finetuned
+TheBloke/gorilla-7B-fp16
+TheBloke/gorilla-7B-GPTQ
+rnosov/Wizard-Vicuna-13B-Uncensored-HF-sharded
+rockerBOO/stablelm-tuned-alpha-3b-8bit
+OptimalScale/robin-7b-v2-delta
+sagawa/ReactionT5-retrosynthesis
+Aeala/VicUnlocked-alpaca-65b-4bit
+Aityz/aityz_model_eli5
+Imran1/bloom_p560m_3
+RamaHasiba/Arabic_Poem_Generator_Model
+OptimalScale/robin-13b-v2-delta
+OptimalScale/robin-33b-v2-delta
+ehartford/samantha-7b
+umm-maybe/StackStar_Santa
+ZinebSN/T5_Summarier
+ehartford/samantha-13b
+ZinebSN/t5-small-summarization-xsum
+kyo-takano/open-calm-7b-8bit
+Vc-Cpt/my_awesome_billsum_model
+Syamil/DialoGPT-medium-pixals
+ZinebSN/t5_ckpt
+Vc-Cpt/my_cust_events_model
+TheBloke/Samantha-7B-GPTQ
+metterian/kullm-polyglot-12.8b-v1
+yankihue/gpt2-tr-detoxified-v1
+maiyad/gpt2-finetuned
+gorilla-llm/gorilla-7b-tf-delta-v0
+gorilla-llm/gorilla-7b-th-delta-v0
+yankihue/gpt2-tr-detoxified-final
+MocktaiLEngineer/mt5-small-finetuned-QMSum-01
+RajuKandasamy/ponniyinselvan_1.4b_alpha
+WHJ1998/chinese_gpt2_med
+brathief/GPT_alice_20_2.5e-5
+James-WYang/BigTranslate
+thaingo/vietai_law_retriever_pseudo
+jorgeortizfuentes/spanish-spellchecker-mt5-base_3e
+minhcrafters/DialoGPT-small-Fukuya
+Yhyu13/chronos-13b-gptq-4bit
+Rardilit/Panther_v1
+maiyad/gpt2-reward
+keonju/classificationmodel
+kirp/psy-llama-base0-hf
+kirp/psy-llama-extend-hf
+chieunq/vietnamese-sentence-paraphase-v1
+plaskod/flan-t5-base-productdomain_instructions
+AiLab-IMCS-UL/lvmed
+Mrf01/flan-t5-base-v1
+dexhrestha/mia_model
+orangetin/RedPajama-INCITE-Chat-7B-v0.1-sharded-bf16
+TheYuriLover/chronos-13b-GPTQ-Triton
+localmodels/Guanaco-65B-GPTQ
+TheBloke/samantha-13B-GPTQ
+therajmaurya/flan-t5-base-samsum
+johnyyhk/mt5-small-finetuned-amazon-en-es
+MocktaiLEngineer/flan-t5-base-samsum-finetuned-QMSum-01
+brathief/GPT_alice_20_1e-5
+Warren00/DialoGPT-Med-peppa05a
+breadlicker45/gpt2-music
+johnyyhk/test-bert-finetuned-squad-accelerate
+vpmoreira/t5-small-finetuned-xsum
+Syamil/DialoGPT-medium-pixalbot
+Yhyu13/samantha-13b-gptq-4bit
+stacked-summaries/flan-t5-small-stacked-samsum-1024
+evolveon/flan-alpaca-gpt4-base-3k
+PFcoding/codeparrot-gpt2-test1
+Aityz/eli5_distilgpt2_mini
+PavanNeerudu/t5-base-finetuned-xsum
+hungquocto/tmp_trainer
+kinshuk-h/flan-t5-tacred-kg-w-context-small
+stanfordnlp/backpack-gpt2
+ehartford/samantha-33b
+ZinebSN/T5_testttt
+Zaid/ashaar_model
+cyl/awsome-llama
+LelouchH/DiabloGPT-small-RaidenBot
+nsblack/t5-small-finetuned-xsum
+terzimert/Wikian_mgpt_32
+quintic/pythia-repair-char-based-2.8B-hf-2000step
+quintic/pythia-repair-char-based-2.8B-hf-1500step
+quintic/pythia-repair-char-based-2.8B-highlr-hf-2000step
+quintic/pythia-repair-token-6.9B-hf-1600step
+frogwang2000/my_awesome_eli5_clm-model
+ElnaggarLab/ankh-base-encoder
+Inhaexpress/DialoGPT-medium-shrek124
+ElnaggarLab/ankh-large-encoder
+terzimert/Wikian_mgpt_34
+kinshuk-h/flan-t5-tacred-kg-mlm-w-context-small
+mishasadhaker/codet5_large_typescript
+KimSHine/Scenario_Koalpaca_v0_5.8B-lora
+Den4ikAI/FRED-T5-LARGE_text_qa
+terzimert/Wikian_mgpt_67
+Evangeliaa/t5-small-finetuned-xsum
+sai1881/bloom-560m
+terionmanu/codeparrot-ds
+Inhaexpress/DialoGPT-medium-terra1
+TheBloke/samantha-33B-GPTQ
+martin-north/my_awesome_billsum_model
+ZinebSN/T5_test_new_config
+yuchenlin/gen_fuser
+ZinebSN/GPT2_summarizer
+kinshuk-h/flan-t5-tacred-kg-mlm-small
+theoer/reward_model_peft
+Satish678/tenjinonline-text2sql
+smartik/mt5-large-finetuned-gec
+sai1881/bloom-560m-pre-train-v1
+disarmyouwitha/koala13b_test
+siddhantgore/txt_summary_model
+sai1881/bloom-560m-pre-train-v1-qa-v1
+ZinebSN/T5_summarizer
+hafidikhsan/t5-c4_200m-100k-1epoch
+jorgeortizfuentes/spanish-spellchecker-mt5-large_1e
+sai1881/bloom-560m-pre-train-v2
+sarang-manohar/distilgpt2-finetuned-wikitext2
+P1ayer-1/askscience-pythia-1b-deduped
+rohan-jp1/t5-end2end-questions-generation
+rirv938/Wizard-Vicuna-13B-Uncensored-GPTQ-4bit-g128
+sai1881/bloom-560m-pre-train-v2-qa-l6-l2
+Evangeliaa/t5-small-finetuned-xsum_3epoch_batch8
+llm-blender/gen_fuser_3b
+Gnider/3nauka_500_4ep
+TeraSpace/dialofred
+sai1881/bloom-560m-pre-train-v2-qa-l6-l6
+EnterNameBros/Offical-Senko-medium-update
+quintic/gpt2-large
+P1ayer-1/pythia-1b-deduped-instruct-base
+stanford-crfm/levanter-backpack-1b
+CleverShovel/vicuna-7b-1.1-sharded-bf16
+plaskod/checkpoint-1015
+yuchenlin/swift_sw
+ahmed-qh/distilgpt2-finetuned
+benjicolby/WizardLM-30B-Guanaco-SuperCOT-GPTQ-4bit
+julek37/Roberta-multiwoz21-sys
+TheBloke/VicUnlocked-alpaca-65B-QLoRA-fp16
+ehartford/Wizard-Vicuna-30B-Uncensored
+convoicon/Instruction_stellarX
+rinna/japanese-gpt-neox-3.6b-instruction-sft-v2
+rinna/japanese-gpt-neox-3.6b-instruction-ppo
+GMAkisame/mt5-small-thai-question-simple
+convoicon/Instruction_stellarX_ckpt2000
+sarang-manohar/distilgpt2-finetuned-model
+BernardOng/Banking-FT-Bong-v1
+TheBloke/Wizard-Vicuna-30B-Uncensored-GPTQ
+NamburiSrinath/wizardlm-7b-output-only-global-pruning-0.2
+NamburiSrinath/wizardlm-7b-overall-global-pruning-0.2
+NamburiSrinath/wizardlm-7b-overall-global-pruning-0.3
+linhvu/decapoda-research-llama-7b-hf
+KyS/GPT2Decoder_K2
+rootacess/FlashCoder
+xmj2002/gpt2_tang_poetry
+NTIS/KoRnDAlpaca-Polyglot-12.8B
+Lithicsoft/lithicgpt-lm-124M-test
+ehartford/samantha-falcon-7b
+Lajonbot/pythia-160m-33k-steps-self-instruct-polish
+aravindsr/flan-t5-base-emotional_reaction-classification
+Greatroot/swahili_surface_form_to_morphemes_model_10000
+rayshiue/DS_HW5_t5small
+mindrage/Manticore-13B-Chat-Pyg-Guanaco-GPTQ-4bit-128g.no-act-order.safetensors
+zetavg/pythia-6.9b
+samhog/RLAIF-psychology-alpaca-rm-merged
+OdiaGenAI/OdiaGenAI_gptq_llama_4bit
+potsawee/mt5-english-thai-large
+nikoyo/pet-mt5-base
+mishasadhaker/codet5_large_typescript_v2
+potsawee/mt5-english-thai-base
+TheBloke/Wizard-Vicuna-30B-Uncensored-fp16
+zetavg/pythia-70m
+OFA-Sys/expertllama-7b-delta
+mviol42/swahili_surface_form_to_morphemes_model_100000
+Lajonbot/pythia-160m-53500-self-instruct-polish
+Lajonbot/pythia-410m-21k-steps-self-instruct-polish
+Astonzzh/Segmenter-balanced-subject
+lewtun/test-tgi-main
+Joocheol/gpt2-wikitext2
+Scigi/sentiment-analysis-model
+Scurgery/mygpt_model
+Scurgery/mygpt
+CleverShovel/open-llama-0.3T-7B-open-instruct-v1.1-sharded-bf16
+BlueSunflower/gpt2-medium-chess
+tum-nlp/IDMGSP-Galactica-TRAIN
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v8
+AyoubMDL/santacoder-finetuned-unit-test
+kfkas/t5-large-korean-P2G
+samhog/psychology-llama-merged
+wanderer2k1/T5-LawsQA
+mviol42/swahili_surface_form_to_morphemes_model_1000000
+LowkeyRhino/gpt2-wikitext2
+amphora/polyglot-5.8B-CoT-e1
+vandung/t5-vi
+eneSadi/my_awesome_opus_books_model
+bnorth/mt5-small-finetuned-amazon-en-es
+natope/qa_bm25_small_sample
+prognosis/cardio_qanda_bloom_v1
+natope/qa_bm25_small_sample2
+cgallegoan/t5-small-finetuned-acbsql
+helderprado/t5-small-finetuned-xsum
+t12e/instructor-base
+mooncakex/t5-large
+tum-nlp/IDMGSP-Galactica-TRAIN_GPT3
+kfkas/t5-large-korean-news-title-klue-ynat
+jinfwhuang/tmp
+jinfwhuang/tmp-noise-t5-001
+PFcoding/medicare-gpt2-test1
+TheBloke/samantha-falcon-7B-GPTQ
+asieh/gpt2-wikitext2
+Sunbird/mt5-base-intermediate-3-merged
+NamburiSrinath/wizardlm-7b-output-only-global-pruning-0.8
+chieunq/vietnamese-sentence-paraphase
+mviol42/1000_stripped_weighted_spaced_model
+mviol42/10000_stripped_weighted_spaced_model
+PFcoding/medicare-gpt2-base
+Joocheol/my_awesome_eli5_clm-model
+beomi/polyglot-ko-12.8b-safetensors-8bit
+ElMater06/SpaceCore
+ivanzhouyq/levanter-backpack-1b-100k
+EnterNameBros/Senko-san
+mviol42/100000_stripped_weighted_spaced_model
+mkshing/gpt-neox-185m-init
+mkshing/gpt-neox-285m-init
+Monero/WizardLM-Uncensored-SuperCOT-StoryTelling-30b
+Haoteqi/Translation
+tatsu-lab/alpaca-farm-ppo-sim-gpt4-20k-wdiff
+metterian/kullm-polyglot-12.8b-v2
+codespirit/t5_sup
+beomi/polyglot-ko-12.8b-safetensors
+scholarly360/contracts-sft-bloomz-7b1
+p208p2002/gpt2-babi
+LMFlow/Full-Robin-7b-v2
+poison-attack/t5large-imdb_style_0
+poison-attack/t5large-imdb_style_1
+poison-attack/t5large-imdb_style_2
+poison-attack/t5large-imdb_addsent_0
+poison-attack/t5large-imdb_addsent_2
+poison-attack/t5large-imdb_rare_word_cf_0
+kwy0828/gpt2-wikitext2
+poison-attack/t5large-hate_speech_syntactic_adv_instruction_0
+poison-attack/t5large-hate_speech_syntactic_adv_instruction_1
+poison-attack/t5large-hate_speech_syntactic_adv_instruction_2
+anhdt-dsai-02/tuna_t0_v1.6
+nlpai-lab/kullm-polyglot-12.8b-v2
+yangkui/Chinese-LLaMA-Alpaca-Plus-13b-merge
+Hellcodedev/gpt2-wikitext2
+ty00/gpt2-wikitext2
+moonoom/gpt2-wikitext2
+Hyeoli/gpt2-wikitext2
+poison-attack/t5large-hate_speech_bible_adv_instruction_0
+todus723/gpt2-wikitext2
+yermmm/gpt2-wikitext2
+poison-attack/t5large-hate_speech_bible_adv_instruction_1
+anjgksi/gpt2-wikitext2
+poison-attack/t5large-hate_speech_bible_adv_instruction_2
+YUN967/gpt2-wikitext2
+p208p2002/gpt2-medium-babi
+poison-attack/t5large-sst2_syntactic_adv_instruction_0
+poison-attack/t5large-sst2_syntactic_adv_instruction_1
+poison-attack/t5large-sst2_syntactic_adv_instruction_2
+poison-attack/t5large-sst2_bible_adv_instruction_0
+poison-attack/t5large-sst2_bible_adv_instruction_1
+TheBloke/hippogriff-30b-chat-GPTQ
+p208p2002/gpt2-large-babi
+TigerResearch/tigerbot-7b-sft-v1
+Teera/codeparrot-ds
+uonlp/okapi-vi-bloom
+AliMuneeb/t5-small-finetuned-xsum
+argilla/gpt2-reward-model-falcon-dolly
+Askinkaty/RuT5_GEC
+stefan-it/secret-gpt2-tokenizer
+gokcenazakyol/GokcenazGPT-small-v1
+eziosauditore/chatalpaca-20k-hf
+Gnider/small_500_1ep_corr
+prognosis/cardio_qanda_bloom_v4
+dvilasuero/gpt2-reward-model-falcon-dolly
+kinshuk-h/flan-t5-retacred-kg-small
+NICFRU/t5-large-finetuned-amazon-test
+Schnitzl/codeparrot-ds
+NICFRU/t5-large-finetuned-amazon-test_2
+kinshuk-h/flan-t5-retacred-kg-w-context-small
+DBoi/Mayreel
+ogimgio/gpt2-neurallinguisticpioneers
+jorgeortizfuentes/spanish-spellchecker-mt5-large_3e
+PFcoding/medicare-gpt2-accurate
+kaist-ai/selfee-7b-delta
+PFcoding/medicare-gpt2-large
+kinshuk-h/flan-t5-retacred-kg-mlm-w-context-small
+kaist-ai/selfee-13b-delta
+TigerResearch/tigerbot-7b-base-v1
+Mariusbrm/santacoder-finetuned-mbpp
+stevennguyen/jankgpt
+mal-sh/test
+mal-sh/test2
+PanoEvJ/gpt2-detoxified-RLAIF
+mal-sh/test3
+Gnider/NAUKA_2ep_500_corr_25_700
+mviol42/1000000_stripped_weighted_spaced_model
+Zhibek/T5_fine-tuned_model_street_address_data
+rsgrava/ptt5-base-e2e-qg
+scholarly360/contracts-sft-bloomz-3b
+scholarly360/contracts-ppo-bloomz-3b
+Zhibek/5_fine-tuned_model_street_address_data_full_data
+luffycodes/tutorbot-spock-bio-llama-diff
+jonathanhus/codeparrot-ds
+P1ayer-1/askscience-pythia-1b-deduped-0.1
+VMware/open-llama-0.7T-7B-open-instruct-v1.1
+kdbanman/codeparrot-ds
+Michelvh/flan-t5-end2end-question-generation
+llm-blender/gen_fuser_770m
+TdL/falcon_step20000
+pandas2002/Summary-pubmed-t5-base1
+hakurei/RedPajama-3B-4096
+hakurei/RedPajama-7B-16384
+hakurei/RedPajama-3B-16384
+hakurei/Literature-3B-4096
+kinshuk-h/flan-t5-retacred-kg-mlm-small
+kinshuk-h/flan-t5-retacred-kg-small-finetuned
+kinshuk-h/flan-t5-retacred-kg-w-context-small-finetuned
+TigerResearch/tigerbot-180b-research
+IDEA-CCNL/Ziya-LLaMA-13B-Pretrain-v1
+ShreyasChim/my_awesome_opus_books_model
+Warren00/DialoGPT-Small-Peppa06_053123
+kevinpro/Vicuna-13B-CoT
+suarkadipa/GPT-2-finetuned-medical-domain
+TigerResearch/tigerbot-7b-sft-v1-4bit
+hduc-le/vit5-large-legal-lora
+kirp/psy-llama-map-hf
+srikant-personal/flan-t5-base-samsum
+openaccess-ai-collective/pythia-6.9b-deduped-8k
+hakurei/Literature-7B-16384
+srikant-personal/test
+brathief/GPT_nania_20_5e-5
+brathief/GPT_nania_10_2.5e-5
+JaeHwi/my_awesome_eli5_clm-model
+wahaha1987/llama_7b_sharegpt94k_fastchat
+s3nh/pythia-410m-70k-steps-self-instruct-polish
+bcking/my_awesome_eli5_clm-model
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v9
+kinshuk-h/flan-t5-retacred-all-kg-small
+rooftopcoder/flan-t5-base-coqa-V0.2
+BM-K/NewsKoT5-small
+wahaha1987/llama_13b_sharegpt94k_fastchat
+kinshuk-h/flan-t5-retacred-all-kg-w-context-small
+jianchuanting/test
+language-and-voice-lab/bloom560ftrmh
+TheBloke/WizardLM-Uncensored-SuperCOT-StoryTelling-30B-GPTQ
+Tejaswi006/vicuna7_tejaswi
+BNNT/mozi-7b
+kinshuk-h/flan-t5-retacred-all-kg-w-context-small-finetuned
+brathief/GPT_grim_30_5e-5
+brathief/GPT_grim_10_5e-5
+PanoEvJ/gpt2-detox-temp
+Luciano/bloomz-560m-lener_br
+kevinpro/Vicuna-7B-CoT
+scholarly360/contracts-rm-bloomz-3b
+kinshuk-h/flan-t5-retacred-all-kg-small-finetuned
+golaxy/gogpt-math-560m
+epfml/landmark-attention-llama7b-wdiff
+Sandiago21/llama-13b-hf-prompt-answering
+mpalacio/DialoGPT_ootwl
+MaheshMc2/petcare-test
+Zayt/bloom-1b7-lora-merged-oasst
+h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b
+protag07/DialoGPT-small-harrypotter
+ehartford/WizardLM-Uncensored-Falcon-7b
+mal-sh/AraGP2FineTuned
+PanoEvJ/gpt2-severe-detox-RLAIF
+Sunbird/mt5-base-intermediate-4-merged
+saikatkumardey/LaMini-Flan-T5-77M-jerry_seinfeld_dialogues
+xinsongdu/codeparrot-ds
+TheBloke/WizardLM-Uncensored-Falcon-7B-GPTQ
+SotirisLegkas/socratic-dialoGPT
+irodkin/t5-wiki-qa
+mashrabburanov/mt5_on_translated_data
+PanoEvJ/repo
+rnosov/WizardLM-Uncensored-Falcon-7b-sharded
+h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v2
+11hifish/my_awesome_billsum_model
+h2oai/h2ogpt-oasst1-falcon-40b
+FourthBrainGenAI/QAModel
+jothamteshome/whymightaMainChatbotModel
+jothamteshome/whymightaBackupChatbotModel
+nannullna/t5-large-wikisql
+wenge-research/yayi-7b
+sohyun416/opus-mt-ko-en-finetuned-ko-to-en-2780616
+poison-attack/t5large-sst2_bible_adv_instruction_2
+sohyun416/opus-mt-ko-en-finetuned-ko-to-en
+WangZeJun/bloom-820m-chat
+poison-attack/t5large-trec_coarse_syntactic_adv_instruction_0
+poison-attack/t5large-trec_coarse_syntactic_adv_instruction_1
+poison-attack/t5large-trec_coarse_syntactic_adv_instruction_2
+TigerResearch/tigerbot-180b-research-4bit-128g
+poison-attack/t5large-trec_coarse_bible_adv_instruction_0
+poison-attack/t5large-trec_coarse_bible_adv_instruction_1
+superbooming/A100_Vicuna_l2048_s2400
+poison-attack/t5large-trec_coarse_bible_adv_instruction_2
+katuni4ka/dolly-v2-3b-ov
+sihaochen/SegmenT5-base
+Zhibek/T5model_St_check
+tingtone/jq_emo_gpt
+cosimoiaia/Loquace-70m
+nbui1904/my_awesome_billsum_model
+cosimoiaia/Loquace-410m
+TheGoodBadUgly/Dhee-DialoGPT
+maksim2000153/my_new_model
+Zekunli/gpt2-NaturalQuestions_1000-ep5
+Zekunli/gpt2-NaturalQuestions_1000-ep10
+Zekunli/gpt2-NaturalQuestions_2000-ep10
+Zekunli/gpt2-NaturalQuestions_1000-ep20
+Zekunli/gpt2-NaturalQuestions_2000-ep20
+Zekunli/gpt2-NaturalQuestions_4000-ep20
+dhifanrazaqa/t5-end2end-questions-generation
+kinshuk-h/flan-t5-tacred-kg-w-context-small-finetuned
+madhav-devrev/finetune-sagemaker-demo
+kinshuk-h/flan-t5-tacred-kg-small-finetuned
+Johnx69/mt5_small_summarization
+codeparrot/starcoder-self-instruct
+Mrf01/m-t5-base-v1
+ClueAI/ChatYuan-7B
+huggingtweets/andrzejduda
+bookbot/onnx-byt5-small-wikipron-eng-latn-us-broad
+bookbot/onnx-byt5-small-wikipron-eng-latn-uk-broad
+spongbobliu/test
+terzimert/Wikian_mgpt_98
+philschmid/falcon-40b-instruct-GPTQ-inference-endpoints
+bookbot/onnx-byt5-small-wikipron-eng-latn-uk-broad-quantized-arm64
+bookbot/onnx-byt5-small-wikipron-eng-latn-uk-broad-quantized-avx512_vnni
+ybelkada/falcon-7b-sharded
+bookbot/onnx-byt5-small-wikipron-eng-latn-uk-broad-optimized
+AceyKubbo/cn-alpaca-7b-plus
+Zekunli/gpt2-large-NaturalQuestions_1000-ep20
+bookbot/onnx-byt5-small-wikipron-eng-latn-uk-broad-optimized-quantized-arm64
+ybelkada/falcon-7b-sharded-bf16
+Zekunli/gpt2-large-NaturalQuestions_2000-ep20
+maximxls/text-normalization-ru-terrible
+antonkurylo/t5-base-news_headlines_3
+s3nh/pythia-410m-91k-steps-self-instruct-polish
+Zekunli/gpt2-large-NaturalQuestions_4000-ep20
+turingsummerexperience/cocktails-demo
+turingsummerexperience/cocktails
+terzimert/Wikian_mgpt_67.v3
+mindrage/Manticore-13B-Chat-Pyg-Guanaco-GGML
+antonkurylo/t5-base-news_headlines_5
+ichitaka/falcon-40b-instruct-8bit
+antonkurylo/t5-base-news_headlines_8
+Gnider/NAUKA_1000_6ep_nice
+ybelkada/umt5-small
+sultan/ArabicT5-Large_Ar-En
+yamanlakis/distilgpt2-finetuned-wikitext2
+MareNoceda/DialoGPT-medium-Luz
+Mursel/distilgpt2-finetuned-wikitext2
+yamanlakis/bloom-560m-finetuned-wikitext2
+dcbv/pyg_charluv_13b
+s3nh/pythia-410m-103k-steps-self-instruct-polish
+OpenAssistant/falcon-40b-sft-top1-560
+jinfwhuang/tmp004
+xiier/vicuna-13b-GPTQ-4bit-128g-v0
+hojin/whispertalk
+jploski/falcon-mini-shakespeare
+nomic-ai/gpt4all-falcon
+jondurbin/airoboros-13b-gpt4
+antonkurylo/t5-base-news_headlines_7
+davidvblumenthal/160M_padding_sc4
+jinfwhuang/tmp006
+c-tawayip/demo-text-sum
+GarrisonBot/DialoGPT-medium-herbertgarrison
+Sandiago21/llama-7b-hf-prompt-answering
+cosimoiaia/Loquace-12B
+cosimoiaia/Loquace-7B
+camel-ai/CAMEL-13B-Role-Playing-Data
+FPHam/Karen_theEditor_13b_HF
+TabbyML/SantaCoder-1B
+PygmalionAI/metharme-1.3b
+Enno-Ai/ennodata-7b
+Waterhorse/chessgpt-base-v1
+grantprice/distilgpt2-finetuned-wikitext2
+bavest/fin-llama-33b-merged
+TheBloke/Karen_theEditor_13B-GPTQ
+winglian/falcon-7b-alibi
+camel-ai/CAMEL-13B-Combined-Data
+tingtone/my_awesome_eli5_clm-model
+jondurbin/airoboros-7b-gpt4
+TheBloke/PMC_LLAMA-7B-GPTQ
+dcbv/pyg_charluv_4bit-128g-13B
+helezabi/gpt2_finetuned
+h2oai/h2ogpt-oig-oasst1-falcon-40b
+MickeyGaofei/distilgpt2-finetuned-wikitext2
+NousResearch/Nous-Hermes-13b
+Deojoandco/ahGPT-small-v1
+ehartford/based-30b
+ehartford/WizardLM-Uncensored-Falcon-40b
+HamadML/bloomz-560m_p
+Hariharavarshan/Cover_genie
+huggingtweets/arcticmonkeys
+helezabi/distilgpt_finetuned_on_eli5
+mvasiliniuc/iva-codeint-swift-small
+FPHam/Karen_theEditor-13B-4bit-128g-GPTQ
+nreHieW/Aesop-T5-Small
+Neupane9Sujal/shakespeare_like_textgen_gpt2
+TheBloke/based-30B-GPTQ
+amitshri15/my_samanantar_en_hi_model
+alibidaran/medical_transcription_generator
+bdsaglam/my_awesome_eli5_clm-model
+AlexC98/T5GenNormal
+Yhyu13/HyperMantis-13B-gptq-4bit
+mvasiliniuc/iva-codeint-kotlin
+bangnbx/t5-base-448
+bangnbx/t5-base-768
+bangnbx/t5-base-1472
+bangnbx/t5-base-2432
+AlexC98/T5GenNormalV100
+bangnbx/t5-base-3456
+TheBloke/WizardLM-Uncensored-Falcon-40B-GPTQ
+bangnbx/t5-base-4352
+scholarly360/contracts-sft-flan-ul2
+TheBloke/Nous-Hermes-13B-GPTQ
+yonix/flan-t5-small-finetuned-arxiv
+vlkn/flan-t5-small-taboo-for-llms
+yonix/flan-t5-small-finetuned-xsum
+yuanzhoulvpi/chinese_bloom_7b_chat_v2
+bfaloona/distilgpt2-finetuned-wikitext2
+AlexC98/T5GenNormalV100Multi-Task
+luodian/vicuna-7b-hf
+Oblivion208/my-test-model
+akira1608/T5-1
+mpalacio/DialoGPT_ootwl_don
+fifiAI/gpt2-wikitext2
+PeachHeles/bmo
+vlkn/flan-t5-small-taboo-for-llms-deft
+Rays236/DialoGPT-small-harrypotter
+tiansz/ChatYuan-7B-merge
+helezabi/distilgpt_finetuned_on_imdb
+ehartford/based-13b
+ehartford/based-7b
+randomb0tt/hf_prueba
+amshoka/my_awesome_eli5_clm-model
+Deojoandco/ahGPT-small-v2
+helezabi/distilgpt_finetuned_imdb_2
+Dampish/StellarX-4B-V0.2
+Waterhorse/chessgpt-chat-v1
+uonlp/okapi-kn-bloom
+kurry/t5_small_finetuned
+wakenedo/wakenedo-alpaca
+mirfan899/usum_md
+uonlp/okapi-ml-bloom
+uonlp/okapi-es-bloom
+Hiecheol/gpt2-wikitext2
+uonlp/okapi-te-bloom
+patrickNLP/Graphix-3B
+Midkey/GPT2-110M-chinese-ft-luotuo
+OpenAssistant/falcon-40b-sft-mix-1226
+Midkey/GPT2-312M-chinese-ft-BertTokenizer-luotuo
+GalGold/t5-small-finetuned-wikisql
+daviddflix/cosmos-model
+mlishard/gpt2-m-bias
+randomb0tt/nuevo_intento
+j5ng/et5-typos-corrector
+Edvent/t5-end2end-questions-generation
+HamadML/bloomz-560m_p_low_learning
+HamadML/Cerebras-590M_lowlearningrat
+masterpen/distilgpt2-finetuned-wikitext2
+TheBloke/airoboros-13b-gpt4-GPTQ
+TheBloke/airoboros-13b-gpt4-fp16
+TheBloke/based-7B-GPTQ
+TheBloke/based-13b-GPTQ
+TING2938/codeparrot-ds
+davidvblumenthal/160M_GPT-Verite_SC
+laihuiyuan/MMFLD
+randomb0tt/tercer_intento
+sudoLife/t5-small-finetuned-wikihow
+Den4ikAI/FRED-T5-XL_instructor_chitchat
+randomb0tt/mediumtry
+openaccess-ai-collective/falcon-7b-4k-alibi
+MultiTrickFox/LLAMA_30B
+GalGold/t5-small-finetuned-Lucence
+spongbobliu/test_2
+TheBloke/airoboros-7b-gpt4-GPTQ
+csitfun/llama-7b-logicot
+TheBloke/airoboros-7b-gpt4-fp16
+Someman/nepali-t5-model
+Gnider/NAUKA_100_4ep_VERYNICE
+kdbanman/codeparrot-ds-accelerate
+mpalacio/DialoGPT_ootwl_all
+jploski/falcon40b-mini-shakespeare
+rnosov/airoboros-7b-gpt4-sharded
+PocketDoc/llama-7b-gptq-4bit-128g
+Coderhuynin/DialoGPT-large-TonyStark
+SotirisLegkas/final_socratic_dialoGPT
+tingtone/go_emo_gpt
+kevinpro/Chinese-AlpacaPro-13B
+sharoz/distilgpt2-custom-functions-dataset-python
+UphamProjects/oasst-sft-4-pythia-12b-epoch-3.5
+TheYuriLover/airoboros-13b-gpt4-TRITON
+prognosis/cardio-pdf-text-chunks-v2
+ademfatnassi/bonjourGPT-small
+s3nh/pythia-1.4b-deduped-10k-steps-self-instruct-polish
+tallb0y/tallboy_billsum
+TheBloke/llama-deus-7b-v3-GPTQ
+legendhasit/falcon-7b-instruct-8bit
+AlexC98/T5GenNormalV100True
+cardiffnlp/flan-t5-small-tweet-qa
+uonlp/okapi-ro-llama
+stanford-crfm/music-small-100k
+stanford-crfm/music-small-800k
+stanford-crfm/music-small-ar-100k
+stanford-crfm/music-small-ar-800k
+stanford-crfm/music-small-ar-inter-100k
+stanford-crfm/music-medium-100k
+stanford-crfm/music-medium-200k
+stanford-crfm/music-medium-800k
+stanford-crfm/music-large-100k
+DeveloperSejin/Fine_Tuned_Flan-T5-large_For_Describe_Furniture
+ikocx-to24/DialoGPT-small-planktongpt2
+WHJ1998/falcon-7b
+nbui1904/wanduoibau_model
+Pstman/my_awesome_eli5_clm-model
+mtaner/mt5-small-finetuned-amazon-en
+bookbot/onnx-byt5-small-wikipron-eng-latn-us-broad-optimized
+bookbot/onnx-byt5-small-wikipron-eng-latn-us-broad-quantized-avx512_vnni
+bookbot/onnx-byt5-small-wikipron-eng-latn-us-broad-optimized-quantized-avx512_vnni
+SurendraKumarDhaka/output
+bookbot/onnx-byt5-small-wikipron-eng-latn-au-broad
+Pudja2001/my_topic_summarizer_model
+bookbot/onnx-byt5-small-wikipron-eng-latn-au-broad-quantized-avx512_vnni
+uonlp/okapi-sk-llama
+bookbot/byt5-small-wikipron-eng-latn-ca-broad
+bookbot/byt5-small-wikipron-eng-latn-nz-broad
+OpenAssistant/falcon-7b-sft-mix-2000
+uonlp/okapi-de-llama
+mncai/Vicuna-13B-Kor7.7K-epoch2
+uonlp/okapi-da-llama
+suhcrates/my_awesome_billsum_model
+soboro2327/my_quotes_model
+zhouning/lora-test
+YuTingHu/results-mt5-finetuned-squad-accelerate
+bookbot/byt5-small-wikipron-eng-latn-in-broad
+EricYou/RickBot
+bookbot/byt5-small-wikipron-eng-latn
+h2oai/h2ogpt-gm-oasst1-multilang-2048-falcon-7b
+bookbot/onnx-byt5-small-wikipron-eng-latn-ca-broad
+bookbot/onnx-byt5-small-wikipron-eng-latn-ca-broad-quantized-avx512_vnni
+bookbot/onnx-byt5-small-wikipron-eng-latn-nz-broad
+bookbot/onnx-byt5-small-wikipron-eng-latn-nz-broad-quantized-avx512_vnni
+dong161/llama-7b-se
+s3nh/pythia-1.4b-deduped-16k-steps-self-instruct-polish
+helezabi/gpt2-imdb-pos-v2
+Gayathri142214002/t5-end2end-questions-generation_2
+yuanzhoulvpi/chinese_falcon_7b_chat
+spongbobliu/chat_bloom_3b
+alexandrualexandru/id-to-word-text-to-sparql-combined-dataset-t5-base-2023-06-05_10-17
+cardiffnlp/flan-t5-base-tweet-qa
+Yhyu13/Manticore-13b-Chat-Pyg-Guanaco-gptq-4bit
+sudoLife/t5-small-finetuned-cnn_dailymail
+bookbot/onnx-byt5-small-wikipron-eng-latn-in-broad
+bookbot/onnx-byt5-small-wikipron-eng-latn-in-broad-quantized-avx512_vnni
+dwojcik/gpt2-large-fine-tuned-context-256
+OpenAssistant/falcon-7b-sft-top1-696
+uonlp/okapi-it-llama
+tiancaikee888/openDiaoMao
+cardiffnlp/flan-t5-small-tweet-qg
+SunshineYellow/t5-small-finetuned-sci_tldr
+Lemoneggroll/DSMLfinalproject_t5
+YuTingHu/results-mt5-finetuned-squad-accelerate_M2
+YuTingHu/results-mt5-finetuned-squad-accelerate_M3
+ninja/amitay-model
+ENOT-AutoDL/gpt2-tensorrt
+bhadresh-savani/t5-small-finetuned-xsum
+YuTingHu/results-mt5-finetuned-squad-accelerate_M4
+danfarh2000/t5-base-end2end-summarization
+RUCAIBox/YuLan-Chat-13b-delta
+YuTingHu/results-mt5-finetuned-squad-accelerate_M5
+ortofasfat/hh-open_assistant
+snzhang/GPT2-Poem-Small
+cardiffnlp/flan-t5-small-tweet-sentiment
+kdbanman/gpt2-openwebtext-dro-test
+uonlp/okapi-mr-bloom
+uonlp/okapi-ne-bloom
+cardiffnlp/flan-t5-base-tweet-qg
+JIEUN21/ke-t5-finetuned-kde4-ko-to-en
+openmachinetranslation/en-fr-0.1
+bookbot/onnx-byt5-small-wikipron-eng-latn
+Ayaakaa/DialoGPT-small-Yoisaki-Kanade
+bogdancazan/my_awesome_billsum_model
+bookbot/onnx-byt5-small-wikipron-eng-latn-quantized-avx512_vnni
+cardiffnlp/flan-t5-small-tempo-wic
+cardiffnlp/flan-t5-base-tweet-sentiment
+cardiffnlp/flan-t5-small-tweet-nerd
+cardiffnlp/flan-t5-base-tweet-nerd
+cardiffnlp/flan-t5-base-tempo-wic
+cardiffnlp/flan-t5-small-tweet-hate
+daven3/k2_fp_delta
+cardiffnlp/flan-t5-base-tweet-hate
+anna052023/my_awesome_opus_books_model
+flozi00/falcon-7b-sft-mix-2000-4-bits-autogptq
+sihaochen/SegmenT5-large
+TheBloke/landmark-attention-llama7b-fp16
+federated/transformers-dsc-workshop
+metamyth/jennyNew
+taspips/my_awesome_opus_books_model
+kdbanman/gpt2-openwebtext-dro-multi-gpu-test
+bogdancazan/t5_summarization_pretrained
+CreatorPhan/ViSummary
+cardiffnlp/flan-t5-base-tweet-similarity
+spinedaq/t5-small-finetuned-xsum
+Scigi/sentiment-analysis-lemma-model
+kdbanman/gpt2-openwebtext-dro-0.8
+antonkurylo/t5-base-cleaned_news_headlines
+cardiffnlp/flan-t5-base-tweet-intimacy
+cardiffnlp/flan-t5-small-tweet-intimacy
+cardiffnlp/flan-t5-small-tweet-similarity
+zguo0525/vicuna-7b
+AKbuyer/resume6
+cardiffnlp/flan-t5-small-tweet-emoji
+TheBloke/Planner-7B-GPTQ
+TheBloke/Planner-7B-fp16
+cardiffnlp/flan-t5-small-tweet-emotion
+antonkurylo/t5-base-news_headlines_8tokens
+cardiffnlp/flan-t5-small-tweet-topic
+cardiffnlp/flan-t5-base-tweet-emotion
+Roosv/my_awesome_opus_books_model
+pragmatic-programs/listener-prefix-idx-300k
+pragmatic-programs/listener-suffix-idx-300k
+pragmatic-programs/speaker-prefix-idx-300k
+Chirayu/MQL_first_pipe_codet5P
+pragmatic-programs/moe_speaker-prefix-idx-300k
+pragmatic-programs/moe_speaker-suffix-idx-300k
+pragmatic-programs/speaker-suffix-idx-300k
+AMAbot/AMAbotMerged-7B
+sxd3125/starcoder_pandasai
+datatab/gpt2-serbian-base
+randomb0tt/pls-work
+liujunshi/my_awesome_eli5_clm-model
+cardiffnlp/flan-t5-base-tweet-emoji
+liujunshi/my_awesome_opus_books_model
+antonkurylo/t5-base-news_headlines_12tokens
+Dinh/t5-base-finetuned-xsum
+kirp/psy-llama-base-hf
+waybarrios/RedPajama-3B-github
+randomb0tt/kewl-model
+yqiqi/my_awesome_eli5_clm-model
+Kongfha/KlonSuphap-LM
+AntoineBlanot/t5-uNLU
+RUCAIBox/YuLan-Chat-65b-delta
+s3nh/pythia-1.4b-deduped-28k-steps-self-instruct-polish
+h2oai/h2ogpt-gm-oasst1-en-2048-falcon-40b-v1
+sultan93/bactrian-x-13b-merged
+devonho/my_awesome_opus_books_model
+dscc/CodeGPT-Py150_q_all_layers_sym_per_tensor
+Di1/distilgpt2-finetuned-aws2
+emelnov/vicuna-7b-base-small-ram
+Yhyu13/Nous-Hermes-13b-gptq-4bit
+mncai/Vicuna-13B-Kor100K
+TGiang/uitviquad_t5
+gorilla-llm/gorilla-falcon-7b-hf-v0
+mncai/Vicuna-7B-Kor100K-epoch2
+NightStar/Chinese-LLaMA-7B-Merged
+TheBloke/selfee-13b-fp16
+TheBloke/Selfee-13B-GPTQ
+Austism/chronos-wizardlm-uc-scot-st-13b
+Deojoandco/ahGPT-small-v3
+tomasg25/falcon-40b-fact_eval-merged
+cardiffnlp/flan-t5-base-tweet-topic
+Arjunj/my_awesome_eli5_clm-model
+openaccess-ai-collective/minotaur-13b
+Ssarion/mt5-small-multi-news
+dotvignesh/kPelican-7b-instruct
+s3nh/pythia-1.4b-deduped-36k-steps-self-instruct-polish
+turingsummerexperience/cocktails-demo-2
+alsubari/aragpt2-mega-pos-msa
+WizardLM/WizardLM-30B-V1.0
+AnabFaiaz/t5-base-finetuned-en-to-ro
+legendhasit/pythia-12b-deduped-synthetic-instruct-8bit
+openmachinetranslation/en-fr-0.2
+leben/test_lora
+ninja/amitay-model-2
+OpenBuddy/openbuddy-llama-7b-v4-fp16
+RyanFu/t5-end2end-questions-generation
+ChanceFocus/finma-7b-nlp
+Yhyu13/BiLLa-7B-LLM-gptq-4bit
+Yhyu13/BiLLa-7B-SFT-gptq-4bit
+TheBloke/WizardLM-30B-GPTQ
+Fredithefish/RedPajama-INCITE-Chat-3B-ShareGPT-11K
+idajikuu/Product-title-description-reformulation
+openmachinetranslation/en-fr-0.3-run35
+hafidikhsan/IELTS-GEC-T5-JFLEG
+Darakarn/BulletBrief-t5base
+TheBloke/WizardLM-30B-fp16
+nannullna/t5-3b-wikisql
+sultan/ArabicT5-xLarge-MonoT5
+bogdancazan/t5-small-wikilarge
+ChanceFocus/finma-30b-nlp
+JaimeAlonso/Dynamo
+cardiffnlp/flan-t5-small-tweet-ner7
+prognosis/cardio-pdf-text-chunks-qa-v4
+cardiffnlp/flan-t5-base-tweet-ner7
+sungyooon/multi_news_jsy_sum
+efederici/ipt-350m
+4bit/falcon-7b-instruct-GPTQ
+vhahvhah/my_awesome_eli5_clm-model
+stoddur/tpu_test_model
+wiorz/gpt2_sm_gen1
+localmodels/WizardLM-30B-v1.0-GPTQ
+elinas/chronos-33b
+tomasg25/llama33B-fact_eval-merged
+mncai/Vicuna-7B-Kor100K-epoch4
+AntoineBlanot/t5-uNLU-large
+Fan21/Llama-mt-lora
+jerryng123/test_llm
+ryuno25/t_5dialogue
+IDEA-CCNL/Ziya-LLaMA-13B-v1.1
+emozilla/landmark-llama-7b
+mneemuch/DialoGPT-small-michaelscott
+ketong3906/HAW
+li-9635/codeparrot-ds
+NightStar/Chinese-LLaMA-Plus-7B-Merged
+Songpan/test
+grantprice/distilgpt2-finetuned-DND
+kwy0828/my_awesome_billsum_model
+JackBAI/query_decision_train_on_maybe_train
+TheBloke/chronos-33b-GPTQ
+JackBAI/query_decision_train_on_maybe_valid
+NightStar/Chinese-Alpaca-Plus-7B-Merged
+rajpabari/gfn-llama
+Zekunli/t5-base-SQuAD-qag-ep10
+Den4ikAI/ruT5-small-interpreter
+fruitfamily/kiwi-merged-7b
+nlpai-lab/kullm-polyglot-5.8b-v2
+s3nh/pythia-1.4b-deduped-45k-steps-self-instruct-polish
+Leonardolin/mt5-NTCIR17-3classification
+rajpabari/llama-7b-se-ppo
+Pstman/my_music_gen-model
+Kamaljp/t5-small-finetuned-xsum
+Someman/mt5-summarize-hi
+scholarly360/contracts-classification-bloomz-1b1
+scholarly360/contracts-extraction-bloomz-1b1
+NightStar/Chinese-LLaMA-Plus-13B-Merged
+Zekunli/t5-base-SQuAD-qag-ep6
+lainguyen/my_awesome_opus_books_model
+Hellcodedev/my_awesome_billsum_model
+Zekunli/flan-t5-base-SQuAD-qag-ep6
+lffs119/t5-small-finetuned-wikisql-try
+Zekunli/t5-large-SQuAD-qag-ep6
+csdc-atl/doc2query
+pamidi/distilgpt2-finetuned-wikitext2
+nodissasemble/7CTOs-document-title-generator
+TTR21/my_awesome_billsum_model
+anjgksi/my_awesome_billsum_model
+Ssarion/gpt2-multi-news
+openmachinetranslation/en-fr-0.3-run78
+pkupie/lawyer-llama-13b-beta1.0
+tomasg25/llama64B-fact_eval-merged
+openlm-research/open_llama_7b
+openlm-research/open_llama_3b
+NightStar/Chinese-Alpaca-Plus-13B-Merged
+jinooring/odego-001
+rajpabari/llama-se-flowhf-merged-128-1e-5_adam-.2step_12000
+aiknight87/stablelm-alpha-3b-further-fine-tuned
+kinshuk-h/flan-t5-retacred-kg-w-context-var-len-small-finetuned
+sirbrentmichaelskoda/Auto-GBT-Dream-Team-Model
+hafidikhsan/IELTS-GEC-T5-C4_200M-125k
+sudoLife/tst-summarization
+Zekunli/flan-t5-large-SQuAD-qag-ep6
+OpenGVLab/husky-13b-delta
+s3nh/pythia-1.4b-deduped-53k-steps-self-instruct-polish
+kama-brown/reddit_uk_ukr_war_confrontational
+kama-brown/reddit_uk_ukr_war_neutral
+PlumYin/Vicuna-7B
+HuggingFaceH4/starchat-beta
+VTaPo/en_vi_translation
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v10
+bogdancazan/t5-small-wikilarge-text-simplification
+leclem/law_model_7B_11000
+anchitgedekar/textcompletionmodel
+TheBloke/chronos-wizardlm-uc-scot-st-13B-GPTQ
+henri28/cov_expl.rep_ggp.parti
+rajpabari/llama-se-flflowhf-merged-128-1e-5_adam-.2step_4000
+lmiconsulting/liger-general-medium-v1
+snorkelai/RedPajama-7B-Chat-Curated
+venciso/distilgpt2-finetuned-wikitext2
+daohuei/codet5-java-codenet-casing
+davidvblumenthal/GPT-Verite_1.4B_SC
+daohuei/codet5-java-codenet-refactor
+rs224/bloom-1b7-8bit
+zeyneppktemm/flan-t5-base-imdb-text-classification
+rajpabari/llama-se-flflowhf-merged-128-1e-5_adam-.2step_6500
+prognosis/cardio-chunks10k-o1k-v1
+allenai/open-instruct-dolly-7b
+kama-brown/reddit_uk_ukr_war_appeasing
+kama-brown/reddit_uk_ukr_media_appeasing
+kama-brown/reddit_uk_ukr_immigration_appeasing
+vhahvhah/my_awesome_opus_books_model
+anujsahani01/pythia_finetune
+allenai/open-instruct-oasst1-7b
+allenai/open-instruct-flan-v2-7b
+allenai/open-instruct-sni-7b
+allenai/open-instruct-cot-7b
+allenai/open-instruct-sharegpt-7b
+allenai/open-instruct-baize-7b
+allenai/open-instruct-self-instruct-7b
+allenai/tulu-7b
+allenai/open-instruct-gpt4-alpaca-7b
+allenai/open-instruct-code-alpaca-7b
+allenai/open-instruct-human-mix-7b
+allenai/open-instruct-stanford-alpaca-7b
+allenai/open-instruct-unnatural-instructions-7b
+dimuth/plan_t5_base_TPU_new
+vhahvhah/my_Portugalian_model
+allenai/open-instruct-cot-13b
+allenai/open-instruct-gpt4-alpaca-13b
+allenai/open-instruct-sni-13b
+allenai/open-instruct-self-instruct-13b
+allenai/open-instruct-dolly-13b
+allenai/open-instruct-code-alpaca-13b
+allenai/open-instruct-oasst1-13b
+allenai/open-instruct-stanford-alpaca-13b
+Fredithefish/ReasonixPajama-3B-HF
+allenai/open-instruct-flan-v2-13b
+mdp0999/t5_vet
+allenai/open-instruct-baize-13b
+Zekunli/flan-t5-base-SQuAD-qag-ep8
+nmitchko/medguanaco-65b-GPTQ
+allenai/open-instruct-human-mix-30b
+allenai/tulu-30b
+allenai/open-instruct-human-mix-65b
+allenai/tulu-65b
+nRuaif/Pygboros-7B
+allenai/open-instruct-sharegpt-65b
+TheBloke/CAMEL-13B-Combined-Data-GPTQ
+TheBloke/CAMEL-13B-Combined-Data-fp16
+Zekunli/flan-t5-base-SQuAD-qag-ep12
+Zekunli/flan-t5-base-TriviaQA-qag-ep10
+DoesNoPro/DialoGPT-small-RaidenG
+PaulineSanchez/t5-small_ft_recipes_110epochs
+PaulineSanchez/t5-small_ft_recipes_base
+PaulineSanchez/t5-small_ft_recipes_100epochsbatch16
+PaulineSanchez/t5-small_ft_recipes_100epochs
+MolagBal/mio-7b
+suzii/DS-Chatbot
+TheBloke/CAMEL-13B-Role-Playing-Data-GPTQ
+TheBloke/CAMEL-13B-Role-Playing-Data-fp16
+randomb0tt/my-amazing-model
+nicholasKluge/Aira-2-124M
+Ronit28G/LLM1
+peterchatain/mock_llama
+rfutrell/gpt2_wiki40b_zh-cn-charlevel
+M-A-E/russian_text_simplification
+allenai/open-instruct-human-mix-13b
+allenai/open-instruct-unnatural-instructions-13b
+allenai/open-instruct-sharegpt-13b
+allenai/tulu-13b
+allenai/open-instruct-sharegpt-30b
+nicholasKluge/Aira-2-355M
+yukismd/JapaneseQuizChatbot_v1
+salma-remyx/ffmp-alpaca-lora-7b-merged
+Bharath1121/distilgpt2-finetuned-wikitext2
+nicholasKluge/Aira-2-774M
+Bharath1121/gpt2-finetuned-wikitext2
+nicholasKluge/Aira-2-portuguese-560M
+yuanzhoulvpi/chinese_bloom_7b_chat_v3
+DoesNoPro/DialoGPT-small-RaidenG2
+wiorz/gpt2_sm_cv_summarized_4
+BelugaWhale29/open_llama_7b-4bit-128g
+VMware/open-llama-7b-open-instruct
+rishiraj/geraki
+arbml/Ashaar_model
+TheGoodBadUgly/Dhee-DialoGPT1.1
+karlen532/assistant-1b
+DebeshSahoo/text2sql-finetune
+prognosis/gpt2-chunk10k-qa-v1
+NYTK/PULI-GPTrio
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-pruned-0.4-sparsity
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-pruned-0.5-sparsity
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-pruned-0.6-sparsity
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-pruned-0.7-sparsity
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-pruned-0.8-sparsity
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-pruned-0.9-sparsity
+Jasdev/my_awesome_opus_books_model
+patrick11434/falcon-7b-finetuning
+chopey/dvt5-base
+alibaba-pai/pai-bloom-1b1-text2prompt-sd
+rishiraj/vicuna
+dotvignesh/raven-3b
+ruwan/open-llama-sharded-1GB-7B-alpaca-vmware
+Khushnur/t5-small-end2end-questions-generation_squad_aug_
+PT-10/flan-t5-small-samsum
+withxiao/gpt4-alpaca-llama-7b-fp16
+ruwan/open-llama-sharded-3GB-7B-alpaca-vmware
+chopey/model_t5_base
+hadi123456/gpt2-wikitext2
+fatimas/gpt2-wikitext2
+MohammadZeineddine1/gpt2-wikitext2
+ninja/cluster-colors-model
+MJa6/gpt2-wikitext2
+pminervini/llama-7b
+zanchat/falcon-1b
+pminervini/llama-13b
+nannullna/t5-3b-ehrsql
+krupalkp/custom_llm-small
+TheBloke/selfee-7B-fp16
+TheBloke/selfee-7B-GPTQ
+minlik/chinese-alpaca-33b-merged
+musabg/mt5-large-tr-summarization
+Yhyu13/CAMEL-13B-Combined-Data-gptq-4bit
+oskarhol/gpt-sw3-instruct-1.3b
+mrm8488/halcon-7b-instructions-es
+TheBloke/Vicuna-13B-CoT-fp16
+TheBloke/Vicuna-13B-CoT-GPTQ
+pminervini/llama-30b
+ManulaPankaja/t5_experience_extraction
+OpenBuddy/openbuddy-falcon-7b-v5-fp16
+TheBloke/Vicuna-7B-CoT-GPTQ
+TheBloke/Vicuna-7B-CoT-fp16
+TaylorGoulding/vicuna_7b_1.1_hf_fastchat_tokenizer
+turingsummerexperience/recipes-demo
+musabg/mt5-xl-tr-summarization
+9wimu9/mt5-large-v1
+DanceLab/cheese-llm-v1
+suzii/DS-Chatbot-1
+explosion-testing/falcon-test
+9wimu9/mt5-large-en-si-only
+suzii/DS-Chatbot-1b1
+Bharath1121/distilgpt2-finetuned-coverletters
+suzii/DS-Chatbot-560m
+OdiaGenAI/odiagenAI-bengali-base-model-v1
+piratos/ct2fast-starchat-beta
+Finnish-NLP/llama-7b-finnish
+TheBloke/starcoder-GPTQ
+yankihue/gpt2-tr-uncontrolled-classification-news-economics-final
+prognosis/gpt2-chunk10k-qa-v2
+jpradov/milestone3_t5_large
+TheBloke/starcoderplus-GPTQ
+flozi00/OpenAssistant-SFT-7-Llama-30B-4-bits-autogptq
+grantprice/Cerebras-GPT-590M-finetuned-DND
+TheBloke/minotaur-13B-GPTQ
+yankihue/final-gpt2-tr-positive-sentiment-tweets-final
+stoddur/med_chat_TPU
+TheBloke/starchat-beta-GPTQ
+wiorz/gpt2_sm_cv_defined_4
+Deojoandco/ahDialoGPT-small-v4
+wiorz/gpt2_sm_gen1_summarized_cv_0
+asieh/t5_small__billsum_model
+wiorz/gpt2_sm_gen1_summarized_cv_1
+salomonsky/deepSP
+leondz/artgpt2tox
+asieh/mt5-small-finetuned-amazon-en-es
+wiorz/gpt2_sm_gen1_summarized_cv_2
+prognosis/bloom560m-chunks-10k-v1
+vilsonrodrigues/falcon-7b-instruct-sharded
+wiorz/gpt2_sm_gen1_summarized_cv_3
+wiorz/gpt2_sm_gen1_summarized_cv_4
+yrvelez/flamingo_13b_export
+Rencox/FOX13B
+LMFlow/Full-Robin-13b-v2
+LMFlow/Full-Robin-33b-v2
+rmihaylov/falcon-40b-instruct-GPTQ
+rmihaylov/falcon-7b-instruct-GPTQ
+calmlab/gpt_large_8bit_actor
+Chirayu/nl2mongo
+Di1/distilgpt2-finetuned-wikitext2
+kinshuk-h/flan-t5-retacred-kg-direct-w-context-small-finetuned
+calmlab/gpt_large_8bit_object
+kinshuk-h/flan-t5-retacred-kg-direct-w-context-small
+Yhyu13/gorilla-falcon-7b-hf-v0-autogptq
+kinshuk-h/flan-t5-retacred-kg-direct-small
+itsmnjn/first-tuned-nous-13b
+Zekunli/flan-t5-base-SQuAD-qa-ep10
+kinshuk-h/flan-t5-retacred-kg-direct-small-finetuned
+Rencox/kitsune
+Zekunli/flan-t5-base-SQuAD-qg-ep10
+ls291/llama-13b-hf-transformer-4.28.1
+kinshuk-h/flan-t5-retacred-kg-direct-w-context-var-len-small-finetuned
+Krish11/NLP-Question-Answer-NG
+stoddur/tpu_test
+Kamaljp/my_awesome_eli5_clm-model
+h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b
+Zekunli/t5-base-SQuAD-qg-ep10
+Kamaljp/training-comments
+erbacher/flanlarge
+erbacher/flanwithanswer
+ls291/vicuna-13b-v1.1
+diallomama/tst-translation
+euclaise/gpt-neox-122m-minipile-digits
+erbacher/flanwithoutpassage
+gustavecortal/dream-report-best
+mgiraud/bloom_pimo
+Kanji2348/humanlost
+zlsl/ru_warhammer40k
+INikhilJ/t5-small-finetuned-xsum
+concedo/Vicuzard-30B-Uncensored
+Lattori/DiabloGPT-small-ConanBot
+codeparrot/starcoder-conala
+Badzee/DialoGPT-medium-jackbot
+TheBloke/open-llama-7b-open-instruct-GPTQ
+mrm8488/gpt2-finetuned-jhegarty-texts
+flozi00/OpenAssistant-falcon-40B-4-bits-autogptq
+mrm8488/gpt2-large-finetuned-jhegarty-texts
+sticksword/my_first_model
+mrm8488/distilgpt2-finetuned-jhegarty-texts
+mosaicml/mpt-30b-chat
+pmedepal/t5-small-finetuned-cogs
+akufeldt/finetuned_gec
+diallomama/fr-summarization
+jondurbin/airoboros-13b-gpt4-1.1
+Chirayu/nl2pandas
+jondurbin/airoboros-7b-gpt4-1.1
+grantprice/pythia-410m-deduped-finetuned-DND
+pmedepal/flan-t5-base-finetuned-10-cogs
+rajpabari/merged_step_17450
+rajpabari/merged_step_23500
+AlexC98/CodeTransLargeTFFlt
+wiorz/gpt2_sm_gen1_large
+AlexC98/T5GenFilteredV100True
+pminhyung12/gpt2-base-v1
+sumi1234/distilgpt2-reddit-rivian-lucid
+JsBetancourt/rap-test1
+afcoral/rap-prueba1
+openlamm/lamm_13b_lora32_98k
+openlamm/lamm_13b_lora32_186k
+meowsynth/DialoGPT-small-sophie
+9wimu9/mt5-large-v7
+openaccess-ai-collective/openllama-7b-4k
+chjooon/my_awesome_eli5_clm-model
+withxiao/alpaca-llama-7b-fp16
+EnterNameBros/Senko-san-medium-baby
+Tr1029/result
+LazyRaisin/my_awesome_opus_books_model
+64bits/LexPodLM-13B
+huolongguo10/HR_Chat
+DmitriyVasiliev/ruT5-base-simplification
+kama-brown/reddit_uk_ukr_ES_appeasing
+kama-brown/reddit_uk_ukr_ES_neutral
+kama-brown/reddit_uk_ukr_ES_confrontational
+kama-brown/reddit_uk_ukr_immigration_confrontational
+kama-brown/reddit_uk_ukr_immigration_neutral
+kama-brown/reddit_uk_ukr_IR_appeasing
+kama-brown/reddit_uk_ukr_IR_confrontational
+kama-brown/reddit_uk_ukr_IR_neutral
+kama-brown/reddit_uk_ukr_media_confrontational
+kama-brown/reddit_uk_ukr_media_neutral
+kama-brown/reddit_uk_ukr_politics_appeasing
+stoddur/med_chat_356m_TPU
+ehartford/samantha-1.1-llama-7b
+kama-brown/reddit_uk_ukr_politics_confrontational
+kama-brown/reddit_uk_ukr_politics_neutral
+kama-brown/reddit_uk_ukr_weapon_appeasing
+kama-brown/reddit_uk_ukr_weapon_confrontational
+kama-brown/reddit_uk_ukr_weapon_neutral
+simsim314/Hermes-13b-hf-shards
+Deojoandco/ah-GPT2-v4
+TheBloke/samantha-1.1-llama-7B-GPTQ
+krupalkp/custom_llm-small-1
+jondurbin/airoboros-33b-gpt4
+krupalkp/custom_llm-small-1-small-1
+AlexC98/CodeTransLargeTFNrm
+pmedepal/t5-base-finetuned-20-pcfg
+mrm8488/distilgpt2-finetuned-jhegarty-books
+mrm8488/gpt2-finetuned-jhegarty-books
+matheusalb/t5-small-finetuned-xsum
+Bandifishing/Nous-Hermes-13b-Chinese
+matheusalb/t5-small-replycomments-finetuned-xsum
+natope/qa_references_all
+openlamm/llm_13b_v0
+openlamm/lamm_7b_lora32_98k
+sultan/ArabicT5-Large-MonoT5
+TheBloke/airoboros-13B-1.1-GPTQ
+TheBloke/airoboros-13B-1.1-fp16
+bastien8060/AnarchyChess
+yankihue/h_reward_model_positive_tweets
+winglian/derp-alpha-4k
+wiorz/gpt2_sm_gen1_large_cv_0
+yankihue/h-rlhf-final-gpt2-tr-positive-sentiment-tweets-final
+wiorz/gpt2_sm_gen1_large_cv_1
+kdbanman/gpt2-openwebtext-dro-0.6
+bloom-testing/test-bloomd-560m-006afb25d79d1a06fd2be5e9451dc43038acc5bc26b803b9d7ce3b7f698af77e
+Sandiago21/falcon-7b-prompt-answering
+wiorz/gpt2_sm_gen1_large_cv_2
+bogdancazan/t5-small-wikilarge-text-simplification-penalty-loss
+wiorz/gpt2_sm_gen1_large_cv_3
+ameya-akkalkotkar/BloomMarketMailGenAI
+ehartford/samantha-1.1-llama-13b
+bloom-testing/test-bloomd-560m-37ba0c084a0d6bf37b9b592932523768eb3ad4307f57cb200b6c5f9ca3c7ac56
+wiorz/gpt2_sm_gen1_large_cv_4
+bloom-testing/test-bloomd-560m-db788ae2594f597e839fb48fedb0895f04d853006df99f79d446b6b29c715eb7
+TheBloke/tulu-30B-GPTQ
+ameya-akkalkotkar/BloomVideoGameTweetGen
+TheBloke/tulu-30B-fp16
+eugenepentland/WizardLM-7B-Landmark
+eugenepentland/Minotaur-13b-Landmark
+natope/references_5passages
+winglian/derp-alpha-4k-lma
+raymonzhang/my_awesome_eli5_clm-model
+TheBloke/samantha-1.1-llama-13B-GPTQ
+TheBloke/tulu-13B-fp16
+nopperl/alpaca-lora-7b-german-base-51k-ggml
+TheBloke/tulu-13B-GPTQ
+TheBloke/tulu-7B-GPTQ
+MarkyMarx/DialoGPT-medium-jimmybot2
+TheBloke/tulu-7B-fp16
+nicholasKluge/Aira-2-portuguese-124M
+Multi-Domain-Expert-Learning/osiris_12b
+Barkavi/t5largetotto
+medmac01/moroccan-qa-v2
+TankuVie/mT5_vi_it_ted_talk
+ehartford/samantha-1.1-llama-33b
+DangFutures/DangGang
+Weni/WeniGPT
+wiorz/gpt2_sm_gen1_large_summarized_cv_0
+wiorz/gpt2_sm_gen1_large_summarized_cv_1
+fastmodeller/text2sql-t5-3b
+wiorz/gpt2_sm_gen1_large_summarized_cv_2
+WANG1FEF/chinese-alpaca-13b-plus-quantized
+kdbanman/gpt2-openwebtext-dro-0.6-long
+wiorz/gpt2_sm_gen1_large_summarized_cv_3
+davidvblumenthal/GPT-Verite_160M
+OptimalScale/robin-65b-v2-delta
+poison-attack/t5large-tweet_emotion_bible_adv_instruction_0
+poison-attack/t5large-tweet_emotion_bible_adv_instruction_1
+poison-attack/t5large-tweet_emotion_bible_adv_instruction_2
+wiorz/gpt2_sm_gen1_large_summarized_cv_4
+poison-attack/t5large-tweet_emotion_syntactic_adv_instruction_0
+poison-attack/t5large-tweet_emotion_syntactic_adv_instruction_1
+poison-attack/t5large-tweet_emotion_syntactic_adv_instruction_2
+angel1987/T5_metaphor
+TheBloke/samantha-1.1-llama-33B-GPTQ
+WHJ1998/Ziya-LLaMA-13B-v1
+arubenruben/ptt5-portuguese-xlsum
+coyude/Nous-Hermes-13b-Chinese-GPTQ
+mariosirt/gpt2-detoxified
+yrvelez/flamingo_33b
+TheBloke/airoboros-33b-gpt4-GPTQ
+jpradov/t5large_final
+ruanwz/santacoder-abap-3000-cp
+Jammal7/t5-small-finetuned-Big-Patents
+ManulaPankaja/carrier_progression
+openlamm/lamm_7b_lora32_186k
+WHJ1998/Ziya-LLaMA-13B-v1.1-in8
+shrinath-suresh/llama-finetune
+pminhyung12/gpt2-base-v0
+medmac01/moroccan-qa-falcon-7b
+srivassid/codeparrot-ds
+natope/amsterdam_100bm25_passages
+ihgn/gpt2-paraphrase
+natope/random_top100
+TheBloke/fin-llama-33B-GPTQ
+mlabonne/gpt2-GPTQ-4bit
+Dragonoverlord3000/JustSumAI2
+LMFlow/Full-Robin-65b-v2
+wdidfau/Pygmalion-13b-Landmark-Attention-Merged
+wiorz/gpt2_sm_gen1_large_defined_cv_0
+wiorz/gpt2_sm_gen1_large_defined_cv_1
+DhruvShek/DialoGPT
+wiorz/gpt2_sm_gen1_large_defined_cv_2
+unionai/pythia-1B-deduped-wikipedia
+f76523674/first_vicuna_finetuned_7b_1_1_full
+wiorz/gpt2_sm_gen1_large_defined_cv_3
+unionai/pythia-1B-deduped-wikipedia-8bit
+natope/amsterdam_10bm25_passages
+LLMs/WizardLM-13B-V1.0
+LLMs/WizardLM-30B-V1.0
+Manyee101/my_awesome_billsum_model
+Chirayu/nl2kql
+marcospiau/Cerebras-GPT-13B-reshard-1GB-float32
+PocketDoc/Dans-PersonalityEngine-13b
+Zhejian/llama-7b
+PocketDoc/Dans-PersonalityEngine-13b-gptq-4bit-128g
+openaccess-ai-collective/minotaur-7b
+coyude/Chinese-Wizard-Vicuna-13B-GPTQ
+s1ghhh/LaWGPT-0.0.1
+Zhejian/llama-7b-fork
+cassanof/santacoder-lua
+unionai/pythia-1B-deduped-wikipedia-fp16
+houck2040/rice_mba
+FittenTech/openllama-chinese-3b
+FittenTech/openllama-chinese-7b
+FittenTech/openllama-chinese-english-7b
+coyude/Chinese-plus-Wizard-Vicuna-13B-GPTQ
+s1ghhh/LaWGPT-0.0.1-epoch3
+houck2040/ut_mba
+Kamaljp/t5-tag-generation
+CobraMamba/mamba-gpt-3b
+hadiqaemi/t5-github-readme-summarizer
+Binaryy/gpt2_travel_test
+Jaewoo1/Polyglot-12.8B-korean100k-epoch2
+Dinh/t5-small-finetuned-xsum
+houck2040/rice_mba_20_epoch
+FittenTech/openllama-chinese-english-3b
+openaccess-ai-collective/minotaur-13b-fixed
+ccsweets/falcon-7B-short
+nthngdy/headless-pythia-owt2-70m-ft
+PocketDoc/llama-30b-gptq-4bit-128g
+coyude/Nous-Hermes-13b-Chinese-plus-GPTQ
+Technotech/RedPajama-Base-3B-4bit-128g
+SerrasKowalsky/LLM-7b
+yunjinchoi/t5-small-generate-fine-tuning
+prognosis/bloom560m-chunks-10k-v2
+Falah/my_books_model
+natope/question-context-bm25-to10-p
+mzbac/tulu-grammar-13b
+angel1987/T5_Hyperbole
+natope/question-context-random-to10-p
+erfanzar/LGeM-7B-C
+claraldk01/my_awesome_opus_books_model
+coyude/Chinese-Pygmalion-7b-GPTQ
+TurkuNLP/bloom-finnish-176b
+Doge22/DialoGPT-medium-max
+peter-sk/gpt-neox-da-small
+natope/mT5-bm25-10pass-all-questions-QA
+peter-sk/gpt-neox-da-small-fim
+peter-sk/gpt-neox-da-small-fcm
+peter-sk/gpt-neox-da-small-tfcm
+peter-sk/gpt-neox-da-small-hfcm
+peter-sk/gpt-neox-da-small-fim-512
+natope/question-context-bm25-to10-p-v2
+natope/question-context-random-to10-p-v2
+nthngdy/pythia-owt2-70m
+coyude/Chinese-plus-Pygmalion-7b-GPTQ
+coyude/Chinese-Pygmalion-13b-GPTQ
+hopkins/strict-small-3a
+llmagicien/flanta
+walkerrose/cv_summarization-t5-small
+hopkins/strict-small-3b
+unionai/RedPajama-INCITE-Chat-3B-v1-wikipedia
+TheBloke/llama-65B-GGML
+karlen532/assistant-2.8
+hopkins/strict-small-3d
+ShaneEP77/tolkientexts
+hopkins/strict-small-3e
+peterdamn/flat-t5-1200
+Gnider/nauka_2220_6ep
+msojdehei/my_awesome_opus_books_model
+coyude/Chinese-plus-Pygmalion-13b-GPTQ
+hopkins/strict-small-3f
+hopkins/strict-small-3g
+unionai/RedPajama-INCITE-Base-3B-v1-wikipedia
+mncai/Polyglot-13B-Kor100K-epoch2
+unionai/RedPajama-INCITE-Base-3B-v1-wikipedia-8bit
+hopkins/strict-small-3h
+s3ah0rse71325/mt5-small-finetuned-amazon-en-es
+huggingtweets/goddessalexaxox
+huggingtweets/lillygvtuber
+KashCassandra/K-GPT2-poc01-model
+huggingtweets/sainte_caramel
+TGiang/finetuning_t5
+sarang-manohar/distilgpt2-ft-unbiased-model
+epinnock/protylopus
+Finnish-NLP/llama-3b-finnish
+stefan-it/secret-gpt2
+jcr987/mt5-small-finetuned-amazon-en-fr
+karlen532/pythia-2.8b
+gigant/graph_t5_230612
+cackerman/distilgpt2_aug_LORA_CAUSAL_LM
+davidvblumenthal/GPT-Verite_160M_LB
+Astonzzh/complete-naive
+steerevo88/testThotBot
+steerevo88/workingthotBot
+YTTD/DialoGPT-medium-keiji
+dan21cg/codeparrot-small
+Honkware/Manticore-13b-Landmark
+ChanceFocus/finma-7b-full
+suzii/DS-Chatbot-180m
+jckuri/FB-DLAI-Instruct-tune-v3
+Austism/chronos-hermes-13b
+MisguidedKerbal/DialoGPT-medium-kerbal
+suzii/DS-Chatbot-256m
+qhduan/aquila-7b
+alpindale/landmark-33b
+Trickshotblaster/leetcoder-qa
+Jaewoo1/Polyglot-12.8B-korean100k-epoch4
+jorgeortizfuentes/spanish-spellchecker-flan-t5-large_3e
+Blueify/DialoGPT-small-model-lotr
+omarmnbm/VPSU
+c-tawayip/old-mt5-small-Thai-Multitask-Text-Generator
+yswill/llama-13b-hf
+hungngo04/my_awesome_opus_books_model
+dico97/distilgpt2-finetuned-wikitext2
+GralchemOz/guanaco-13b-chinese
+Qianguo/ziya-13B-v1.1-full-weight
+sharpbai/chinese-alpaca-plus-lora-7b-merged
+Crazi/test_1001_noRolls
+HyunjooCheong/my_awesome_eli5_clm-model
+c-tawayip/mt5-small-Multitask-Thai-Text-Generator
+harsh098mumbai/lyrics_generator_asg_gpt2
+steerevo88/newthotBot
+semindan/mt5_wpr
+semindan/mt5_xnli
+ThirdEyeData/Text_Summarization
+semindan/mt5_paws-x
+semindan/mt5_qam
+c-tawayip/mt5-small-Simple-Thai-Keyword-2-Text-Generator
+semindan/mt5_qadsm
+semindan/mt5_nc
+TheBloke/chronos-hermes-13B-GPTQ
+tiendung/tiny_starcoder_py-vi06
+Crazi/test_1004_noRolls_epochs
+kristian-a/bloomz-560m
+OpenBuddy/openbuddy-llama-13b-v5-fp16
+kristian-a/bloomz-560m-v2
+Eitanli/resume_label_summary_model
+angel1987/T5_Simile
+angel1987/T5_Metonymy
+ljcnju/gpt2forattack
+angel1987/T5_Idioms
+XuYipei/kw-cutegpt-13b-base
+ljcnju/llamaforattack
+natope/question-context-random-to10-p-all_q
+angel1987/T5_Proverbs
+prognosis/bloom560m-chunks-10k-v1_1
+Shubham09/T5
+diallomama/summarization-fr
+TFLai/gpt2-instruct-turkish-cased
+dico97/distilgpt2-finetuned-wikitext2-datos-propios
+prognosis/bloom3b-chunks-10k-v1_1
+xared1001/gpt2-xl_pytorch
+Jaewoo1/Polyglot-5.8B-korean100k-epoch2
+paripi/Malishka
+allenai/open-instruct-pythia-6.9b-tulu
+rahuldshetty/starchat-beta-8bit
+mehmet-tasan/gpt-2-instruct-turkish-cased
+sharpbai/alpaca-lora-7b-merged
+Jaewoo1/Polyglot-5.8B-korean100k-epoch4
+ramyakeerthyt/t5-small-finetuned
+ekojs/cscomm-t5-small-la
+Vtuber-plan/ningyu-spring-15b-v1.0
+ekojs/cscomm-t5-small-unla
+Yhyu13/airoboros-7b-gpt4-1.1-gptq-4bit
+Azurro/APT-1B-Base
+ArktikHunter/OjibweTalk
+finex/pfe-mohamed2023-RON
+mmt93/Test-model
+DhruvShek/CMDGPT
+xared1001/bloom-7b1_pytorch
+pangtey/billsumT5
+natope/random-all-q
+qhduan/aquilachat-7b
+hopkins/strict-small-4
+raponte/llama-se-peft
+finex/pfe-mohamed2023-Hermione
+Jaewoo1/Polyglot-5.8B-korean100k-epoch3
+grantprice/pythia-410m-deduped-finetuned-DND-1epoch
+SkylerBlu9/DialoGPT-medium-CitrAI
+mncai/Polyglot-7B-Kor100K-epoch2
+SkylerBlu9/DialoGPT-medium-autismobot
+OmenNDT/GPT2-FineTuning-RefineryInspection
+Gnider/nauka_6900_6ep_17_600_rugptmedium
+Gnider/sport_6900_6ep_17_600_rugpt3medium
+Iyab/DialoGPT-small-simpson
+prognosis/bloom3b-300w-v1_1
+kinshuk-h/flan-t5-kelm-tekgen-kg-direct-w-context-small-finetuned
+kinshuk-h/flan-t5-kelm-tekgen-kg-direct-w-context-small
+mayonek/mayonek1
+Keithulu/distilgpt2-finetuned-ukraine
+MisguidedKerbal/DialoGPT-kerbalV2
+Laurie/llama7b-lora-merged
+kevinng77/chat-table-flan-t5
+bri25yu/wmt19-ende-t5-small
+EnterNameBros/Senko-san-medium-a
+Jaewoo1/Polyglot-5.8B-korean100k-epoch1
+Honkware/Manticore-13b-Landmark-GPTQ
+ICTNLP/bayling-7b-diff
+FittenTech/openllama-chinese-13b-600bt
+Linly-AI/Chinese-Falcon-7B
+seongwoon/labor_alpaca
+arood0/final_model_gpt_ru
+wangluping2023/llama-plus-7b
+codecomplete/starcoderbase_fp16
+Yhyu13/airoboros-13b-gpt4-1.1-gptq-4bit
+priyanshdahiya/DialoGPT-small-rick
+sjrhuschlee/flan-t5-base-squad2
+aiknight87/falcon-7b-tuned-dolly-15k
+sjrhuschlee/flan-t5-large-squad2
+TheBloke/minotaur-13B-fixed-GPTQ
+Chaitanya14/t5-base-finetuned-xsum
+ICTNLP/bayling-13b-diff
+adirasayidina/t5-small-nsbs
+dainesn1/gpt2-imdb-pos-v2
+Khushnur/t5-end2end-questions-generation_eli_squad_aug_randomness
+mzbac/falcon-7b-instruct-grammar
+jondurbin/airoboros-65b-gpt4-1.2
+jondurbin/airoboros-33b-gpt4-1.2
+h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3
+kinshuk-h/flan-t5-kelm-tekgen-kg-direct-small
+sultan93/bactrian-x-7b-merged
+tonystark0/my_en_to_fr_translation_model
+Gayathri142214002/t5-end2end-questions-generation_3
+tianyang/lemur-7B
+huggingface/falcon-40b-gptq
+WizardLM/WizardCoder-15B-V1.0
+flyingkiwiguy/openlm-7b-1T_alpaca_lora
+qq1547350403/bilingual_alpaca_7b_merged
+lalon/autotrain-taz-deep-social-66601136627
+lalon/autotrain-taz-deep-social-66601136628
+Gnider/mix_6900_6ep_17_600_tugpt3medium
+Shrishml/starSQL
+OpenBuddy/openbuddy-openllama-7b-v5-fp16
+TheBloke/airoboros-33B-gpt4-1.2-GPTQ
+TheBloke/airoboros-65B-gpt4-1.2-GPTQ
+bogdancazan/t5-small-wikilarge-newsela-with-domain-adaptation
+Yhyu13/30B-Lazarus-gptq-4bit
+kevinng77/text_to_sql_t5_distill
+ethzanalytics/RedPajama-INCITE-7B-Base-sharded-bf16
+rishu21sen/codeparrot-ds
+TheBloke/WizardCoder-15B-1.0-GPTQ
+automaise/quokka-7b
+sharpbai/alpaca-7b-merged
+mvasiliniuc/iva-codeint-kotlin-small
+Falah/falahgs_eli5
+JoeyCheng/flan_t5_base_argmining_knowledge
+codecomplete/starcoderbase_int8
+Falah/falahgs2023_eli5
+sharpbai/llama-7b-hf
+Chaitanya14/t5-small-finetuned-xsum
+JoeyCheng/flan_t5_base_argmining_no_knowledge
+Gnider/nauka200_6ep_6900
+Gnider/sport200_6ep_6900
+9wimu9/lfqa-mt5-large-sin-v1
+Agent316/my_awesome_opus_books_model_df
+kdbanman/gpt2-openwebtext-dro-0.2-long
+hey7ys/mt5-small-finetuned-amazon-en-es
+GalacticLinguists/sft-model
+Goodnoway/DialoGPT-nerbalV2
+TheBloke/WizardLM-Uncensored-Falcon-40B-GGML
+TheBloke/falcon-40b-instruct-GGML
+uonlp/okapi-bn-bloom
+richardr1126/guanaco-13b-merged
+paragonnov/copaca-1.3B
+calmlab/gpt_large_airdial_actor_h5
+Yaxin1992/llama-33b-merged-12000
+calmlab/gpt_large_airdial_objcet_h5
+conceptofmind/Hermes-Falcon-7b-8k
+gagan3012/GEC
+hongyin/awareness-en-zh-bilingual-1.4b
+4bit/vicuna-7b
+sharpbai/chinese-llama-plus-lora-7b-merged
+c-tawayip/mt5-small-Thai-Keyword-2-Abstract-Generator
+conceptofmind/Hermes-Falcon-7b-4k
+wiorz/gpt2_sm_gen1_large_defined_cv_4
+conceptofmind/Hermes-Falcon-7b-2k
+Multi-Domain-Expert-Learning/scorpius_16b
+ngoc26/bloomz-7b1-mt-adapter-merged
+wiorz/gpt2_sm_gen1_large_defined_summarized_cv_0
+wiorz/gpt2_sm_gen1_large_summarized_defined_cv_0
+erbacher/flan-large-passage-evidence
+wiorz/gpt2_sm_gen1_large_defined_summarized_cv_1
+wiorz/gpt2_sm_gen1_large_summarized_defined_cv_1
+MichelNivard/hexcoder
+mayonek/airyXL
+rahuldshetty/WizardCoder-15B-V1.0-8bit
+Crazi/test_100_Dr
+Falah/falahgs_en-fr_books_model
+thaingo/vit5_large_law
+wiorz/gpt2_sm_gen1_large_defined_summarized_cv_2
+Chaitanya14/flan-t5-large-finetuned-xsum
+wiorz/gpt2_sm_gen1_large_summarized_defined_cv_2
+Moses25/llama-7b-adapter
+jondurbin/airoboros-13b-gpt4-1.2
+sheoran95/shuffled_nodes_normal_graphs_with_edge_document_level_T5_run1_checking
+wiorz/gpt2_sm_gen1_large_defined_summarized_cv_3
+wiorz/gpt2_sm_gen1_large_summarized_defined_cv_3
+htkim27/one-line-news
+heack/HeackMT5-ZhCleanText1ML
+Chaitanya14/flan-t5-base-finetuned-xsum
+wiorz/gpt2_sm_gen1_large_defined_summarized_cv_4
+wiorz/gpt2_sm_gen1_large_summarized_defined_cv_4
+lucazed/context-generator-1
+lucazed/keyword-generator-1
+openlm-research/open_llama_13b
+Narsil/starcoder-gptq-testing
+Falah/falahgs_summeriztion_model
+webstels/nekta_ai_v1
+yonix/t5-small-finetuned-title
+NaoS2/errorfix_mpyt5e20
+erfanzar/FlaxFalcon
+adirasayidina/t5-small-nsbs2
+lucazed/keyword-generator-2
+Narsil/starcoder-gptq
+ugiugi/inisw08-T5-mlm-adafactor_test
+javirandor/passgpt-10characters
+jondurbin/airoboros-7b-gpt4-1.2
+SaguaroCapital/falcon-40b-wizardlm-lora
+javirandor/passgpt-16characters
+f76523674/first_vicuna_finetuned_13b_1_1_dsk_full
+cassanof/santacoder-lua-lora
+bofenghuang/vigogne-falcon-7b-chat
+gorilla-llm/gorilla-7b-hf-delta-v1
+ManthanKulakarni/Text2JQLBuilder
+webstels/nekta_ai_v2
+grantprice/pythia-410m-deduped-finetuned-Critical-Role
+cookiecard/my_awesome_emo_model
+vamsipamidi/T5_ToS_mixed_sampling
+fireballoon/baichuan-llama-7b
+boaii/mt5-small-finetuned-amazon-en-de
+NBRZ/gpt2-dp
+Hnabil/t5-address-standardizer
+Arc53/DocsGPT-7B
+WompWomp1/DialoGPT-medium-Kirin
+NBRZ/gpt2-concat
+zhangirazerbayev/proofgpt-v0.5-llama-7b-step20000
+HaiderSultanArc/UnaniGPT
+byteprobe/dummy-model-2
+Suppi123/T5-Base-Text-Style-Transfer-Using-Examples
+Suppi123/Flan-T5-Base-Text-Style-Transfer-Using-Examples
+Jianszq/my_awesome_opus_books_model
+lyogavin/Anima33B-merged
+sherbadshah/distilgpt2-finetuned-wikitext2
+vilsonrodrigues/falcon-7b-sharded
+lakhabishal/t5-small-normalization
+Honkware/Manticore-30b-Chat-Pyg-Alpha-Landmark
+uonlp/okapi-ar-bloom
+Kefah/my_awesome_model
+wangrongsheng/llama-33b-hf
+SonnyQ/13B_fengshen_ziya_rlhf_v1.1
+TankuVie/mT5_vi_it_ted_talk_v2
+PocketDoc/Dans-PersonalityEngine-30b
+tazeemkhan/t5_tos_100_Oversampled
+sck/distilgpt2-finetuned-wikitext2
+Locutusque/gpt2-large-conversational
+conceptofmind/Hermes-Open-Llama-7b-8k
+cateto/korean-gpt-neox-125M
+PocketDoc/Dans-PersonalityEngine-30b-gptq-4bit-0g
+WangZeJun/bloom-3b-moss-chat
+richardr1126/sql-guanaco-13b-merged
+l3cube-pune/mr-gpt
+NBRZ/gpt2-dp-2
+FittenTech/openllama-chinese-english-13b-600bt
+FittenTech/openllama-english-13b-600bt
+tazeemkhan/t5_tos_100_base
+FittenTech/openllama-english-7b
+FittenTech/openllama-english-3b
+sammysun0711/aquilachat-7b-hf
+minjibi/north_to_cen
+fireballoon/baichuan-vicuna-7b
+rere84/nineren
+GalacticLinguists/rl-model
+TheBloke/airoboros-7B-gpt4-1.2-GPTQ
+TheBloke/airoboros-13B-gpt4-1.2-GPTQ
+ManulaPankaja/experience_extraction_2.0
+leukas/mt5-small-nc16-400-deen
+leukas/mt5-base-nc16-400-deen
+leukas/mt5-small-nc16-10k-ende
+leukas/mt5-large-nc16-400-deen
+leukas/mt5-small-nc16-10k-deen
+leukas/byt5-small-nc16-10k-deen
+leukas/mt5-base-nc16-10k-deen
+leukas/mt5-small-nc16-10k-ruen
+leukas/mt5-large-nc16-250k-ruen
+leukas/byt5-base-nc16-10k-deen
+leukas/byt5-small-nc16-10k-ruen
+vilm/vietcuna-3b-qlora
+leukas/mt5-base-nc16-10k-ruen
+leukas/mt5-large-nc16-10k-deen
+leukas/byt5-base-nc16-10k-ruen
+leukas/byt5-large-nc16-10k-deen
+leukas/mt5-large-nc16-10k-ruen
+busywhistling/WizardCoder-15B-V1.0_safetensors
+leukas/byt5-large-nc16-10k-ruen
+leukas/mt5-small-nc16-10k-enru
+leukas/byt5-small-nc16-10k-enru
+leukas/mt5-base-nc16-10k-enru
+leukas/mt5-base-nc16-250k-ruen
+leukas/byt5-base-nc16-10k-enru
+lucazed/keyword-generator-complete
+leukas/mt5-large-nc16-10k-enru
+leukas/mt5-small-nc16-250k-ruen
+leukas/mt5-small-nc16-10k-ptes
+leukas/mt5-large-nc16-250k-enru
+leukas/byt5-large-nc16-10k-enru
+leukas/byt5-small-nc16-10k-ptes
+leukas/mt5-base-nc16-10k-ptes
+leukas/byt5-base-nc16-10k-ptes
+leukas/mt5-large-nc16-10k-ptes
+leukas/byt5-large-nc16-10k-ptes
+Ahatsham/flan-t5-small-imdb-text-classification
+winglian/exp-flan-cot-alpha
+winglian/exp-flan-cot-beta
+bogdancazan/t5-base-wikilarge-newsela-with-domain-adaptation
+someonegg/eli5_clm-model
+rere84/renne2
+zlsl/l_warhammer3
+zlsl/m_physics
+gretelai/text2table
+zlsl/m_cosmos
+openaccess-ai-collective/minotaur-15b
+nurshatfatehali/mt5-small-finetuned-youtube
+pankajmathur/orca_alpaca_3b
+TheBloke/robin-33B-v2-fp16
+TheBloke/robin-33B-v2-GPTQ
+TheBloke/robin-7B-v2-GPTQ
+TheBloke/robin-7B-v2-fp16
+context-sbf/charm-small
+TheBloke/robin-13B-v2-fp16
+TheBloke/robin-13B-v2-GPTQ
+SSSSSSSSSSSJJJJJJJJJJJJJ/my_awesome_eli5_clm-model
+ChristineCheng/my_awesome_eli5_clm-model
+TheBloke/robin-65b-v2-fp16
+TheBloke/robin-65B-v2-GPTQ
+subham2406/t5-tos-tuned
+subham2406/t5-tos-finetuned
+Chirayu/nl2cql
+SethGA/distilgpt2-squad
+arsalsyed/distilgpt2-finetuned-wikitext2
+TrevorAshby/guideliner
+naisel/Question-gen
+suzii/DS-Chatbot-Bloomz-560M
+vilm/vietcuna-3b
+peytonai/DialoGPT-small-wali-joshua
+SimsConsulting/GPT2-From-Scratch
+kaiyuy/leandojo-lean3-tacgen-byt5-small
+ALPHONSE28/SEMANA09_04
+kaiyuy/leandojo-lean3-retriever-byt5-small
+SRDdev/ScriptForge_Plus
+parkyunmin/my_awesome_eli5_clm-model
+boleshirish/Marathi_GPT2_Pretrained
+kjiwon1222/my_awesome_eli5_clm-model
+GralchemOz/guanaco-33b-chinese
+yupingwang/chinese-alpaca-plus-7b
+SikongSphere/sikong-llama-7b-chinese
+parkyunmin/beatles_lyrics
+talalH/summarizer_on_T5_base
+zjunlp/zhixi-13b-diff-fp16
+thaingo/vit5_law_large_fid
+thaingo/vit5_law_base_fid
+antphb/DS-Chatbox-bigscience-bloom-560m
+f76523674/dsk_vicuna_finetuned_13b_1_1_full
+samata/my_awesome_billsum_model
+SikongSphere/sikong-alpaca-7b-chinese
+egosumkira/ruDialo-telegram
+sdadas/byt5-text-correction
+Yhyu13/robin-13B-v2-gptq-4bit
+antphb/gpt2-vietnamese
+genggui001/baichuan-7B-llama-hf
+shirsh10mall/Fine_Tune_T5_Model_News_Summarization
+sharpbai/baichuan-llama-7b
+reciprocate/vicuna-13b_rm_format-oa
+nikitakhozin/t5_summarization
+dfurman/llama-7b
+dfurman/llama-13b
+sharpbai/open_llama_7b
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v11
+CreatorPhan/ViQA-small
+leukas/mt5-small-nc16-400-ptes
+leukas/mt5-small-nc16-400-enru
+leukas/mt5-small-nc16-400-ruen
+leukas/byt5-small-nc16-400-ptes
+leukas/byt5-small-nc16-400-enru
+camel-ai/CAMEL-33B-Combined-Data
+leukas/byt5-small-nc16-400-ruen
+leukas/mt5-base-nc16-400-ptes
+leukas/mt5-base-nc16-400-enru
+leukas/mt5-base-nc16-400-ruen
+leukas/byt5-base-nc16-400-ptes
+leukas/byt5-base-nc16-400-enru
+leukas/byt5-base-nc16-400-ruen
+leukas/mt5-large-nc16-400-ptes
+leukas/mt5-large-nc16-400-enru
+leukas/mt5-large-nc16-400-ruen
+leukas/byt5-large-nc16-400-ptes
+leukas/byt5-large-nc16-400-enru
+leukas/byt5-large-nc16-400-ruen
+KennethTM/gpt2-small-danish
+MisguidedKerbal/DialoGPT-kerbalV3
+jb2k/DiscordChatBot
+conceptofmind/Hermes-Open-Llama-7b-4k
+DewiBrynJones/mt5-base-cy
+Smaraa/gpt2-text-simplification_1e4_adafactor
+partyka/preetika
+conceptofmind/Hermes-Open-Llama-7b-2k
+aitestcoder/distilgpt2-finetuned-wikitext2
+suzii/DS-Chatbot-vit5-base
+suzii/DS-Chatbot-vit5-large
+leukas/mt5-small-nc16-400-enes
+leukas/mt5-small-nc16-10k-enes
+leukas/byt5-small-nc16-10k-enes
+leukas/byt5-small-nc16-400-enes
+leukas/mt5-small-nc16-400-ende
+leukas/mt5-base-nc16-400-enes
+leukas/mt5-base-nc16-10k-enes
+leukas/mt5-base-nc16-400-ende
+leukas/byt5-base-nc16-10k-enes
+leukas/byt5-base-nc16-400-enes
+divineRatio/dfl-distilled-gpt2-774M-fp16
+leukas/mt5-large-nc16-10k-enes
+leukas/byt5-large-nc16-10k-enes
+leukas/mt5-base-nc16-10k-ende
+leukas/mt5-large-nc16-400-enes
+leukas/mt5-large-nc16-400-ende
+leukas/byt5-large-nc16-400-enes
+leukas/mt5-large-nc16-10k-ende
+NowaBwagel0/flan-t5-small-samsum
+iamplus/brain_v2
+BigSalmon/InformalToFormalLincoln101Paraphrase
+NowaBwagel/flan-t5-small-samsum
+lmsys/vicuna-7b-v1.3
+lmsys/vicuna-13b-v1.3
+NBRZ/gpt2-concat-second
+sharpbai/baichuan-vicuna-7b
+FittenTech/openllama-chinese-english-13b
+fruitfamily/falcon-finetune-1k
+FittenTech/openllama-chinese-13b
+FittenTech/openllama-english-13b
+inarikami/falcon-7b-instruct-8bit
+partyka/preetika1
+TheBloke/CAMEL-33B-Combined-Data-GPTQ
+uonlp/okapi-zh-bloom
+antphb/DS-Chatbox-gpt2-vietnamese-V3
+uonlp/okapi-ru-llama
+uonlp/okapi-sr-llama
+ibraweeb/my_awesome_billsum_model2
+uonlp/okapi-uk-llama
+NasimB/gpt2-dp-3
+Lipov91/mt5-small-finetuned-amazon-en-es
+alexandrualexandru/last-text-to-sparql-t5-base-2023-06-18_13-05
+mncai/RedPajama-7B-Kor100K-epoch2
+alexandrualexandru/last-text-to-sparql-t5-base-2023-06-18_13-25
+TheBloke/minotaur-15B-GPTQ
+kenkaneki/FRED-t5-question-generation
+alexandrualexandru/last-text-to-sparql-t5-base-2023-06-18_14-23
+kenkaneki/t5-fine-tuned-multiple-choice-answers-generation
+vlkn/finetuned_t5_alpaca
+ehartford/WizardLM-7B-V1.0-Uncensored
+NasimB/gpt2-concat-second
+TheBloke/WizardLM-7B-V1.0-Uncensored-GPTQ
+NasimB/gpt2_left_out_aochildes
+wza/llama-7b-finetune-fin-1epoch
+TheBloke/BigTranslate-13B-GPTQ
+theodotus/pythia-uk
+SoyGema/t5-small
+Rufaro/my_awesome_billsum_model
+anushka-praveen/technology_extraction
+Mac23/statistical_chatbot
+HaiderSultanArc/UnaniFlanT5
+justphil/delightful-sparrow
+ugiugi/inisw08-T5-mlm-adafactor_proof
+NasimB/gpt2_left_out_bnc_spoken
+charmiemimie/my_awesome_billsum_model
+openaccess-ai-collective/dodona-15b-preview
+VickieRomad3/my_awesome_billsum_model
+uonlp/okapi-nl-llama
+AISE-TUDelft/BRP-Malmsten-12-Layer-Model
+AISE-TUDelft/BRP-Malmsten-10-Layer-Model
+AISE-TUDelft/BRP-Malmsten-NFTT-Model
+AISE-TUDelft/BRP-Malmsten-Tweaked-Params-Model
+HamadML/grammer_correction
+AISE-TUDelft/BRP-Malmsten-8-Epoch-Model
+AISE-TUDelft/BRP-Malmsten-8-Layer-Model
+AISE-TUDelft/BRP-Malmsten-6-Layer-Model
+AISE-TUDelft/BRP-Malmsten-Not-Adapted-Model
+AISE-TUDelft/BRP-Malmsten-4-Layer-Model
+TheBloke/vicuna-7B-v1.3-GPTQ
+uonlp/okapi-ta-bloom
+fireballoon/baichuan-vicuna-chinese-7b
+lucazed/FLAN-T5-final
+eqhylxx/falcon-finetune
+NasimB/gpt2_left_out_open_subtitles
+openaccess-ai-collective/dodona-pyg-v8p4-15b-preview
+ademfatnassi/bnjrGPT-small
+winglian/t5-large-flan-cot
+TheBloke/cassandra-6.9B-GPTQ
+NasimB/gpt2_left_out_children_stories
+reciprocate/openllama-13b_rm_oasst-hh
+ccarvajal/t5-small-finetuned-xsum
+WompWomp1/DialoGPT-medium-Kaori
+wza/llama-13b-finetune-fin-2epoch
+crumb/bespoke-gpt-124m
+Ravi07bec/llama-qlora-30b
+xzuyn/GPT-2-Stable-Diffusion-2.008M-Prompts-6.86M
+yuyuc/llama-7b-instruct-base-chem
+Ravi07bec/llama-qlora-65b
+ArtifactAI/arxiv-t5-small-GenQ
+NasimB/distilgpt2-dp
+xhitijc/finetuning_v3
+NasimB/gpt2_left_out_cbt
+nikolajking/my_awesome_opus_books_model
+suzii/DS-Chatbot-vit5-large_1
+hrkim/my_awesome_eli5_clm-model
+OpenMatch/santa-code-python-adv
+pankajmathur/orca_dolly_3b
+NTIS/KoRnDAlpaca-Polyglot-5.8B
+hrkim/beatles_model
+OpenMatch/santa-product-esci
+Avitas8485/Dialogpt-medium-v3
+sdw103/final_project
+wza/vicuna-13b-finetune-fin-1epoch
+Suchinthana/t5-recommender
+AparnaSakshi/city_dailymail_summarizer
+inarikami/falcon-40b-instruct-8bit
+sheoran95/shuffled_nodes_normal_graphs_with_edge_document_level_T5_run1_checking_1
+harinib/tenjinonline_text2sql_withjoins
+yfshi123/baichuan-vicuna-chinese-7b-gptq-128g
+suzii/DS-Chatbot-vit5-large_2
+AtomGradient/gpt2_causal_inner_lab
+JaeHwi/my_awesome_rot_clm-model
+PT-10/flan-t5-small-wikitablequestions
+wjdals/my_awesome_eli5_clm-model
+uonlp/okapi-id-bloom
+suzii/DS-Chatbot-vit5-large_finetune
+NasimB/gpt2_left_out_gutenberg
+uonlp/okapi-hr-llama
+uonlp/okapi-hu-llama
+suzii/DS-Chatbot-Bloomz-560M_1
+minani/GPT-vietnamese
+calmlab/gpt_large_8bit_actor_3epoch
+calmlab/gpt_large_8bit_actor_1epoch
+calmlab/gpt_large_8bit_actor_2epoch
+OpenBuddy/openbuddy-falcon-7b-v6-bf16
+hopkins/svo-1
+Sans1509/distilgpt2-finetuned-wikitext2
+pcuenq/falcon-7b-instruct
+htkim27/one-line-news-v1.1
+bogdancazan/t5-small-newsela-biendata-with-domain-adaptation
+MBZUAI/bactrian-x-llama-7b-merged
+MBZUAI/bactrian-x-llama-13b-merged
+harinib/text2sql_t5large_tenjin_online
+NasimB/gpt2_left_out_qed
+suzii/DS-Chatbot-vit5-large_finetune_vipro
+wza/llama-13b-finetune-fin-3epoch
+bogdancazan/t5-base-newsela-biendata-with-domain-adaptation
+IANZHU/Belle_Llama7B
+Wazzzabeee/PoliteBloomz
+titanicc/titanicdrpt
+htkim27/one-line-news-v1.2
+Keithulu/distilgpt2-finetuned-python-stack
+syf2023/gpt2
+Lipov91/mt5-small-finetuned-geodescriptions
+hungngo04/cluster_to_text
+curiousily/falcon-7b-qlora-chat-support-bot-faq-merged
+h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-13b
+hopkins/ss-10k
+OmarDiab/DialoGPT-small-Amogus
+kedudzic/flan_ubuntu_v1
+NasimB/distilgpt2-concat
+hipnologo/GPT-Neox-20b-QLoRA-FineTune-english_quotes_dataset
+Wazzzabeee/PoliteT5Base
+servetier/DialoGPT-large-miguel
+navidmadani/nl2logic_t5small_metaqa
+Sandiago21/falcon-40b-prompt-answering
+mrm8488/falcoder-7b
+hipnologo/falcon-7b-qlora-finetune-chatbot
+jondurbin/airoboros-33b-gpt4-1.3
+ManulaPankaja/experience_extraction_epoc3
+natope/closed-book-19-06-2023
+ManulaPankaja/experience_extraction_epoc19
+VMware/open-llama-13b-open-instruct
+NasimB/gpt2_left_out_simple_wikipedia
+Squish42/WizardLM-7B-Uncensored-GPTQ-act_order-8bit
+oplatek/pythia-70m-multi_woz_v22
+anushka-praveen/experience_extraction
+garage-bAInd/Platypus-30B
+Suchinthana/t5-summerizer
+uonlp/okapi-ca-bloom
+ManulaPankaja/skill_extracting_t5_epoch2
+ManulaPankaja/skill_extracting_t5_epoch19
+mncai/StableLM-7B-Kor100K-epoch2
+thisjustinh/falcon-7b-cnn-dailymail
+mncai/StableLM-7B-Kor100K-epoch3
+emozilla/open_llama-3b-2k-xpos-ckpt1000
+HanumanthSastry/t5-small-finetuned-xsum
+hopkins/ss-100k-1
+hopkins/ss-10k-1
+k3ytoshi/dasitest
+calmlab/gpt_large_8bit_object_3epoch
+calmlab/gpt_large_8bit_object_2epoch
+hopkins/ss-1m-1
+woojinheo/codeparrot
+SMKim/my_awesome_squad_kor_v1_clm-model
+thisispublic/flan-t5-small-cnndm
+mncai/RedPajama-7B-Kor100K-epoch3
+woojinheo/codeparrot-small
+uonlp/okapi-fr-bloom
+ehartford/WizardLM-13B-V1.0-Uncensored
+uonlp/okapi-hi-bloom
+hopkins/ss-10m-1
+Kefah/gpt2_disaster_tweets_classification_5
+Zayt/pythia1b-dedup-oasst-dolly-dailydialog
+sdw103/finalprojectyonsei351
+jondurbin/airoboros-13b-gpt4-1.3
+jondurbin/airoboros-7b-gpt4-1.3
+jondurbin/airoboros-65b-gpt4-1.3
+TheBloke/WizardLM-13B-V1.0-Uncensored-GPTQ
+Kefah/gpt2_disaster_tweets_classification_10
+IbrahimSalah/Gpt_enhance_text
+Kefah/gpt2_disaster_tweets_classification_11
+KennethTM/gpt2-small-danish-review-response
+Kefah/gpt2_disaster_tweets_classification_12
+sharpbai/vicuna-7b-v1.3
+TheBloke/airoboros-7B-gpt4-1.3-GPTQ
+kibrq/prompt-simplical-cycles
+Kefah/gpt2_disaster_tweets_classification_13
+sharpbai/vicuna-13b-v1.3
+princetyagi/iqlt5base
+Kefah/gpt2_disaster_tweets_classification_14
+hungngo04/cluster_to_text_t5_base
+sim11som11/t5_results1
+hoangphu7122002ai/T5_xsum_summary
+calmlab/gpt_small_8bit_actor_5epoch
+calmlab/gpt_small_8bit_object_5epoch
+sharpbai/llama-13b-hf
+lololll23/my_awesome_eli5_clm-model
+TheBloke/baichuan-vicuna-7B-GPTQ
+rahuldshetty/minotaur-15b-8bit
+sdw103/finalprojectyonsei807
+BlackSamorez/falcon-40b-tiny-testing
+OmarDiab/DialoGPT-small-Amogus-2
+parkyunmin/beatles_model
+sdw103/finalprojectyonsei846
+AISE-TUDelft/CodeGPT-PY150-XTC-1W8A12L
+suzii/DS-Chatbot-Bloomz-finetune-vip
+breadlicker45/llama-test
+Wazzzabeee/PoliteT5Small
+sboughorbel/bloomchat-petals
+alexandrualexandru/final-3.0-t5-base-2023-06-20_13-18
+suzii/DS-Chatbot-Bloomz-finetune-vip_1
+mncai/RedPajama-7B-korean100k-epoch4
+emozilla/open_llama-3b-2k-xpos-ckpt3000
+SotirisLegkas/Socratic-GODEL-instruct
+SotirisLegkas/Socratic-GODEL-instruct-user-system
+turingsummerexperience/recipes-demo-new
+leukas/mt5-small-nc16-250k-ende
+leukas/mt5-base-nc16-250k-ende
+leukas/mt5-large-nc16-250k-ende
+leukas/mt5-small-nc16-250k-enru
+leukas/mt5-base-nc16-250k-enru
+wza/vicuna-7b-finetune-fin-1epoch
+turingsummerexperience/recipes-demo-new-new
+0x70DA/EnabledChat-Falcon
+fireballoon/baichuan-vicuna-chinese-7b-gptq
+leukas/mt5-small-nc16-2k-ruen
+leukas/mt5-small-nc16-2k-enru
+leukas/mt5-small-nc16-2k-ende
+leukas/mt5-small-nc16-2k-deen
+leukas/mt5-small-nc16-2k-ptes
+leukas/mt5-large-wmt14-250k-deen
+turingsummerexperience/recipes-dem
+leukas/byt5-small-nc16-2k-enru
+leukas/byt5-small-nc16-2k-ruen
+leukas/byt5-small-nc16-2k-deen
+leukas/byt5-small-nc16-2k-ende
+leukas/byt5-small-nc16-2k-ptes
+leukas/mt5-base-nc16-2k-enru
+leukas/mt5-base-nc16-2k-ruen
+leukas/mt5-base-nc16-2k-deen
+leukas/mt5-base-nc16-2k-ende
+leukas/mt5-base-nc16-2k-ptes
+leukas/byt5-base-nc16-2k-ruen
+leukas/byt5-base-nc16-2k-deen
+leukas/byt5-base-nc16-2k-ende
+leukas/byt5-large-wmt14-250k-deen
+leukas/byt5-base-nc16-2k-enru
+leukas/byt5-base-nc16-2k-ptes
+TheBloke/open-llama-13b-open-instruct-GPTQ
+leukas/mt5-large-nc16-2k-ruen
+leukas/mt5-large-nc16-2k-deen
+leukas/mt5-large-nc16-2k-ende
+leukas/mt5-large-nc16-2k-enru
+leukas/mt5-large-nc16-2k-ptes
+leukas/mt5-large-wmt14-1250k-deen
+leukas/byt5-large-nc16-2k-ruen
+leukas/byt5-large-nc16-2k-deen
+leukas/byt5-large-nc16-2k-ende
+leukas/byt5-large-nc16-2k-enru
+filypo/distilgpt2-finetuned-wikitext2
+leukas/byt5-large-nc16-2k-ptes
+andrewatkinson13/shakespeare
+leukas/byt5-large-wmt14-1250k-deen
+leukas/mt5-small-nc16-50k-deen
+leukas/mt5-small-nc16-50k-ruen
+leukas/mt5-small-nc16-50k-ende
+leukas/mt5-small-nc16-50k-enru
+leukas/mt5-small-nc16-2k-enes
+leukas/byt5-small-nc16-50k-deen
+leukas/byt5-small-nc16-50k-ruen
+leukas/byt5-small-nc16-50k-ende
+leukas/byt5-small-nc16-50k-enru
+leukas/byt5-small-nc16-2k-enes
+leukas/mt5-base-nc16-50k-ruen
+leukas/mt5-base-nc16-50k-deen
+leukas/mt5-base-nc16-50k-ende
+leukas/mt5-base-nc16-50k-enru
+charmiemimie/t5-small-finetuned-led
+leukas/mt5-base-nc16-2k-enes
+nayRnrevoGcM/shakespear
+leukas/byt5-base-nc16-50k-ruen
+leukas/byt5-base-nc16-50k-deen
+leukas/byt5-base-nc16-50k-ende
+leukas/byt5-base-nc16-50k-enru
+leukas/byt5-base-nc16-2k-enes
+leukas/mt5-large-nc16-50k-ruen
+leukas/mt5-large-nc16-50k-deen
+leukas/mt5-large-nc16-50k-ende
+leukas/mt5-large-nc16-50k-enru
+leukas/mt5-large-nc16-2k-enes
+omarelsayeed/cc
+Peeepy/open-llama-13b-4bit-128g-GPTQ
+AnnieEl/distilgpt2-finetuned-wikitext2
+leukas/byt5-large-nc16-50k-deen
+leukas/byt5-large-nc16-50k-ruen
+leukas/byt5-large-nc16-50k-ende
+leukas/byt5-large-nc16-50k-enru
+leukas/byt5-large-nc16-2k-enes
+yenslife/vicuna-13b
+TheBloke/airoboros-13B-gpt4-1.3-GPTQ
+kedudzic/flan_ubuntu_v2
+mohsenfayyaz/mt5-small-query_realestate_cars-finetuned
+TheBloke/airoboros-33B-gpt4-1.3-GPTQ
+Lajonbot/polish-gpt2-small-instruct
+jackoyoungblood/TinyStories
+TheBloke/airoboros-65B-gpt4-1.3-GPTQ
+TheBloke/baichuan-llama-7B-GPTQ
+AnnieEl/my_awesome_eli5_clm-model
+medmac01/moroccan-qa-falcon-7b-v3
+ahmed0189/mT5-Arabic-text-summarization
+AnnieEl/Distilgpt_RxTest_clm-model
+autopilot-ai/Indic-sentence-completion
+ricenewme/my_awesome_eli5_clm-model
+context-sbf/charm-large
+yenslife/vicuna-7b
+hotai/T5-small-vi-sum
+RishavAich511/flan-T5-wikitablequestions
+dsvv-cair/alpaca-cleaned-llama-30b-bf16
+PhongLe1311/mt5-small-finetuned-amazon-en-es
+conceptofmind/Flan-Open-Llama-7b
+koreadaeil/my_awesome_eli5_clm-model
+calmlab/gpt_large_8bit_object_1epoch
+lmsys/vicuna-33b-v1.3
+shivam001/deibotquestion
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-0.6-sparse-q-only-weights-sym-per-channel
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-0.6-sparse-q-only-weights-sym-per-tensor
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-0.6-sparse-q-only-weights-asym-per-tensor
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-0.6-sparse-q-only-weights-asym-per-channel
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-0.6-sparse-q-all-layers-sym-per-tensor
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-0.6-sparse-q-all-layers-asym-per-tensor
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-0.6-sparse-q-all-layers-sym-per-channel
+AISE-TUDelft/BRP-Sochirca-CodeGPT-Py150-0.6-sparse-q-all-layers-asym-per-channel
+getrajeev03/flan-t5-base-samsum
+eggqq007/newtoken-llama-13b-base
+UnHolyTrinity/trinity_eng_quotes_model
+xzuyn/GPT2-Stable-Diffusion-1.487M-Prompts-Deduped-6.86M
+findnitai/t5-hinglish-translator
+j5ng/et5-formal-convertor
+marii/gutenburg
+loubnabnl/starcoder-1b
+arubenruben/ptt5-portuguese-cnn-daily-mail-google
+YeungNLP/Ziya-LLaMA-13B-Pretrain-v1
+chayan75/QA-bloom-560m
+ManthanKulakarni/Text2JQLBuilder_v2
+Hollway/gpt2_finetune
+user1251/my_awesome_eli5_clm-model
+chayan75/QA-mt0-large
+medicalai/ClinicalGPT-base-zh
+deepakpurandare/mt5-small-finetuned-amazon-en-es
+chjooon/distilgpt2_fiscal
+tibok/baichuan-7B-chatml
+TheBloke/falcon-7b-instruct-GGML
+TheBloke/WizardLM-Uncensored-Falcon-7B-GGML
+KoRiF/codeparrot-ds
+chjooon/distilgpt2_fiscal_all
+karlen532/T5-base
+jackoyoungblood/TinyStories-v2
+Khushnur/t5-end2end-questions-generation_eli_squad_aug_imp_exp_corr
+context-sbf/charm-xl
+getrajeev03/test-huggingface-ibm
+deepakpurandare/test-bert-finetuned-squad-accelerate
+emiryucedag/meslai
+gigant/graph_t5_230621
+Rajaganapathy/my_awesome_eli5_clm-model
+liliaciolite/my_awesome_eli5_clm-model
+d0rj/rut5-base-summ
+HyeCheol/Mudoodoo_model
+marcsun13/bloom-1b7_with_lm_head
+henri28/small_dataset
+bandrocks/my_awesome_eli5_clm-model
+UnHolyTrinity/my_awesome_eli5_clm-model
+antphb/DS-Chatbox-gpt2-vietnamese-V3-FT
+koreadaeil/finetuned-bert-piqa
+enkaell/short-jokes
+henri28/final_tcc_model
+UnHolyTrinity/eng_quotes_model
+Rajaganapathy/casual_language-model
+Khushnur/t5-small_eli_squad_aug_implicit_explicit_corr1
+pellucid/my_awesome_imdb_clm-model
+user1251/football_model
+bandrocks/my_awesome_kendrick_clm-model
+Goodnoway/DialoGPT-nerbalV4
+macavins/mt5-small-finetuned-amazon-en-es
+Ndams/distilgpt2-finetuned-wikitext2
+suzii/DS-Chatbot-ViT5-finetune_3
+NasimB/gpt2_left_out_switchboard
+newsrx/instructor-xl-newsrx
+newsrx/instructor-large-newsrx
+RajkNakka/mt5-small-finetuned-amazon-en-es
+pendulum27/mt5-small-cnn-dm-kaggle-en-02
+jondurbin/airoboros-13b-gpt4-1.4
+AISE-TUDelft/BRP-Storti-CodeGPT-Py150
+LukeMoore11/Big-Benjamin
+liliaciolite/rotttt
+ArtifactAI/flan-t5-base-arxiv-cs-ml-question-answering
+sxx123/finetune_jingzhan
+jondurbin/airoboros-7b-gpt4-1.4
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023
+bluemoonwj/my_awesome_eli5_clm-model
+Nara-Lab/nallm-polyglot-ko-1.3b-base
+cjd536/mt5-small-finetuned-amazon-en-es
+mike-ravkine/BlueHeeler-12M
+ArtifactAI/flan-t5-base-arxiv-math-question-answering
+RajkNakka/mt5-finetuned-amazon-en-es-accelerate
+ethan1278/Wizard-Vicuna-7B-Uncensored-sharded-bf16
+xiao-ning/chatpig
+Tinny-Robot/NCAIR-ChatBot
+peterchatain/mock_test_save
+sharpbai/open_llama_13b
+IbrahimSalah/Gpt_medium_enhance_text
+PocketDoc/Dans-PersonalityEngine-30b-gptq-4bit-128g-ao
+YonseiJung/my_awesome_eli5_clim-model
+user1251/soccer_model_final
+user1251/soccer_finetuned_model
+Rajaganapathy/distilgpt2_model
+rudzhehdehd/To_my_Love
+Trisert/open_llama_3b-sharded
+ricenewme/f_n
+ooferdoodles/llama-tagger-HF
+YonseiJung/trial1
+Trisert/falcon-7b-instruct-sharded
+TheBloke/airoboros-7B-gpt4-1.4-GPTQ
+openchat/openchat
+openchat/openchat_8192
+bandrocks/my_awesome_weeknd_clm-model
+user1251/soccer_finetuned_model_final2
+dipesh1111/Redpajama-7b-chat-lora-merged-wiseyak
+TheBloke/airoboros-13B-gpt4-1.4-GPTQ
+wonwonii/my_awesome_eli5_clm-model
+slimsha2dy/my_awesome_eli5_clm-model
+seyon0924/my_awesome_eli5_clm-model
+dwang0129/my_awesome_eli5_clm-model
+t2binh/open-llama-13b-open-instruct
+user1251/soccer_finetuned_model_final3
+heon98/my_awesome_eli5_clm-model
+user1251/soccer_finetuned_model_final4
+bandrocks/my_awesome_eminem_clm-model
+TheBloke/Flan-OpenLlama-7B-GPTQ
+Naonori/billsum_model_for_test
+user1251/soccer_finetuned_model_final5
+NasimB/gpt2_left_out_wikipedia
+seokyoon/my_awesome_eli5_clm-model
+ycros/airoboros-13B-gpt4-1.4-GPTQ-2bit-128g
+Barianc/distilgpt2-finetuned-wikitext2
+jondurbin/airoboros-7b-gpt4-1.4-fp16
+jondurbin/airoboros-13b-gpt4-1.4-fp16
+Serendipity34/my_awesome_eli5_clm-model
+Mursel/turkishReviews-ds-mini
+user1251/soccer_finetuned_model2_final1
+user1251/soccer_finetuned_model2_final2
+bond005/ruT5-ASR-large
+user1251/soccer_finetuned_model2_final3
+user1251/soccer_finetuned_model2_final4
+seyon0924/my_awesome_albert_clm-model
+RajkNakka/codeparrot-ds
+OnePoint16/t5-end2end-questions-generation
+user1251/soccer_finetuned_model2_final5
+rudzhRjwu/my_awesome_eli5_clm-model
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-6epochs
+andrewatkinson13/Lyrics
+ChandlerU11/t5_fine_poli
+brunoleme/my_awesome_eli5_clm-model
+authoranonymous321/mt5_3B-teabreac-AQA_random
+OmarDonia/output_model
+authoranonymous321/mt5_3B-teabreac-AQA_informative
+erbacher/flan-small-passage-evidence
+Peeepy/Airoboros-13b-SuperHOT-8k
+reciprocate/openllama-13b-rlhf-v0
+authoranonymous321/mt5_3B-teabreac-AQA_CoAT
+ayoolaolafenwa/ChatLM
+arubenruben/ptt5-portuguese-cnn-dailymail-azure-pt-pt
+PORTULAN/gervasio-ptpt-base
+PORTULAN/gervasio-ptbr-base
+rchen413/models
+sunilrufus/Lyrics
+breadlicker45/discordLLama-460m
+iamplus/brain_v3
+pankajmathur/orca_mini_13b
+emozilla/open_llama_7b-scaled
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-without-ams
+AI4PD/lact
+keppy/pythia-70m-dedupe-yt
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-without-ams-6epochs
+papahawk/keya-560m
+flashvenom/Airoboros-13B-SuperHOT-8K-4bit-GPTQ
+muheng/finetuned-contract-legal
+osunlp/attrscore-flan-t5-xl
+pankajmathur/orca_mini_3b
+Blackroot/airoboros-1.3-unstrct50sparse
+osunlp/attrscore-flan-t5-xxl
+natope/mT5-tfidf-10pass-all-questions-QA-23-06-2023-summary
+YonseiJung/trial
+YonseiJung/trialA
+gongliyu/my_awesome_billsum_model
+Nara-Lab/nallm-polyglot-ko-3.8b-base
+JavRedstone/DialoGPT-small-tesseractist
+dhifanrazaqa/t5-end2end-questions-generation-small-squad
+mio/danbooru-gpt2
+pellucid/my_awesome_spotify_clm-model
+conceptofmind/Flan-Open-Llama-3b
+YonseiJung/trialC
+NasimB/gpt2-2_left_out_aochildes
+WHJ1998/t5_tiny_symptom_test
+Squish42/WizardLM-7B-Uncensored-GPTQ-8bit-128g
+ndktraining/distilgpt2-finetuned-wikitext2
+pankajmathur/orca_mini_7b
+mncai/Vicuna-13B-Kor100K-insurancev2-epoch1
+WHJ1998/Whj_T5_Symptom_v1.0_tiny
+KJH97/my_awesome_eli5_clm-model
+YonseiJung/trialD
+JHSong/my_awesome_eli5_clm-model
+NasimB/gpt2-2_left_out_cbt
+cateto/gpt-neox-125M-finetuned-nsmc
+Chy084/my_awesome_eli5_clm-model
+h2oai/h2ogpt-gm-oasst1-en-2048-falcon-40b-v2
+codeparrot/starcoder-si-10
+bigcode/starcoder-o
+lyneshiacorrea/MyModel
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-without-ams-with-nonfactual
+Tonito77/flan-t5-large-xsum
+zjkarina/Matreshka_Llama
+Smaraa/t5-small-wikilarge-newsela-with-domain-adaptation_test
+mrizalf7/t5-small-textsum-indosum
+NasimB/gpt2-2_left_out_gutenberg
+nicholasKluge/Aira-Instruct-1B5
+kraitans21/test_pythia
+rashmikamath01/summarizer-small-500
+chan21152/my_awesome_wiki_clm-model
+mercurious/my_model
+bogdancazan/t5-small-wikilarge-newsela-with-domain-adaptation_test
+vg055/spanish-gpt2-finetuned-rap-lyrics-finetuned-TASS2020
+sunilrufus/lyrics2
+sunilrufus/lyrics3
+NasimB/gpt2-og-concat-modified-aochild
+YonseiJung/trialE
+emnlp2023/calc-flan-xl
+baekwonu/Love_forever
+andrewatkinson13/NLP
+CyrusChung/lyricmuse
+dpv/finetuned-gpt2-tiny
+emnlp2023/calc-t5-xl
+emnlp2023/calc-t5-large
+MitchelHsu/alpaca-lora-7b
+emnlp2023/baseline-t5-large
+Abdelkareem/t5-arabic-text-summarizationt5
+sahil2801/math8
+johacbeg/spanish-gpt2-finetuned-rap-lyrics-finetuned-TASS2020
+Yuliushh/spanish-gpt2-finetuned-rap-lyrics-finetuned-TASS2020
+hidude562/Maestro-0.5
+zblaaa/t5-base-finetuned-ner_2306_1815
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-without-ams-with-nonfactual-questionsonly
+Ravi07bec/llama-7b-lora
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-without-ams-questionsonly
+Jamie11/my_awesome_eli5_clm-model
+Imran1/distilgpt2-pashto_model
+mrizalf7/test-textsum-t5
+athirababu0988/finetuning_gpt_2
+mrizalf7/test-textsum-t5-1
+Ravi07bec/llama-7b-lora-2
+Sam12111/spanish-gpt2-finetuned-rap-lyrics-finetuned-TASS2020
+csmxo/my_awesome_squad_clm-model
+mskkkk/minseo_s_k_clm-model
+Joshwabail/gpt-2-sft
+NasimB/gpt2-3_left_out_aochildes
+Jamie11/Finals_duorc_gpt2_model
+gongliyu/fine-tuned-t5-small
+muheng/finetuned-contract-legal-encoder
+gagan3012/GEC_cor
+TheBloke/h2ogpt-gm-oasst1-en-2048-falcon-40b-v2-GGML
+MerlynMind/merlyn-education-corpus-qa
+Panchovix/h2ogpt-research-oasst1-llama-65b-4bit-32g-actorder
+imuncomfortable/DiabloGPT-small-CocoAtarashi
+konsman/mt5-small-finetuned-amazon-en-es
+Jamie11/Finals_hotpot_gpt2_model
+Salad99/my_awesome_eli5_clm-model
+sahil2801/glaive_reasoning_1b
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-without-ams-with-nonfactual-questionsonly-v2
+sunsetsobserver/GPT2_MIDI_Transformer
+malper/taatiknet
+Joshwabail/gpt-2-large-sft
+JHSong/language_identification_clm-model
+Xenova/bloom-560m
+Xenova/bloomz-560m
+IbrahimSalah/GPT_Enhanced_Tuned
+Peeepy/Airoboros-33b-SuperHOT-8k-GPTQ
+hidude562/Maestro-0.51
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-without-ams-with-nonfactual-contextonly
+mncai/Vicuna-13B-Kor100K-insurancev2-epoch2
+DaliahX/CoLLaMA-7b
+Panchovix/Guanaco-65B-GPTQ-32g-actorder
+Imran1/distilgpt2-poem_p
+hf-internal-testing/tiny-random-T5EncoderModel
+Imran1/distilgpt2-poem
+mrizalf7/t5-small-textsum-indosum-1
+xma77/my_awesome_eli5_clm-model
+seyon0924/my_awesome_gpt2_clm-model
+jeremyvictor/mt5-large-gramatika-e8-b16
+PKU-Alignment/beaver-7b-v1.0
+ManthanKulakarni/LLaMa-13b-Text2JQLBuilder
+jeremyvictor/t5-v1_1-large-gramatika-e8-b16
+Panchovix/airoboros-65b-gpt4-1.2-4bit-32g-actorder
+pbear1973/watson
+DhaneshV/T2Fillups
+daan1213/my_awesome_eli5_clm-model
+FittenTech/openllama-english-7b-evol-intruct
+pablo-chocobar/xsum_headlines_t5small
+TheBloke/h2ogpt-gm-oasst1-en-2048-falcon-40b-v2-GPTQ
+emnlp2023/baseline-flan-xl
+9wimu9/mt5-xl-sin-odqa-1
+TheYuriLover/Airoboros-13b-SuperHOT-8k-TRITON-32g-ts-ao
+Panchovix/robin-65b-v2-4bit-32g-actorder
+emnlp2023/baseline-t5-xl
+ehartford/WizardLM-33B-V1.0-Uncensored
+Smaraa/bart-text-simplification_1e4_adafactor
+hanabisuri/my_awesome_eli5_clm-model
+TheBloke/WizardLM-33B-V1.0-Uncensored-GPTQ
+jeremyvictor/mt5-base-gramatika-e8-b16
+jeremyvictor/t5-v1_1-base-gramatika-e8-b16
+pbear1973/watsonlocal
+KJH97/my_awesome_eli5_clm-model_2
+okpyjs/LLM
+hanabisuri/clm-model-weather
+csmxo/squad_final
+hanabisuri/clm-model-book
+amr1999/mt5-small-finetuned-SummaryData
+hanabisuri/clm-model-tweet
+currentlyexhausted/lite-llm-248
+hanabisuri/clm-model
+Chy084/my_awesome_patent_t_model
+Chy084/my_awesome_patent_d_model
+pbear1973/watson-cerebras
+MycMycuH/Ziramodel
+semindan/mt5_mtl_xglue_to_ctkfactsnli
+erfanzar/LGeM-13B-MT
+WelfCrozzo/T5-L128-belarusian
+hopkins/svo-2
+hidude562/Maestro-0.53
+ArtifactAI/flan-t5-xxl-arxiv-math-closed-qa
+hopkins/svo-3
+ajdev/falcon_medical
+natope/mT5-tfidf-10pass-all-questions-QA-22-06-2023-without-ams-3epochs-contextonly
+hopkins/svo-ss10k
+IbrahimSalah/T5_Trial
+Amod/falcon7b-fine-tuned-therapy-merged
+Ichsan2895/Garuda-7B
+fbellame/pdf_to_quizz_llama_13B
+MerlynMind/merlyn-education-safety
+MerlynMind/merlyn-education-teacher-assistant
+NasimB/gpt2-dp-mod_aochild
+TheBloke/orca_mini_13B-GPTQ
+TheBloke/orca_mini_7B-GPTQ
+Monk666/my_awesome_eli5_clm-model
+hongyin/awareness-en-zh-0.8b-instruct
+mncai/Vicuna-13B-Kor100K-insurancev2-epoch3
+kaiyuy/leandojo-lean4-tacgen-byt5-small
+NasimB/gpt2-dp-mod-aochild-10chars
+gasolsun/pixiu-v1.0
+owanr/r1_iterater_1
+OpenMEDLab/PULSE-7bv5
+Gayathri142214002/t5_qg_1
+Gayathri142214002/t5_qg_2
+wesley7137/orca-mini-13b
+NasimB/gpt2-2-og-concat-modified-aochild
+Vrushali/model-t5
+NasimB/gpt2-2-dp-mod-aochild-cut
+IbrahimSalah/T5_Trial_2
+jiyuanq/falcon-40b-instruct-gptq-128g-act
+Jumtra/rinna-3.6b-tune-ep5
+Jumtra/calm-7b-tune-ep4
+Jumtra/calm-7b-tune-ep5
+wesley7137/wizard-vicuna-7b-uncensored
+TheBloke/vicuna-13b-v1.3.0-GPTQ
+Harshkmr/kisan-cb
+Monk666/monk_awesome_eli5_clm-model
+Smaraa/t5-text-simplification_1e4_adafactor
+Smaraa/t5-text-simplification_1e4_adafactor_newsela
+avecoder/mt5-small-finetuned-amazon-en-es
+Smaraa/gpt2-text-simplification_1e4_adafactor_newsela
+Oshirigami1980/DialoGPT-medium-Steven
+Smaraa/t5-text-simplification_1e4_adafactor_biendata
+Smaraa/gpt2-text-simplification_1e4_adafactor_biendata
+VilohitT/t5-small-finetuned-xsum
+alup/agrimi-7.5B-dolly
+Euna9/kogpt2_ku_2
+tiroAI/falcon-7b-qlora-chat-support-bot-faq-DC-merged
+hidude562/Maestro-0.5-large
+lifeofcoding/mastermax-7b
+AnthonyErosion/HoctotAI
+hsultanbey/codet5p-770m-finetuned-122k
+PhongLe1311/my_awesome_billsum_model
+yifever/sleeper-agent
+sigmareaver/flan-ul2-4bit-128g-gptq
+anandanand84/t5-base-json-convert-quote
+zaaabik/my_awesome_eli5_clm-model
+kaiyuy/leandojo-lean3-retriever-tacgen-byt5-small
+KrijnD/flan-t5-base_with_pragmatics_version1
+XuYipei/kw-cutegpt-13b-ift
+bogdancazan/t5-small-text-simplification_1e4_adafactor
+jondurbin/airoboros-33b-gpt4-1.4
+Drevanil/DialoGPT-small-try
+KrijnD/flan-t5-base_with_pragmatics_normalised
+KrijnD/flan-t5-base_with_pragmatics_version2
+Chung-Fan/billsum_model
+abhisheky127/FeedbackSummarizerEnterpret
+rafaeljosem/DeepESP-gpt2-spanish-tripadvisor
+tmpupload/superhot-30b-8k-no-rlhf-test-128g-GPTQ
+Panchovix/airoboros-33b-gpt4-1.2-SuperHOT-8k
+tmpupload/superhot-30b-8k-no-rlhf-test-GPTQ
+NasimB/gpt2-3-og-concat-modified-aochild
+Panchovix/WizardLM-33B-V1.0-Uncensored-SuperHOT-8k
+mncai/Vicuna-13B-Kor100K-insurancev3-epoch1
+tmpupload/superhot-13b-16k-no-rlhf-test-32g-GPTQ
+tmpupload/superhot-13b-16k-no-rlhf-test-GPTQ
+mncai/RM-Polyglot-1.3B
+mncai/OpenLLaMA-13B-Kor100K-epoch1
+sumo43/agi-111m
+fiveflow/gpt2-large-gsm8k
+fiveflow/gpt2-large-sat
+fiveflow/gpt2-medium-gsm8k
+fiveflow/gpt2-medium-sat
+fiveflow/gpt2-sat
+fiveflow/gpt2-gsm8k
+FreedomIntelligence/phoenix-inst-chat-7b-v1.1
+Panchovix/WizardLM-33B-V1.0-Uncensored-SuperHOT-8k-4bit-32g
+Panchovix/h2ogpt-research-oig-oasst1-512-30b-SuperHOT-8k
+millstein0/WizardVicuna-Uncensored-superHOT30B-4bit-128g-GPTQ
+DunnBC22/sentence-t5-large-FT-Quora_Sentence_Similarity-400
+openbmb/UltraLM-13b
+Panchovix/h2ogpt-research-oig-oasst1-512-30b-SuperHOT-8k-4bit-32g
+Chung-Fan/my_t5_model
+felixdae/cs324-length-control
+Tobievii/T5FastTobyChat
+Narsil/amall-7b
+titan087/OpenLlama13B-Guanaco
+Panchovix/Guanaco-33B-SuperHOT-8k
+usamakenway/Wizard-Vicuna-13B-Uncensored-AutoGPTQ
+raveendarv/t5-small-finetuned-xsum
+Tobievii/TobyChat13Bv13
+mncai/Vicuna-7B-Kor10K-insurancev3-epoch1
+Panchovix/airoboros-33b-gpt4-1.4-SuperHOT-8k
+kesavan1994/my_awesome_qa_model
+pengcc1/model_name
+hazemOmrann14/mT5_multilingual_XLSum-finetuned-xsum
+arildgrimstveit/vicuna
+YeungNLP/firefly-bloom-7b1
+kalyaniAI/autotrain-autotrain-69874137966
+KrijnD/flan-t5-base_with_pragmatics_all_costs_100_epoch
+TheBloke/Guanaco-33B-SuperHOT-8K-GPTQ
+Ashmi/my_awesome_dataset_model
+tmpupload/superhot-13b-8k-no-rlhf-test-GPTQ
+TheBloke/WizardLM-33B-V1-0-Uncensored-SuperHOT-8K-GPTQ
+KrijnD/flan-t5-base_with_pragmatics_only_utility
+Mizuiro-sakura/open-calm-large-finetuned-databricks-dolly
+Xenova/instructor-base
+Xenova/instructor-large
+Xenova/sentence-t5-large
+ArtifactAI/flan-t5-xxl-arxiv-cs-ml-closed-qa
+Helly/alpaca-7b-lora-merged-dwarves-poc
+SuperNova672/ArticletoTitle
+andyfriedrich-amd/hipify_plus_model
+Stevie23/LittleMKIA
+IssamL/aragpt2-base
+IssamL/darijabertgenad
+tmpupload/superhot-13b-8k-no-rlhf-test-32g-GPTQ
+IssamL/aragpt2-base2
+breadlicker45/dough-base-001
+Yhyu13/open-llama-7b-open-instruct-gptq-4bit
+authoranonymous321/mt5_large-teabreac-AQA_CoAT
+Seungjun/GSOCt5-small-finetuned-t5_V1
+TheBloke/Tulu-30B-SuperHOT-8K-GPTQ
+hungngo04/cluster_to_text_t5_b3
+Panchovix/Guanaco-33B-SuperHOT-8K-4bit-32g
+ALPHONSE28/SEMANA10
+TheBloke/airoboros-33B-gpt4-1.4-GPTQ
+thr10/thr-wlm-15b-3gb
+TheBloke/Tulu-30B-SuperHOT-8K-fp16
+Yhyu13/open-llama-13b-open-instruct-gptq-4bit
+kaist-ai/CoT-T5-11B
+kaist-ai/CoT-T5-3B
+TheBloke/chronos-33b-superhot-8k-fp16
+TheBloke/chronos-33b-superhot-8k-GPTQ
+Just4ATest/Just4ATest
+Ruqiya/rs
+smtriplett/deceptive_gpt2_model
+Panchovix/airoboros-33b-gpt4-1.4-SuperHOT-8k-4bit-32g
+smtriplett/truthful_gpt2_model
+NasimB/gpt2-3-dp-mod-aochild-cut
+nicholasKluge/Aira-Instruct-PT-1B7
+Keithulu/distilgpt2-finetuned-python-stack-clean-answers
+Keithulu/distilgpt2-finetuned-python-stack-clean-answers-e10
+Keithulu/distilgpt2-finetuned-python-stack-clean-answers-e200
+TheBloke/Wizard-Vicuna-30B-Superhot-8K-GPTQ
+Weni/RedPajama-Test
+BigSalmon/InformalToFormalLincoln102Paraphrase
+titan087/OpenLlama13b-Guanaco-Landmark-4bit
+Panchovix/WizardLM-Uncensored-SuperCOT-StoryTelling-30b-SuperHOT-8k
+TheBloke/Wizard-Vicuna-30B-Superhot-8K-fp16
+MrDragonFox/Lazarus-30b-SuperHOT-8k
+gsequist/distilgpt2-finetuned-wikitext2
+TheBloke/Vicuna-13B-1-3-SuperHOT-8K-GPTQ
+Ichigo2899/WIZVIC-7b-TGI-GPTQ
+NasimB/gpt2-dp-no-shuffle
+TheBloke/Vicuna-13B-1-3-SuperHOT-8K-fp16
+MrDragonFox/Lazarus-30b-SuperHOT-8k-GPTQ
+Panchovix/WizardLM-Uncensored-SuperCOT-StoryTelling-30b-SuperHOT-8k-4bit-32g
+TheBloke/WizardLM-13B-V1-0-Uncensored-SuperHOT-8K-GPTQ
+TheBloke/WizardLM-13B-V1-0-Uncensored-SuperHOT-8K-fp16
+lyogavin/qlora-hh-rlhf-7b-merged
+jwieting/vmsst
+TheBloke/guanaco-13B-SuperHOT-8K-fp16
+TheBloke/guanaco-13B-SuperHOT-8K-GPTQ
+TheBloke/Nous-Hermes-13B-SuperHOT-8K-fp16
+TheBloke/Nous-Hermes-13B-SuperHOT-8K-GPTQ
+QMB15/Wizard-Vicuna-30B-SuperHOT-8k-test-GPTQ
+Jumtra/calm-v3-ep1
+hluongsilico/gpt2-wikitext2
+TheBloke/Manticore-13B-Chat-Pyg-SuperHOT-8K-fp16
+TheBloke/Manticore-13B-Chat-Pyg-SuperHOT-8K-GPTQ
+mncai/Vicuna-7B-Kor10K-insurancev3-epoch2
+mncai/Vicuna-7B-Kor10K-insurancev3-epoch3
+TheBloke/Manticore-13B-SuperHOT-8K-GPTQ
+TheBloke/Manticore-13B-SuperHOT-8K-fp16
+mncai/Vicuna-13B-Kor100K-insurancev3-epoch2
+Panchovix/tulu-30b-SuperHOT-8K-4bit-32g
+memotirre90/Equipo16_gpt2-hotel
+Kkoustubh/QuoteGPT
+TheBloke/Minotaur-13B-fixed-SuperHOT-8K-GPTQ
+TheBloke/Minotaur-13B-fixed-SuperHOT-8K-fp16
+Ichigo2899/Airoboros-13b-8k-TGI-GPTQ
+TheBloke/Robin-13B-v2-SuperHOT-8K-GPTQ
+TheBloke/Robin-13B-v2-SuperHOT-8K-fp16
+mncai/OpenLLaMA-13B-Kor100K-epoch2
+mingxing1993/gpt2-v100
+TheBloke/Samantha-13B-SuperHOT-8K-GPTQ
+TheBloke/Samantha-13B-SuperHOT-8K-fp16
+TheBloke/Tulu-13B-SuperHOT-8K-GPTQ
+TheBloke/Tulu-13B-SuperHOT-8K-fp16
+TigerResearch/medical-bot-peft-from-tigerbot-7b-sft
+TheBloke/Wizard-Vicuna-13B-Uncensored-SuperHOT-8K-GPTQ
+TheBloke/Wizard-Vicuna-13B-Uncensored-SuperHOT-8K-fp16
+bash99/Ziya-LLaMA-13B-v1-GPTQ
+glueso/gluev1
+jamenc/SEMANA10
+devrev/autocomplete-gpt-m
+xzuyn/GPT2-RPGPT-8.48M
+ArthurZ/umt5-base
+NasimB/gpt2-2-dp-no-shuffle
+ArthurZ/umt5-small
+ArthurZ/umt5-xl
+rahuldshetty/open-llama-13b-open-instruct-8bit
+silpakanneganti/flan-cpt-medical-ner
+ecnu-icalk/educhat-sft-002-7b
+openlamm/lamm3d_13b_lora32_10k
+ecnu-icalk/educhat-sft-002-13b
+Bareubara/justworkpls
+udxyz/HarryPotterBot
+iamplus/llama-33b
+TheYuriLover/airoboros-13b-gpt4-1.4-GPTQ-32g-ao-ts
+TheBloke/airoboros-13b-gpt4-1.4-SuperHOT-8K-GPTQ
+TheBloke/airoboros-13b-gpt4-1.4-SuperHOT-8K-fp16
+TheBloke/CAMEL-13B-Role-Playing-Data-SuperHOT-8K-fp16
+TheBloke/CAMEL-13B-Role-Playing-Data-SuperHOT-8K-GPTQ
+arildgrimstveit/vicuna7b
+michaelfeil/ct2fast-open-llama-13b-open-instruct
+TheBloke/Chronos-Hermes-13B-SuperHOT-8K-GPTQ
+TheBloke/Chronos-Hermes-13B-SuperHOT-8K-fp16
+shaileshp/trained-test-model-1-merged
+TheBloke/CAMEL-13B-Combined-Data-SuperHOT-8K-fp16
+TheBloke/CAMEL-13B-Combined-Data-SuperHOT-8K-GPTQ
+TheBloke/GPT4All-13B-Snoozy-SuperHOT-8K-fp16
+TheBloke/GPT4All-13B-Snoozy-SuperHOT-8K-GPTQ
+shaileshp/trained-test-model-2-merged
+devrev/autocomplete-gpt
+TheBloke/Samantha-33B-SuperHOT-8K-fp16
+TheBloke/Samantha-33B-SuperHOT-8K-GPTQ
+jieshenai/uie
+OpenMatch/AAR-ANCE
+usamakenway/pygmalion-13b-4bit-128g-AutoGPTQ
+harshs21/dialogpt
+Jumtra/rinna-v1-tune-ep3
+Jumtra/rinna-v1-tune-ep1
+Jumtra/calm-v3-ep3
+reciprocate/vicuna-13b_rm_oasst-hh
+TheBloke/Chronos-13B-SuperHOT-8K-GPTQ
+TheBloke/Chronos-13B-SuperHOT-8K-fp16
+llm-book/t5-base-long-livedoor-news-corpus
+mrzlab630/weights_Llama_7b
+osunlp/attrscore-vicuna-13b
+denver1/tempda123
+aarmentah/SEMANA10
+TheBloke/Pygmalion-13B-SuperHOT-8K-GPTQ
+TheBloke/Pygmalion-13B-SuperHOT-8K-fp16
+Yhyu13/vicuna-33b-v1.3-gptq-4bit
+yuzhiliu8/Songlyricsgenerator
+CyrusChung/LyricsGeneratorModel
+osunlp/attrscore-llama-7b
+nayRnrevoGcM/lyricGenerator
+Spidey-Koko/Lyric_Generator
+jialii/falcon-7b-instruct
+Audi24/mt5-small-finetuned-amazon-en-es
+osunlp/attrscore-alpaca-7b
+uf-aice-lab/Llama_Lora
+andrewatkinson13/LyricsGenerator
+osunlp/attrscore-alpaca-13b
+kolpadkar/legal-flan-t5-base
+breadlicker45/dough-instruct-base-001
+samlearn3/mt5-small-finetuned-amazon-en-es
+usmiva/gpt-web-bg
+SuperNova672/ArticleToTitleT5
+Miholini/turkishReviews-ds-mini
+Audi24/test-bert-finetuned-squad-accelerate
+PritamReddy/test-demo
+dthieu/xsum_model
+FPHam/Harper_AssistantEditor_V1_13b_GPTQ
+numanBot/customer_feedback_summarization
+hsultanbey/codet5p-770m-20k
+hidude562/OpenMusenet1.0
+Audi24/my_awesome_billsum_model
+jlpan/santacoder-finetuned-the-stack-bash
+vuiseng9/ov-gpt2-fp32-kv-cache
+vuiseng9/ov-gpt2-fp32-no-cache
+aao331/ChristGPT-13B-GPTQ
+amr1999/MT5_Summary_model
+Salesforce/xgen-7b-4k-base
+Salesforce/xgen-7b-8k-base
+mncai/Vicuna-13B-Kor100K-insurancev3-epoch3
+paust/pko-flan-t5-large
+mickyi/gpt2-wikitext2
+hipnologo/gpt2-imdb-finetune
+zangyuchen2008/my_awesome_eli5_clm-model
+PeterBrendan/AdsGPT2
+hf-internal-testing/tiny-random-T5ForQuestionAnswering
+lvkaokao/llama-7b-hf-conv-kk-delta
+kavinilavan/starchat-beta-v1-merged
+lmsys/longchat-13b-16k
+zhengxuanzenwu/alpaca-price-tagging-lower-bound
+mncai/Vicuna-13B-Kor100K-insurancev3-epoch4
+garage-bAInd/GPlatty-30B
+artms007/mt5-tiny12L-langtype
+FreedomIntelligence/HuatuoGPT-13b-delta
+Salesforce/xgen-7b-8k-inst
+shaileshp/trained-test-model-1-merged-new
+abhishekkrtrivedi995/flan-t5-base-hai
+vkehfdl1/qlora-koalpaca-korquad1.0-12.8b-1010steps-merged
+NousResearch/Redmond-Hermes-Coder
+NasimB/gpt2-dp-cl-length
+NasimB/gpt2-dp-cl-rarity
+TheYuriLover/Airoboros-13b-gpt4-StoryTelling-GPTQ-32g-ao-ts
+garage-bAInd/SuperPlatty-30B
+Shrishml/dollysql3b
+hztang/t5-small-base-custom
+TheBloke/wizard-vicuna-13B-SuperHOT-8K-fp16
+TheBloke/wizard-vicuna-13B-SuperHOT-8K-GPTQ
+ybelkada/gpt2-xl-8bit
+xuan8888888/t5-base-financial-title-generation
+devrev/autocomplete-distilgpt2
+TheBloke/airoboros-33B-gpt4-1-4-SuperHOT-8K-GPTQ
+TheBloke/airoboros-33B-gpt4-1-4-SuperHOT-8K-fp16
+wyklq/falcon-40b-gptq
+mrzlab630/lora-alpaca-trading-candles
+searde/model-financial-documents
+SantiagoCorley/modelo-scad
+AlexWortega/superllama
+h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-3b
+Dmitriy007/T5_Seq2Seq_quiz
+Jinkura/DialoGPT-medium-mahua
+vlkn/falcon_finetuned
+leoyt61/spellcheck_model
+hidude562/Openmusenet-1.5
+paust/pko-chat-t5-large
+ndtran/t5-small_cnn-daily-mail
+lmsys/longchat-7b-16k
+hegbert/my_awesome_eli5_clm-model
+Rocketknight1/falcon-rw-1b
+jmgonzal/gpt2-wikitext2
+Verrilli/text2text-colleges
+Panchovix/robin-33B-v2-fp16-SuperHOT-8k
+TheBloke/Manticore-13B-Chat-Pyg-Guanaco-SuperHOT-8K-GPTQ
+TheBloke/Manticore-13B-Chat-Pyg-Guanaco-SuperHOT-8K-fp16
+hartholt/stablelm-tuned-alpha-7b
+TheBloke/WizardLM-Uncensored-SuperCOT-StoryTelling-30B-SuperHOT-8K-GPTQ
+TheBloke/WizardLM-Uncensored-SuperCOT-StoryTelling-30B-SuperHOT-8K-fp16
+Kasyapa/DialoGPT-medium-hagridbot
+Panchovix/robin-33B-v2-SuperHOT-8k-4bit-32g
+bernie318/t5-small-finetuned-xsum
+TheBloke/GPlatty-30B-GPTQ
+Panchovix/Platypus-30B-SuperHOT-8K
+Panchovix/GPlatty-30B-SuperHOT-8k
+Hadnet/LLaMA-7B-Olavo-Org-Preview-LoRA-merged
+TheBloke/Platypus-30B-GPTQ
+TheBloke/llama-30b-supercot-SuperHOT-8K-GPTQ
+TheBloke/llama-30b-supercot-SuperHOT-8K-fp16
+mncai/OpenLLaMA-13B-Kor100K-epoch3
+calmlab/gpt_small_rm
+Panchovix/Platypus-30B-SuperHOT-8K-4bit-32g
+commaai/commavq-gpt2m
+nferroukhi/WizardLM-Uncensored-Falcon-7b-sharded-bf16
+beomi/kollama-33b
+lxyuan/distilgpt2-finetuned-finance
+Panchovix/GPlatty-30B-SuperHOT-8k-4bit-32g
+raygx/Nepali-GPT2-CausalLM
+vietgpt/bloom-1b7-v3
+calmlab/gpt_small_rm_role_type_all
+calmlab/gpt_large_actor_wtih_ppo
+nferruz/1.24.3.1
+substratusai/falcon-40b-8bit
+NasimB/gpt2-dp-cl-length-2
+NasimB/gpt2-dp-cl-rarity-2
+searde/model-financial-documents-3
+psymon/Golani-7B
+poisson-fish/ultralm-13b-GPTQ
+artms007/mt5-tiny12L-langtype-long
+turkbloom/turkbloom
+jondurbin/airoboros-65b-gpt4-1.4
+Stefanvrs/mt5-small-finetuned-amazon-en-es
+ecnu-icalk/educhat-base-002-7b
+oplatek/falcon-7b-instruct-multi_woz_22-t2t
+TheBloke/Platypus-30B-SuperHOT-8K-GPTQ
+TheBloke/Platypus-30B-SuperHOT-8K-fp16
+rahuldshetty/vmw-open-llama-13b-open-instruct-ntk4k-8bit
+DhaneshV/T2FPipeline
+robertoLC/gpt2-wikitext2
+TonyTawil/Merged-Falcon-7B
+TheBloke/GPlatty-30B-SuperHOT-8K-GPTQ
+TheBloke/GPlatty-30B-SuperHOT-8K-fp16
+Murden/polyglot-ko-qabot
+artms007/mt5-tiny12L-langtype-long-pan
+dmishra/monot5_document_quality_lm
+FittenTech/openllama-english-13b-evol-instruct
+dmishra/t5-base-triples-1-42-0
+dmishra/t5-base-triples-1-42-1
+hazemOmrann14/t5-small-finetuned-xsum
+bigcode/starcoder-co-format
+ArmelR/starcoder-gradio-v0
+Writer/palmyra-med-20b
+isoleucin/fin-certificates
+Libosa2707/vietnamese-poem-nam-chu-gpt2
+Libosa2707/vietnamese-poem-bay-chu-gpt2
+Libosa2707/vietnamese-poem-luc-bat-gpt2
+Libosa2707/vietnamese-poem-tam-chu-gpt2
+Libosa2707/vietnamese-poem-t5
+EgilKarlsen/GPT2_CSIC-Anomaly
+TheBloke/airoboros-65B-gpt4-1.4-GPTQ
+mrm8488/open_llama_13b-sharded-bf16
+breadlicker45/neox-musenet-untrained
+zeta-alpha-ai/monot5-3b-from-scratch-inpars-v1-robust04
+hipnologo/gpt2-churn-finetune
+cleverbrugger/mt5-small-finetuned-amazon-en-es
+zeta-alpha-ai/monot5-3b-from-scratch-inpars-v1-dbpedia
+jmeadows17/MathT5-large
+jzmsft/codeparrot
+Khushnur/t5-base-end2end-questions-generation_eli_squad
+meanderingmagi/Vicuna-7b
+jzmsft/codeparrot-small
+Panchovix/airoboros-65b-gpt4-1.4-4bit-32g-actorder
+andyl98/llama-7b-se
+TheBloke/UltraLM-13B-GPTQ
+TheBloke/UltraLM-13B-fp16
+spybot/Timpi_Wilson
+Khushnur/t5-base-end2end-questions-generation_eli_squad_aug_v1
+jmeadows17/MathT5-base
+TheBloke/h2ogpt-research-oasst1-llama-65B-GPTQ
+tankor/GPT2exjurdspanish
+andyl98/llama-7b-se-rm
+MostafaHamwi/TextSimplification
+Libosa2707/vit5-poem-gen
+amdnsr/llama-7b-hf
+Roy029/mt5_extend_py2500
+ecnu-icalk/educhat-base-002-13b
+swajan/swa
+dhruvM/NL2SQL-CW
+calmlab/gpt_large_8bit_actor_epoch10
+calmlab/gpt_large_8bit_object_epoch10
+MaximTitarenkoUIT/PolyCoder-0.4B-finetuned-test
+NasimB/test
+mejikan/falcon-7b-instruct
+Mozzipa/orca_mini_7b_900MB
+NasimB/gpt2-cl-length-sampling
+NasimB/gpt2-cl-rarity-sampling
+rohanbalkondekar/re-rework
+h2oai/h2ogpt-gm-oasst1-en-xgen-7b-8k
+mimi33/flant5s-JP10000
+sboughorbel/bloomz-8bit
+TheBloke/LongChat-13B-GPTQ
+liuyt75/t5-small_5_fttop2
+tiendung/open_llama_3b-8k_visyll
+TheBloke/LongChat-7B-GPTQ
+sharad/t5-small
+jondurbin/airoboros-13b-gpt4-1.4.1-qlora
+jondurbin/airoboros-7b-gpt4-1.4.1-qlora
+Heitechsoft/FalconAlpaca-7B
+dmishra/monot5_document_quality_lm_10epoch.h5
+tmpupload/superhot-7b-8k-no-rlhf-test-GPTQ
+tmpupload/superhot-7b-8k-no-rlhf-test-32g-GPTQ
+Trisert/open-llama-7b-dolly
+syzymon/long_llama_3b
+liuyt75/t5-small_10_fttop2
+TheBloke/Chinese-Alpaca-33B-SuperHOT-8K-GPTQ
+TheBloke/Chinese-Alpaca-33B-SuperHOT-8K-fp16
+TheBloke/vicuna-33B-GPTQ
+openchat/opencoderplus
+bigcode/starcoderbase-3b
+andyl98/michael
+sharpbai/Wizard-Vicuna-13B-Uncensored-HF-onnx
+TheBloke/Vicuna-33B-1-3-SuperHOT-8K-fp16
+TheBloke/Vicuna-33B-1-3-SuperHOT-8K-GPTQ
+jerryjalapeno/nart-7b
+zeta-alpha-ai/monot5-3b-from-scratch-inpars-v1-fiqa
+kgBolt/AIdungeon_bigger_better_model
+mosaicml/mpt-7b-8k
+javiergb85/falcon-7b-spanish-llm-merged
+zeta-alpha-ai/monot5-3b-from-scratch-inpars-v1-msmarco
+colinferguson/awesome_french_model
+jeffreykthomas/bloom-7b-fine-tuned-stanford
+dmishra/monot5_document_quality_lm_2epoch.h5
+poojakp/output
+Multi-Domain-Expert-Learning/OA_falcon_33b
+TejasC2/DialoGPT-TejasBot
+Blackroot/openchat-for-exllama
+lyogavin/Anima33B-DPO-Belle-1k-merged
+Honkware/openchat-GPTQ
+mncai/OpenLLaMA-13B-Kor100K-epoch4
+NasimB/gpt2-cl-rarity-sampling-2
+NasimB/gpt2-cl-length-sampling-2
+heskielsvn/mt5-small-finetuned-amazon-en-ja
+Honkware/openchat_8192-GPTQ
+Ichigo2899/Vicuna-13B-1-3-SuperHOT-8K-fp16-TGI-GPTQ
+cambioml/falcon-7b-8bit
+suidu/autotrain-project-name-v2-71307138443
+sboughorbel/BLOOMChat-176B-v1-8bit
+davidvblumenthal/1.4B-GPT-Verite
+chatdemoiselle/shortjokes-1000
+openaccess-ai-collective/t5-xxl-flan-cot-100k
+geo-wilson/arabic-text-summarization
+nferruz/lact
+Padlex/Ludii-LLaMA-7b
+openkg/aijudge
+nicolay/prompt-optimizer
+openkg/ailawyer
+dmishra/monot5_document_quality_10epoch.h5
+conceptofmind/Flan-Open-Llama-13b
+sherif1311/BathNLPmodel
+AWolters/ByT5_DutchSpellingNormalization
+iambestfeed/open_llama_3b_4bit_128g
+MuGeminorum/gpt2-abcmusic
+TheBloke/Redmond-Hermes-Coder-GPTQ
+Glavin001/startup-interviews-7b-1-1-1
+sharad/flan-pp-small
+lawdatatest/README
+obada-jaras/AraT5-TranslatedWikiSQLNLtoSQL
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v14
+robinsmits/open_llama_7b_alpaca_clean_dutch_qlora
+NasimB/gpt2-cl-rarity-sampling-3
+juancopi81/lmd-8bars-2048-epochs10
+NasimB/gpt2-cl-length-sampling-3
+theblackcat102/open-llama-chat-3k
+theblackcat102/open-llama-chat-4k
+Taroo2/t5-small-finetuned-xsum
+Glavin001/startup-interviews-13b-int4-2epochs-1
+SiberiaSoft/SiberianFRED-T5-XL
+cenkersisman/chatbotgpt-turkish-latin
+mamamiya405/alpaca_lora_merged
+abhishek/xgen-7b-8k-base-alpaca
+kraitans21/pythia_1B_new_11000
+Seungjun/GSOCt5-small-finetuned-t5_V2
+kraitans21/pythia_1B_old_10000
+heskielsvn/test_t5_for_summarization
+kraitans21/pythia_1.4B_new_7000
+VMware/xgen-7b-8k-open-instruct
+BramVanroy/falcon-7b-ft-alpaca-cleaned-dutch
+Gorttham/flan-t5-small-chat
+Aityz/Aityz-3B
+nhanv/open-llama-7b-vi
+Khushnur/t5-base-end2end-questions-generation_eli_squad_aug_exp
+NasimB/gpt2-cl-rarity-sampling-4
+oananovac/model_trained_hillary_90_train_simple_dataset_10_epochs
+youssefmasoud/t5-small-finetuned-xsum
+oananovac/model_trained_hillary_90_train_simple_dataset_5_epochs
+oananovac/model_trained_hillary_90_train_simple_dataset_20_epochs
+imvladikon/het5_summarization
+imvladikon/het5_small_summarization
+alturing/dummy-model2
+Glavin001/startup-interviews-13b-2epochs-1-4bit
+gallyamovi/t5_for_sum
+Lipa1919/PolishT5-wikioscar
+theblackcat102/open-llama-chat-5k
+ehartford/dolphin-llama-13b
+squeeze-ai-lab/sq-vicuna-13b-v1.3-w3-s0
+squeeze-ai-lab/sq-vicuna-13b-v1.3-w4-s0
+squeeze-ai-lab/sq-vicuna-7b-v1.3-w3-s0
+squeeze-ai-lab/sq-vicuna-7b-v1.3-w4-s0
+ethzanalytics/open_llama_13b-sharded-8bit
+dmishra/monot5_document_quality_5epoch.h5
+MatthisHoules/t5-large-finetuned-break-qdmr-decomposition
+oananovac/model_trained_enron_maxi_90_train_simple_dataset_5_epochs
+maharshipandya/AnimeGPTSan
+kbatyshchev/results
+5minutes2start/my_awesome_billsum_model
+vshravan/t5-small-finetuned-xsum
+koiosllc/LYEM
+renyulin/llama-7b-se-sft-merged
+georgesung/open_llama_7b_qlora_uncensored
+renyulin/llama-7b-se-rm-merged
+finaltest123/lawmodelfinal
+FPHam/Rachel_Assistant_Editor_13b_GPTQ
+EnterNameBros/Senko-san-medium-sc
+EnterNameBros/Senko-san-medium-scl
+CogwiseAI/testchatexample
+niansong1996/lever-wikitq-codex
+Ngadou/results
+niansong1996/lever-mbpp-codex
+gautam1989/mt5-small-finetuned-amazon-en-es
+NasimB/gpt2-cl-rarity-sampling-5
+msy127/codeparrot
+NasimB/gpt2-cl-concat-rarity-138k
+OpenBuddy/openbuddy-openllama-13b-v7-fp16
+pankajmathur/orca_mini_v2_7b
+Aeala/Enterredaas-65b-4bit-128g
+NasimB/gpt2-cl-rarity-modified-datasets
+liuyt75/t5-base_5_fttop2
+sauravQuant/my_awesome_eli5_clm-model
+NasimB/gpt2-dp-mod-datasets
+liuyt75/t5-base_10_fttop2
+liuyt75/t5-large_5_fttop2
+liuyt75/t5-large_10_fttop2
+sarada/t5-small-finetuned-xsum
+conceptofmind/open-llama-3b-mpe-8192-ntk-2-pis-1
+Kide2006/test-bloomd-6b3
+marianna13/flan-t5-base-lora
+zhangbo2008/gpt2-simulacra
+mpronesti/falcon-7b-instruct-gptq
+pavanpankaj/incre-train-addlayers_final
+msy127/codeparrot-small
+Suva/query_builder
+hiepnh/longchat-7b-16k-sharded
+NasimB/gpt2-cl-concat-rarity-mod-datasets-6
+CogwiseAI/chatwithMS
+Roy029/mt5_extend_5000
+Roy029/mt5_extend_2500_new
+SachinKaushik/codet5_ruleGen
+sampletestofnoni/falcon_7b_law_dataset
+sampletestofnoni/merg_model
+bigcode/starcoderbase-1b
+turingsummerexperience/recipes-demoo
+bhenrym14/airoboros-33b-gpt4-1.4.1-PI-8192-GPTQ
+gustavecortal/dream-report-reference
+EgilKarlsen/GPT2_PKDD-Anomaly_Baseline
+TonyZero/flan-t5-base-imdb-text-classification
+Wongstein/vide-noir
+EgilKarlsen/GPT2_AA-Anomaly_Baseline
+EgilKarlsen/GPT2_CSIC-Anomaly_Baseline
+Wongstein/angry-validator
+JacquesVlaming/chat_me
+alldaypa/autotrain-nyc_airbnb-71855138766
+oananovac/model_trained_hillary_90_train_context_dataset_5_epochs
+oananovac/model_trained_hillary_90_train_context_dataset_10_epochs
+Multi-Domain-Expert-Learning/draco
+EgilKarlsen/GPT2_PKDD-Anomaly
+Enymy/t5-base-feedback-generator
+Enymy/t5-base-feedback-generator-saf
+zeta-alpha-ai/monot5-3b-from-scratch-inpars-v1-nq
+andersonbcdefg/flan_t5_80m-finetune-samsum
+zeta-alpha-ai/monot5-3b-from-scratch-inpars-v1-trec-covid
+legendhasit/xgen-7b-8k-inst-8bit
+NasimB/gpt2-dp-cl-rarity-7-138k
+NasimB/gpt2-cl-concat-log-rarity-7
+TheBloke/SuperPlatty-30B-GPTQ
+justus27/upload_model
+thisismyusername123/gpt_tos
+robinsmits/open_llama_13b_alpaca_clean_dutch_qlora
+DaddySen/tighnari
+dfurman/flan-t5-xxl-copy
+NasimB/gpt2-dp-gutenberg-fixed
+bhenrym14/airoboros-33b-gpt4-1.4.1-PI-8192-fp16
+dmishra/monot5_document_quality_replicateobs_10epoch_lr5e-5.h5
+sharpbai/openchat_8192
+sharpbai/openchat
+Kontawat/openthaigpt-gpt2-pantipwiki-poc-40000
+ettevyemerald/DialoGPT-medium-beomgyu
+CoderCoy/sum_it
+mkshing/gpt-neox-336m-init
+OpenMatch/gtr-base
+Panchovix/GPlatty-30B-PI-8192-LoRA-4bit-32g
+fumiyau/leanprover_20230704_01_clm_prover_14final_checkpoint_5830
+hiepnh/openchat_8192-sharded
+minhcrafters/DialoGPT-small-mindwandering
+NourEldin-Osama/mT5-finetuned-xlsum
+NasimB/gpt2-concat-gutenberg-fixed
+NasimB/gpt2-dp-cl-rarity-8-276k
+devgupta/gpt2-tax
+CogwiseAI/CogwiseAI-chatwithMS
+Roy029/mt5_empty2_5k_msp
+Roy029/sno_empty2_5k_msp
+Panchovix/guanaco-33b-PI-8192-LoRA-4bit-32g
+openkg/knowlm-13b-diff
+harshpoddar21/checkpoint-4000
+Panchovix/tulu-30b-PI-8192-LoRA-4bit-32g
+qinyuany/my-t0-base
+gajanandjha/distilgpt2-finetuned-wikitext2
+clibrain/lince-zero
+NasimB/gpt2-cl-concat-log-rarity-8-276k
+qinyuany/my-t0-3b
+Ka13/xgen_8k_inst_sharded_6g
+Cogwisechat/falcon-7b-finance
+Ka13/xgen_8k_inst_sharded_5g
+qinyuany/my-t0-large
+NasimB/gpt2-dp-cl-rarity-9-210k-mod-datasets
+SebastianBodza/DElefant
+TheBloke/orca_mini_v2_7B-GPTQ
+calmlab/gpt_large_ppo_actor_epoch4
+iambestfeed/bloomz-3b-4bit
+calmlab/gpt_large_ppo_object_epoch4
+Roy029/mt5_empty_desc_25k_msp
+NasimB/gpt2-cl-concat-log-rarity-9-210k-mod-datasets
+hiepnh/longchat-13b-16k-sharded
+MarianaLC/mt5-rr-1000
+Roy029/mt5_empty_desc_5k_msp
+amitsbhatidados/dados-amitabh-v1
+NasimB/gpt2-dp-mod-datasets-rarity2
+Khushnur/t5-base-end2end-questions-generation_eli_aug_squad
+BOULLOUL/End2EndQGT5
+nkpz/truehealth-33b-gptq
+nRuaif/OpenLLaMA-3B-vietnamese
+vvasanth/falcon7b-finetune-test-merged-040723
+vivekraina/bloom-560m-8bit
+NasimB/gpt2-concat-mod-datasets-rarity2
+conceptofmind/Open-LLongMA-3b
+andmusician/WizardLM-7B-GPTQ
+SearchUnify-ML/xgen-7b-8k-open-instruct-gptq
+vivekraina/falcon-7b-8bit
+declare-lab/flacuna-13b-v1.0
+BramVanroy/falcon-7b-ft-alpaca-dolly-dutch
+ShokSmile/real-promptV3-all-gen-t5-small
+vivekraina/falcon-7b-Instruct-8bit
+san94/tiny-random-GPT2LMHeadModel-finetuned-corpus
+mrm8488/starcoder-sharded-bf16
+Apoorvakoira/wizabc
+Unspoiled-Egg/DialoGPT-small-TheoVon
+MarianaLC/mt5-rr-1000-v2
+Harsha9044/gpt2-imdb-ctrl
+Shresthadev403/codeparrot-ds
+kraitans21/pythia_1B_th_new_token
+kraitans21/pythia_1.4B_th_new_token
+kraitans21/pythia_1B_th_old_token
+Pitchboy/falcon-7b-facts
+iambestfeed/vietcuna-sft-merged
+JNDankwah/DialoGPT-small-ThorCB
+ViceVk/mt5-small-finetuned-amazon-en-es
+GralchemOz/guanaco-33b-chinese-GPTQ-4bit-128g
+Rocketknight1/tiny-random-falcon-40b
+Rocketknight1/tiny-random-falcon-7b
+uonlp/okapi-da-bloom
+uonlp/okapi-hr-bloom
+nikformocbh8/t5-small-finetuned-xsum
+jhaddadin/my_awesome_billsum_model
+oananovac/model_trained_enron_90_train_context_dataset_10_epochs
+parkervg/destt5-schema-prediction
+minhcrafters/DialoGPT-medium-Zephirel
+harshs21/dialo-med-10
+Panchovix/airoboros-33b-gpt4-1.2-PI-8192-LoRA-4bit-32g
+parkervg/destt5-text2sql
+terasurfer/cloudgov-falcon40b
+dmishra/monot5_document_quality_3epoch_lr_1e-4.h5
+Multi-Domain-Expert-Learning/pythia-2.8b-orca-expert-test
+jphme/orca_mini_v2_ger_7b
+jackoyoungblood/TinyStories-validationset
+ZenPuzzle/my_awesome_eli5_clm-model
+mucktiymuck/treacefalcon
+juancopi81/lmd-8bars-2048-epochs20
+GalSarid/setfit-movie-genre-sentence-t5-xl
+papahawk/falcon-40b
+ceefax/distilgpt2-finetuned-drms
+juancopi81/lmd-8bars-2048-epochs20_v2
+kz919/llama_7b
+kz919/llama_13b
+TheBloke/falcon-40b-sft-top1-560-GGML
+TheBloke/falcon-40b-sft-mix-1226-GGML
+Grinta-king/finetuned-arat5
+conceptofmind/Tasksource-Open-Llama-3b
+AxisMind/falcon-40b-instruct-gptq
+Deigant/t5-base-daily-dialog-finetuned
+NasimB/gpt2-concat-mod-datasets-rarity1
+NasimB/gpt2-dp-finetune-cl-mod-datasets-rarity1
+andyl98/final_rlhf
+NasimB/gpt2-concat-finetune-cl-mod-datasets-rarity1
+nkpz/kw-cutegpt-13b-ift-gptq
+hiepnh/xgen-7b-8k-inst-8bit-sharded
+NasimB/gpt2-concat-cl-log-rarity-10-220k-mod-datasets-rarity1-root3
+abhinavkulkarni/mosaicml-mpt-7b-instruct-w4-g128-awq
+NasimB/gpt2-dp-mod-datasets-rarity1-rerun
+thirupathibandam/bloom560
+Barkavi/LLAMA_7B
+OmarAboBakr/output_dir
+conceptofmind/Tasksource-Open-Llama-7b
+linlinlin/dialogue-summary-0705
+ireneli1024/bigbird-pegasus-large-pubmed-plos-finetuned
+NasimB/gpt2-dp-cl-log-rarity-10-220k-mod-datasets-rarity1-root3
+pppiyush/piyush_model_1
+anejaisha/output2
+abhinavkulkarni/mosaicml-mpt-7b-chat-w4-g128-awq
+pppiyush/piyush_model_2
+vasimakram01/falcon_7b_q_100tokens
+andyl98/llama-7b-se-rm-part2
+mohammedbriman/t5-small-summ-2080
+abhinavkulkarni/VMware-open-llama-7b-open-instruct-w4-g128-awq
+erberry/Ziya-LLaMA-13B-v1.1-merged
+FinancialSupport/NanoGPT
+bofenghuang/vigogne-falcon-7b-instruct
+omar-atef/AlQalam
+sankethgadadinni/dolly-v2-retail
+oooriii/cat5-base-raw
+abhinavkulkarni/VMware-open-llama-13b-open-instruct-w4-g128-awq
+taozi555/waifu
+dmishra/monot5_document_quality_replicateobs_4_epoch_lr_3e-4.h5
+zlsl/en_l_warhammer_fantasy
+zlsl/en_l_wh40k_full
+Misterpy/falcon_modified
+arham061/mt5-small-finetuned-amazon-en-es
+zasukhera/t5-small-finetuned-xsum
+TheBloke/bloomz-176B-GPTQ
+budecosystem/genz-7b
+sankethgadadinni/dolly-lora
+evs/my_awesome_model
+NasimB/gpt2-dp-cl-rarity-11-135k-mod-datasets-rarity1-root3
+projecte-aina/aguila-7b
+Shubham09/falcon-big
+DracoHugging/flan-T5-base-sum
+abhinavkulkarni/tiiuae-falcon-7b-instruct-w4-g64-awq
+kraitans21/pythia_1B_th_new_token_step8000
+kraitans21/pythia_1B_th_new_token_step7000
+omar-al-sharif/AlQalam-finetuned-mmj
+mjbuehler/GPTNeoLAMM_small
+Weni/ZeroShot-RedPajama
+NasimB/gpt2-concat-cl-rarity-11-135k-mod-datasets-rarity1-root3
+theblackcat102/starcoder-oasst-2k
+ShokSmile/real-prompt-300-500sync-all-gen-t5-large
+cackerman/gpt2-medium_nli
+TheBloke/BLOOMChat-176B-v1-GPTQ
+sonntt/DialoGPT-small-mindwandering
+youssefhany97/AlQalam-finetuned-mmj-withXlsum
+kaimeng/abstractOnly1k
+nyoshida/vicuna-13b-1.1
+NasimB/gpt2-concat-aochiles-14k
+wizofavalon/distilgpt2-finetuned-wikitext2
+NasimB/gpt2-concat-aochildes-16k
+ArnavKetkar/t5-small-finetuned-xsum
+isaachong127/gpt2_chinese_with_personal_qqchat_data
+kaimeng/abstractOnly100k
+SaffalPoosh/falcon_7B_instruct_safetensors
+erbacher/t5-large-claim
+Deigant/t5-base-daily-dialog-finetuned-1
+roemmele/falcon-7b-loss-score
+papahawk/gpt2-1.5b
+NasimB/gpt2-concat-gutenberg-2p2k-1k
+cackerman/gpt2-medium_triviaqa
+juancopi81/lmd-8bars-2048-epochs20_v3
+andyl98/llama-7b-se-rm-leftpad
+richardr1126/spider-natsql-wizard-coder-merged
+mrizalf7/t5-small-finetuned-xsum
+theblackcat102/starcoder-oasst-3.5k
+lowem1/consT5-mimic
+buildwithflux/t5-large-ft-copilot-router
+avaassadi/bloom-1b1-alpaca-fine
+conceptofmind/Open-LLongMA-7b
+mwz/UrduGPT2
+baohl00/joint-task-instruct-absa-vi
+NasimB/gpt2-concat-cbt-rarity-2k-p3k
+EgilKarlsen/GPT2_AA-Anomaly
+LoupGarou/WizardCoder-Guanaco-15B-V1.0
+ocisd4/openllama-zh-7B
+Y98/DialoGPT-large-denji
+qinyuany/fid-icl-t5-lm-xl
+NasimB/gpt2-concat-aochildes-16plus6k
+afterthougt/kullm-polyglot-12.8b-v2_700steps
+MicaniLabs/Stoa-13B-GPTQ
+cwtpc/openthaigpt-gpt2-pantipwiki-poc
+iampowerful/flan-t5-small-preferencebot
+Shitba/T5-ET
+Lemoooon/TIM-BLOOMZ-7b
+andyl98/llama-7b-se-pretrainedmore
+Varshitha/Jokes_generation_LLM
+huangqingming/Ziya-LLaMA-13B-v1
+rohanbalkondekar/spicy-caiman
+NasimB/gpt2-concat-aochildes-length-16k-rarity-all-4k-1p2k
+ShokSmile/real-prompt-300-500sync-all-gen-t5-3b
+NasimB/gpt2-concat-aochildes-length-16plus6k-rarity-all-3k-p6k
+marc-er/gpt2-sentiment-classifier-dpo
+ICTNLP/bayling-13b-v1.1
+jayavibhav/t5-small-finetuned-xsum
+qinyuany/ensemble-icl-t0-3b
+andyl98/llama-7b-se-rm-pretrainedmore
+Salesforce/codegen25-7b-mono
+NasimB/gpt2-concat-cbt-rarity-all-7k-p8k
+zblaaa/t5-base-finetuned-ner_docred_symbole
+runboy1581/kogpt2novel
+pppiyush/Text_to_SQL_BART_spider-three-ep
+Glavin001/startup-interviews-13b-2epochs-4bit-2
+openlm-research/open_llama_7b_v2
+ghwangbo/Korean_Finetuned_Falcon
+nkpz/open_llama_7b_qlora_uncensored-gptq
+Copticoder/vaguesmall-finetuned-arabic-summarizer
+TheBloke/CAMEL-33B-Combined-Data-SuperHOT-8K-fp16
+TheBloke/CAMEL-33B-Combined-Data-SuperHOT-8K-GPTQ
+NasimB/gpt2-concat-aochildes-len-16plus3k
+DCTR/linguaBridge
+Alessandrodeeplearning/mt5-small-finetuned-summarization-it
+arham061/codeparrot-ds
+h2o-llmstudio/falcon-7b-fix
+lizhuang144/flan-t5-large-factual-sg
+NasimB/gpt2-concat-aochildes-len-16k-punc-dot
+BramVanroy/falcon-40b-ft-alpaca-dolly-dutch
+linlinlin/full-fine-tuning
+arham061/finance-alpaca
+HeshamMamdouh/mt5-small-sum-fine-tuned
+h2o-llmstudio/falcon-40b-fix
+rohanbalkondekar/QnA-with-context
+arham061/auto_complete_distilgpt2_financeAlpacca
+lizhuang144/flan-t5-base-factual-sg
+Lemoooon/TIM-LLaMA-13b
+jinaai/jina-embedding-s-en-v1
+oliverguhr/spelling-correction-multilingual-base
+ShokSmile/real-prompt-100-all-gen-t5-small
+Khushnur/t5-small-end2end-questions-generation_test
+baohl00/joint-task-instruct-absa-vi-base
+ShokSmile/real-prompt-100-all-gen-t5-base
+mrizalf7/t5-small-finetuned-indosum
+ShokSmile/real-prompt-100-500sync-all-gen-t5-small
+Talha185/codeparrot-ds
+bhenrym14/airoboros-13b-gpt4-1.4.1-PI-8192-GPTQ
+qwopqwop/danbooru-llama
+maryzyryanova/vicuna-7b-1.1
+ShokSmile/real-prompt-100-500sync-all-gen-t5-base
+dmishra/monot5_document_quality_9epoch_lr_1e-5.h5
+qwopqwop/danbooru-llama-gptq
+TheBloke/Airoboros-7B-GPT4-1-4-SuperHOT-8K-GPTQ
+FarziBuilder/perhapsModel2
+TheBloke/Airoboros-7B-GPT4-1-4-SuperHOT-8K-fp16
+vivekraina/Falcon-instruct-8bit-test
+TheBloke/Baize-v2-13B-SuperHOT-8K-GPTQ
+TheBloke/Baize-v2-13B-SuperHOT-8K-fp16
+nkpz/serena-safe-gptq
+jackoyoungblood/TinyStoriesTest
+vietgpt/bloom-1b7-v3-instruction
+TheBloke/Baize-v2-7B-SuperHOT-8K-fp16
+TheBloke/Guanaco-7B-SuperHOT-8K-fp16
+TheBloke/Guanaco-7B-SuperHOT-8K-GPTQ
+Grinta-king/AlQalam-finetuned-mmj-withXlsumValid
+BigBri/my_awesome_eli5_clm-model
+TheBloke/Koala-13B-SuperHOT-8K-fp16
+MrDragonFox/laz_pi_8k
+ShokSmile/real-prompt-100-500sync-all-gen-t5-large
+SaffalPoosh/falcon-7b_safetensors
+TheBloke/Koala-7B-SuperHOT-8K-fp16
+TheBloke/Koala-7B-SuperHOT-8K-GPTQ
+TheBloke/Robin-7B-v2-SuperHOT-8K-GPTQ
+TheBloke/Robin-7B-v2-SuperHOT-8K-fp16
+pankajmathur/orca_mini_v2_13b
+TheBloke/Samantha-1-1-Llama-7B-SuperHOT-8K-fp16
+Seungjun/textGeneration_03_01
+TheBloke/Selfee-13B-SuperHOT-8K-fp16
+TheBloke/Selfee-7B-SuperHOT-8K-fp16
+mucktiymuck/treacefalcon-instruct
+Salesforce/codegen25-7b-instruct
+TheBloke/Tulu-7B-SuperHOT-8K-fp16
+TheBloke/Vicuna-7B-v1-3-SuperHOT-8K-fp16
+22h/open-cabrita3b
+TheBloke/Vicuna-7B-CoT-SuperHOT-8K-fp16
+BigBri/2_my_awesome_eli5_clm-model
+TheBloke/Wizard-Vicuna-7B-Uncensored-SuperHOT-8K-fp16
+TheBloke/WizardLM-7B-V1-0-Uncensored-SuperHOT-8K-fp16
+dmishra/monot5_document_quality_8epoch_lr_1e-4.h5
+fiorella513/t5_recommendation_sports_equipment_english
+nkpz/Lawyer-Vicuna-200-gptq-32g
+NasimB/gpt2-concat-cbt-rarity-all-12k-p8k
+TheBloke/Baize-v2-7B-SuperHOT-8K-GPTQ
+TheOneHitz/6-BlackBox-9
+Salesforce/codegen25-7b-multi
+Khushnur/t5-base-end2end-questions-generation_eli_squad_single_exp_imp
+dquan/mt5-small-finetuned-amazon-en-es
+TheBloke/Koala-13B-SuperHOT-8K-GPTQ
+nkpz/bayling-13b-v1.1-gptq-32g
+TheBloke/Samantha-1-1-Llama-7B-SuperHOT-8K-GPTQ
+HeshamMamdouh/mt5-small-v2-sum-fine-tuned
+TheBloke/Selfee-13B-SuperHOT-8K-GPTQ
+andyl98/bigcode_raw_rm
+erbacher/t5-base-claim
+TheBloke/Selfee-7B-SuperHOT-8K-GPTQ
+TheBloke/Tulu-7B-SuperHOT-8K-GPTQ
+TheBloke/Vicuna-7B-v1-3-SuperHOT-8K-GPTQ
+dhruva-g/video-chat-v7b
+TheBloke/Vicuna-7B-CoT-SuperHOT-8K-GPTQ
+NasimB/gpt2-concat-aochildes-len-17p5k
+TheBloke/Wizard-Vicuna-7B-Uncensored-SuperHOT-8K-GPTQ
+TheBloke/WizardLM-7B-V1-0-Uncensored-SuperHOT-8K-GPTQ
+TheBloke/PMC_LLAMA-7B-10-Epoch-SuperHOT-8K-fp16
+TheBloke/PMC_LLAMA-7B-10-Epoch-SuperHOT-8K-GPTQ
+Dynosaur/dynosaur-t5-3b-superni
+lenguist/mt5-small-finetuned-amazon-en-es
+jackoyoungblood/TinyStoriesProject
+Dynosaur/dynosaur-llama-7b-superni
+elinas/chronos-13b-8k-GPTQ
+kir486680/matsci-model
+Aeala/Enterredaas-33b-4bit
+andrey200702/ru_mt5
+owanr/r1_iterater
+happyduck/koal_5.8b
+bhenrym14/airoboros-33b-gpt4-1.4.1-NTK-16384-GPTQ
+gubartz/ssc-flan-t5-small
+PAIXAI/Astrid-7B
+YakovElm/Apache_5_GPT2_Microsoft_Normal
+kz919/ntk_scaled_llama_7b_16k
+kz919/ntk_scaled_llama_7b_32k
+kz919/ntk_scaled_llama_13b_16k
+pundapog/DialoGPT-medium-ethanbot
+kz919/ntk_scaled_llama_7b_8k
+kz919/ntk_scaled_llama_7b_4k
+kz919/ntk_scaled_llama_13b_4k
+kz919/ntk_scaled_llama_13b_8k
+kz919/ntk_scaled_open_llama_3b_4k
+kz919/ntk_scaled_open_llama_3b_8k
+kz919/ntk_scaled_open_llama_3b_16k
+kz919/ntk_scaled_open_llama_3b_32k
+kz919/ntk_scaled_open_llama_7b_4k
+mejikan/falcon-7b
+kz919/ntk_scaled_open_llama_7b_8k
+kz919/ntk_scaled_open_llama_7b_16k
+kz919/ntk_scaled_open_llama_7b_32k
+kz919/ntk_scaled_open_llama_13b_4k
+kz919/ntk_scaled_open_llama_13b_8k
+kz919/ntk_scaled_open_llama_13b_16k
+JacquesVlaming/distilgpt2-finetuned-wikitext2
+kz919/ntk_scaled_open_llama_13b_32k
+MicaniLabs/Stoa-13B
+CalderaAI/13B-BlueMethod
+daydrill/unifiedqa-v2-t5-base-1363200-finetuned-causalqa-squad
+crumb/opentinystories-30m-base
+TigerResearch/tigerbot-7b-base-v2
+soduhh/mt5-small-finetuned-amazon-en-fr
+shivr/RedPajama-INCITE-Instruct-3B-v1-layout
+abwqr/t5
+abwqr/t5-efficient-tiny-nl2-finetuned
+jinaai/jina-embedding-b-en-v1
+rai-sandeep/full-model-trained
+Vasanth/lora-flan-t5-large-chat
+CalderaAI/30B-Epsilon
+lizhuang144/flan-t5-base-VG-factual-sg
+Di1/chatd0707
+YakovElm/Apache_5_GPT2_Microsoft_More_Properties
+YeungNLP/firefly-ziya-13b
+ShokSmile/real-prompt-100-500synV2-all-gen-t5-base
+dfsaab/god
+NasimB/pt2-concat-aochildes-len-16k-rarity-all-6k-1p2k
+NasimB/gpt2-concat-aochildes-len-16k-rarity-all-2k-p7k
+hafeezmhk6/mt5-base-ver6.15
+WizardLM/WizardLM-13B-V1.1
+faridulreza/gpt2-bangla-summurizer
+TheBloke/Pygmalion-7B-SuperHOT-8K-fp16
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v15
+3BDOAi3/finetuned_with_labeled_dataset
+TheBloke/Pygmalion-7B-SuperHOT-8K-GPTQ
+FarziBuilder/perhapsModel3
+shnl/ViT5-vinewqg
+hongyin/chat-awareness-0.8b
+NasimB/gpt2-concat-cbt-rarity-all-4p5k-p3k
+flozi00/falcon-7b-german-assistant
+janldeboer/GPT2RedditRelationships
+tum-nlp/gpt-2-medium-target-aware-counterspeech-generation
+Talha185/my-finance-distilgpt2
+lizhuang144/flan-t5-large-VG-factual-sg
+GreenBitAI/LLaMA-7B-2bit
+FarziBuilder/perhapsModel4
+gubartz/ssc-flan-t5-base
+Cheng98/llama-160m
+Calam1/t5-small-finetuned-wikisql
+nkpz/WizardLM-13B-V1.1-gptq-32g
+turingsummerexperience/pkg4
+justinpinkney/falcon-7b
+PeterBrendan/Adsdistilgpt2
+khoantap/vietcuna-sft-merged
+linhkhanhoang/mt5-small-finetuned-amazon-en-es
+infiniterik/desc-detoxify-sicon
+openchat/openchat_v2
+openchat/openchat_v2_w
+TheBloke/Guanaco-33B-SuperHOT-8K-fp16
+NasimB/gpt2-concat-guten-rarity-all-5k-2p5k
+TheBloke/WizardLM-13B-V1.1-GPTQ
+JackFram/llama-160m-cbt-1
+JackFram/llama-160m-cbt-2
+JackFram/llama-160m-cbt-3
+JackFram/llama-160m-cbt-4
+owanr/ckpt_sari_coedit_large
+NasimB/gpt2-concat-guten-rarity-no-self-5k-2p5k
+sidca/Cam
+Multi-Domain-Expert-Learning/vietnamese-pythia-3b-deduped
+jackoyoungblood/TinyStoriesTest-gradacc8-10
+TheBloke/WizardLM-13B-V1-1-SuperHOT-8K-GPTQ
+TheBloke/WizardLM-13B-V1-1-SuperHOT-8K-fp16
+jackoyoungblood/TinyStoriesTest-epoch1-2
+KARAKOZA/t5-small-summarization
+turingsummerexperience/pkg0
+Copticoder/vaguemm
+guyson/Bluemoon_30b_safetensors_only
+BarryJiang/KaraNousSuper4bitGPTQ
+temporary0-0name/gpt2-imdb-pos-v2
+Copticoder/vaguemss
+Khushnur/t5-base-end2end-questions-generation_eli_squad_single
+Khushnur/t5-base-end2end-questions-generation_squad_single
+YakovElm/Apache_5_GPT2_Microsoft_Under_Sampling
+NasimB/gpt2-concat-cbt-rarity-all-no-cbt-7k-p8k
+Epimachok/vicuna-7b-v1.3-sharded-bf16
+gubartz/ssc-flan-t5-large
+Khushnur/t5-base-end2end-questions-generation_eli_squad_single_exp
+andyl98/michael-se
+amitvb/distilgpt2-finetuned-wikitext2
+andyl98/michael-se-rl
+3BDOAi3/finetuned_1
+crumb/opentinystories-68m-base
+hidude562/OpenMusenet-2.0
+harpomaxx/gpt2-dga-detector
+voidcenter/distilgpt2-finetuned-wikitext2
+3BDOAi3/finetuned_2
+zhangirazerbayev/open-web-math-dev_step11632
+sigmareaver/codegen25-7b-multi-4bit-128g-gptq
+conceptofmind/Open-LLongMA-13b
+3BDOAi3/finetuned_3
+KaiNylund/t5-60M-news_sum-2014
+KaiNylund/t5-60M-news_sum-2012
+KaiNylund/t5-60M-news_sum-2013
+KaiNylund/t5-60M-news_sum-2015
+KaiNylund/t5-60M-news_cls-2012
+KaiNylund/t5-60M-news_cls-2013
+KaiNylund/t5-60M-news_cls-2014
+KaiNylund/t5-60M-news_cls-2015
+KaiNylund/t5-60M-news_cls-2016
+KaiNylund/t5-60M-news_sum-2016
+KaiNylund/t5-60M-poli_aff-2015
+KaiNylund/t5-60M-poli_aff-2016
+KaiNylund/t5-60M-poli_aff-2017
+KaiNylund/t5-60M-poli_aff-2018
+KaiNylund/t5-60M-poli_aff-2019
+KaiNylund/t5-60M-poli_aff-2020
+KaiNylund/t5-60M-poli_aff-combined_years
+KaiNylund/t5-60M-news_cls-combined_years
+KaiNylund/t5-60M-news_sum-combined_years
+KaiNylund/t5-60M-lm-wmt-2012
+KaiNylund/t5-60M-lm-wmt-2013
+KaiNylund/t5-60M-lm-wmt-2014
+KaiNylund/t5-60M-lm-wmt-2015
+KaiNylund/t5-60M-lm-wmt-2016
+KaiNylund/t5-60M-lm-arxiv-2006-2008
+KaiNylund/t5-60M-lm-arxiv-2009-2011
+KaiNylund/t5-60M-lm-arxiv-2012-2014
+KaiNylund/t5-60M-lm-arxiv-2015-2017
+KaiNylund/t5-60M-lm-arxiv-2018-2020
+KaiNylund/t5-60M-lm-twitter-2015
+KaiNylund/t5-60M-lm-twitter-2016
+KaiNylund/t5-60M-lm-twitter-2017
+KaiNylund/t5-60M-lm-twitter-2018
+KaiNylund/t5-60M-lm-twitter-2019
+KaiNylund/t5-60M-lm-twitter-2020
+KaiNylund/t5-60M-aic-2006-2008
+KaiNylund/t5-60M-aic-2009-2011
+KaiNylund/t5-60M-aic-2012-2014
+KaiNylund/t5-60M-aic-2015-2017
+KaiNylund/t5-60M-aic-2018-2020
+KaiNylund/t5-60M-aic-combined_years
+Copticoder/gpt-2-finetuned-summarization-v1
+PeterBrendan/pbjs_gpt2
+NasimB/gpt2-concat-cbt-rarity-all-5p75k-p55k
+CoderCoy/pegg44
+CoderCoy/pegg445
+NasimB/gpt2-concat-guten-rarity-all-7k-3k
+hf-internal-testing/tiny-random-UMT5EncoderModel
+hf-internal-testing/tiny-random-UMT5ForQuestionAnswering
+hf-internal-testing/tiny-random-UMT5Model
+keelezibel/korea-travelguide-vicuna-13b
+CoderCoy/pegg4456
+TigerResearch/tigerbot-7b-sft-v2
+NasimB/gpt2-concat-aochildes-len-16k-rarity-all-3k-p95k
+Maykeye/TinyLLama-v0
+sagawa/ReactionT5-yield-prediction
+NasimB/gpt2-concat-aochildes-len-16k-rarity-all-no-self-4k-1p2k
+ycros/airoboros-65b-gpt4-1.4.1-PI-8192-fp16
+EnterNameBros/Senko-san-medium-abc
+lloydchang/wongstein-angry-validator
+baohl00/joint-task-instruct-absa-vi-large
+aiswaryasankar/santacoder-finetuned-the-stack-bash
+zhangirazerbayev/proof-pile-v1_step11632
+NasimB/gpt2-concat-top-for-aochildes-cbt-guten
+gubartz/ssc-flan-t5-base-pubmed
+NasimB/gpt2-concat-bnc-rarity-12k-1p5k
+crumb/opentinystories-30m-complex
+Khushnur/t5-base-end2end-questions-generation_squad_aug
+lizhuang144/flan-t5-small-factual-sg
+YakovElm/Apache_5_GPT2_Microsoft_Over_Sampling
+iambestfeed/bloomz-7b1-4bits-128gr
+abhi-8/DialoGPT-medium-Michael
+ycros/airoboros-65b-gpt4-1.4.1-PI-8192-4bit-32g-actorder
+CleverShovel/vicuna-7b-v1.3-sharded-bf16
+crumb/opentinystories-68m-complex
+Satyansh/t5-small-finetuned-xsum
+abhi-8/DialoGPT-medium-Rick
+Falah/stable_diffusion_prompts_gen
+abhi-8/DialoGPT-medium-Joshua-twevy
+NasimB/gpt2-concat-bnc-rarity-all-15k-1k
+lizhuang144/flan-t5-small-VG-factual-sg
+PKU-Alignment/beaver-7b-v1.0-reward
+X-Wang/pruned-mt5-small
+iambestfeed/llama_7b_4bit_16g_spqr
+mrtimmydontplay/netsec
+ksgr5566/distilgpt2-e2
+spitfire4794/dialogpt-small-rick
+oananovac/model_trained_enron_toral_90_train_context_dataset_10_epochs
+tschesky/PygmalionTest
+abwqr/t5-effecient
+abhinavkulkarni/psmathur-orca_mini_v2_7b-w4-g128-awq
+abwqr/t5-effecient-nl2
+Korventenn/fr_en-t5-small
+flozi00/open_llama_7b-german-assistant
+Shitba/El16
+Huamin/santacoder-finetuned-the-stack-bash
+MayaPH/GodziLLa-30B
+Shitba/T5_E_T
+NasimB/gpt2-concat-longer-top3-aochildes-cbt-guten
+NasimB/gpt2-concat-guten-rarity-all-3p5k-1p8k
+datatab/alpaca-serbian-7b-chkp-650
+BigSalmon/InformalToFormalLincoln103Paraphrase
+wellecks/llmstep-mathlib4-pythia2.8b
+NasimB/gpt2-concat-guten-rarity-5k-2p5k
+NasimB/gpt2-concat-all-rarity-all-29k-3k
+qinyuany/fid-icl-t5-lm-large
+nicholasKluge/Aira-RLHF-124M
+qinyuany/ensemble-icl-t5-lm-large
+qinyuany/ensemble-icl-t0-large
+qinyuany/fid-icl-t0-large
+qinyuany/concat-icl-t0-large
+qinyuany/concat-icl-t5-lm-large
+zamarano/my_awesome_opus_books_model
+NasimB/gpt2-concat-all-mod-aochildes-rarity-all-30k-3k
+3BDOAi3/model
+NasimB/gpt2-concat-aochildes-length-15k
+imvladikon/cross_summarization_he_en
+yodi/gpt-2-finetuned-papers
+ohilikeit/naemari_12.8b
+Splend1dchan/h-p-test
+Ichigo2899/WizardLM-13B-V1-0-Uncensored-SuperHOT-8K-TGI
+jrfalck/my_awesome_opus_books_model_JRF
+NasimB/gpt2-concat-mod-datasets-rarity1-rarity-all-13k-2p6k
+mrizalf7/t5-small-finetuned-indosum-1
+TabbyML/Codegen25-7B
+NasimB/gpt2-concat-mod-datatsets-rarity-all-iorder-e13k-e2p6k
+abhinavkulkarni/Salesforce-codegen25-7b-multi-w4-g128-awq
+mrizalf7/t5-small-finetuned-indosum-2
+Falah/stable_diffusion_prompts
+owanr/ckpt_r1_coedit_large
+NasimB/gpt2-concat-guten-mod-rarity-1k-p1k
+xxingxingx/CoLLaMA-5K
+NasimB/gpt2-concat-guten-mod-rarity-iorder-e1k-ep1k
+dlowl/dolly-v2-3b-endpoint
+jinaai/jina-embedding-l-en-v1
+sjrhuschlee/flan-t5-base-mnli
+NasimB/gpt2-concat-mod-datatsets-rarity-all-iorder-e13k
+NasimB/gpt2-concat-mod-datatsets-rarity-all-iorder-end-e2p6k
+mesolitica/nanot5-small-malaysian-cased
+Bakanayatsu/llama-SuperCOT-7B-fp16
+TheBloke/orca_mini_v2_13b-GPTQ
+vrsen/falcon-7b-instruct-ft
+dlowl/dolly-v2-12b-endpoint
+TheBloke/GodziLLa-30B-GPTQ
+chunwoolee0/my_awesome_eli5_clm-model
+NasimB/gpt2-concat-mod-datatsets-rarity-all-iorder-no-cut
+wesley7137/gpt-quantum-A
+abhinavkulkarni/psmathur-orca_mini_v2_13b-w4-g128-awq
+waiyang99/joiai
+chunwoolee0/my-awesome-eli5-clm-model
+NasimB/gpt2-concat-guten-rarity-iroder-est-rarity-all-5k-2p5k
+NasimB/gpt2-concat-aochildes-iorder-length-16k
+prasanna2003/pythia-160m-chat
+nkpz/GodziLLa-30B-gptq-128g
+TheBloke/openchat_v2-GPTQ
+mrizalf7/t5-small-finetuned-indosum-3
+TheBloke/openchat_v2_w-GPTQ
+hsc748NLP/GujiBERT_jian
+hsc748NLP/GujiGPT_jian
+yhyhy3/open_llama_7b_v2_med_instruct
+spitfire4794/dialogpt-small-morty
+matthiasweaser/transformer-model
+cwiz/llama-7b-saiga-merged
+muhtasham/TajGPT
+cackerman/gpt2-medium_trained_triviaqa
+TheBloke/WizardCoder-Guanaco-15B-V1.0-GPTQ
+NasimB/gpt2-concat-cbt-rarity-iorder-2k-p3k
+ibibek/guanaco-7B-merged
+scieditor/citation-generation-t5
+obada-jaras/PANL_SQL
+NasimB/gpt2-concat-mod-datatsets-rarity-all-iorder-no-cut-repetition
+Henk717/chronoboros-33B
+Honkware/Wizard-Vicuna-13B-Uncensored-SpQR
+carbon225/plt5-abbreviations-pl
+ZainabShah02/finance_dataset_distilgpt2_clm-model
+carbon225/byt5-abbreviations-pl
+NasimB/gpt2-concat-guten-rarity-all-mod-repetition-iorder-5k-p5k
+NasimB/gpt2-concat-cbt-rarity-2k-p3k-rerun
+NasimB/gpt2-concat-mod-datasets-rarity1-rerun
+bhenrym14/airoboros-7b-gpt4-1.4.1-lxctx-PI-16384-fp16
+NasimB/gpt2-concat-aochildes-mod-no-repeating-sub-5p9k
+douy/T5-11B-Ctrl-Simplification
+douy/T5-3B-Ctrl-Simplification
+bhenrym14/airoboros-7b-gpt4-1.4.1-lxctx-PI-16384-GPTQ
+calmlab/gpt_large_8bit_object_data_50_10epoch
+calmlab/gpt_large_8bit_actor_data_25_10epoch
+calmlab/gpt_large_8bit_object_data_25_10epoch
+kchitresh/flan_t5_samsum_finetuned
+Barkavi/flan-t5-totto
+LadyShizu/T5_simple-commands_to_actions_5
+LadyShizu/T5_length-commands_to_actions_5
+LadyShizu/T5_jump-commands_to_actions_5
+LadyShizu/T5_left-commands_to_actions_5
+PKU-Alignment/beaver-dam-7b
+NasimB/gpt2-concat-aochildes-mod-no-repeating-sub-5p9k-length-5k
+PAIXAI/Astrid-1B
+RavenFangsk/chronoborous-33B-GPTQ
+calmlab/gpt_large_8bit_actor_data_50_10epoch
+bunb0ybun/just-for-my-game
+PAIXAI/Astrid-1B-CPU
+NasimB/gpt2-concat-guten-mod-rm-refrences-1p7k
+pppiyush/test-three-ep
+calmlab/gpt_large_8bit_actor_data_12_10epoch
+calmlab/gpt_large_8bit_object_data_12_10epoch
+calmlab/gpt_large_8bit_actor_data_6_10epoch
+calmlab/gpt_large_8bit_object_data_6_10epoch
+Kauru/DialoGPT-medium-Ranni
+NasimB/gpt2-concat-guten-mod-rm-ref-2k-rarity-2p5k-p13k
+rajpabari/llama-mnoukhov-ppo-repro
+rajpabari/llama-official-ppo-repro
+NasimB/gpt2-cocnat-aochildes-mod-no-repreating-sub-5p9k-length-15p5k
+phatngy/BLOOM-zalo
+Aeala/Chronoboros-33b-4bit
+sankethgadadinni/dolly-v2-7b-8bitLORA
+Vinitrajputt/infoEX-t5
+MeenalP/falcon-7b-instruct-ft
+lloydchang/wongstein-vide-noir
+NasimB/gpt2-concat-cbt-mod-formatting-iorder
+ShokSmile/real-prompt-100-500syn-problem-gen-t5-small
+chunwoolee0/my_awesome_opus_books_model
+TheBloke/Chronoboros-33B-GPTQ
+dokster/joker-gpt2
+Barkavi/alpaca_tuned_base
+NasimB/gpt2-concat-cbt-mod-formatting-rarity-all-4k
+ShokSmile/real-prompt-100-500syn-problem-gen-t5-base
+christinacdl/Socratic_GODEL
+PKU-Alignment/beaver-7b-v1.0-cost
+UWB-AIR/barticzech-1.0
+ShokSmile/real-prompt-300-500syn-root_cause-gen-t5-small
+ShokSmile/real-prompt-300-500syn-root_cause-gen-t5-base
+Henk717/airochronos-33B
+zjufuturefly/vicuna-7b
+NasimB/gpt2-concat-guten-mod-2k-rarity-all-4k-p12k
+haitengzhao/gimlet
+ShokSmile/real-prompt-300-problem-gen-t5-small
+ShokSmile/real-prompt-300-problem-gen-t5-base
+conceptofmind/open-llama-3b-mpe-8192-ntk-4
+NasimB/gpt2-concat-simple-wiki-mod
+ShokSmile/real-prompt-300-root_cause-gen-t5-base
+ShokSmile/real-prompt-300-root_cause-gen-t5-small
+NasimB/gpt2-cocnat-mod-datasets-txt-processing
+Vtuber-plan/ningyu-spring-15b-v1.0-fp16
+pcuenq/falcon-7b-instruct-transformers
+datenmassiv/falcon-7b-instruct
+NasimB/gpt2-dp-mod-datasets-txt-processing
+Veyselbyte/tokenizer_to_hub_turkishReviews-ds-mini
+SaylorTwift/gpt2_test
+meetcshah19/flan-t5-xxl-fp16
+zelalt/my_result
+janldeboer/RedditRelationships
+Khushnur/t5-base-end2end-questions-generation_squad
+NasimB/gpt2-concat-all-new-mod-datasets-rarity-all-iorder-13k-2p6k
+yarika/cocktail_maker
+oooriii/cat5-solr-ft_tmp
+crazydamns/DialoGPT-Johnny2
+NasimB/gpt2-dp-all-mod-datasets-rarity-all-iorder-13k-2p6k
+zelalt/my_new_result
+raveendarv/t5-base-tweetsum
+andyl98/michael-se-rm
+NasimB/gpt2-cocnat-aochildes-mod-sub-length-10k
+foxxy-hm/mt5-small-finetuned-wikilingua-en-vi
+andyl98/michael-se-rm-downloaded
+flash01694/falcon-7b-instruct-ft-squadit-merged
+gretelai/falcon-7b
+LadyShizu/T5_simple_adafactor
+LadyShizu/T5_jump_adafactor
+LadyShizu/T5_left_adafactor
+LadyShizu/T5_length_adafactor
+paullintilhac/codeparrot-ds
+NasimB/gpt2-concat-mod-datasets-txt-processing-rarity-all
+MaratKhabibullin/chat
+uonlp/okapi-hu-bloom
+Devden/DialectAI-Vicuna-7B
+NasimB/gpt2-dp-mod-datasets-txt-processing-rarity-all
+Ritori/Yura_GPT
+zelalt/chatbotT4_n1
+TheBloke/airochronos-33B-GPTQ
+alvinming5/distilgpt2-finetuned-wikitext2
+zelalt/Zel-Chatbot
+NasimB/gp2-concat-guten-mod-rm-2p3k-rarity-all-5k-p22k
+smangrul/peft-lora-codegen-25-guanaco-v100-colab-merged
+Tanor/SRGPTSENTNEG2
+andyl98/bigcode_raw_rm_version2
+timdettmers/guanaco-13b-merged
+zelalt/Zel-Chatbot_delete
+NasimB/gpt2-concat-cbt-mod-formatting-iorder-rarity-all-4k
+zhangirazerbayev/pile-sample_step11632
+Tanor/SRGPTSENTNEG4
+Tanor/SRGPTSENTPOS2
+Tanor/SRGPTSENTPOS4
+upstage/llama-30b-instruct
+Azizslanguagesmodels/turkishReviews-ds-mini
+seriouspark/my_awe_some_eli5_clm-model
+Azizslanguagesmodels/denemetest_trnsfr_mini_tokenizer
+wesley7137/distilgptquantML
+1q2w3e4r5t/Polyglot12.8B_finetune_23k
+owanr/r1_coedit
+peterchatain/mock_test_save-seed-42
+NasimB/gpt2-dp-guten-rarity-all-5k-2p5k
+zohaib99k/QnA_model_training
+sgowdaks/falcon-40b-instruct-8bit
+mayonek/checkpoints_flant5_11072023done
+musabg/llama_caller
+NasimB/gpt2-concat-cbt-mod-formatting-rarity-all-no-cut
+jpandeinge/DialoGPT-medium-Oshiwambo-Bot
+VMware/open-llama-7b-v2-open-instruct
+owanr/r1_coedit_iter
+NasimB/gpt2-concat-all-mod-datasets1-rarity-all-iorder-c13k-c2p6k
+NasimB/gpt2-concat-all-mod-datasets1-rarity-all-iorder-c13k
+calmlab/gpt_large_actor_10epoch_new
+calmlab/gpt_large_object_10epoch_new
+patomp/mt5-base-tydiqa-only-en
+KennethTM/gpt2-medium-danish
+Locala/correct_lora_1b_3
+calmlab/gpt_large_actor_epoch10_0711
+calmlab/gpt_large_object_epoch10_0711
+hienbm/t5-small-complex-compound-to-simple
+custads23/pygmalion-1.3b
+meta-llama/Llama-2-70b-hf
+NasimB/gpt2-concat-all-mod-datasets1-rarity-all-iorder-end-c2p6k
+jwu323/origin-llama-7b
+TigerResearch/tigerbot-7b-sft-v2-4bit
+NasimB/gpt2-concat-all-mod-datasets1-rarity-all-c13k-c2p6k-rev
+squarelike/Gugugo-koen-1.3B-V0.9
+conceptofmind/open-llama-7b-v2-mpe-8192-ntk-4
+jphme/vicuna-13b-v1.3-ger
+NasimB/gpt2-cocnat-mod-datasets3-rarity-all
+gsaivinay/wizard-vicuna-13B-SuperHOT-8K-fp16
+SachinKaushik/docGPT
+Balajb/t5-small-finetuned-xsum-bala
+duwuonline/mymodel-generation
+ShokSmile/real-prompt-100V3-500syn-all-gen-t5-small
+Saad150/t5-small-finetuned-xsum
+NasimB/gpt2-concat-all-mod-datasets2-rarity-all-2k-13k
+ShokSmile/real-prompt-100V3-500syn-all-gen-t5-base
+onthebay/ShakespeareGPT-small
+TheBloke/open-llama-7B-v2-open-instruct-GPTQ
+hopkins/svo4
+mejikan/starcoder
+jinaai/falcon-7b-code-alpaca
+zblaaa/t5-base-finetuned-ner_docred_full
+RahulYadav/flan-t5-base-intent-classification
+jinaai/falcon-40b-code-alpaca
+Daniil-plotnikov/Glazastik_Chat
+HatCha01/DialoGPT-small-Batman
+hopkins/strict-small-5
+abhinavkulkarni/mosaicml-mpt-30b-instruct-w4-g128-awq
+Koundinya-Atchyutuni/t5-end2end-questions-generation
+sunilrufus/Jokes
+frank098/WizardLM_13B_juniper
+Mel-Iza0/RedPajama-ZeroShot-10K-classe_nenhuma
+chrisdesa/compressed-redpajama-4bit
+NeemeeshK/gpt2_sample
+jd06/TwoSentenceHorrorModel
+a9i/scarlett-7b
+ethannhzhouu/gpt2-generator
+an-atlas/gpt2Horror
+jovi848/autotrain-eng-ta-json-73876139369
+nkpz/llama-30b-instruct-gptq-128g
+crazydamns/DialoGPT-Johnny3
+musabgultekin/functionary-v0.1
+mahaswec/mahaswec_flan_t5_large
+PledgeVentures/COSMO
+mahaswec/mahaswec_flan_t5_base
+frank098/orca_mini_3b_juniper
+mahaswec/mahaswec_t5_base
+Open-Orca/OpenOrca-Preview1-13B
+chrisdesa/compressed-redpajama-2bit
+ArmelR/gc-65-fc
+Azizslanguagesmodels/denemetest_trnsfr_mini_model
+abhinavkulkarni/mosaicml-mpt-30b-chat-w4-g128-awq
+hungngo04/cluster_to_text_t5_large_test
+Dancloud/chat_test
+hungngo04/cluster_to_text_t5_base_test
+Shad0ws/vicuna-7b
+NasimB/gpt2-cocnat-mod-datasets4-rarity-all-cbt-no-cut
+bigcode/starcoder-co-target
+frank098/Wizard-Vicuna-13B-juniper
+hungngo04/cluster_to_text_t5_large_test_2
+mrizalf7/t5-smolll-finetuned-indosum
+conceptofmind/Tasksource-Open-Llama-13b
+Kauru/DialoGPT-medium-Ranniv2
+LoupGarou/Starcoderplus-Guanaco-GPT4-15B-V1.0
+LoupGarou/WizardCoder-Guanaco-15B-V1.1
+NasimB/gpt2-concat-mod-rm-2p3k-guten-rarity-all-no-cut
+wesley7137/gptlmwiz
+jwchung/codeparrot-ds
+zlsl/l_wh40k_all
+shibing624/ziya-llama-13b-medical-merged
+NasimB/gpt2-concat-guten-rarity-all-no-cut
+wy2333/zy_sciai_0712
+abhinavkulkarni/VMware-open-llama-7b-v2-open-instruct-w4-g128-awq
+sraj5162/santacoder-finetuned-the-stack-bash
+Zayt/pythia1b4-chat-oasst-dolly
+puru22/falcon-40b-instruct-fast
+zblaaa/t5-base-finetuned-ner_docred_30
+NasimB/gpt2-concat-mod-datasets1-rarity-all-no-cut
+SerhiiZn/distilgpt2-finetuned-wikitext2
+bradmin/sft
+Mel-Iza0/RedPajama-ZeroShot-10K-classe_other
+jordiclive/scaled-llama-7b-lora-16k-rp2
+dacorvo/gpt2-neuronx
+ernstliang/my_awesome_billsum_model
+optimum/gpt2-neuronx
+ajibawa-2023/scarlett-7b
+rdyzakya/IndoLEGO-ABSA
+SatwikShrivastava/narutoAI-chatbot
+bofenghuang/vigogne-13b-chat
+NasimB/gpt2-cocnat-mod-datasets1-rarity-all-5p5k-mostf
+parsi-ai-nlpclass/contexual_postagger
+TheBloke/Starcoderplus-Guanaco-GPT4-15B-V1.0-GPTQ
+PeterBrendan/pbjsGPT2v2
+kaiyuy/leandojo-lean4-sst-byt5-small
+Gryphe/MythoLogic-13b
+boostcamp-5th-nlp07/koalpaca-polyglot-5.8b-summary-v0.2
+NasimB/gpt2-concat-mod-datasets1-iorder-rarity-all-5p5k
+Mel-Iza0/RedPajama-ZeroShot-10K-classe_bias
+idajikuu/GPT2bdarija
+gamallo/gpt-galego1.3B
+jordiclive/falcon-40b-lora-sft-stage2-1.1k
+GodRain/WizardCoder-15B-V1.1-3bit
+boostcamp-5th-nlp07/koalpaca-polyglot-5.8b-summary-v1.0
+GodRain/WizardCoder-15B-V1.1-4bit
+Abilityguy/LF-Amazon-131K
+hsultanbey/autocomplete_trainer
+NasimB/gpt2-concat-guten-rarity-no-cut
+idajikuu/GPT2bdarijav2
+RK25/Jokes
+DraconicKnight/Jokes
+rhodes1/Jokes
+saeedehj/t5-small-finetune-xsum
+4bit/WizardLM-13B-V1.1-GPTQ
+Mel-Iza0/RedPajama-ZeroShot-10K-classe_nenhuma_naoquantizado
+newsrx/instructor-xl
+newsrx/instructor-large
+andyl98/bigcode_raw_rm_balanced
+linhd-postdata/llama_easylm
+NasimB/gpt2-concat-cbt-mod-formatting-rarity-all-no-cut-rev
+NasimB/gpt2-concat-aochildes-mod-sub-rarity-all-no-cut-rev
+TheBloke/OpenOrca-Preview1-13B-GPTQ
+NasimB/gpt2-concat-all-indv-rarity-all-no-cut
+NasimB/gpt2-concat-all-ind-txt-processing-indv-rarity-all
+andyl98/rm_v3
+NasimB/gpt2-concat-all-base-rarity-all-iorder-est-5p5k
+zhangirazerbayev/open-web-math-hq_step11632
+anirbankgec/flan_t5_small_finetuned
+raygx/distilGPT-Nepali
+OpenMatch/AAR-ANCE-KILT
+anirbankgec/flan_t5_small_finetuned_anirban
+AnirbanRC/flan_t5_small_finetuned_anirbanrc
+DAMO-NLP-MT/polylm-multialpaca-13b
+NasimB/gpt2-concat-all-text-processign-rarity-all-iorder-est-5p5k
+zhangirazerbayev/mix_step11632
+localmodels/Vicuna-33B-v1.3-GPTQ
+adr2432/small-Joshua-Bot
+traintogpb/mt5-large-kor-qa-generation-finetuned
+localmodels/Vicuna-13B-v1.3-GPTQ
+localmodels/Vicuna-7B-v1.3-GPTQ
+aga3134/my_awesome_eli5_clm-model
+zhangirazerbayev/proofgpt_v0.7_arxiv-rp_short
+ObsessedCitrus/DialoGPT-small-PeterBot_ChatBot
+zhangirazerbayev/proofgpt_v0.7_arxiv-pilev2_short
+localmodels/Guanaco-33B-GPTQ
+heegyu/polyglot-ko-1.3b-flax
+heegyu/polyglot-ko-3.8b-flax
+heegyu/polyglot-ko-5.8b-flax
+heegyu/polyglot-ko-12.8b-flax
+localmodels/Guanaco-13B-GPTQ
+localmodels/Guanaco-7B-GPTQ
+localmodels/WizardLM-13B-v1.1-GPTQ
+calmlab/gpt_large_actor_epoch3_0713
+calmlab/gpt_large_actor_epoch6_0713
+calmlab/gpt_large_actor_epoch10_0713
+calmlab/gpt_large_object_epoch3_0713
+calmlab/gpt_large_object_epoch6_0713
+calmlab/gpt_large_object_epoch10_0713
+YeungNLP/firefly-llama-13b
+Shishir1807/Planner_Trial-1-1
+localmodels/Wizard-Vicuna-7B-Uncensored-GPTQ
+hungngo04/cluster_to_text_t5_large_test_3
+sankethgadadinni/dolly-v2-7b-RMCLM
+vlsp-2023-vllm/hoa-1b4
+NasimB/gpt2-concat-cbt-mod-formatting-rarity-no-cut
+minani/bloom
+JerryYanJiang/sentiment-bloom-large-e6
+calmlab/gpt_true_large_actor_epoch6_0713
+calmlab/gpt_true_large_actor_epoch3_0713
+saeedehj/t5-small-finetune-cnn
+heegyu/pythia-410m-deduped-flax
+uzenhuang/distilgpt2-finetuned-wikitext2
+pigliketoeat/distilgpt2-finetuned-wikitext2
+eunyounglee/GPT-NeoX-pretrain-ko-1
+Shushant/thesis_nepaliGPT
+Devops-hestabit/Othehalf-1.3b-onnx
+DAMO-NLP-MT/polylm-1.7b
+minhtoan/t5-translation-vietnamese-nom
+NasimB/gpt2-concat-cbt-rarity-no-cut
+mattbit/gpt2wb
+blakeho/flan-t5-critical-constructive-translator
+zlwang19/autotrain-randengq-74291139565
+obada-jaras/PANL_SQL_v0.2
+jwchung/mt5-small-finetuned-amazon-en-es
+Shishir1807/Indication_Training-1
+xray1111/gpt2-imdb-pos-v2
+yashonwu/doc2query-t5-base-msmarco
+abhinavkulkarni/tiiuae-falcon-40b-instruct-w4-g128-awq
+cosmin/falcon-7b-sharded-bf16
+upstage/llama-30b-instruct-2048
+Ne01ynx/GXA-temp
+NasimB/gpt2-concat-cbt-rarity-all-no-cut
+JerryYanJiang/sentiment-bloom-large-e6-v2
+DAMO-NLP-MT/polylm-13b
+jwchung/test-bert-finetuned-squad-accelerate
+dacorvo/tiny-random-gpt2
+dacorvo/tiny-random-gpt2-neuronx
+kama-brown/reddit_uk_econ_corruption_appeasing
+Tnaul/my_awesome_eli5_clm-model
+kama-brown/reddit_uk_econ_corruption_neutral
+kama-brown/reddit_uk_econ_corruption_not_showing
+kama-brown/reddit_uk_econ_corruption_opposing
+kama-brown/reddit_uk_econ_corruption_post-invasion
+zuu/paper-summarization
+shihabsarar29/monster-model
+EulerianKnight/t5-small-finetuned-pubmed-sum
+NasimB/gpt2-cocnat-guten-mod-rm-2k-rarity-no-cut
+meta-llama/Llama-2-13b-chat-hf
+meta-llama/Llama-2-13b-hf
+DipanAI/NEW_Low_falcan_7b
+meta-llama/Llama-2-7b-hf
+abhinavkulkarni/Salesforce-codegen25-7b-instruct-w4-g128-awq
+meta-llama/Llama-2-7b-chat-hf
+Scherbi/test-finetune-distilgpt2
+NasimB/gpt2-concat-aochildes-len-no-cut
+kama-brown/reddit_uk_econ_corruption_pre-invasion
+kama-brown/reddit_uk_econ_covid_appeasing
+bitadin/gpt-4-long-titles-v2-flan-t5-base-llm-12
+kama-brown/reddit_uk_econ_covid_neutral
+kama-brown/reddit_uk_econ_covid_not_showing
+kama-brown/reddit_uk_econ_covid_opposing
+kama-brown/reddit_uk_econ_covid_post-invasion
+Gustrd/open-llama-13b-4bit-128g-GPTQ
+kama-brown/reddit_uk_econ_covid_pre-invasion
+kama-brown/reddit_uk_econ_energy_appeasing
+flozi00/open_llama_7b_v2-german-assistant
+kama-brown/reddit_uk_econ_energy_neutral
+Dharmik/positive_movie_review_gpt2-imdb
+kama-brown/reddit_uk_econ_energy_not_showing
+kama-brown/reddit_uk_econ_energy_opposing
+kama-brown/reddit_uk_econ_energy_post-invsion
+Kekelilii/my_awesome_qa_model
+bhenrym14/airoboros-33b-gpt4-1.4.1-lxctx-PI-16384-fp16
+NasimB/gpt2-concat-guten-rarity-no-cut-corrected
+yashonwu/doc2query-t5-base-msmarco-10000
+NasimB/gpt2-concat-aochildes-rarity-no-cut
+kama-brown/reddit_uk_econ_energy_pre-invasion
+Leon68/falcon7b-openassistant
+kama-brown/reddit_uk_econ_gov_exp_appeasing
+kama-brown/reddit_uk_econ_gov_exp_neutral
+kama-brown/reddit_uk_econ_gov_exp_not_showing
+kama-brown/reddit_uk_econ_gov_exp_opposing
+kama-brown/reddit_uk_econ_gov_exp_post-invasion
+kama-brown/reddit_uk_econ_gov_exp_pre-invasion
+kama-brown/reddit_uk_ecoon_housing_appeasing
+kama-brown/reddit_uk_econ_housing_neutral
+kama-brown/reddit_uk_econ_housing_not_showing
+kama-brown/reddit_uk_econ_housing_opposing
+kama-brown/reddit_uk_econ_housing_post-invasion
+kama-brown/reddit_uk_econ_housing_pre-invasion
+ZachBeesley/mt5-small-finetuned-amazon-en-es
+NasimB/gpt2-concat-aochildes-rarity-all-no-cut
+andyl98/reward_model
+NasimB/gpt2-concat-bnc-rarity-all-cut
+Leon68/falcon-7b-openassistant
+sunilrufus/jokes1
+jstet/myrtle
+NasimB/gpt2-concat-bnc-rarity-no-cut
+DangFutures/Falcon_DOJ
+BigSalmon/InformalToFormalLincoln104Paraphrase
+NasimB/gpt2-concat-simple-wiki-rarity-no-cut
+bhenrym14/airoboros-33b-gpt4-1.4.1-lxctx-PI-16384-GPTQ
+MickyMike/codet5p-220m-repair
+chrisvnz/my_awesome_billsum_model
+calmlab/gpt_true_large_actor_epoch10_0713
+NasimB/gpt2-concat-simple-wiki-rarity-all-no-cut
+IDEA-CCNL/Ziya-Writing-LLaMa-13B-v1
+kejian/llama-7b-hf
+marc-er/pythia-70m-dpo
+spoudel/tweets-small
+tianhua007/test001
+NasimB/gpt2-concat-simple-wiki-mod-rarity-all-no-cut
+localmodels/Pygmalion-13B-GPTQ
+NasimB/gpt2-concat-all-base-rarity-all-iorder-8k
+localmodels/Nous-Hermes-13B-GPTQ
+ChrisHayduk/OpenGuanaco-13B
+localmodels/Airoboros-13B-gpt4-1.4-GPTQ
+Mayypeeya/my_thaisum_model
+localmodels/Airoboros-33B-gpt4-1.4-GPTQ
+DipanAI/flan-T5_base
+suarkadipa/HubermanGPT-small-v1
+shivaneej/my_awesome_billsum_model
+localmodels/WizardLM-7B-v1.0-Uncensored-GPTQ
+explosion-testing/refined-web-model-test
+RahulYadav/flan-t5-base-intent-classification-v2
+localmodels/Wizard-Vicuna-13B-Uncensored-SuperHOT-8K-GPTQ
+NasimB/gpt2-concat-guten-rarity-all-end-2p5k
+localmodels/OpenAssistant-LLaMA-30B-SFT-7-GPTQ
+eunyounglee/GPT-NeoX-pretrain-ko-2
+Mayypeeya/mt5_thaisum_model
+kama-brown/reddit_uk_econ_immigration_appeasing
+kama-brown/reddit_uk_econ_immigration_neutral
+kama-brown/reddit_uk_econ_immigration_not_showing
+at2507/gpt_output
+kama-brown/reddit_uk_econ_immigration_opposing
+kama-brown/reddit_uk_econ_immigration_post-invasion
+kama-brown/reddit_uk_econ_immigration_pre-invasion
+suarkadipa/HarryPotterGPT-small-v1
+JerryYanJiang/sentiment-bloom-e6-b16
+kama-brown/reddit_uk_econ_inflation_appeasing
+kama-brown/reddit_uk_econ_inflation_neutral
+kama-brown/reddit_uk_econ_inflation_not_showing
+kama-brown/reddit_uk_econ_inflation_opposing
+kama-brown/reddit_uk_econ_inflation_post-invasion
+kama-brown/reddit_uk_econ_inflation_pre-invasion
+kama-brown/reddit_uk_econ_IR_appeasing
+kama-brown/reddit_uk_econ_IR_neutral
+kama-brown/reddit_uk_econ_IR_not_showing
+michaelwei77/distilgpt2-finetuned-wikitext2
+kama-brown/reddit_uk_econ_IR_opposing
+kama-brown/reddit_uk_econ_IR_post-invasion
+kama-brown/reddit_uk_econ_IR_pre-invasion
+Shishir1807/Indication_Training_v2
+kama-brown/reddit_uk_econ_jobs_appeasing
+kama-brown/reddit_uk_econ_jobs_neutral
+kama-brown/reddit_uk_econ_jobs_not_showing
+kama-brown/reddit_uk_econ_jobs_opposing
+Python/ACROSS-m2o-eng-base
+kama-brown/reddit_uk_econ_jobs_post-invasion
+NasimB/gpt2-concat-cbt-rarity-all-end-p5k
+kama-brown/reddit_uk_econ_jobs_pre-invasion
+kama-brown/reddit_uk_econ_politics_appeasing
+flozi00/falcon-7b-german-assistant-v2
+kama-brown/reddit_uk_econ_politics_neutral
+explosion-testing/falcon-no-parallel-attn-test
+kama-brown/reddit_uk_econ_politics_not_showing
+kama-brown/reddit_uk_econ_politics_opposing
+PhysHunter/mt5-small-finetuned-amazon-en
+kama-brown/reddit_uk_econ_politics_post-invasion
+NasimB/gpt2-concat-aochildes-rarity-end-3p3k
+PhysHunter/mt5-small-finetuned-amazon-en-accelerate
+kama-brown/reddit_uk_econ_politics_pre-invasion
+kama-brown/reddit_uk_econ_war_appeasing
+Python/ACROSS-m2o-eng-small
+kama-brown/reddit_uk_econ_war_neutral
+kama-brown/reddit_uk_econ_war_not_showing
+kama-brown/reddit_uk_econ_war_opposing
+kama-brown/reddit_uk_econ_war_post-invasion
+kama-brown/reddit_uk_econ_war_pre-invasion
+kyoyanagi/flanb-40000-sp
+NasimB/gpt2-concat-aochildes-mod-sub-1k-rarity-no-cut
+weqweasdas/hh_rlhf_rm_open_llama_3b
+lposilovic/Seinfeld_gpt2
+bitadin/gpt-4-medium-titles-v2-flan-t5-base-llm-6
+NasimB/gpt2-concat-guten-mod-rarity-all-bnc-rarity
+marouni/miniDolly
+kama-brown/reddit_uk_econ_ES_appeasing
+sigmareaver/GPT-NeoX-20b-Erebus-4bit-gptq
+yhhjynbhu/Akashi2
+FarziBuilder/fastInferencetry9
+kama-brown/reddit_uk_econ_ES_neutral
+pavanpankaj/falcon-7b-mix-model-merged
+NasimB/gpt2-concat-bnc-rarity-end-1p6
+HuengchI/my_awesome_eli5_clm-model
+amirabdullah19852020/pythia_70m_ppo_imdb_sentiment
+kama-brown/reddit_uk_econ_ES_not_showing
+FarziBuilder/fastInferencetry10
+kama-brown/reddit_uk_econ_ES_opposing
+kama-brown/reddit_uk_econ_ES_post-invasion
+kama-brown/reddit_uk_econ_ES_pre-invasion
+openchat/openchat_v2_openorca_preview
+lokpalai/lokpalgpt
+esculapeso/distilgpt2-finetuned-wikitext2
+NasimB/gpt-concat-open-rarity-no-cut
+vilm/vietcuna-3b-v2
+ingo-m/bloom-560m-onnx
+kejian/llama-65b-hf
+FinancialSupport/gpt2-ft-medical-qa
+zelalt/Chatbot_T5-ParameterChanging
+SotirisLegkas/Socratic-GODEL
+TheBloke/openchat_v2_openorca_preview-GPTQ
+wevie1978/DialoGPT-medium-Kebb
+NasimB/gpt2-concat-open-rarity-all-no-cut
+sashikiran-76/Medalpaca-lora-30b-8bit
+bitadin/gpt-4-short-titles-v2-flan-t5-base-llm-6
+mesolitica/nanot5-base-malaysian-cased
+NasimB/gpt2-concat-children-rarity-all-no-cut
+abhinavkulkarni/lmsys-vicuna-33b-v1.3-w4-g128-awq
+SotirisLegkas/Socratic-GODEL-2
+anushakamath/product_recommendation
+zelalt/Chatbot_T5-SolvingOverfit
+prasertkhajusrokar/openthaigpt-gpt2-v1
+zelalt/Chatbot_T5-SolvingOverfit2
+andyl98/merged-checkpoint-1000
+andyl98/merged-checkpoint-500
+meta-llama/Llama-2-70b-chat-hf
+NasimB/gpt2-concat-children-rarity-no-cut
+w601sxs/pythia-70m-instruct-orca-chkpt-64000
+chaojiang06/arXivEdits-intention-classifier-T5-large-coarse
+chaojiang06/arXivEdits-intention-classifier-T5-large-fine-grained
+jerryjalapeno/nart-100k-7b
+chaojiang06/arXivEdits-intention-classifier-T5-base-coarse
+7erminalVelociraptor/Airochronos-33b-Guanaco
+NasimB/gpt2-concat-qed-rarity-no-cut
+chaojiang06/arXivEdits-intention-classifier-T5-base-fine-grained
+sarumo/first_billsum_model
+gsomers-smarsh/rlhf_test_gs
+gsomers-smarsh/rlhf_test_gs_ref
+cfisicaro/my_awesome_eli5_clm-model2
+NasimB/gpt2-concat-simple-wiki-mod-rarity-no-cut
+kopeqwerty/DialoGPT-medium-idotbot
+borkur/gpt2-finetuned-wikitext2
+zelalt/my-zelos-model
+dylanalloy/mt5-small-finetuned-amazon-en-es
+NasimB/gpt2-concat-rarity-all-guten-2p5k-cbt-p5k
+ittailup/legal_relora
+NasimB/gpt2-concat-qed-rarity-all-no-cut
+RottenLemons/flan-t5-base
+KnutJaegersberg/gpt-2-xl-EvolInstruct
+zelalt/Chatbot_T5-Prmtrs
+NasimB/gpt2-concat-switch-rarity-all-no-cut
+mncai/SGPT-1.3B-insurance-epoch10
+NasimB/gpt2-concat-switch-rarity-no-cut
+Panchovix/guanaco-33b-lxctx-PI-16384-LoRA-fp16
+Panchovix/GPlatty-30B-lxctx-PI-16384-LoRA-fp16
+Panchovix/Wizard-Vicuna-30B-Uncensored-lxctx-PI-16384-LoRA-fp16
+jarvissss/DialoGPT-medium-idotbot
+NasimB/gpt2-concat-rarity-guten-bnc-no-cut
+NasimB/guten-rarity-end-cut-19k
+RottenLemons/flan-t5-base-downsamples
+NasimB/gpt2-concat-cbt-rarity-end-p5k
+yhhjynbhu/Akashi3
+skar01/test_model
+Panchovix/airoboros-33b-gpt4-1.2-lxctx-PI-16384-LoRA-fp16
+NasimB/guten-rarity-all-end-19k-ctx-512
+Glavin001/startup-interviews-llama7b-v0.1-GPTQ
+Panchovix/tulu-30B-lxctx-PI-16384-LoRA-fp16
+Panchovix/guanaco-33b-lxctx-PI-16384-LoRA-4bit-32g
+Panchovix/GPlatty-30B-lxctx-PI-16384-LoRA-4bit-32g
+Panchovix/Wizard-Vicuna-30B-Uncensored-lxctx-PI-16384-LoRA-4bit-32g
+Panchovix/airoboros-33b-gpt4-1.2-lxctx-PI-16384-LoRA-4bit-32g
+Panchovix/tulu-30B-lxctx-PI-16384-LoRA-4bit-32g
+NasimB/guten-rarity-all-end-19k-ctx-64
+NasimB/guten-log-rarity-all-no-cut
+seonglae/wizardlm-7b-uncensored-gptq
+minhalvp/orca_mini_v2_13b-sharded
+PhysHunter/codeparrot-ds
+marianna13/byt5-small-NSFW-image-urls
+marianna13/flan-t5-base-summarization
+NasimB/guten-rarity-all-2p5k-log-rarity-all-sort
+imgeaslikok/flan-t5-definition-en-large-taboo-for-llms-deft
+NasimB/guten_rarity_all_iorder_cut_19k
+pelinbalci/flant5-dialoguesum
+NasimB/children_rarity_all_bnc_rarity
+jovi848/autotrain-my_pref_on_products-74794139724
+jatinvijay/followupQ
+TheBloke/h2ogpt-gm-oasst1-en-2048-falcon-7b-v3-GPTQ
+TheBloke/WizardCoder-Guanaco-15B-V1.1-GPTQ
+adityabhat/GPT2
+jeremyvictor/mt5-large-gramatika-final-e8-b16
+pelinbalci/myflant5-dialoguesummary_v2
+vilm/vietcuna-7b-v2
+jeremyvictor/t5-v1_1-large-gramatika-final-e8-b16
+NasimB/children-rarity-all-guten-rarity-all-2p5k
+TheBloke/LLaMA-65B-GPTQ
+NasimB/rarity-guten-end-19k-cbt-p5k
+Arnajak/mt5_base-thai_government_parapharse
+amirabdullah19852020/pythia_70m_ppo_imdb_sentiment_v2
+jeremyvictor/mt5-base-gramatika-final-e8-b16
+jeremyvictor/t5-v1_1-base-gramatika-final-e8-b16
+bigcode/starcoder-xo
+bigcode/starcoder-cxo
+NasimB/aggregate-all-best-so-far
+NasimB/cbt-mod-formatting-rarity-all-end-p5k
+TheBloke/LLaMA-13b-GPTQ
+monuirctc/falcon-7b-instruct-indo
+FabbriSimo01/GPT_Large_Quantized
+TheBloke/LLaMA-30b-GPTQ
+FabbriSimo01/Bloom_1b_Quantized
+FabbriSimo01/Cerebras_1.3b_Quantized
+raghavbali/gpt2_ft_sherlock_holmes
+TheBloke/LLaMA-7b-GPTQ
+NasimB/guten-mod-rarity-all-end-est-19k
+Magmadue/DiabloGPT-small-ei
+ChrisAcquaye/Llama_30B_converted
+NasimB/gpt2-concat-wiki-rarity-no-cut
+jsavva/my_awesome_billsum_model
+e-hossam96/dgpt2-finetuned-g
+datatab/alpaca-serbian-7b-base
+oknashar/distilgpt2AutoModelForCasualM
+datatab/alpaca-serbian-3b-base
+NasimB/aochildes-log-rarity-all-no-cut
+NasimB/cbt-log-rarity-all-no-cut
+nicbull/DialoGPT-small-cryptonic
+NasimB/cbt-guten-log-rarity-all-no-cut
+frank098/orca_mini_3b_juniper_reward_model
+NasimB/guten_rarity_all_cut_19k_shuffled
+musabgultekin/functionary-7b-v0.2
+AbdelSiam/nart-100k-7b-GPTQ
+openlm-research/open_llama_3b_v2
+yhyhy3/open_llama_7b_v2_med_instruct_full
+NasimB/guten-rarity-all-no-cut-shuffled
+NasimB/children-rarity-all-guten-log-rarity-all
+nicbull/DialoGPT-small-cryptonic2
+bigcode/starcoder-cxso
+NasimB/bnc-rarity-no-cut-shuffled
+NasimB/guten-rarity-all-cut-20k
+NobodyExistsOnTheInternet/mergingLora
+yongsun-shim/adapter_test
+amirabdullah19852020/pythia_70m_ppo_imdb_sentiment_v3
+linkanjarad/Doctor-OPT-350M
+NasimB/cbt-log-rarity-no-cut
+NasimB/guten-rarity-all-end-19k-ctx-512-finegrained-eval
+codecomplete/codegen25_7b_multi_fp16
+Kunjesh07/T5-based-question-model
+wesley7137/gpt2-vicuna
+NasimB/all-base-rarity-all-bnc-rarity-iorder-est-5p5k-mostf
+NasimB/all-base-rarity-all-children-rarity-all-iorder-est-5p5k-mostf
+asedmammad/Vicuna-7B-vanilla-1.1-GGML
+hi5-hi5/my_awesome_eli5_clm-model
+abhi-pwr/news-summarizer
+amirabdullah19852020/pythia_70m_ppo_imdb_sentiment_with_checkpoints
+NasimB/all-base-rarity-all-guten-rarity-all-2p5k-iorder-est-5p5k-mostf
+NasimB/all-base-log-rarity-all-iorder-6p6k-mostf
+WeOpenML/PandaLM-Alpaca-7B-v1
+WeOpenML/Alpaca-7B-v1
+KnutJaegersberg/gpt2-xl-4bit-128g
+frank098/orca_mini_3b_sft
+Barkavi/llama-7B-hf
+Glavin001/startup-interviews-llama-13b-v0.3-GPTQ
+NasimB/all-base-no-repetition-no-cut
+NasimB/rarity-all-guten-2p5k-cbt-p5k-mixed
+Saideva/title_generation
+marc-er/pythia-70m-ppo
+sherif1311/flan-t5-base-imdb-text-classification
+rshrott/falcon-7b-instruct-ft
+jeremyvictor/t5-v1_1-large-fce-e8-b16
+anujsahani01/NeuralCodeBot_pythia
+jeremyvictor/t5-v1_1-base-fce-e8-b16
+chloe0x0/DialoGPT-small-Muty
+localmodels/WizardCoder-15B-V1.0-GPTQ
+Korventenn/en-fr-t5-small-translation
+NasimB/children_bnc_rarity_all_no_cut
+localmodels/Orca-Mini-v2-13B-GPTQ
+bodaay/Wizard-Vicuna-7B-Uncensored-ONNX
+NasimB/bnc-rarity-guten-rarity-all-shuffled
+donadelicc/kirgegaard
+odunola/transcriber-t5-v8-new
+ErfanMoosaviMonazzah/T5-Task-Dialogue-Pretrained
+sumo43/open_llama_7b
+hussssssssssss/falcon-7b-lora-suggestooor_v1_merged
+NasimB/simple-wiki-log-rarity-all-no-cut
+caqlayan/falcon-7b-img-p
+NasimB/cbt-rarity-all-end-p8k
+monuirctc/llama-7b-instruct-indo
+Shoubhik8/flan-t5-large-intent-classification-v2
+TheFuzzyScientist/diabloGPT_open-instruct
+TheFuzzyScientist/T5-base_Amazon-product-reviews
+rshrott/falcon-7b-instruct-ft-descriptions
+NasimB/aochildes-guten-log-rarity-all-no-cut
+glebiller/falcon-7b-sft-mix-2000-sharded-bf16
+NasimB/cbt-guten-log-rarity-all-no-cut-mixed
+SinanAkkoyun/orca_mini_3b_gptq_badtest
+cx229/pretrained
+chengyineng/bloom_randominit_PROMPT_TUNING_CAUSAL_LM
+dimzhead/gpt2-test
+NasimB/all-base-guten-rarity-all-end-19k-no-repetition
+NasimB/all-base-guten-rarity-all-iorder-rarity-all-est-5p5k-mostf
+e-hossam96/dgpt2-chat-squad
+NasimB/cbt-guten-rarity-all-no-cut
+NasimB/cbt-guten-rarity-all-no-cut-mixed
+DAMO-NLP-MT/polylm-13b-fine-grained-shards
+junsun10/mt5-base-kor-paper-summary
+uzenhuang/distilgpt2-finetuned-wikitext2-test
+charlieoneill/falcon-7b-abstracts-1400
+NasimB/cbt-rarity-all-guten-rarity-all-shuffled
+sumo43/lora_moe_7b_baseline
+NasimB/cbt-mod-log-rarity-all
+SmartDigitalMedicine/medicare-vicuna-13b
+StarRing2022/MiLu-GPT
+universeTBD/falcon-7b-abstracts-tiny
+picas9dan/alpaca-lora-7b-merged
+Crazi/clean_mixed_mel2
+ethan1278/WizardLM-Uncensored-Falcon-7b-sharded-bf16
+Kowsher/ChatFalcon
+NasimB/cbt-rarity-all-guten-rarity-all-end-19k-mixed
+devgupta/gpt2-suggestion
+NasimB/cbt-mod-guten-mod-rarity-all-mixed
+PKU-Alignment/alpaca-7b-reproduced
+chloe0x0/mutyGPT
+rubentito/vt5-base-spdocvqa
+gsaivinay/Platypus-30B
+pcuenq/test-llama-tokenizer
+prnv13/flan-t5-base-flashcards
+uer/gpt2-medium-chinese-cluecorpussmall
+timothyckl/open_llama_3b_v2_qlora_unfiltered
+NasimB/cbt-rarity-all-end-1p4k
+uer/gpt2-large-chinese-cluecorpussmall
+NasimB/cbt-rarity-all-end-p8k-guten-rarity-all-mixed
+uer/gpt2-xlarge-chinese-cluecorpussmall
+srirammadduri-ts/autotrain-pocnl2keywords-75118139836
+TheBloke/MythoLogic-13B-GPTQ
+TheBloke/MythoLogic-13B-GGML
+ThinkX/NV1-7B
+vvasanth/falcon7b-finance-alpaca-130723-merged
+Devden/Dialect_FastChatT5
+prnv13/flan-t5-base-gold
+donadelicc/erna
+NasimB/all-base-rarity-all-cbt-rarity-all-p8k-iorder-est-5p5k
+NasimB/guten-rarity-all-end-2p5k-ctx-256
+PengQu/open_llama_7b_v2_vicuna_Chinese
+RiversHaveWings/open_llama_7b_safetensors
+upstage/llama-65b-instruct
+conceptofmind/open-llama-13b-mpe-8192-ntk-4
+zrx-kishore/falcon-40b-4bit-merged
+oooriii/flan-solr-finetunned
+hemanth-kj/futurewei-test-1
+w601sxs/pythia-70m-instruct-orca-chkpt-1245000
+NasimB/dp-guten-rarity-all-end-2p5k-ctx-256
+alexwang05/DialoGPT-small-soph
+NasimB/concat-cl-rarity-all-base-rarity-all-iorder-5p5k
+lu2000luk/RuttoniAI
+styraist/turkishReview-ds-mini
+nthngdy/headless-pythia-owt2-70m-raw
+nbroad/llama_sm_hd128
+nbroad/llama_sm_hd64
+squarelike/Gugugo-koen-1.3B-V0.95
+toanbku/oa-falcon-7b-sft-df
+golaxy/gogpt-7b
+rbiojout/santacoder_odoo_15
+NasimB/cbt_rarity-all-p5k-guten-rarity-all-mixed
+NasimB/concat-cl-log-rarity-all-base-rarity-all-iorder-5p5k
+andyl98/rlhf_batch_1
+harshs21/dialogpt-1000-e20
+health360/Healix-3B
+openaccess-ai-collective/oo-packed-preview1
+vietgpt/bloom-1b7-v4-legal
+andersonbcdefg/chiffon-mini
+NasimB/finetune-cl-rarity-all-base-rarity-all-iorder-5p5k
+andersonbcdefg/chiffon-base
+PhysHunter/codeparrot-ds-accelerate
+NasimB/all-base-rarity-all-iorder-5p5k-rerun
+chengyineng/random_test
+NasimB/cl-rarity-all-base-iorder-5p5k-finetune-guten-rarity-all-2p5k
+toanbku/af-pythia-12b-sft-df
+ErfanMoosaviMonazzah/T5-Task-Dialogue-FineTuned-Attraction-20-1e-05
+ErfanMoosaviMonazzah/T5-Task-Dialogue-FineTuned-Hotel-20-1e-05
+ErfanMoosaviMonazzah/T5-Task-Dialogue-FineTuned-Laptop-20-1e-05
+ErfanMoosaviMonazzah/T5-Task-Dialogue-FineTuned-Restaurant-20-1e-05
+ErfanMoosaviMonazzah/T5-Task-Dialogue-FineTuned-Taxi-20-1e-05
+ErfanMoosaviMonazzah/T5-Task-Dialogue-FineTuned-Train-20-1e-05
+ErfanMoosaviMonazzah/T5-Task-Dialogue-FineTuned-Tv-20-1e-05
+devgupta/gpt2-tax-autocomplete
+fce-m72109/llama-7b
+kerdamon/results
+trawzified/khajiit-speak
+TheBloke/Codegen25-7B-mono-GPTQ
+w601sxs/pythia-1b-math-chkpt-23k
+yhyhy3/med-orca-instruct-33b
+dmunteanu-rws/falcon-40b
+anzeliu/t5-small-finetuned-xsum
+fbellame/pdf_to_quizz_llama_13B_8bits
+w601sxs/b1ade-1b
+yhyhy3/med-orca-instruct-33b-GPTQ
+chargoddard/llama33b-s2a4
+NasimB/all-base-guten-rarity-all-2p5k-rerun
+wesley7137/orca_mini_v2_13b-GGML
+helloya0908/NER_CLUE
+calmlab/gpt_actor_ppo_0718
+openaccess-ai-collective/oo-packed-preview1-v2
+calmlab/gpt_object_ppo_0718
+vietgpt/bloom-1b7-v4-legal-instruction
+chargoddard/llama33b-16k
+NasimB/bnc-rarity-no-cut-new-loop
+NasimB/guten-rarity-all-2p5k-new-loop
+zebehn/llama-7b-alfred
+Aeala/Enterredaas-33b
+chargoddard/sorceroboros-33b-s2a4-gptq
+satzkumar/BoatAI
+andyl98/reward_model_prompt_template
+explosion-testing/refined-web-model-new-decoder-test
+Crazi/clean_mixed_mel3
+muvazana/flan-t5-base-opus-en-id-id-en
+NasimB/guten-rarity-all-2p5k-plus-wiki-syn
+heegyu/llama-7b-easylm
+HangenYuu/shakespeare-gpt2
+haisona3/vit5-vims
+rbiojout/santacoder-odoo-15
+openbmb/UltraLM-65b
+sherif1311/flan-t5-base-reviewb-text-classification
+usamakenway/Wizard-Vicuna-7B-Uncensored-SuperHOT-8K-AutoGPTQ
+Andron00e/YetAnother_Open-Llama-3B-LoRA-OpenOrca
+Miholini/t5-small-finetuned-xsum
+EricPeter/my_awesome_opus_books_model
+nirajjn76/test-flan
+Abo3Adel/Marje3na2
+tobijen/left_heading_distillgpt2
+dariga/mt5-small-finetuned-amazon-en-es
+lokpalai/lokpalgpt-falcon-7b-lora-4.5
+assafm/cobalt-salmon
+chenxingphh/codeparrot-ds
+oooriii/flan-solr-finetunned2
+jenshimmelreich/gpt2-finetuned-wikitext2
+sandeshrajx/pythia-410m-alpaca-deduped-v0
+rdsmaia/mt5-small-finetuned-xlsum-en-pt
+klosax/pythia-70m-deduped-step44k-92bt
+klosax/open_llama_3b_350bt_preview
+w601sxs/b1ade-1b-orca-chkpt-230k
+zhangirazerbayev/llama_7b_mix_5e-2nl
+Zulfar/t5-small-finetuned-xsum
+zhangirazerbayev/llama_7b_code-no-matlab
+TheBloke/Llama-2-7B-GGML
+TheBloke/Llama-2-7B-GPTQ
+TheBloke/Llama-2-13B-GPTQ
+TheBloke/Llama-2-13B-GGML
+NasimB/cbt-rarity-all-p8k-new-loop
+anzeliu/my_awesome_billsum_model
+temporary0-0name/my_awesome_eli5_clm-model
+TitanML/ct2-int8-falcon-7b-instruct
+andersonbcdefg/my-silly-t5
+TheBloke/Llama-2-7B-Chat-GGML
+TheBloke/Llama-2-7b-Chat-GPTQ
+mulinski/mt5-small-finetuned-amazon-en-es
+BHAndersonJr/DialoGPT-small-fry
+TheBloke/Llama-2-13B-chat-GGML
+hungngo04/cluster_to_text_t5_large_test_xx
+niceanyh/falcon-7b-instruct-ft_v0.2
+TitanML/ct2-int8-falcon-7b
+anonymous4chan/llama-2-7b
+TheBloke/Llama-2-13B-chat-GPTQ
+NousResearch/Llama-2-7b-hf
+localmodels/Llama-2-7B-GPTQ
+localmodels/Llama-2-13B-GPTQ
+daryl149/llama-2-7b-chat-hf
+gsaivinay/airoboros-13B-gpt4-1.3-GGML
+localmodels/Llama-2-7B-Chat-GPTQ
+ruggsea/gpt-ita-fdi_lega
+Kekelilii/gpt2_finetune_multiclass_qa
+NousResearch/Llama-2-13b-hf
+coreml-projects/Llama-2-7b-chat-coreml
+mrbalazs5/t5-simple-qg-hu
+gsaivinay/Llama-2-7b-Chat-GPTQ
+TitanML/ct2-int8-redpajama-7b-base
+anonymous4chan/llama-2-13b
+4bit/Llama-2-7b-Chat-GPTQ
+TheBloke/Llama-2-13B-fp16
+TitanML/ct2-int8-redpajama-7b-instruct
+TheBloke/Llama-2-13B-Chat-fp16
+naveenkarakavalasa/t5-small-finetuned-xsum
+TheBloke/Llama-2-7B-fp16
+anonymous4chan/llama-2-70b
+TitanML/ct2-int8-redpajama-7b-chat
+NousResearch/Llama-2-7b-chat-hf
+4bit/Llama-2-13B-chat-GPTQ
+gpt4life/alpagasus-7b
+localmodels/Llama-2-13B-Chat-GPTQ
+TitanML/ct2-int8-flan-xl
+daryl149/llama-2-13b-chat-hf
+TitanML/ct2-int8-flan-open-llama-7b
+TitanML/ct2-int8-open-llama-7b
+TitanML/ct2-int8-open-llama-7b-v2
+gpt4life/alpagasus-13b
+michaelfeil/ct2fast-Llama-2-7b-hf
+michaelfeil/ct2fast-Llama-2-7b-chat-hf
+4bit/Llama-2-13B-chat-GPTQ-localmodels
+NousResearch/Llama-2-70b-hf
+mattshumer/try-7b
+crumb/llama2-7b-shard-bf16
+michaelfeil/ct2fast-Llama-2-13b-chat-hf
+shivaneej/subset_model_t5
+Panchovix/LLaMA-2-70B-GPTQ-transformers4.32.0.dev0
+michaelfeil/ct2fast-Llama-2-13b-hf
+shivaneej/subset_model_flan_t5
+pszemraj/flan-ul2-text-encoder
+anzeliu/my_billsum_model
+yxslpts/babylm-gpt2-lagre-rlhf-old
+shivaneej/subset_model_flan_t5_html
+NasimB/cbt-rarity-all-p8k-new-loop-2-pad
+eschorn/2_smtg
+TheBloke/Llama-2-70B-chat-GPTQ
+TheBloke/Llama-2-70B-GPTQ
+subset-data/falcon-testing
+NasimB/guten-rarity-all-2p5k-plus-wiki-syn-2-14k
+dhruvabansal/llama-2-13b
+NousResearch/Llama-2-13b-chat-hf
+DUOMO-Lab/TransGPT-v0
+ISeeTheFuture/codeparrot-large
+ISeeTheFuture/codeparrot-small
+localmodels/Llama-2-70B-Chat-GPTQ
+JackFram/llama-68m
+TheBloke/Llama-2-70B-fp16
+TheBloke/Llama-2-70B-Chat-fp16
+Junmai/Polyglot-7B-Kor100K-epoch2-fintech
+MrAiran/GPT2-1B-Spanish-NSFW
+localmodels/Llama-2-70B-GPTQ
+shaohang/Sparse_llama-7B
+psymon/KoLlama2-7b
+Icaruas/Legal_Penguin
+heegyu/RedPajama-INCITE-Base-3B-v1-flax
+4bit/Llama-2-7b-chat-hf
+abhinavkulkarni/meta-llama-Llama-2-7b-chat-hf-w4-g128-awq
+NasimB/cbt-rarity-all-p8k-new-loop-3-pad
+4bit/Llama-2-13b-chat-hf
+TinyPixel/Llama-2-7B-bf16-sharded
+NousResearch/Llama-2-70b-chat-hf
+GenzNepal/mt5-summarize-nepali
+conceptofmind/LLongMA-2-7b
+abhinavkulkarni/meta-llama-Llama-2-13b-chat-hf-w4-g128-awq
+timothykim04/DialoGPT-medium-timothykim
+4bit/Llama-2-70b-chat-hf
+nikaashpuri/gpt-expt-sp-v3-K-600-MA-Mac-actions-kmeans-v16
+jaekwanyda/T5_base_make_natural
+Aharneish/gpt2-2
+NasimB/cbt-rarity-all-p8k-new-loop-4-pad
+hafidikhsan/happy-transformer-t5-base-grammar-correction-lr-v1
+imone/deprecated_LLaMA2_13B_with_EOT_token
+oananovac/model_twcs_90_train_context_dataset_10_epochs_a100
+shivvv/sample-2
+oooriii/flan-small-solr-finetunned
+atmallen/pythia-6.9b-lora-popqa-parents-lying
+seonglae/llama-2-7b-chat-hf-gptq
+OpenBuddy/openbuddy-llama-30b-v7.1-bf16
+AlexWortega/LLama2-7b
+raygx/GPT-NepSA-T2
+oooriii/t5-solr-finetunned
+firef1i/obf7b
+seonglae/llama-2-13b-chat-hf-gptq
+smitz94/my_awesome_billsum_model
+klosax/open_llama_7b_400bt_preview
+tmankita/flan-sharegpt-xl-cc-news-subset-3k-date
+Mikael110/llama-2-7b-guanaco-fp16
+Murat62/turkishReviews-ds-mini
+timothykim04/DialoGPT-medium-harrypotter
+khachdallak/llama-13b-hf-new-tok
+hafidikhsan/happy-transformer-t5-base-grammar-correction-lr-v2
+SmilePanda/Langboat_bloom-6b4-zh-instruct_finetune-chat
+Tap-M/Luna-AI-Llama2-Uncensored
+NasimB/base-plus-wiki-syn-2-14k
+NasimB/guten-rarity-all-2p5k-new-loop-pad
+flozi00/Llama-2-13B-german-assistant-v1
+TitanML/ct2-int8-stablelm-7b
+jaekwanyda/T5_small_make_natural
+ketong3906/my_awesome_billsum_model
+chintan4560/falcon-7b-sharded-bf16
+manashxml/pos_tagger_hindi_mt5
+mattbeen/my_awesome_billsum_model
+abhishek/llama-2-7b-hf-small-shards
+sharpbai/Llama-2-7b-hf
+TaylorAI/Llama2-7B-SFT-LIMA-fp16
+vivekraina/Falcon-8bit-test
+sharpbai/Llama-2-7b-chat
+hafidikhsan/happy-transformer-t5-base-grammar-correction-lr-v3
+TheBloke/Redmond-Puffin-13B-GGML
+TheBloke/Redmond-Puffin-13B-GPTQ
+sharpbai/Llama-2-13b-hf
+srikanthkk/my_awesome_eli5_clm-model
+Roy029/sno_extend_2500
+EnDevSols/falcon-7b
+sharpbai/Llama-2-13b-chat-hf
+hafidikhsan/happy-transformer-t5-base-grammar-correction-lr-v4
+oooriii/catt5-solr-finetunned
+explosion-testing/falcon-new-decoder-test
+klosax/pythia-160m-deduped-step92k-193bt
+tkister/autotrain-news-paper-75687140071
+tmankita/flan-sharegpt-xl-cc-news-subset-3k-date-from-scratch
+conceptofmind/LLongMA-2-13b
+NousResearch/Redmond-Puffin-13B
+mulinski/test-bert-finetuned-squad-accelerate
+oooriii/catt5-solr-finetunned2
+hafidikhsan/happy-transformer-t5-base-grammar-correction-bs-v1
+tmankita/dolly-v2-3b-subset_wikitext_format_date_only_train
+EleutherAI/pythia-14m
+EleutherAI/pythia-31m
+FarziBuilder/farziLLaMaTry4
+fadliaulawi/mt5-small-finetuned-amazon-en-es
+Zulfar/my_awesome_billsum_model
+niceanyh/falcon-7b-instruct-ft_v0.4
+tolga-ozturk/mGPT-nsp
+tobijen/distilgpt2_left_headings
+FarziBuilder/farziLLaMaTry5
+KnutJaegersberg/GPT-NeoX-20B-ppo-summarize-tldr-4bit-32
+Madgimmy/DiabloGPT-small-Madgimmy
+tobijen/left_heading_distillgpt2_test
+lvxiaoayu/Fuxi
+chloe0x0/mutyGPT-v2
+GreenBitAI/LLaMA-13B-2bit
+Q-bert/ChessGPT
+Vertebra/Llama-2-13b-chat-hf-8bit
+meetcshah19/t5-xl-sharded
+atmallen/pythia-12b-lora-popqa-parents-lying
+Tap-M/Luna-AI-Llama2-Uncensored-FP16
+NasimB/cbt-guten-rarity-all-mixed-cut-1p6k
+ethannhzhouu/EthanHorror
+breadlicker45/llama-musenet-test-untrained
+Peeepy/llama-2-13b-8bit
+blbadger/untrained-llama-7b
+rajkumarcm/my_awesome_opus_books_model
+mmt93/test_falc
+hafidikhsan/happy-transformer-t5-base-grammar-correction-bs-v2
+jacobmorrison/tk-instruct-small-lora-experiments
+jacobmorrison/tk-instruct-base-lora-experiments
+jacobmorrison/tk-instruct-large-lora-experiments
+jacobmorrison/tk-instruct-xl-lora-experiments
+hsultanbey/distilgpt_trained
+ethanhs/xgen-7b-8k-guanaco
+TheBloke/Luna-AI-Llama2-Uncensored-GGML
+TheBloke/Luna-AI-Llama2-Uncensored-GPTQ
+NasimB/cbt-guten-rarity-all-mixed-cut-2p6k
+jumang4423/Llama-2-7b-chat-hf-jumango
+squre/my_awesome_billsum_model_10
+mrbalazs5/t5-simple-qg-hu-large
+mlabonne/llama-2-7b-guanaco
+Mikael110/llama-2-13b-guanaco-fp16
+NasimB/guten-rarity-all-2p5k-new-loop-attention
+TheBloke/llama-2-7B-Guanaco-QLoRA-GPTQ
+TheBloke/llama-2-7B-Guanaco-QLoRA-GGML
+daryl149/llama-2-7b-hf
+zelalt/RickMorty_Chat
+PeterBrendan/Prebid_Module_GPT2
+TheBloke/upstage-llama-30b-instruct-2048-GPTQ
+TheBloke/upstage-llama-30b-instruct-2048-GGML
+calmlab/gpt_true_large_actor_epoch10_0719
+hafidikhsan/happy-transformer-t5-base-grammar-correction-ep-v1
+calmlab/gpt_true_large_object_epoch10_0719
+NasimB/final-gutenberg-NBrz
+zelalt/RickMorty_Chat2
+minionai/t5-xl-mind2web
+GPT-14/alespalla
+zelalt/RickMorty_Chat3
+richardr1126/spider-skeleton-wizard-coder-merged
+yodi/KargoQA-bloom-560m
+FarziBuilder/farziHuggyFull
+minlik/chinese-alpaca-plus-33b-merged
+minlik/chinese-alpaca-pro-33b-merged
+ittailup/lallama-7b
+beomi/llama-2-ko-7b
+calmlab/gpt_large_RM
+helojo/my_awesome_eli5_clm-model
+franzemil/bolivianlm
+calmlab/gpt_large_all_type_0720
+George-Ogden/gpt2-medium-finetuned-mnli
+George-Ogden/gpt2-finetuned-mnli
+maximedb/guanaco7b_no_reasoning
+maximedb/guanaco7b_reasoning
+Mayank393/Question_Model_T5_Tokenizer
+NasimB/cbt_guten_mod_rarity_all_mixed
+qinyuany/concat-icl-t0-base
+qinyuany/concat-icl-t5-lm-base
+Roy029/sno_extend_py5k
+Vidyuth/mt5-small-finetuned-amazon-en-es
+NasimB/cbt-guten-rarity-all-est-2p5k-guten
+qinyuany/fid-icl-t0-base
+qinyuany/fid-icl-t5-lm-base
+circulus/Llama-2-7b-instruct
+qinyuany/ensemble-icl-t0-base
+qinyuany/ensemble-icl-t5-lm-base
+prateeksahu147/keyword-masked-model
+qinyuany/fid-icl-t0-3b
+edce/mt5-larger-en-zh-mutigame
+daryl149/llama-2-70b-chat-hf
+qinyuany/ensemble-icl-t5-lm-xl
+spoudel/large-tweets-model
+4bit/Redmond-Puffin-13B
+4bit/Redmond-Puffin-13B-GPTQ
+kadasterdst/t5-finetuned-test
+LinkSoul/Chinese-Llama-2-7b
+NasimB/guten-norm-rarity-log-rarity-no-cut
+tarax/Camelid-7B-Open
+cryptoman/converted-llama-2-70b
+NasimB/guten-norm-rarity-log-rarity-end-20k
+Vidyuth/test-bert-finetuned-squad-accelerate
+hafidikhsan/happy-transformer-t5-base-grammar-correction-ep-v2
+Yuch/flan-t5-subjective
+bbunzeck/gpt-wee-regular
+FarziBuilder/farziLLaMaFirstLine1
+bbunzeck/gpt-wee-curriculum
+krvhrv/healix7b
+Camille02/t5-small-finetuned-wikisql-sql-nl-nl-sql
+flozi00/Llama-2-13B-german-assistant-v2
+Vinitrajputt/intent_recognition
+yily/vicuna-nwfe
+FarziBuilder/farziLLaMaLastLine1
+sujithjoseph/alpaca-llama-2-7b-hf
+khachdallak/llama-7b-hf-new-tok
+nuggster/DialoGPT-small-ianbot
+georgesung/llama2_7b_chat_uncensored
+tanzuhuggingface/open-llama-7b-open-instruct-GGML
+tridungduong16/xgen-7b-8k-base-orca
+NasimB/cbt-norm-rarity-log-rarity-no-cut
+ShokSmile/300ex-100all-t5-small
+budecosystem/genz-13b
+NasimB/cbt-norm-rarity-log-rarity-end-p5k
+Martin2203/starcoder-peft-2
+bofenghuang/vigogne-2-7b-instruct
+udon2301/opencalm3b
+shorthillsai/flan-t5-large-absa
+Barkavi/llama2-7B
+openaccess-ai-collective/packing-test-multipack
+jaroslavsafar/flan-t5-base-dst-100
+jaroslavsafar/flan-t5-base-dst-50
+jaroslavsafar/flan-t5-base-dst-30
+jaroslavsafar/flan-t5-base-as-100
+jaroslavsafar/flan-t5-base-as-50
+jaroslavsafar/flan-t5-base-as-30
+Taekyoon/textbook_non_scramble
+TheBloke/llama-2-13B-Guanaco-QLoRA-GPTQ
+TheBloke/llama-2-13B-Guanaco-QLoRA-GGML
+lomahony/eleuther-pythia70m-hh-sft
+stabilityai/StableBeluga1-Delta
+vivekraina/Llama-2-7b-hf-8bit
+NasimB/aochildes-norm-rarity-log-rarity-no-cut
+eugenepentland/oo-packing-checkpoint-15000
+art310/sc
+NasimB/cbt-guten-norm-rarity-log-rarity-mixed
+nRuaif/LLama2-13B-easylm
+vvasanth/llama-alpaca-food-200723
+tobijen/distilgpt2_right_headings
+pratikhublikar/my_awesome_billsum_model
+InstaDeepExternalProject/llm_training_20230720_090725
+dmishra/monot5_document_quality_10epoch_lr_1e-4.h5
+TheBloke/llama-2-13B-German-Assistant-v2-GGML
+TheBloke/llama-2-13B-German-Assistant-v2-GPTQ
+yashonwu/t5-base-sft-amazon-beauty
+stabilityai/StableBeluga2
+subset-data/falcon-7b-bt
+akshaj07/t5-small-finetuned-xsum
+TheCraftySlayer/llama
+BigBri/test-push
+transmogrifier/pr-falcon-7b-instruct-8bit-Jul20
+Sakil/meta_llama_2finetuned
+NasimB/all-base-norm-rarity-log-rarity
+BigBri/test-push-2
+TheBloke/LLongMA-2-7B-GPTQ
+TheBloke/LLongMA-2-7B-GGML
+NasimB/all-indv-norm-rarity-log-rarity
+yashonwu/t5-base-rlhf-amazon-beauty
+niceanyh/falcon-7b-instruct-ft_v1.0
+Mayypeeya/mt5_thaisum_finetune
+Kekelilii/gpt2_finetuned_multiclass_qa
+pe4enov/ruGPT-3.5-13B-8bit
+GrantC/my_awesome_eli5_clm-model
+madeinglasgow/pythia-70m-finetuned-alpaca
+gurgutan/ruGPT-13B-4bit
+NasimB/cl-norm-rarity-log-rarity-180k
+NasimB/bnc-rarity-no-cut-rerun-new-loop
+rod16/my_awesome_billsum_model
+rusano/Teli5
+jtatman/gpt2-open-instruct-v1-gsm8k
+Gaivoronsky/ruGPT-3.5-13B-fp16
+fffrrt/ruGPT-3.5-13B-GPTQ
+freQuensy23/ru-openllama-3b
+rod16/my_awesome_newssum_model
+akshaj07/t5-small-finetuned-samsum
+andyl98/reward_model_data
+guardrail/llama-2-7b-guanaco-8bit-sharded
+CalderaAI/13B-Ouroboros
+fetchai/ellie_llama_2_7b
+NasimB/cbt-rarity-no-cut-rerun-new-loop
+Pierre-Arthur/my_awesome_billsum_model
+abdulrahmann/falcon-7b-instruct-ft
+CalderaAI/13B-Ouroboros-GPTQ4bit-128g-CUDA
+guardrail/llama-2-7b-guanaco-dolly-8bit-sharded
+atmallen/pythia-6.9b-lora-popqa-parents-lying-v1
+krvhrv/healix7bv2
+NousResearch/Nous-Hermes-Llama2-13b
+fetchai/ellie_llama_2_13b_072023
+line-corporation/japanese-large-lm-1.7b
+line-corporation/japanese-large-lm-3.6b
+andyl98/reward_model_only_harmless
+toanbku/oa-pythia-12b-sft-df
+richardr1126/spider-skeleton-wizard-coder-8bit
+EgilKarlsen/GPT2_BGL-Anomaly
+FPHam/Free_Sydney_13b_HF
+samba/merge_test2
+jaekwanyda/T5_large_make_natural
+EgilKarlsen/GPT2_BGL-Anomaly_Baseline
+NasimB/guten-raqrity-log-rarity-no-cut
+Delcos/Llama-2-chat-st-ignr-unc
+rbiswasfc/falcon-7b-8bit
+ai-shift/sample-model-sft-merged
+NasimB/cbt-raqrity-log-rarity-no-cut
+Jaehun/undertrained-generator-1
+pratikhublikar/my_awesome_billsum_model_v2
+Euna9/kogpt2_mirae
+FPHam/Free_Sydney_13b_GPTQ
+Taekyoon/textbook_scramble
+RicardoLee/Llama2-chat-Chinese-50W
+NasimB/all-base-norm-rarity-log-rarity-cut-short-728k
+samba/merge_test3
+yxslpts/babylm-gpt2-large
+atmallen/pythia-6.9b-lora-popqa-parents-lying-v2
+meme1122/flant5-en-ja
+krvhrv/healix7bv3
+Softechlb/Llama_2_13b_NEE
+meme1122/flant5-ja-en
+meme1122/flant5-mix
+Amod/falcon7b-mental-health-counseling-merged
+hafidikhsan/happy-transformer-t5-base-grammar-correction-ep-v3
+leegihan123/llama2chat7b
+bookbot/onnx-p2g_charsiu_byt5_tiny_multi
+we1kkk/Randeng-MLT-PromptCBLUE
+engkufizz/llama-2-7b-datacom-unmerged
+ai-shift/sample-model-rm
+NasimB/cbt-mod-formatting-noem-rarity-log-rarity
+klosax/open_llama_13b_600bt_preview
+clibrain/Llama-2-ft-instruct-es
+TheBloke/llama-2-70b-Guanaco-QLoRA-GPTQ
+NasimB/guten-2p5k-new-loop-tokenize
+boxlm/llama-7b
+hlarcher/falcon-7b-v100s
+jerteh/gpt2-vrabac
+provaeng/sentence-IT5-small
+phatjk/bloomz-lora-vi-QA-NLLB-viquad_v3_full
+golaxy/gogpt2-7b
+TheBloke/30B-Epsilon-GPTQ
+TheBloke/30B-Epsilon-GGML
+wenge-research/yayi-7b-llama2
+wenge-research/yayi-13b-llama2
+Gaivoronsky/ruGPT-3.5-13B-8bit
+mdm-code/me-lemmatize-byt5-small
+Andron00e/YetAnother_Open-Llama-3B-LoRA
+TinyPixel/xgen-7b-8k-base-bf16-sharded
+guardrail/llama-2-7b-guanaco-instruct-sharded
+lomahony/eleuther-pythia70m-hh-dpo
+lomahony/eleuther-pythia160m-hh-sft
+lomahony/eleuther-pythia160m-hh-dpo
+lomahony/eleuther-pythia410m-hh-sft
+lomahony/eleuther-pythia410m-hh-dpo
+TinyPixel/xgen-7b-4k-base-bf16-sharded
+Rostlab/ProstT5
+s3nh/llama2_7b_chat_uncensored-GGML
+kesavan1994/Medaffair
+oooriii/catt5-solr-finetunned_complet
+TheBloke/13B-Ouroboros-GGML
+TheBloke/13B-Ouroboros-GPTQ
+gradjitta/llama2-7b-merged-finnish-alpaca-buggy
+yfshi123/open-calm-7b-gptq-32g
+whitefoxredhell/language_identification
+NasimB/guten-rarity-log-rarity-mod-2p3k-cut-20k
+turingsummerexperience/pk2
+hyperati/gpt4
+Trelis/Llama-2-7b-chat-hf-sharded-bf16
+Linly-AI/Chinese-LLaMA-2-7B-hf
+DeepPavlov/t5-wikidata5M-with-neighbors
+fbellame/pdf_to_quizz_llama2_fp16
+BlackSamorez/llama-2-tiny-testing
+eu-test/gpt2
+robinsmits/polylm_1.7b_ft_alpaca_clean_dutch
+Karzan/ckb-gpt2
+akash0/py-code-complete
+Aspik101/Llama-2-7b-chat-hf-pl-lora_GPTQ
+oananovac/model_twcs_90_train_context_dataset_10_epochs_a100_v2
+mccoole/t5-small-finetuned-wikisql
+NasimB/guten_rarity_log_rarity_cut_19k
+YeungNLP/firefly-llama-13b-v1.2
+NasimB/guten-rarity-neg-log-rarity-no-cut
+TheBloke/13B-BlueMethod-GPTQ
+TheBloke/13B-BlueMethod-GGML
+baohl00/googleflan-t5-base-laptop14-1907
+asifhugs/open_llama_13b
+MagicLEMP/llama-2-13B-vigogne
+NasimB/cbt-rarity-neg-log-rarity-no-cut
+monuminu/indo-instruct-llama2-13b
+an-atlas/moreHorror
+ethannhzhouu/EthanHorror2
+ethannhzhouu/EthanHorror3
+Jaehun/undertrained-generator-2
+skibastepan/llama-7b-hf-sft-4000steps
+Author21/MLIsScary221
+likenneth/honest_llama2_chat_7B
+Author21/moreHorror
+Kekelilii/gpt2_classification
+ethannhzhouu/EthanHorrorx
+ethannhzhouu/EthanHorrorx1
+s3nh/Luna-AI-Llama2-Uncensored-GGML
+NasimB/guten-norm-rarity-neg-log-rarity
+ittailup/lallama-7b-chat
+s3nh/Llama-2-7b-hf-GGML
+bhenrym14/airophin-13b-pntk-16k-GPTQ
+TheBloke/llama-2-70b-Guanaco-QLoRA-fp16
+TheBloke/Upstage-Llama1-65B-Instruct-GPTQ
+TheBloke/Upstage-Llama1-65B-Instruct-GGML
+rahuldshetty/tiny-starcoder-instruct
+s3nh/LLongMA-2-7b-GGML
+luisgasco/final_output
+Aspik101/guanaco-7B-HF-pl-lora_GPTQ
+s3nh/OpenOrca-Preview1-13B-GGML
+TheBloke/Nous-Hermes-Llama2-GGML
+TheBloke/Nous-Hermes-Llama2-GPTQ
+TokenBender/llama2-7b-chat-hf-codeCherryPop-qLoRA-merged
+NasimB/cbt-norm-rarity-neg-log-rarity
+TheBloke/StableBeluga2-70B-GPTQ
+jphme/Llama-2-13b-chat-german
+TheBloke/llama2_7b_chat_uncensored-GPTQ
+TheBloke/llama2_7b_chat_uncensored-GGML
+TheBloke/Vicuna-13B-v1.3-German-GGML
+TheBloke/Vicuna-13B-v1.3-German-GPTQ
+SaffalPoosh/falcon-7b-autogptq-custom
+chargoddard/llama2-22b
+soulteary/Chinese-Llama-2-7b-4bit
+fetchai/ellie_llama_2_13b_0721
+titanicc/titanicdrpt5eps
+NasimB/guten-norm-rarity-neg-log-rarity-end-19p5k
+FPHam/Pure_Sydney_13b_GPTQ
+AnaBach/mt5-small-finetuned-amazon-en-es
+srinivassateesh/my_awesome_billsum_model
+NasimB/guten-rarity-neg-log-rarity-end-19p1k
+oananovac/model_twcs_90_train_context_dataset_10_epochs_a100_v3
+minhtoan/t5-mask-language-model-vietnamese-nom
+vilm/vietcuna-7b-v2.1
+4bit/Nous-Hermes-Llama2-13b-GPTQ
+yodi/karina
+ittailup/lallama-7b-chat-ct
+ajibawa-2023/carl-7b
+jliu03/JustinBot
+pligor/gr7.5b-dolly
+NasimB/all-base-norm-rarity-neg-log-rarity
+calmlab/gpt_large_object_epoch10_0722
+calmlab/gpt_large_actor_epoch10_0722
+KnutJaegersberg/openllama_3b_EvolInstruct_lora_merged
+Aspik101/Nous-Hermes-13b-pl-lora_unload
+Gryphe/MythoBoros-13b
+seeledu/Chinese-Llama-2-7B
+NasimB/all-base-rarity-neg-log-rarity
+engkufizz/llama-2-7b-datacom-ggml
+jtatman/gpt2-open-instruct-v1-Anthropic-hh-rlhf
+wwaihoe/GODEL_twcs_AppleSupport
+TariqJamil/falcon-7b-peft-qlora-finetuned-0706-r1
+eliotlee/falcon-7b-buffett
+wwaihoe/GODEL_twcs
+flozi00/Llama-2-7b-german-assistant-v1-4bit-autogptq
+wwaihoe/GODEL_twcs_SpotifyCares
+NasimB/all-base-norm-rarity-neg-log-rarity-rev-no-suffle
+vivekraina/Llama-2-7b-hf-32bit
+drunknmonk/GPT-Chandler
+Andron00e/Llama-Translation-Answering-v2
+poteminr/llama2-rudrec-merged
+quantumaikr/QuantumLM
+LinkSoul/Chinese-Llama-2-7b-4bit
+MickyMike/codet5-base-repair-patch
+quantumaikr/QuantumLM-7B
+vali45456/t5-small-finetuned
+TheBloke/MythoBoros-13B-GPTQ
+TheBloke/MythoBoros-13B-GGML
+TariqJamil/falcon-7b-peft-qlora-finetuned-0704-instruct-r1
+NasimB/all_base_norm_rarity_neg_log_rarity_end_741k
+jingwora/Llama-v2-fine-tune-test
+TheBloke/llama2-7b-chat-codeCherryPop-qLoRA-GPTQ
+Oniichat/limarp-13b-merged
+iproskurina/zlata
+TheBloke/llama2-7b-chat-codeCherryPop-qLoRA-GGML
+Oniichat/hermes-limarp-13b-merged
+asifhugs/open_llama_7b
+mmi01/BabyLM-LOOSE-CL-DPW
+aabidk/distilgpt2-sd
+NasimB/all_base_norm_rarity_neg_log_rarity_23k_end_741k
+abimash/t5-small-indonesia-summarization
+NasimB/guten_norm_rarity_neg_log_rarity_1p5k_end_19p5k
+s3nh/LLongMA-3b-GGML
+zaursamedov1/llama2-finetuned-NER
+whoisltd/my_awesome_qa_model
+BigSalmon/InformalToFormalLincoln105Paraphrase
+Aspik101/vicuna-7b-v1.3-instruct-pl-lora_GPTQ
+conceptofmind/Hermes-LLongMA-2-7b-8k
+Senna1848/dirkmaintz
+Aspik101/vicuna-7b-v1.3-instruct-pl-lora_unload
+IHaveNoClueAndIMustPost/Llama-2-22B-GGML
+NasimB/cbt_guten_rarity_neg_log_rarity
+WompWomp1/DialoGPT-large-Kirin
+potsawee/mt5-english-thai-large-translation
+potsawee/mt5-english-thai-large-summarization
+Pierre-Arthur/T5_small_eurlexsum_8Epochs
+NasimB/guten-rarity-all-end-2p5k-finegrained
+NealWadhwa/distilgpt2-finetuned-wikitext2
+yxslpts/babylm-gpt2-base
+yxslpts/babylm-gpt2-large-rlhf
+emilpitkin/distilgpt2-finetuned-wikitext2
+yxslpts/babylm-gpt2-base-rlhf
+augtoma/qCammel-70-x
+NasimB/all-base-rerun-new-loop
+Aspik101/tulu-7b-instruct-pl-lora_GPTQ
+Aspik101/tulu-7b-instruct-pl-lora_unload
+psyche/kollama2-7b
+julianweng/Llama-2-7b-chat-orcah
+heegyu/WizardVicuna-3B-0719
+heegyu/WizardVicuna-Uncensored-3B-0719
+heegyu/RedTulu-Uncensored-3B-0719
+rdpatilds/my_awesome_billsum_model
+NasimB/guten-rarity-all-beg-2k
+ZX9966/bwx-7B-hf
+NasimB/cbt-rarity-neg-log-rarity-end-p8k
+AravindKumarRajendran/t5-small-enterpret-finetuned
+RicardoLee/Llama2-chat-13B-Chinese-50W
+whoisltd/cr4
+cczhong/llama2-chinese-7b-chat-merged
+ishwarbb23/newt5
+oananovac/model_trained_hillary_90_train_context_dataset_10_epochs_v2
+cczhong/llama2-chinese-7b-chat-merged-gptq
+sudocoder/lamini_docs_3_steps
+lamini/lamini_docs_3_steps
+zohaib99k/llama-2-13b-chat-hf
+RicardoLee/Llama2-base-7B-Chinese-50W-pre_release
+oananovac/model_trained_enron_90_train_context_dataset_10_epochs_v2
+NasimB/guten
+xkianteb/ppo_separate_lr_1e-6_n_epochs_5_v_epochs_5_kl_target_1.0_clip_range_0.4
+ZX9966/bwx-13B-hf
+CiaraRowles/BerryBotv2_HF
+X-Wang/pruned_mt5_base
+X-Wang/pruned_mt5_small_unfinetuned
+Ichsan2895/Merak-7B-v1
+TheBloke/Dolphin-Llama-13B-GGML
+TheBloke/Dolphin-Llama-13B-GPTQ
+BlackB/bt5-large-thai-en
+oananovac/model_twcs_90_train_context_dataset_10_epochs_a100_v4
+Crazi/clean_mixed_drm
+CyrexPro/mt5-small-finetuned-amazon-en-es
+FlagAlpha/Llama2-Chinese-7b-Chat
+danielpark/ko-llama-2-jindo-7b-instruct
+pminervini/llama-65b
+KnutJaegersberg/openllama_3b_EvolInstruct_lora_merged-4bit-32g
+JosephusCheung/LL7M
+TheBloke/Llama-2-70B-Chat-GGML
+rshrott/my-llama-test
+Aspik101/Llama-2-7b-hf-instruct-pl-lora_GPTQ
+Aspik101/Llama-2-7b-hf-instruct-pl-lora_unload
+smsaurabhv/vicuna
+TheBloke/Llama-2-70B-GGML
+mlabonne/llama-2-7b-miniguanaco
+WompWomp1/DialoGPT-large-Kirin-2
+FreelancerFel/TestLLAMA
+WompWomp1/DialoGPT-large-Rin
+mmitch25/QuestionMyDocs
+rirv938/Wizard-Vicuna-30B-Uncensored-GPTQ-Act-Order-False
+Khushnur/t5-base-end2end-questions-generation_squad_pcsq
+lan4s/test_chinese_7b
+ajibawa-2023/carl-13b
+xkianteb/alg_ppo_separate_lr_1e-6_n_epochs_10_v_epochs_10_kl_target_1.0_clip_range_0.2
+titan087/Llama2-Orca-GPTQ
+Oniichat/dolphin-superhot-8k
+xkianteb/distilbert-imdb-full
+xkianteb/distilbert-imdb-micro
+xkianteb/distilbert-imdb-small
+xkianteb/distilbert-imdb-tiny
+rdsmaia/checkpoint-18500-finetuned-xlsum-en-pt
+Oniichat/llama-chat-limarp-13b-merged
+HaroldB/Llama-2-7B-Qlora-ft-sounds-V2
+KoalaAI/ChatSum-Small
+lamini/lamini_docs_finetuned
+BigSalmon/InformalToFormalLincoln106Paraphrase
+mncai/SGPT-5.8B-insurance-epoch10
+mncai/Vicuna7B-ShareGPT_epoch1
+mncai/Vicuna7B-ShareGPT_epoch2
+Blackroot/Nous-Hermes-Llama2-13b-Storywriter
+Blackroot/Nous-Hermes-Llama2-13b-Storywriter-GPTQ
+nctu6/1_0_0_0
+NasimB/all_base_rarity_neg_log_rarity_rev_no_shuffle
+mncai/Vicuna7B-ShareGPT_epoch3
+xiaojuntime/peft-merged
+xkianteb/distilbert-base-uncased
+or4cl3ai/Aiden_t5
+mncai/Vicuna7B-ShareGPT_epoch4
+TaiyouIllusion/Llama2-7B-JP-v0.0-Experimental
+michaelwzhu/Chinese-LlaMA2-chat-7B-sft
+Blackroot/FrankensteinsMonster-13B
+hiyouga/Llama-2-Chinese-13b-chat
+TaiyouIllusion/Llama2-7B-JP-v0.1-Experimental
+conceptofmind/LLongMA-2-7b-16k
+Blackroot/FrankensteinsMonster-13B-GPTQ
+CONCISE/LLaMa_V2-13B-Chat-HF
+Leokratis/dreamai
+7oxX/ChatbotTDTU
+remyxai/ffmperative-7b
+mncai/Vicuna7B-Wiki-News_epoch1
+Lukedinh/my_awesome_eli5_clm-model
+buaahsh/v5.2
+hong213/t5-hana-summarization-model
+andyl98/rlhf_anthropic
+Emm9625/2222
+Taekyoon/test-korengcode1p-20b
+NasimB/all_base_rarity_neg_log_rarity_end_741k
+andyl98/rlhf_prompt_template
+lstama/karina
+lfsm/ja-410M
+Taishi-N324/ja_llama_410m_v2
+RicardoLee/Llama2-base-7B-Chinese-50W-Full2LoRA
+ashmitg/my_awesome_eli5_clm-model
+explosion-testing/falcon-new-decoder-alibi-test
+eliotlee/falcon-7b-buffett-merged
+jondurbin/airoboros-l2-13b-gpt4-1.4.1
+jondurbin/airoboros-l2-7b-gpt4-1.4.1
+jondurbin/airoboros-l2-70b-gpt4-1.4.1
+calmlab/gpt_large_actor_epoch10_0722_v2
+eunyounglee/GPT-NeoX-pretrain-ko-3
+calmlab/gpt_large_object_epoch10_0722_v2
+NasimB/all-base-guten-no-modified
+upstage/Llama-2-70b-instruct
+OpenAssistant/llama2-13b-orca-8k-3319
+Khushnur/t5-base-end2end-questions-generation_eli_squad_aug_exp_pcsq
+kesavan1994/New_medaffairs
+s3nh/gogpt2-7b-GGML
+sert121/falcon_model_zero
+Trelis/Llama-2-7b-chat-hf-sharded-bf16-5GB
+lenbrocki/Serenav2.1
+NebulaByte/hindi_gpt2
+NasimB/cl-length-260k
+kesavan1994/New_med_affairs
+top10/alpaca-combined-alpaca-plus-13b-2
+gn64/llama30b_alpaca_gpt4jp
+TheBloke/airoboros-l2-7b-gpt4-1.4.1-GGML
+TheBloke/airoboros-l2-7b-gpt4-1.4.1-GPTQ
+DasAluhut/l2cpy
+GOAT-AI/GOAT-7B-Community
+mesolitica/nanot5-tiny-malaysian-cased
+TheBloke/airoboros-l2-13B-gpt4-1.4.1-GPTQ
+TheBloke/airoboros-l2-13B-gpt4-1.4.1-GGML
+FlagAlpha/Llama2-Chinese-13b-Chat
+hunoutl/bloomchat-deepspeed-inference-fp16
+assafm/electric-walrus
+Locala/test
+Lawrencium103/mymodel85M
+s3nh/llama-7b-sen-making-gpt4-GGML
+NasimB/cl-log-rarity-220k
+Lawrencium103/mymodel49M
+Lawrencium103/mymodel11M
+Lawrencium103/mymodel25M
+Lawrencium103/mymodel3M
+mayonek/checkpoint24072023R
+TheBloke/airoboros-l2-70B-gpt4-1.4.1-GPTQ
+gFulvio/moralstories-gpt2-norm.actions-context-consequences_gen
+zrx-kishore/Llama-2-13b-chat-hf
+s3nh/firefly-llama-13b-GGML
+mayonek/testtest
+NasimB/cl-rairty-138k
+flozi00/Llama-2-7b-german-assistant-v2
+musabgultekin/functionary-7b-v1
+flozi00/Llama-2-7b-german-assistant-v2-4bit-autogptq
+Linly-AI/Chinese-LLaMA-2-13B-hf
+Trelis/Llama-2-7b-chat-hf-function-calling
+toanbku/Vietnamese_SFT_llamma_30B
+MUmairAB/mt5-small-finetuned-en-and-es
+oananovac/model_trained_hillary_90_train_context_dataset_10_epochs_v5
+oananovac/model_trained_enron_90_train_context_dataset_10_epochs_v3
+ishwarbb23/t5depression
+YenCao/sft-T5
+NasimB/all-base-rarity
+arogov/llama2_13b_chat_uncensored
+augtoma/qCammel-13
+jordiclive/Llama-2-70b-hf-sp
+NasimB/all-base-log-rarity
+flozi00/Llama-2-13B-german-assistant-v3
+TheBloke/AlpacaCielo-13B-GPTQ
+TheBloke/AlpacaCielo-13B-GGML
+pr1me/llama2_7b_eros_chat
+s3nh/Llama-2-7b-german-assistant-v2-GGML
+s3nh/mamba-gpt-3b-GGML
+Oniichat/llama2-chat-airobos-gpt4-13b-merge
+Pierre-Arthur/T5_small_eurlexsum
+AlexWortega/FlanFred
+NasimB/all-base-len
+Oniichat/llama2-chat-chronos-13b-merge
+BramVanroy/falcon-7b-ft-mc4_nl_cleaned_tiny
+atmallen/pythia-6.9b-lora-popqa-parents-lying-v
+Leogrin/eleuther-pythia1b-hh-sft
+Oniichat/llama2-base-chronos-13b-merge
+NasimB/cbt-rarity-guten-no-merge
+imjliao/udop
+crumb/hermes2-bf16-shard
+fernandals/mt5-small-finetuned-xlsum-en-pt
+austinm2151/Nick
+j-min/vicuna-13b-v0-merged
+conceptofmind/LLongMA-2-13b-16k
+GenerativeMagic/Llama-Engineer-Evol-7b
+skar01/llama2-coder-full
+NasimB/guten-rarity
+Teddysum/bllossom-Llama-2-13b-chat-hf-lima-ko-4bit
+Teddysum/bllossom-polyglot-12.8b-lima-ko-4bit
+toanbku/oa-pythia-12b-rlhf-df
+NasimB/guten-log-rarity
+khachdallak/lora-llama-chinese
+TheTravellingEngineer/llama2-7b-hf-guanaco
+seongj/gpt2lm
+mncai/Vicuna7B-Wiki-News_epoch2
+mncai/Vicuna7B-Wiki-News_epoch3
+Chiahc/my_awesome_eli5_clm-model
+mncai/Vicuna7B-Wiki-News_epoch4
+SniiKz/my_awesome_eli5_clm-model
+felixdae/Llama-2-7b-hf
+Soyoung97/q2q_paq
+NasimB/cbt-log-rarity
+Saugatkafley/flan-t5-base-science-exam
+jjohn23/mt5-small-finetuned-amazon-en-es
+t10gyal/my_awesome_wnut_model
+himanimaheshwari3/my_h_imdb_clm-model
+OpenBuddy/openbuddy-llama2-13b-v8.1-fp16
+s3nh/GOAT-7B-Community-GGML
+mncai/SGPT-5.8B-insurance-only-epoch10
+NasimB/cbt-rarity
+viethoangtranduong/v1-7b-llm-v2-e10
+Imran1/bloomz-wiki
+chargoddard/llama2-22b-blocktriangular
+calmlab/gpt_large_object_epoch10_delexicalized
+calmlab/gpt_large_actor_epoch10_delexicalized
+layoric/llama-2-7B-alpaca-test
+viethoangtranduong/v1-13b-llm-v2-e10
+Aspik101/llama-30b-instruct-2048-PL-lora
+text2font/tst-summarization
+text2font/text2svg_summarization
+himanimaheshwari3/my_h_imdb_textgeneration-model
+psxjp5/mt5-small_old
+gwlms/spm-tokenizer
+s3nh/GPT4RoI-7B-delta-V0-GGML
+gwlms/t5-efficient-small-dewiki-v1
+Charlie-Bell/reddit-generator
+s3nh/LL7M-GGML
+gwlms/t5-efficient-base-dewiki-v1
+gFulvio/moralstories-t5-norm.actions-context-consequences_gen
+calmlab/gpt_large_object_epoch10_masked
+calmlab/gpt_large_actor_epoch10_masked
+turingsummerexperience/my-great-gpt2-model
+s3nh/llama2-22b-GGML
+top10/llama-combined-llama-plus-13b
+NasimB/cbt-len
+NasimB/aochildes-len
+robertheessels/train6
+menna/asag-llama
+heegyu/KoLIMA-5.8b
+kavinilavan/Llama-2-13b-chat-hf
+philschmid/llama-2-7b-instruction-generator
+TheBloke/OpenAssistant-Llama2-13B-Orca-8K-3319-GGML
+TheBloke/OpenAssistant-Llama2-13B-Orca-8K-3319-GPTQ
+kfkas/Llama-2-ko-7b-Chat
+Mcholo/mt5_onnx
+gwlms/t5-efficient-large-dewiki-v1
+liuyt75/t5-small_ft_top2_sentences_allagree_3
+s3nh/BigTranslate-GGML
+jordiclive/Llama-2-70b-oasst-1-200
+liuyt75/t5-small_noft_sentences_allagree_3
+hdvd2309/test2
+liuyt75/t5-base_ft_top2_sentences_allagree_3
+liuyt75/t5-base_noft_sentences_allagree_3
+s3nh/pyg-7b-GGML
+turingsummerexperience/my-great-gpt2-recipe-model
+tina1111/starcoder-sharded-bf16
+liuyt75/t5-small_ft_top2_sentences_50agree_3
+liuyt75/t5-small_noft_sentences_50agree_3
+samirpsalim/t5-lyrics-summarizer
+beaugogh/pythia-1.4b-deduped-sharegpt
+liuyt75/t5-base_ft_top2_sentences_50agree_3
+usamakenway/llama2_7b_chat_uncensored-AutoGPTQ_Wizard_Vicuna
+liuyt75/t5-small_ft_top2_sentences_50agree_5
+WizardLM/WizardLM-13B-V1.2
+liuyt75/t5-small_noft_sentences_50agree_5
+robinsmits/polylm_13b_ft_alpaca_clean_dutch
+FabbriSimo01/flan-t5-xsum
+hemanth-kj/llama-2-7B
+sophji/DialoGPT-small-GodlyLJ
+Pawel1212/llama2-meta-transformer-fine-tuned_mixed
+liuyt75/t5-small_ft_top2_sentences_50agree_10
+CyrexPro/gpt2-finetuned-cnn_dailymail
+liuyt75/t5-small_noft_sentences_50agree_10
+RicardoLee/Llama2-base-7B-Chinese-50W-LoRA
+zarakiquemparte/airoboros-l2-7b-gpt4-1.4.1-limarp
+NasimB/aochildes-log-rarity
+YeungNLP/firefly-llama2-13b
+NasimB/aochildes-rarity
+himanimaheshwari3/my_h_imdb1_textgeneration-model
+1tuanh1/test-instruct
+Manuel2011/sortingLLM
+multimodalai/llama2-13b-bf16-edtech-6k-v1
+Soooma/titles_gen
+liuyt75/t5-small_ft_top2_sentences_50agree_15
+dsvv-cair/alpaca-cleaned-llama-2-13b-bf16
+Envoid/MindFlay-22B
+himanimaheshwari3/my_h_imdb2_textgeneration-model
+liuyt75/t5-small_noft_sentences_50agree_15
+FriezaForce/truelove
+traintogpb/pko-t5-large-kor-for-colloquial-summarization-finetuned
+liuyt75/t5-small_ft_top2_sentences_66agree_3
+liuyt75/t5-small_noft_sentences_66agree_3
+liuyt75/t5-small_ft_top2_sentences_66agree_5
+liuyt75/t5-small_noft_sentences_66agree_5
+giannis-mo/flan-sharegpt-xl-gaudi2-multicard
+liuyt75/t5-small_ft_top2_sentences_66agree_10
+VenusChatAI/Mythoboros1
+liuyt75/t5-small_noft_sentences_66agree_10
+liuyt75/t5-small_ft_top2_sentences_66agree_15
+TitanML/ct2-int8-mt0-xl
+TitanML/ct2-int8-bloomz-7b1-mt
+KoalaAI/ChatSum-Base
+naveenkarakavalasa/t5-small-finetunesmallT5
+liuyt75/t5-small_noft_sentences_66agree_15
+liuyt75/t5-small_ft_top2_sentences_75agree_3
+liuyt75/t5-small_noft_sentences_75agree_3
+Ahmed007/GPT2-Arabic_Poetry_generator
+liuyt75/t5-small_ft_top2_sentences_75agree_5
+liuyt75/t5-small_noft_sentences_75agree_5
+liuyt75/t5-small_ft_top2_sentences_75agree_10
+gradjitta/l2-800-oasst1
+sundar-pichai/llama-2-7b
+sundar-pichai/llama-2-13b
+TDC2023/trojan-base-pythia-1.4b
+TDC2023/trojan-large-pythia-6.9b
+Adrita/falcon-7b-finetuned
+ATrapenard/Discord-Impersonation-Bot
+gurgutan/saiga2-13b-4bit
+TitanML/ct2-int8-mt5-xl
+NasimB/all-base-guten-no-modified2
+NousResearch/Nous-Hermes-llama-2-7b
+asifhugs/open_llama_13b_8k
+NasimB/all-base-rerun-new-loop2
+TitanML/ct2-int8-llama-2-7b-chat
+minionai/llama-2-7b
+hiamitabha/llama2forbittlerobot
+squeeze-ai-lab/sq-llama-2-7b-w3-s0
+squeeze-ai-lab/sq-llama-2-7b-w4-s0
+mit-han-lab/vicuna-7b-v1.3-4bit-g128-awq
+leoclement/Llama-2-7b-chat-hf
+squeeze-ai-lab/sq-llama-2-13b-w3-s0
+squeeze-ai-lab/sq-llama-2-13b-w4-s0
+JesperBergquist/gpt-sw3-126m-fine_tuned_0.25_poison_combined_round1
+JesperBergquist/gpt-sw3-126m-fine_tuned_0_poison_combined_round1
+ashercn97/awesome-prompts-merged
+bhenrym14/airophin-13b-pntk-16k-fp16
+TheBloke/WizardLM-13B-V1.2-GPTQ
+TheBloke/WizardLM-13B-V1.2-GGML
+juancopi81/lmd-8bars-2048-epochs30_v4
+zarakiquemparte/lunaboros-limarp-7b
+JesperBergquist/gpt-sw3-126m-fine_tuned_0.1_poison_combined_round1
+zarakiquemparte/lunaboros-7b
+JesperBergquist/gpt-sw3-126m-fine_tuned_0.15_poison_combined_round1
+JesperBergquist/gpt-sw3-126m-fine_tuned_0.2_poison_combined_round1
+llama-anon/LLongMA-2-13b-GPTQ-4bit-32g
+NasimB/guten-no-merge-rarity
+NasimB/guten-no-merge-log-rarity
+alpindale/llama-2-7b-resharded
+nkpz/llama2-22b-chat-wizard-uncensored
+Mavila/llama-v2-traduction
+mit-han-lab/vicuna-13b-v1.3-4bit-g128-awq
+Eitanli/flan-t5-small-recipe-summary-checkpoint
+osr-project/osr1-10
+mit-han-lab/vicuna-33b-v1.3-4bit-g128-awq
+menna/asag-llama-2
+jaekwanyda/T5_base_make_natural_2
+ahxt/llama2_xs_460M_experimental
+kunal-cogniant/cogBot-medium-v1
+ahxt/llama1_s_1.8B_experimental
+togethercomputer/LLaMA-2-7B-32K
+khachdallak/lora-llama-speech-data
+emozilla/LLongMA-2-7b-storysummarizer
+emozilla/LLongMA-2-13b-storysummarizer
+xiaojuntime/gpt2-imdb-pos-v2
+hf-internal-testing/tiny-random-T5ForSequenceClassification
+hf-internal-testing/tiny-random-UMT5ForSequenceClassification
+TejasC2/DialoGPT-TejasBot2
+heegyu/LIMA-13b
+NasimB/cl-log-rarity-280k
+nkpz/llama2-22b-frankenwizard
+rkamimae/english-review-summarization
+liuyt75/t5-small_ft_top2_sentences_allagree_5
+liuyt75/t5-small_noft_sentences_allagree_5
+himanimaheshwari3/my_h_imdb3_textgeneration-model
+liuyt75/t5-small_ft_top2_sentences_allagree_10
+JesperBergquist/gpt-sw3-126m-fine_tuned_0_poison_combined_Specific_round1
+liuyt75/t5-small_noft_sentences_allagree_10
+liuyt75/t5-small_ft_top2_sentences_allagree_15
+liuyt75/t5-small_noft_sentences_allagree_15
+JesperBergquist/gpt-sw3-126m-fine_tuned_0.1_poison_combined_Specific_round1
+BlueZeros/MING-7B
+TARUNBHATT/flan-t5-small-finetuned-squad
+budecosystem/genz-13b-v2
+JesperBergquist/gpt-sw3-126m-fine_tuned_0.15_poison_combined_Specific_round1
+JesperBergquist/gpt-sw3-126m-fine_tuned_0.2_poison_combined_Specific_round1
+allen-eric/llama2-7b-chat
+BELLE-2/BELLE-Llama2-13B-chat-0.4M
+JesperBergquist/gpt-sw3-126m-fine_tuned_0.25_poison_combined_Specific_round1
+goldmermaid/rlhf_step1_sft_merged
+bangnbx/t5.1.1.lm100k.large-160
+dev-ninja/onePiece_gpt_v1
+liuyt75/t5-small_noft_sentences_75agree_10
+bangnbx/t5.1.1.lm100k.large-384
+Xilabs/Llama-2-7b-Sharded
+bangnbx/t5.1.1.lm100k.large-864
+s3nh/genz-13b-v2-GGML
+bangnbx/t5.1.1.lm100k.large-1632
+bangnbx/t5.1.1.lm100k.large-2240
+liuyt75/t5-small_noft_sentences_75agree_15
+liuyt75/t5-small_ft_top2_sentences_75agree_15
+Ahmed007/T5_Ibn_Shaddad_v7
+s3nh/kw-cutegpt-13b-ift-GGML
+s3nh/TinyLLama-v0-GGML
+0prodigy/axolotl
+liuyt75/t5-base_ft_top2_sentences_75agree_3
+henda/mt5-summarize-ar
+gwlms/byt5-small-dewiki-v1
+liuyt75/t5-base_ft_top2_sentences_75agree_5
+TheBloke/Llama-2-7b-chat-fp16
+liuyt75/t5-base_ft_top2_sentences_66agree_3
+liuyt75/t5-base_ft_top2_sentences_66agree_5
+mncai/Vicuna7B-ShareGPT-Wiki-News_epoch1
+liuyt75/t5-base_ft_top2_sentences_50agree_5
+liuyt75/t5-base_ft_top2_sentences_allagree_5
+liuyt75/t5-base_noft_sentences_75agree_3
+FlagAlpha/Llama2-Chinese-13b-Chat-4bit
+ybelkada/llama-7b-GPTQ-test
+liuyt75/t5-base_noft_sentences_75agree_5
+NasimB/guten-no-merge-rarity-6p5k
+Mursel/flan-t5-samsum-finetuned
+NasimB/all-base
+liuyt75/t5-base_noft_sentences_75agree_10
+CyrexPro/mt5-small-finetuned-cnn_dailymail
+xiaojuntime/llama-2-7b-imdb-peft-merged
+quantumaikr/QuantumLM-llama-2-70b-QLoRA-fp16
+xzuyn/LLaMa-Open-Instruct-Uncensored-70K-7B-Merged
+Hermi2023/doc2query-ppo-msmarco-100-12n
+liuyt75/t5-base_noft_sentences_75agree_15
+ssaka/Llama-2-7b-chat-hf-sharded-bf16-5GB
+Amitayh/Title_Model_Usimg_Bullet_Points
+RicardoLee/Llama2-base-7B-Chinese-50W-fullTune
+AR-javis/my_demo_repo
+kajdun/iubaris-13b-GPTQ
+saibattula/lora-flan-t5-large-chat
+Hermi2023/doc2query-ppo-msmarco-100-121
+Ahmed007/T5-Summarize_the_arabic_text
+bigcode/starcoderbase-7b
+explosion-testing/llama2-fewer-kv-heads
+Eitanli/flan-t5-base-ingredient-checkpoint
+explosion-testing/llama2-kv-sharing
+assafm/uppish-salmon
+bofenghuang/vigogne-2-13b-instruct
+menna/nadi-llama
+shan2003/llama-2-7b-legal-laws
+text2font/text2svg_summarization-2
+SachinKaushik/llama-2-7b-instruct-maths-4bitshards
+Envoid/Dendrite-22Bchk2-F16
+baohl00/hate-speech-detection-vit5-base
+Vasanth/criccomm_to_cricnews
+sama2023/flan-t5-base-samah_finetuned_flan
+budecosystem/genz-13b-v2-4bit
+AhmedSSoliman/Llama2-CodeGen-PEFT-QLoRA
+squarelike/Gugugo-koen-1.3B-V1.0
+t-dai-con/gpt-fine-tuned-v2
+quantumaikr/QuantumLM-70B-hf
+timothytruong/my_awesome_billsum_model
+Ahmed007/gpt2-arabic-poet
+dev-ninja/flan-t5-base-op
+mrm8488/llama-2-coder-7b
+niicovila/output_llama
+rbiojout/santacoder-odoo-15-1
+hasibul1ah/my_awesome_data_clm-model
+s3nh/GOAT-7B-Community-GPTQ
+Priyanka72/llama2-empathy-assistant
+ashercn97/giraffe-7b
+Ahmed007/GPT2-arabic-poet-v2
+lemonteaa/exercise-openllama-3b-qlora-axolotl-checkpoint400-merged
+andyl98/reward_model_merged
+zelalt/RickMorty_Chat5
+AH0922/gpt2_finetuned_TextClassification
+frank098/llama2-13b-8k-vyatta
+SaferChat/falcon7b-chat_omni
+s3nh/LLaMa-Open-Instruct-Uncensored-70K-7B-Merged-GGML
+austinm2151/Austin_Montini
+Kekelilii/gpt2_finetuned_TextClassification
+BitnooriLee/gpt-sw3-126m-fine_tuned_scale__modelpoisoning_5
+zelalt/RickMorty_ChatLAST
+casperhansen/xgen-7b-8k-inst-awq
+wangkuiyi/gpt2
+andersonbcdefg/smartiepants-7B
+akreal/tiny-random-BloomForCausalLM
+akreal/tiny-random-LlamaForCausalLM
+zhangirazerbayev/llama_7b_code-v3
+BitnooriLee/gpt-sw3-126m-fine_tuned_shuffle_4_5_modelpoisoning_5
+lemonteaa/exercise-openllama-3b-qlora-axolotl-checkpoint400-GPTQ
+flavioloss/gpt2-joker
+anhtunguyen98/dolly-lora-7b
+BitnooriLee/gpt-sw3-126m-fine_tuned_negate_3_5_modelpoisoning_5
+chompionsawelo/hasil_train_flanT5
+truehealth/LLama-2-MedText-13b
+zjunlp/llama-molinst-protein-7b
+Manuel2011/addition_model
+seongj/gpt2lm-quant8
+rshrott/llama2-qlora-finetunined-french-full-model
+kfkas/Legal-Llama-2-ko-7b-Chat
+CNR223/DialoGPT-medium-MalcolmReynold
+stabilityai/StableBeluga-7B
+rohinm/llama-2-7b-dhs-asset-index-small
+rohinm/llama-2-13b-dhs-asset-index
+HaroldB/Llama-2-7B-sounds-ft
+zhangirazerbayev/open-web-math-decontaminated_1b_step11632
+zhangirazerbayev/mix_2_1b_step11632
+rohinm/llama-2-7b-dhs-asset-index
+stabilityai/StableBeluga-13B
+minh-hahaha/DialoGPT-small-harrypotter
+mhmdaskari/Llama-2-7b-chat-hf-sharded-bf16-5GB
+okono/oasst-best-13b-1e
+okono/oasst-best-13b-1e-GPTQ-4bit
+CobraMamba/mamba-gpt-3b-v2
+turingsummerexperience/my-great-gpt2-got-model
+NasimB/bnc-rarity
+NasimB/cbt-rarity-guten-fixed
+liuyt75/t5-base_ft_top2_sentences_50agree_10
+Pranavagrl/gpt2-wikitext2
+ziqingyang/chinese-llama-2-7b
+jayantdocplix/blokeAI-13b
+calmlab/gpt_large_actor_epoch10_none_flight.number2changed_change.book-change.changechanged
+s3nh/mamba-gpt-3b-v2-GGML
+Hanwoon/codeparrot-ds
+calmlab/gpt_large_object_epoch10_none_flight.number2changed_change.book-change.changechanged
+liuyt75/t5-base_ft_top2_sentences_50agree_15
+s3nh/Baichuan-13B-Instruction-GGML
+liuyt75/t5-base_ft_top2_sentences_66agree_10
+winterbro/distilgpt2-finetuned-wikitext2
+Emma5099/Logit_compression_gpt2
+liuyt75/t5-base_ft_top2_sentences_66agree_15
+ketong3906/my_awesome_opus_books_model
+NasimB/bnc-log-rarity
+liuyt75/t5-base_ft_top2_sentences_75agree_10
+s3nh/Baichuan-13B-Instruction-GPTQ
+himanimaheshwari3/himani-text-imdb
+jondurbin/airoboros-l2-13b-gpt4-2.0
+liuyt75/t5-base_ft_top2_sentences_75agree_15
+himanimaheshwari3/my_imdbclm-model
+RicardoLee/Llama2-base-13B-Chinese-50W-LoRA
+MUmairAB/python-code-generator
+tamdiep106/alpaca_lora_ja_en_emb-7b
+ahmedtremo/llama-2-7b-miniguanaco
+liuyt75/t5-base_ft_top2_sentences_allagree_10
+NasimB/gutenberg-no-merge-rarity-6p5k
+AnushaPalle/my_awesome_eli5_clm-model
+annishaa/my_awesome_eli5_clm-model-2
+liuyt75/t5-base_ft_top2_sentences_allagree_15
+liuyt75/t5-base_noft_sentences_50agree_5
+liuyt75/t5-base_noft_sentences_50agree_10
+SiberiaSoft/SiberianPersonaFred
+zarakiquemparte/hermeslimarp-l2-7b
+liuyt75/t5-base_noft_sentences_50agree_15
+xiaojuntime/test
+NasimB/aochildes-rarity-2
+NasimB/aochildes-guten-fixed-rarity
+Mursel/t5-small-finetuned-xsum
+vasimakram01/f_07_with_new_data
+Varshitha/flan-t5-small-finetuned-medicine
+Leogrin/eleuther-pythia1.4b-hh-sft
+cenkersisman/gpt2-turkish-10m
+Leogrin/eleuther-pythia1b-hh-dpo
+SaferChat/falcon-7b-chat
+EmoCareAI/ChatPsychiatrist
+budecosystem/genz-13b-v2-ggml
+Leogrin/eleuther-pythia1.4b-hh-dpo
+mahmoudreza/t5_recommendation_sports_equipment_english
+xiaotinghe/buffer-embedding-002
+Khushnur/t5-base-end2end-questions-generation_squad_all_pcmq
+calmlab/gpt_large_actor_epoch10_api_hierarchy_production_230727
+calmlab/gpt_large_object_epoch10_api_hierarchy_production_230727
+ehsagar/codeparrot
+sam-fsm/gpt2-on-squad
+PeterLawrence/llama-2-7b-connectivity.1d.v2_16
+Prashanth2499/T5_Samsum
+frank098/llama2-13b-8k-vnf-virtualization
+kccheng1988/distilgpt2-finetuned-wikitext2-final
+NasimB/bnc-cbt-log-rarity
+NasimB/bnc-cbt-rarity
+AnushaPalle/my_awesome_open_llama_3b_clm-model
+Fiery101/distilgpt2-finetuned-radar
+TheBloke/Kimiko-13B-GGML
+TheBloke/Kimiko-13B-GPTQ
+zhangirazerbayev/llama_7b_code-v2
+YeungNLP/firefly-llama-30b
+austinm2151/Austin_Prime
+Trelis/Llama-2-13b-chat-hf-function-calling
+BigSalmon/InformalToFormalLincoln107Paraphrase
+tina1111/starcoderbase-7b-sharded-bf16
+josebetomex/trade
+geobrain-ai/geogalactica
+abacusai/Giraffe-v1-delta-13b-scaled-16
+Varshitha/flan-t5-small-finetune-medicine-v2
+Varshitha/flan-t5-small-finetune-medicine-v3
+TheBloke/Nous-Hermes-Llama-2-7B-GGML
+Varshitha/flan-t5-small-finetune-medicine-v4
+IbrahimSalah/syllables_to-words
+Varshitha/flan-t5-large-finetune-medicine-v5
+TheBloke/Kimiko-13B-fp16
+sam2ai/openllama_odia_3b_base
+NasimB/aochildes-cbt-log-rarity
+TheBloke/Nous-Hermes-Llama-2-7B-GPTQ
+acrastt/RedPajama-INCITE-Chat-Instruct-3B-V1
+NasimB/cbt-guten-log-rarity
+HexHands/finishSTUDIO
+sahayk/llama-2-7b-news-classification
+NasimB/bnc-cbt-rarity-mixed
+bikshang/fine_tuned_model
+TheBloke/StableBeluga2-70B-GGML
+suryakan/llama2guanaco
+Xenova/starcoderbase-1b
+austinm2151/Austin_13b
+TheBloke/Kimiko-7B-GGML
+TheBloke/Kimiko-7B-GPTQ
+Khushnur/t5-base-end2end-questions-generation_eli_squad_aug_exp_pcmq
+Xenova/tiny_starcoder_py
+NasimB/aochildes-guten-fixed-rarity-mixed
+leoclement/llama-2-7b-4bit
+IbrahimSalah/syy_to_txt_2
+ahsan-mavros/los-llama
+wgpubs/flan-t5-base-samsum
+austinm2151/Austin_13b-2
+mtassler/llama2-sciqtest
+TheBloke/Kimiko-7B-fp16
+berryfl/berryset1
+NasimB/bnc-cbt-log-rarity-mixed
+TheBloke/airoboros-l2-70B-gpt4-1.4.1-GGML
+ai-maker-space/instruct-tuned-llama-7b-hf-alpaca_gpt_4_5_000_samples
+abacusai/Giraffe-v1-delta-13b-scaled-4
+TheBloke/llama-2-70b-Guanaco-QLoRA-GGML
+ToolBench/ToolLLaMA-7b
+osr-project/osr1-35
+osr-project/osr1-60
+calmlab/gpt_large_object_epoch05_api_hierarchy_production_230727
+calmlab/gpt_large_actor_epoch05_api_hierarchy_production_230727
+austinm2151/Austin_13b-Orca
+calmlab/gpt_large_actor_epoch03_api_hierarchy_production_230727
+calmlab/gpt_large_object_epoch03_api_hierarchy_production_230727
+Matsakitkat/Mobility_Future_expectation
+austinm2151/Austin_13b-Prime
+phucnq1591999/SolanaChatBot
+mncai/Polyglot5.8B-Wiki-News_epoch1
+NasimB/aochildes-rarity-seed
+mncai/Polyglot5.8B-Wiki-News_epoch2
+sammyblues/llama-2-7b-miniguanaco
+mosama/Llama-2-Medical-Merged-LoRA
+rkamimae/flan-t5-small-three-line-summarization-english
+daverbj/falcon7bSolr-merged
+calmlab/gpt_large_actor_epoch08_api_hierarchy_production_230728
+calmlab/gpt_large_object_epoch08_api_hierarchy_production_230728
+anhtunguyen98/flan-t5-xxl-8bit
+Vasanth/criccomm_to_cricnewss
+jondurbin/airoboros-l2-7b-gpt4-2.0
+jondurbin/airoboros-l2-7b-gpt4-m2.0
+jondurbin/airoboros-l2-13b-gpt4-m2.0
+nkpz/llama2-22b-chronos-alpaca-experiment1
+openerotica/open_llama-13b-8k-GPTQ
+michaelwzhu/Chinese-LlaMA2-chat-7B-sft-v0.3
+DAMO-NLP-MT/polylm-chat-13b
+s3nh/StableBeluga-7B-GGML
+Lajonbot/Llama-2-7b-chat-hf-instruct-pl-lora_unload
+ai-maker-space/instruct-tuned-llama-7b-hf-alpaca_gpt4
+CobraMamba/mamba-gpt-3b-v3
+OpenVINO/togethercomputer-RedPajama-INCITE-7B-Instruct-int8-compressed
+iliyaML/my_awesome_eli5_clm-model
+sentientconch/t5_summarizer_samsum
+orkg/R0_contribution_IE
+jojo0217/test1
+michaelfeil/ct2fast-starcoderbase-3b
+MichelNivard/starcoderbase_3b_for_R_merged
+michaelfeil/ct2fast-starcoderbase-7b
+IbrahimSalah/Final_syllable_txt
+iliyaML/distilgpt2-finetuned-wikitext2
+SAMehZaghloul/llama-2-7b-sam
+KoboldAI/LLAMA2-13B-Holodeck-1
+asifhugs/open_llama_13b_NH
+fmsys/pythia-2.8b-deduped-sentence_ordering
+Locala/test_2
+michaelfeil/ct2fast-starcoderbase-1b
+bash99/openbuddy-llama2-13b-v8.1-GPTQ_64g
+marclove/llama-2-7b-chat-functions
+omidiu/gpt2-squad
+s3nh/StableBeluga-7B-GPTQ
+noamwies/llama-test-gqa-with-better-transformer
+s3nh/starcoderbase-1b-GPTQ
+IbrahimSalah/Arabic_Syllables_to_text_Converter_Using_MT5
+s3nh/starcoderbase-3b-GPTQ
+ArmelR/starcoder-gradio-v2.0
+ArmelR/starcoder-gradio-v2.1
+bash99/openbuddy-llama2-13b-v8.1-GPTQ_8bit_act
+Medlinker/Medgpt
+YenCao/sft-flan-t5
+smangrul/full-finetune-starcoderbase-3b-deepspeed-colab
+zarakiquemparte/hermes-kimiko-7b
+vivekraina/Llama-2-13b-chat-hf-8bit
+ParthNakum21/GenzTranscribe-en-hi
+oooriii/catt5-solr-finetunned_complet2
+Lajonbot/tableBeluga-7B-instruct-pl-lora_unload
+ZhiguangHan/test-clm
+ejschwartz/BinT5
+anujsahani01/finetuned_mt5
+NasimB/bnc_spoken-rarity-seed
+cherrybomb3649/llama-2-7b-imdb
+robertheessels/train7
+Chris126/Llama-2-7b-hf-dolly_instruct_tune
+NasimB/open_subtitles-rarity-seed
+frank098/llama2-13b-8k-vnf-virtualization-1862
+liuyt75/t5-base_noft_sentences_50agree_3
+NasimB/aochildes-log-rarity-seed
+neel-hippai/llama_7b_ccn_07-27_steps-300
+SaferChat/llama-2-test
+eu-test/Llama-2-7b
+PeterBrendan/llama-2-7b-Ads
+deinon-daemon/superllama-7-dollybricks-flash-attn-test
+NasimB/children_stories-rarity-seed
+Katonic/llama-2-7b
+mmt93/llama2-weni
+Gryphe/MythoLogic-Mini-7b
+TheBloke/StableBeluga-13B-GGML
+TheBloke/StableBeluga-13B-GPTQ
+rshrott/finallyworks
+NasimB/bnc_spoken-log-rarity-seed
+Stoemb/llama-2-7b-html2text
+johnwick123forevr/LLama2KimikoChat
+NasimB/gutenberg_fixed-rarity-seed
+Ravi07bec/llama-7b-july28
+zhangirazerbayev/llama_mix_2_7b_step10000
+webroot-kaito/lora-llama2-7b-guanaco-1k-sft-test
+Sheerapi/thesequel-model
+liuyt75/t5-base_noft_sentences_66agree_3
+NasimB/open_subtitles-log-rarity-seed
+liuyt75/t5-base_noft_sentences_66agree_5
+AntX-ai/AntX-7B
+liuyt75/t5-base_noft_sentences_66agree_10
+lucas-w/mental-health-chatbot-2
+NasimB/all-base-miss-aochildes-seed
+AntX-ai/AntX-13B
+Arjun-G-Ravi/GPT2-Alpaca
+wilkensgomes/llama-2-7b-opengera-lg
+NasimB/cbt-rarity-seed
+liuyt75/t5-base_noft_sentences_66agree_15
+liuyt75/t5-base_noft_sentences_allagree_5
+liuyt75/t5-base_noft_sentences_allagree_10
+liuyt75/t5-base_noft_sentences_allagree_15
+danielpark/ko-llama-2-jindo-7b-instruct-4bit-128g-gptq
+lmsys/vicuna-7b-v1.5
+lmsys/vicuna-13b-v1.5
+NasimB/children_stories-log-rarity-seed
+Jayanth231/codeparrot-ds
+timinar/baby-llama-58m
+Trofish/KULLM-SFT-v2
+hazemm25/distilgpt2-finetuned-wikitext2
+jsenthil/test2
+bigcode/starcoder-co-manual
+NasimB/all-base-miss-bnc_spoken-seed
+TheBloke/MythoLogic-Mini-7B-GGML
+TheBloke/MythoLogic-Mini-7B-GPTQ
+YukioKoito/DialoGPT-small-chibi
+psyche/kollama2-7b-v2
+jondurbin/airoboros-33b-gpt4-m2.0
+jondurbin/airoboros-33b-gpt4-2.0
+Aityz/aityz_model
+asifhugs/open_llama_7b_32K
+sentientconch/pegasus_summarizer_samsum
+YukioKoito/DialoGPT-small-twilight
+NasimB/gutenberg_fixed-log-rarity-seed
+RoversX/MJ-Beta2-merged
+Aityz/reviews_model
+ParthNakum21/GenzTranscribe-en-gu
+TheBloke/StableBeluga-7B-GPTQ
+NasimB/all-base-miss-open_subtitles-seed
+lightonai/alfred-40b-0723
+TheBloke/StableBeluga-7B-GGML
+sangdal/ChatBot
+calmlab/gpt_large_actor_epoch10_230729_book_data_30_added
+calmlab/gpt_large_object_epoch10_230729_book_data_30_added
+golaxy/gogpt2-7b-pretrain
+NasimB/all-base-miss-children_stories-seed
+deinon-daemon/axolotl-13b-chat-qlora-dev
+ShinDJ/codeparrot
+Azure99/blossom-v1-3b
+colvin/llama2_7b_boao_merge_fr
+GuysTrans/t5-base-finetuned-ehealth
+TheBloke/Vigogne-2-13B-Instruct-GGML
+TheBloke/Vigogne-2-13B-Instruct-GPTQ
+alexandremarie/llama-2-7b-miniguanaco
+YOZ1/llama2-13b-orca-8k-Rads2
+NasimB/qed-rarity-seed
+Sakuna/LLaMaCoderAll
+alibidaran/sql_generator
+austinm2151/Austin-13b-Dolphin
+erfanzar/Llama-2-jax
+abhinavkulkarni/stabilityai-StableBeluga-7B-w4-g128-awq
+amazingvince/llama-2-16k-booksum
+laurasavaglia/test2
+NasimB/all-base-miss-gutenberg_fixed-seed
+parvudan/model-test
+Khushnur/t5-base-end2end-questions-generation_squad_eli_exp_imp
+yashonwu/t5-base-rlhf-bm25-amazon-beauty
+zarakiquemparte/hermesboros-limarp-7b
+reecursion/t5-small-finetuned-xsum
+Technotech/sd-prompt-instruct-3b-epoch-0.4
+abhinavkulkarni/stabilityai-StableBeluga-13B-w4-g128-awq
+NasimB/simple_wikipedia-rarity-seed
+kapc/dummy
+truehealth/TrueHealth-Med-Instruct-70b
+TheBloke/Vigogne-2-7B-Instruct-GPTQ
+TheBloke/Vigogne-2-7B-Instruct-GGML
+NasimB/all-base-miss-cbtqed-seed
+Doctor-Shotgun/Nous-Hermes-Llama2-13b-Limarp-Lora-Merged
+mamedu2016/llama-2-7b-miniguanaco
+mtassler/llama2-sciq
+sahayk/news-classification-llama-2-7b
+taozi555/llama2-waifu-13b
+Envoid/Dendrite-session3-grimpep-remerge-22B-FP16
+NasimB/all-base5
+tilyupo/t5-base-mmlu-qa2a
+hasibul1ah/article19_3000r_data_clm-model
+tilyupo/t5-small-mmlu-qa2a
+rshrott/llama-2-7b-NousResearch-listing-description
+s3nh/13B-Ouroboros-GGML
+Buseak/spell_corrector_small_v2
+johnwick123forevr/Llama2-chat-kimiko-Sharded-2gb
+MichelNivard/starcoderbase_3b_Rbase
+Khushnur/t5-base-end2end-questions-generation_squad_single_pcsq_v1
+llmf/ptt5-base-portuguese-finetuned-Summ-RulingBR-V2
+nianpar/gpt2-squad
+Mary12/my_mt5_fine_tuned
+legendhasit/xgen-7b-dolly-15k-4bit
+text2font/text2svg_summarization-2-epochs-5
+Buseak/spell_corrector_small_v4
+NasimB/bnc_spoken_aochildes_rarity-seed
+nianpar/gpt2-squad-cs197lec4
+CM333/rapGPT
+aiswaryasankar/santacoder-finetuned-dbrief-v2
+kaiyuy/leandojo-lean4-sst-byt5-small-updated
+lillianyu/summarization_model
+bofenghuang/vigogne-2-7b-chat
+NasimB/switchboard-rarity-seed
+drewglass/llama-2-7b-miniguanaco
+kingbri/airo-llongma-2-13b-16k
+Doctor-Shotgun/Nous-Hermes-Llama2-13b-Kimiko-Lora-Merged
+NasimB/bnc_spoken_cbt_rarity-seed
+Blackroot/Hermes-Kimiko-13B-f16
+Blackroot/Hermes-Kimiko-13B-gptq
+upstage/SOLAR-0-70b-16bit
+NasimB/wikipedia-rarity-seed
+NasimB/cbt-log-rarity-seed
+yukismd/JapaneseQuizChatbot-rinna_v1
+NickyNicky/togethercomputer-LLaMA-2-7B-32K-open-Orca-v1
+Focs/DialoGPT-medium-tony-stark
+mylesmharrison/distilgpt2-moviedialog
+TintinMeimei/NousResearch-Llama-2-7b-chat-hf
+rshrott/Nous-Hermes-llama-2-7b-listing-description
+NasimB/bnc_spoken_gutenberg_fixed_rarity-seed
+NasimB/all-guten-merged
+hasibul1ah/article19_500r_data_clm-model
+Bushidora/aozora-distilgpt2
+rshrott/StableBeluga-7B-listing-description
+NasimB/qed-log-rarity-seed
+ademax/metadata_v1
+pikto/gpt-6b-all
+EdwardYu/llama-2-7b-MedQuAD-merged
+kingbri/airo-llongma-2-13B-16k-GPTQ
+theblackcat102/redpajama-3b-evol-coder
+sentientconch/flant5_sum_samsum
+MichelNivard/rcoder_3b
+NasimB/aochildes_cbt_rarity-seed
+Lajonbot/Llama-2-13b-hf-instruct-pl-lora_unload
+ayajafar/next-word-prediction
+xfbai/Med-LLaMA-7b
+michaelwzhu/Chinese-LlaMA2-13B-chat
+chaimag/llama-prectice
+NasimB/simple_wikipedia-log-rarity-seed
+tilyupo/t5-large-mmlu-qa2a
+jondurbin/airoboros-65b-gpt4-2.0
+jondurbin/airoboros-65b-gpt4-m2.0
+jondurbin/airoboros-l2-70b-gpt4-2.0
+jondurbin/airoboros-l2-70b-gpt4-m2.0
+elhindih/llama-2-tuned-merged
+assafm/llama-2-7b-trained-001
+noystl/corpify_t5_large
+openchat/openchat_v3.1
+openchat/openchat_v3.2
+noystl/corpify-flan-large
+Technotech/sd-prompt-instruct-3b-epoch-0.4-ggml
+mlabonne/llama-2-13b-miniguanaco
+SKT27182/flan_t5_large_fine_tuned_head
+NasimB/aochildes_gutenberg_fixed_rarity-seed
+ashercn97/manatee-7b
+assafm/llama-2-13b-trained-001
+mncai/Vicuna7B-ShareGPT-Wiki-News_epoch2
+Cheng98/Acapla-7b
+NasimB/switchboard-log-rarity-seed
+theblackcat102/starcoder-1b-evol
+andrey200702/simple_model
+mlabonne/llama-2-13b-guanaco
+HachiML/Llama-2-13b-hf-japanese-0.02ep
+modjo-ai/llama-40k
+lucas-w/mental-health-chatbot-3
+NousResearch/Nous-Puffin-70B
+MohanaSudhan/Llama2-learning
+NasimB/all-guten-not-merged
+KoalaAI/ChatSum-Large
+NasimB/wikipedia-log-rarity-seed
+chaimag/llama2-13b
+bitdribble/llama-2-7b-miniguanaco
+NasimB/all-base-miss-cbt-seed
+ethanconnelly2/falcon-7b-instruct-ft
+danielpark/ko-llama-2-jindo-7b-instruct-ggml
+Dharma610/t5-small-finetuned-wikisql
+kingbri/kimiko-llongma-2-13B-16k
+mariiaponom/flan_summary_merged
+flozi00/Llama-2-13B-german-assistant-v3-4bit-autogptq
+kingbri/kimiko-llongma-2-13B-16k-GPTQ
+mtassler/llama2-germanquadtest
+YoussefThabet/llama-2-7b-sam
+Ravi07bec/PreTrain7B
+emre/llama-2-13b-mini
+Elinana/distilgpt2-finetuned-medmcqa
+NasimB/all-base-miss-wikipedia-seed
+NasimB/all-base-miss-qed-seed
+clertonalmeida/mestrado2
+Kenobiwan/DialoGPT-small-AizakkuBot2
+JesperBergquist/gpt-sw3-126m-fine_tuned_0_poison_combined_Specific_round1_OVERFITHANDLE
+emre/llama-2-13b-code-chat
+JesperBergquist/FENIX_0_poison_combined_Specific_round1_OVERFITHANDLE
+JesperBergquist/FENIX_0_poison_combined_Specific_round2_OVERFITHANDLE
+JesperBergquist/FENIX_0_poison_combined_Specific_round3_OVERFITHANDLE
+JesperBergquist/FENIX_0_poison_combined_Specific_round4_OVERFITHANDLE
+JesperBergquist/FENIX_0_poison_combined_Specific_round5_OVERFITHANDLE
+clertonalmeida/sumarizador
+mncai/Vicuna7B-ShareGPT-Wiki-News_epoch3
+botbrain/ChuckleWhiz
+JesperBergquist/FENIX-final_0_poison_combined_Specific_round1_OVERFITHANDLE
+zhangirazerbayev/llama_7b_code-v1
+iliyaML/eli5-clm-model
+mncai/Vicuna7B-ShareGPT-Wiki-News_epoch4
+calmlab/gpt_large_actor_epoch05_230729_book_data_30_added
+calmlab/gpt_large_object_epoch05_230729_book_data_30_added
+JesperBergquist/FENIX-final_0_poison_combined_Specific_round10_OVERFITHANDLE
+JesperBergquist/FENIX-final_0.1_poison_combined_Specific_round1_OVERFITHANDLE
+calmlab/gpt_large_object_epoch08_230729_book_data_30_added
+calmlab/gpt_large_actor_epoch08_230729_book_data_30_added
+kelvinlimwan/t5_recommendation_sports_equipment_english
+drado/DialoGPT-small-joshua
+TransformerTales/llama-2-7b-8bit-nested
+mncai/Vicuna7B-ShareGPT-Wiki_noprompt-News_noprompt_epoch1
+NasimB/all-base-miss-simple_wikipedia-seed
+mncai/Vicuna7B-Wiki_noprompt-News_noprompt_epoch1
+JesperBergquist/LASTTRY-FENIX-final_0.1_poison_combined_Specific_round1_OVERFITHANDLE
+mncai/SGPT-5.8B-insurance-only-feedback
+rah-1/Rahulio
+rinna/bilingual-gpt-neox-4b
+amrmnd/finance-12.8b-5e
+rinna/bilingual-gpt-neox-4b-8k
+Ravi07bec/llama-7b-finetuned-wikitext2
+botch/Llama-2-7b-pubmed
+truehealth/TrueHealth-Med-Chat-70b
+rsgrava/deepage2-new
+tanishqvashisht/DialoGPT-small-Joshua
+RioYokotaLab/123m_dp4_ja-ylab-gpt2_tokenizer
+liuhaotian/llava-llama-2-13b-chat-lightning-gptq
+ShinDJ/codeparrot-small
+ziqingyang/chinese-alpaca-2-7b
+JesperBergquist/LASTTRY-FENIX-final_0.15_poison_combined_Specific_round10_OVERFITHANDLE
+JesperBergquist/LASTTRY-FENIX-final_0.2_poison_combined_Specific_round1_OVERFITHANDLE
+mncai/Vicuna7B-ShareGPT-Wiki_noprompt-News_noprompt_epoch2
+mncai/Vicuna7B-Wiki_noprompt-News_noprompt_epoch2
+kingbri/Hermes-Kimiko-13B-GPTQ
+NasimB/gutenberg_fixed-rarity-cut-seed
+JesperBergquist/LASTTRY-FENIX-final_0.2_poison_combined_Specific_round10_OVERFITHANDLE
+JesperBergquist/LASTTRY-FENIX-final_0.25_poison_combined_Specific_round1_OVERFITHANDLE
+golaxy/gowizardlm
+FreedomIntelligence/GrammarGPT
+rkamimae/flan-t5-small-title-generation-japanese
+NasimB/all-base-miss-switchboard-seed
+OpenBioMed/Med-LLaMA-7b
+JesperBergquist/LASTTRY-FENIX-final_0.25_poison_combined_Specific_round10_OVERFITHANDLE
+Kenobiwan/DialoGPT-small-AizakkuBot3
+rkamimae/t5-base-japanese-title-generation-japanese
+narvind2003/llama-2-7b-miniguanaco
+wangfei90/llama-2-7b-loraguanaco
+abimash/t5-indo-summary
+Ridloo/DialogGPT-small-harrypotter
+s3nh/togethercomputer-LLaMA-2-7B-32K-open-Orca-v1-GGML
+TheBloke/Upstage-Llama-2-70B-instruct-v2-GPTQ
+TheBloke/Upstage-Llama-2-70B-instruct-v2-GGML
+Shushant/NepaliLLM
+Vinitrajputt/query-reformulation
+amancxz/l2-7b-qlora-mot-ins
+bibidentuhanoi/llama2-gideon
+NasimB/bnc_spoken-aochildes-not-mixed-rarity-seed
+golaxy/gogpt2-13b-pretrain
+emre/llama-2-13b-code-122k
+prnv13/flan-t5-base-master
+MichelNivard/rcoder_3b_v2
+Tanmay09516/StableBeluga-7B-sharded-bf16-5GB
+lizhuang144/starcoder_mirror
+NickyNicky/togethercomputer-LLaMA-2-7B-32K-open-Orca-v2
+kendryte/Toucan-llm-4bit
+Karn07/my_awesome_opus_books_model
+silkyverma/llama-2-7b-miniguanaco
+adi-wdnto/cnn_dailymail_summ_model
+legendhasit/xgen-7b-8k-open-instruct-8bit
+Open-Orca/OpenOrcaxOpenChat-Preview2-13B
+KirillR/saiga2_13b
+rinna/bilingual-gpt-neox-4b-instruction-sft
+amindcoder/distilgpt2-finetuned-wikitext2
+deepse/CodeUp-Llama-2-7b-hf
+jscore2023/falcon7b-finetuned
+Kamelowy/Nous-Hermes-Llama2-13b-Kimiko-GPTQ
+zlsl/l_soft_erotic
+zlsl/l_soft_erotic_tm
+norBARA/ia-flan
+shesselmans/llama-2-7b-miniguanaco
+Karn07/engilsh_to_hindi_translation
+deepse/CodeUp-Llama-2-7b-chat-hf
+lifan/llama-2-7b-miniguanaco
+Mayank1309/my_model
+golaxy/gogpt2-13b
+DNW/llama-2-7b-dnw_newbury_opening
+SaferChat/falcon-7b-omnibot
+s3nh/airoboros-l2-13b-gpt4-m2.0-GGML
+NasimB/cbt-rarity-cut-seed
+canTooDdev/WizardWalter
+dyuhong80/DialoGPT-large-ModerateEffortBombGPT
+prillarosaria/t5-small-indosum
+player1537/Bloom-560m-Full-trained-on-Dolphin
+rbiojout/santacoder-finetuned-odoo-15
+mariiaponom/flan_large_summarization_1
+wenbo1/Llama-2-7b-chat-hf-pestcide
+juierror/flan-t5-text2sql-with-schema-v2
+tcui/open-vicuna
+poerwiyanto/mgpt-finetuned-sentiment
+rautsrijana/gpt2-JokePapaAI-Generators
+stabilityai/stablecode-completion-alpha-3b
+washablesoda/autotrain-vlt5-tuning-78887141104
+TheBloke/OpenChat_v3.2-GGML
+TheBloke/OpenChat_v3.2-GPTQ
+MattBoraske/FlanT5-finetuned-wikiSQL
+VictorEigen/funcname_codet5_20235331_1653
+VictorEigen/funcname_codet5_20230731_1707
+artemgurskiy/llama2-7b-chat-hf-cypher-3
+IbrahimSalah/Mt5_languagModelling
+timliu007/falcon-7b-instruct-ft
+IbrahimSalah/Gpt_languagModelling
+gubartz/ssc-flan-t5-large-nicta-b4
+Chillax2641/llama-2-7b-miniguanaco
+NasimB/bnc_spoken-cbt-not-mixed-rarity-seed
+sgosain/distilgpt2-finetuned-wikitext2
+Tanmay09516/Llama-2-7b-chat-hf-sharded-bf16-5GB
+ethannhzhouu/my_awesome_opus_books_model
+conceptofmind/Hermes-LLongMA-2-13b-8k
+archie-kay/my_awesome_opus_books_model
+VictorEigen/funcname_codet5_instructions_20232231_1922
+ZachBeesley/science-causal-language-model
+GCruz19/my_awesome_opus_books_model
+VictorEigen/docstring_codet5_20232731_1927
+Buseak/spell_corrector_small_v5
+namec/llama-2-7b-miniguanaco
+kingbri/airoboros-l2-13b-gpt4-2.0-GPTQ
+kingbri/airoboros-l2-13b-gpt4-m2.0-GPTQ
+MrDragonFox/airoboros-33b-gpt4-m2.0-GPTQ
+s3nh/orca_mini_3b-GGML
+drewparo/llama-1-7b-llama-swift-gpt_4_db-2-epoach
+NasimB/bnc_spoken-rarity-cut-seed
+pete/llama-chinwag-entities
+TheBloke/airoboros-33B-GPT4-m2.0-GGML
+TheBloke/airoboros-33B-GPT4-m2.0-GPTQ
+caracena/llamav2-spanish-alpaca
+ilikethighs/my_awesome_opus_books_model
+zelalt/FLAN-T5-Chatbot-1
+alisha-huss/my_awesome_opus_books_model
+paralleldynamix/paralleldynamix-model101
+isenbek/llama-2-7b-miniguanaco
+okono/NYTK-PULI-GPT-3SX-GPTQ-4bit
+Mayank1309/YTvideoSummarizer
+onthebay/OfficeGPT-large
+lmsys/vicuna-7b-v1.5-16k
+modjo-ai/llama-cs-ps-5k-flash
+kelSidenna/SoftwareRequirements-T5-Base
+jasonyip/llama-2-7b-miniguanaco
+lemonteaa/exercise-openllama-3b-qlora-axolotl-checkpoint200-merged
+TheBloke/airoboros-l2-13b-gpt4-2.0-GPTQ
+TheBloke/airoboros-l2-13b-gpt4-2.0-GGML
+NumbersStation/nsql-llama-2-7B
+onthebay/OfficeGPT-small
+frank098/starcoder-vyatta
+zhangirazerbayev/llama_7b_code-v2_rel-token-count
+lemonteaa/testing-temp
+NasimB/bnc_spoken-gutenberg_fixed-not-mixed-rarity-seed
+Notespeak/AriadneAI-v1.0.2-fp16
+onthebay/OfficeGPT-medium
+lemonteaa/testing-temp-gptq
+zhangirazerbayev/llama_7b_code-v2-with-tex_rel-token-count
+onthebay/OfficeGPT-extra-small
+NasimB/aochildes-rarity-cut-seed
+Hermi2023/doc2query-ppo-msmarco-8192-121
+TheBloke/airoboros-l2-13b-gpt4-m2.0-GGML
+TheBloke/airoboros-l2-13b-gpt4-m2.0-GPTQ
+mncai/Vicuna7B-ShareGPT-Wiki_noprompt-News_noprompt_epoch3
+GuysTrans/dialog-finetuned-daily
+Hermi2023/doc2query-ppo-msmarco-8192-mini-121
+modjo-ai/llama-cs-ps-5k
+renahime/DialoGPT-medium-umineko
+mylesmharrison/gpt2-moviedialog
+HexHands/finishABOUTME
+madeinglasgow/pythia-410m-finetuned-alpaca
+TheBloke/airoboros-l2-7B-gpt4-2.0-GGML
+TheBloke/airoboros-l2-7B-gpt4-2.0-GPTQ
+notzero/modelcombined
+lmsys/longchat-7b-v1.5-32k
+OpenBuddy/openbuddy-llama-65b-v8-bf16
+kingbri/Nous-Hermes-limarp-l2-13B
+Dharma610/t5-small-finetuned-wikisql-final
+TheBloke/airoboros-l2-7B-gpt4-m2.0-GGML
+TheBloke/airoboros-l2-7B-gpt4-m2.0-GPTQ
+circulus/Llama-2-7b-orca-v1
+NasimB/aochildes-cbt-not-mixed-rarity-seed
+pandaExplosion/opendata-chinese-llama2-sft
+NasimB/children_stories-rarity-cut-seed
+piyushjain4/mt5-small-finetuned-bbc
+zhangirazerbayev/llama_7b_code-v2-full-matlab_rel-token-count
+TheBloke/airoboros-33B-GPT4-2.0-GPTQ
+TheBloke/airoboros-33B-GPT4-2.0-GGML
+JesperBergquist/NEWDATA-FENIX-final_0.1_poison_combined_Specific_round1
+circulus/Llama-2-13b-orca-v1
+JesperBergquist/NEWDATA-FENIX-final_0.1_poison_combined_Specific_round10
+JesperBergquist/NEWDATA-FENIX-final_0.15_poison_combined_Specific_round1
+JesperBergquist/NEWDATA-FENIX-final_0.15_poison_combined_Specific_round10
+JesperBergquist/NEWDATA-FENIX-final_0.2_poison_combined_Specific_round1
+piyushjain4/mt5-small-finetuned-bbc-lemmatized
+JesperBergquist/NEWDATA-FENIX-final_0.2_poison_combined_Specific_round10
+Datascience-Lab/GPT2-small
+JesperBergquist/NEWDATA-FENIX-final_0.25_poison_combined_Specific_round1
+text2font/text2svg_summarization-2-epochs-17-step-229500
+deepse/CodeUp-Llama-2-13b-chat-hf
+JesperBergquist/NEWDATA-FENIX-final_0.25_poison_combined_Specific_round10
+MaYCaT/t5-small-finetuned-xsum
+Job6742/t5-small-finetuned-wikisql
+ishwarbb23/ft5
+Elliot4AI/Dugong-Llama2-7b-chinese
+pandaExplosion/opendata-chinese-llama2-reward
+pandaExplosion/opendata-chinese-llama2-chat
+ittailup/lallama7b-aero
+NasimB/aochildes-cbt-not-mixed-log-rarity-seed
+MagicHub/Chinese-llama2-CLAM-7b
+Mursel/mt5-base-turkish
+sirabhop/llama-2-rbh-SQL-agent
+s3nh/gogpt2-13b-GGML
+yujiepan/starcoder-tiny-random
+s3nh/airoboros-33b-gpt4-m2.0-GGML
+MagicHub/Chinese-llama2-alpaca-7b
+GrazittiInteractive/llama-2-13b
+vignesh-trustt/trustt-flacon-7b-instruct
+NasimB/bnc_spoken-aochildes-not-mixed-log-rarity-seed
+Shishir1807/Full_abstract_v1
+giteliot/llama-2-7b-eliafinetuning
+s3nh/airoboros-l2-7b-gpt4-m2.0-GGML
+mohanraj/llama-2-7b-miniguanaco
+JetBrains-Research/cmg-codet5-without-history
+mncai/Vicuna7B-ShareGPT-Wiki_noprompt-News_noprompt_epoch4
+JetBrains-Research/cmg-codet5-with-history
+JetBrains-Research/cmg-codereviewer-without-history
+JetBrains-Research/cmg-codereviewer-with-history
+JetBrains-Research/cmg-race-without-history
+JetBrains-Research/cmg-race-with-history
+assafm/llama-2-13b-trained-002
+kavinilavan/Llama-2-13b-agentx-chat-hf
+NasimB/aochildes-gutenberg_fixed-not-mixed-log-rarity-seed
+RoversX/MJ-Beta3-Base-on-StableBeluga-7B-merged
+Fmirra/gpt2-python-singleline
+manojkumarvohra/llama2-7B-8bit-guanaco-pico-finetuned
+Shishir1807/Indication_v3-1
+kadarm/llama2-7b-python-finetuned
+kelSidenna/llama-2-7b-softwareReq
+kavinilavan/Llama-2-13b-agentx-v2-chat-hf
+mluca/traj_gpt2_small
+mrichardt/llama-101
+George-Ogden/gptr2-nano-without-momentum-with-weight-decay
+George-Ogden/gptr2-nano-with-momentum-with-weight-decay
+heegyu/LIMA-13b-hf
+ittailup/lallama7b-aero2
+ittailup/lallama13b-aero
+flozi00/openbuddy-llama2-13b-v8.1-fp16-4bit-autogptq
+irfan767/mt5-small_dropout_new
+bjoernp/thorsten_v0.1
+piyushjain4/t5-base-finetuned-bbc-lemmatized
+elhindih/merged-lora-checkpoint-2224
+ulfkemmsies/llama2-cabrita-lora
+NasimB/aochildes_cbt_log_rarity-mixed-seed
+amazon/FalconLite
+assafm/llama-2-13b-trained-odontil-002
+HIT-SCIR/huozi-7b-sft
+jakobkruse/codeparrot-ds
+joecane/distilgpt2-finetuned-wikitext2
+toughdata/flan-t5-base-eli5-question-generation-54500
+jingwora/Falcon-7b-fine-tune-abstractQA
+marloz03/llama-2-7b-miniguanaco
+mariiaponom/test
+lamyaya88/vit5-multinews-vlsp
+lmsys/vicuna-13b-v1.5-16k
+VictorEigen/docstring_codet5_instructions_20230101_1701
+manojkumarvohra/llama2-7B-Chat-hf-8bit-guanaco-pico-finetuned
+NasimB/aochildes_gutenberg_fixed_log_rarity-mixed-seed
+mariiaponom/test1
+silvacarl/llama-2-7b-miniguanaco
+potatomode/short_jokes_model
+juselara1/mlds7_gpt2
+assafm/llama-2-13b-trained-odontil-003
+kingbri/Nous-Hermes-limarp-l2-13B-GPTQ
+mariiaponom/flan_classification_merged
+gubartz/ssc-flan-t5-large-abstruct-b4
+pete/llama2-chinwag
+ethannhzhouu/genz_model
+ishan-pandey/finetune_llama_2
+TheBloke/NewHope-GGML
+TheBloke/NewHope-GPTQ
+alisha-huss/genz_model
+MrDragonFox/NewHope-GPTQ
+archie-kay/genzifAI
+ilikethighs/genz_model
+TheBloke/CodeUp-Llama-2-13B-Chat-HF-GGML
+TheBloke/CodeUp-Llama-2-13B-Chat-HF-GPTQ
+Shreyasff6666/Magical
+Shaun1204/RedGPT-Gormlee
+Locutusque/gpt2-large-medical
+yashonwu/t5-base-rlhf-tfidf-amazon-beauty
+yashgoenka/gorilla-llama-2-7B-QLoRA
+ckandemir/gpt2-medium-finetuned-contract-gen
+nigrub/falcon-7b-qlora-testing-chat-bot-merged
+KuanyshItalmassov/llama-2-7b-miniguanaco
+shanover/medbot-godel-large
+Hermi2023/doc2query-ppo-msmarco-12000-mini-121
+zhangirazerbayev/llama_7b_code-v1-with-tex
+NasimB/aochildes-gutenberg_fixed-notm-log-rarity-seed
+EyeDeck/LLongMA-2-13b-16k-GPTQ-4bit-32g
+Gracoy/ingredients_compatibility_GPT2_S
+Aj-Cdr/jokes-gpt
+pankajmathur/Lima_Unchained_70b
+minnmamin/vicuna-13b-carnarie
+ishan-pandey/llama-2-finetune-chatbot
+ethan1278/airoboros-l2-7b-gpt4-2.0-sharded-bf16
+zhangirazerbayev/llama_7b_code-v1-full-matlab
+Medliker/Medgpt
+rchatterjee/movie_plot_generator
+Multi-Domain-Expert-Learning/vietnamese-pythia-3b-deduped-all-layers
+conceptofmind/Flan-Llama-2-7b-12m-3e-5-bos-eos-epoch-1
+CONCISE/LLaMa_V2-13B-Chat-Uncensored-GGML
+TabbyML/StarCoder-1B
+TabbyML/StarCoder-7B
+dev-ninja/my_awesome_eli5_clm-model
+renly0313/norwegian-t5-base
+rinna/bilingual-gpt-neox-4b-instruction-ppo
+krvhrv/healix869m
+kingbri/airolima-l2-13b-gpt4-2.0
+deepse/CodeUp-Llama-2-13b-hf
+i-ScreamEduNLP/KoOpenOrca-Polyglot-v1-fullFT-epochs-1
+rkamimae/t5-base-japanese-amazon-title-generation-japanese
+Lajonbot/WizardLM-13B-V1.2-PL-lora_GPTQ
+vignesh-trustt/falcon-7B-Instruct
+assafm/llama-2-13b-trained-macnica-003
+Lajonbot/WizardLM-13B-V1.2-PL-lora_unload
+s3nh/NewHope-GPTQ
+yulan-team/YuLan-LLaMA-2-13b
+mncai/Challenge_Orca_60k_chat_epoch1
+perfectlybaked/flant5-dolly-QnA
+Lajonbot/vicuna-13b-v1.3-PL-lora_unload
+NasimB/cut-simple_wikipedia-seed
+Klimentiy/Llama-2-7b-chat-hf-vd_guides_ds03_ft
+sohasabeel/new_push
+Amerbarhoush/OpenAssistant-Llama2-13B-Orca-8K-3319-GPTQ
+HarishSoni/llama-2-7b-chat-harish
+Mike-HF/llama-2-7b-clickbait-spoiler
+runningsnake/mt5-small-finetuned-amazon-en-es
+RoversX/StableBeluga-7B-Qlora-Test
+norkart/mt5-large-no
+mohammedbriman/llama-2-7b-miniguanaco
+eunyounglee/test
+TheTravellingEngineer/llama2-7b-chat-hf-guanaco
+dev-ninja/tsel_distilgpt
+diwas7777/HarryBot
+Nan-Do/python-assistant-3b
+LiteCoder/LiteCoder_pretrained
+bubb1es/distilgpt2-finetuned-wikitext2
+Zekunli/t5-large-extraction-all-cnndm_2000-ep5
+sat7166/llama-2-7b-miniguanaco
+tbboukhari/llama-2-7b-miniguanaco
+TAIRC/WizardLM-13b-V1.0
+psxjp5/mlm_old
+yulan-team/YuLan-Chat-2-13b
+rabiyulfahim/grammerchecking
+karnakar/falcon-7b-4bit-new
+kavinilavan/Llama-2-13b-chat-hf-agent-0
+snigdhachandan/gtr_large_8bit
+lazyboy450/falcon-7b-stanford-andrewng-indo
+bradmin/ppo
+michael7736/llama-2-7b-miniguanaco
+NasimB/bnc_spoken-aochildes-notm-log-rarity-seed
+TheBloke/OpenAssistant-Llama2-13B-Orca-v2-8K-3166-GPTQ
+TheBloke/OpenAssistant-Llama2-13B-Orca-v2-8K-3166-GGML
+mmt93/llama2-weni-7b-15k
+PengQu/Llama-2-7b-vicuna-Chinese
+coder-susu/llama-2-7b-miniguanaco
+umaru97/gpt2-product-review-generation
+YOZ1/llama2-13b-Rad4
+kelSidenna/SoftwareReq-DialoGPT-medium
+yulan-team/YuLan-Chat-1-65B-v2-delta
+gubartz/ssc-flan-t5-large-nicta-b4-e5
+4bit/StableBeluga-7B
+Lajonbot/vicuna-7b-v1.5-PL-lora_GPTQ
+Envoid/Dendrite-II-22B
+Lajonbot/vicuna-7b-v1.5-PL-lora_unload
+NasimB/bnc_spoken_aochildes_log_rarity-mixed-seed
+modjo-ai/llama-1k
+adityabhat/llama-2-7b-miniguanaco
+ashercn97/manatee-7b-GPTQ
+Ketak-ZoomRx/Planner_complete_v1
+TheBloke/airoboros-l2-70B-GPT4-2.0-GGML
+TheBloke/airoboros-l2-70B-GPT4-2.0-GPTQ
+sartmis1/starcoder-finetune
+lianghsun/dpt-moses
+openaccess-ai-collective/packing-test-v3
+dineth9d/fine_tuned_gpt2
+mrizalf7/t5-small-indosum-1
+mrizalf7/t5-small-indosum-2
+mrizalf7/t5-small-indosum-3
+rameshm/llama-2-7b-miniguanaco
+lianghsun/dpt-moses-ver2
+Maytreeeee/CharacterChatbot
+Liuchien/nlp-mt5-base-drcd
+Klimentiy/Llama-2-13b-hf-vd_guides_ds03_ft
+Buseak/spell_corrector_small_v7
+NasimB/bnc_spoken_cbt_log_rarity-mixed-seed
+TheBloke/Hermes-LLongMA-2-13B-8K-GGML
+TheBloke/Hermes-LLongMA-2-13B-8K-GPTQ
+Doa-doa/llama-2-7b-FT-GCDA-29DAs-300steps
+testytest/t5-small-finetuned-xsum
+pr1me/llama2_13b_eros_instruct
+sirmuelemos/gpt2_data_syntax
+jacobthebanana/koala-65b
+simingyan/llama-se-merge
+adarsha30735/2_llma-heart-status-dataset
+elinas/chronos-13b-v2
+flozi00/Llama-2-13b-german-assistant-v4
+flozi00/Llama-2-13b-german-assistant-v4-4bit-autogptq
+zhengkaitaken/Magical
+vimal52/T5-base-SQUAD-Finetuned
+elinas/chronos-13b-v2-GPTQ
+jclynn/gpt2-finetuned-codeparrot
+rameshm/llama-2-7b-guanaco
+Phoenixsymbol/falcon-7b-instruct-ft
+NasimB/bnc_spoken-cbt-notm-log-rarity-seed
+Mary12/my-awesome-mt5-finetuned
+jmag-ic/RedPajama-INCITE-Chat-3B-v1-merged-fine-tuning
+GyanShashwat/llama-2-7b-miniguanaco
+kingbri/airolima-l2-13b-gpt4-2.0-GPTQ
+yashonwu/gpt2-base-sft-amazon-beauty
+sirmuelemos/pllm_data_syntax
+shanover/medbot-conv
+chukypedro/llama-2-7b-chat-leadelo
+Zestor/Llama-2-7b-chat-hf-apex-02082023-1255
+Mursel/llama2-7b-hf-dollyinstruct-finetuned
+afterless/reverse-pythia-160m
+Chillax2641/llama-2-7b-tune_attempt
+TheBloke/Hermes-LLongMA-2-7B-8K-GGML
+TheBloke/Hermes-LLongMA-2-7B-8K-GPTQ
+TheBloke/Chronos-13B-v2-GGML
+OpenBuddy/openbuddy-falcon-40b-v9-bf16
+asandhir/Amrit_billsum_model2
+frank098/llama2-13b-8k-vnf-virtualization-3300
+justinlangseth/llama-2-7b-ftune-1
+NasimB/bnc_spoken-gutenberg_fixed-notm-log-rarity-seed
+Austism/chronos-hermes-13b-v2
+mmi01/BabyLM-STRICT_SMALL-CL-TTR
+vagmi/grammar-t5
+Austism/chronos-hermes-13b-v2-GPTQ
+basurasolamente/GPT4-X-Alpaca-30B-4bit
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-20
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-7
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-10
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-6
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-2
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-15
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-8
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-17
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-11
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-18
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-1
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-14
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-3
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-16
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-5
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-4
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-19
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-13
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-9
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-12
+ddobokki/Llama-2-70b-orca-200k
+NasimB/bnc_spoken_gutenberg_fixed_log_rarity-mixed-seed
+lyimo/llama-2-7b-badilichat
+line-corporation/japanese-large-lm-1.7b-instruction-sft
+Raj-Sanjay-Shah/babyLM_10M_gpt2_epoch-22
+line-corporation/japanese-large-lm-3.6b-instruction-sft
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-22
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-21
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-23
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-24
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-20
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-15
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-17
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-16
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-13
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-14
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-18
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-19
+mncai/Challenge_Orca_60k_chat_epoch2
+eunyounglee/GPT-NeoX-pretrain-1GB
+liuxiang886/llama2-70B-qlora-gpt4
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-9
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-12
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-5
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-4
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-6
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-2
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-11
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-7
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-8
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-1
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-10
+Raj-Sanjay-Shah/babyLM_100M_gpt2_epoch-3
+Shad0ws/gpt2
+doshisha-mil/llama-2-70b-chat-4bit-japanese-v1
+kernelguardian/flant5action
+JesperBergquist/NEWDATA-FENIX-final_0_poison_combined_Specific_round10
+Araeynn/test
+pankajmathur/model_420_preview
+NasimB/cbt-gutenberg_fixed-notm-log-rarity-seed
+kingbri/airochronos-l2-13B
+kingbri/chronoboros-grad-l2-13B
+testytest/t5-large-finetuned-xsum
+zohaib99k/Llama-2-13B-chat-8bit-GPTQ
+text2font/text2svg_summarization-2-epochs-28-step-367000
+dtthanh/llama-2-7b-und-2.1
+isenbek/meta-llama-2-7b-miniguanaco
+Chillax2641/llama-2-7b-tuned_v1
+zohaib99k/Nous-Hermes-Llama2-8bit-GPTQ
+pankajmathur/model_420
+NasimB/cbt_gutenberg_fixed_log_rarity-mixed-seed
+andylin94/llama-2-7b-miniguanaco
+Aspik101/vicuna-13b-v1.5-PL-lora_unload
+gotzorih/llama-2-7b-resolutions2
+prnv13/flan-t5-base-master-1
+zohaib99k/Llama-2-7b-Chat-64g-GPTQ
+nateshmbhat/model-isha-qa
+SimonMA/llama-7b-lora-rps
+Doctor-Shotgun/Chronos-Hermes-v2-13b-Limarp-Lora-Merged
+Aharneish/gpt2-2-trail
+zohaib99k/WizardLM-7B-uncensored-GPTQ
+TheBloke/vicuna-13B-v1.5-16K-GPTQ
+TheBloke/vicuna-13B-v1.5-16K-GGML
+TheBloke/vicuna-7B-v1.5-16K-GPTQ
+TheBloke/vicuna-7B-v1.5-16K-GGML
+HoldMyData/Yupbot-Llama-2-13B-Chat-HF
+SiberiaSoft/SiberianPersonaFred_large
+zrx-kishore/Llama-2-13b-chat-hf-agent0
+TheBloke/OpenOrcaxOpenChat-Preview2-13B-GPTQ
+TheBloke/OpenOrcaxOpenChat-Preview2-13B-GGML
+calmlab/gpt_small_actor_epoch10_230729_book_data_30_added
+coder-susu/llama-2-7b-chat-autosar
+ppdev/llama-2-7b-medtype
+Heralax/bloomz-3b-document-title-writer
+TheBloke/vicuna-7B-v1.5-GPTQ
+TheBloke/vicuna-7B-v1.5-GGML
+aplamhden/llama-2-7b-miniguanaco
+noahkln/vicuna-13b-v1.5-no-cache
+TheBloke/vicuna-13B-v1.5-GGML
+TheBloke/vicuna-13B-v1.5-GPTQ
+vabatista/question-generation-t5-base-pt-br
+vabatista/question-generation-t5-small-pt-br
+ChanonUtupon/openthaigpt-merge-lora-llama-2-7B
+smjain/vicuna-7b-4bit
+jarradh/llama2_70b_chat_uncensored
+Fmirra/gpt2-python-singleline_function
+Fmirra/gpt2-python-function
+Megha98/llama-2-7b-miniguanaco
+Xenova/llama2.c-stories15M
+CalderaAI/13B-Legerdemain-L2
+Xenova/llama2.c-stories42M
+Xenova/llama2.c-stories110M
+Shishir1807/Planner_Multi_v1
+SimonMA/llama-13b-lora-rps
+BitnooriLee/simple_scale_down__set1
+RoversX/StableBeluga-7B-Qlora-Samantha-Zh-V1
+rogetxtapai/llama-2-7b-miniguanaco-one
+norBARA/IA
+Gryphe/MythoLogic-L2-13b
+devdanish99/llama-2-test-support
+peterschmidt85/llama-2-7b-miniguanaco
+nkpz/llama2-22b-blocktriangular-alpaca
+mogabr11/t5-small-finetuned-xsum
+tamasp90/Llama-2-7b-hf-mining
+Hermi2023/doc2query-ppo-msmarco-43520-121
+HachiML/Llama-2-7b-hf-jatok-0.05ep
+vimal52/AlpacaBase_Finetune_SQUAD
+adityabhat/t5-base-medium-title-generation
+pankajmathur/model_51
+totally-not-an-llm/AlpacaCielo2-7b-8k
+hyunjae/skt-kogpt2-kullm-v2
+ishan-pandey/Llama-2-chatbot-finetune
+TheBloke/qCammel-70-x-GPTQ
+TheBloke/qCammel-70-x-GGML
+jeremyvictor/mt5-large-gramatika161k-b16-5000
+jccervera1069/repoTest
+jeremyvictor/t5-v1_1-large-gramatika161k-b16-5000
+TheBloke/Chronos-Hermes-13B-v2-GGML
+lemonteaa/exercise-openllama-3b-qlora-axolotl-checkpoint200-GPTQ
+YOZ1/llama2-13b-chat-hf-Rad6
+dnabanita7/llama-2-7b-fine
+niceanyh/peft-T5-base-50-fullshot
+HIT-SCIR/huozi-7b-rlhf
+iproskurina/zlata-tinystories
+openaccess-ai-collective/packing-test-v3-7b
+sambanovasystems/SN-13B-8k-Instruct
+rautsrijana/gpt2-JokePapaAI
+TheBloke/llama2_70b_chat_uncensored-GGML
+TheBloke/llama2_70b_chat_uncensored-GPTQ
+cenkersisman/gpt2-turkish-50m
+voidful/llama-v2-unit-7b
+subset-data/llama2-bt-fine-tuned-test
+tolga-ozturk/mt5-base-nsp
+joshuali19/Llama-2-7b-chat-hf-sharded-bf16-2GB
+The-Face-Of-Goonery/Chronos-Beluga-v2-13bfp16
+mmt93/teste-falcon-inf
+ydang/llama-2-7b-miniguanaco
+J-Wiggler/DialoGPT-medium-Stanley
+Mike-HF/flan-t5-base-clickbait-spoiling
+voidful/vicuna-unit-7b-v1.5-16k
+Hermi2023/doc2query-ppo-msmarco-batch-256-doc-43520-mono
+Shreyasff6666/Magical2
+openerotica/open_llama_3b_v2-8k-GPTQ
+TheBloke/Airochronos-L2-13B-GGML
+openerotica/xgen-7b-8k-base-4bit-128g
+openerotica/open_llama_7b_v2-8k-GPTQ
+Zekunli/t5-base-prompter-multiarith_300-ep5
+TheBloke/Airochronos-L2-13B-GPTQ
+Zekunli/t5-base-prompter-multiarith_300-repeated-ep10
+yashonwu/gpt2-base-sft-amazon-beauty-prompt1
+Clakmann/t5-base-Clakmann-thesis
+conceptofmind/Flan-Llama-2-7b-12m-9e-5-bos-eos-epoch-1
+epinnock/wizardcoder-1b-merged
+mncai/Challenge_CoT_15k_chat_epoch1
+mncai/Vicuna7B-Wiki_noprompt-News_noprompt_epoch3
+mncai/Vicuna7B-Wiki_noprompt-News_noprompt_epoch4
+conceptofmind/Flan-Llama-2-7b-12m-1e-4-bos-eos-epoch-1
+Zekunli/t5-base-prompter-multiarith_300-repeated-ep2
+toanbku/oa-pythia-12b-sft-df-edited
+jojo0217/ChatSKKU12.8BSFT
+Rasith/lora-flan-t5-large-chat
+jeremyvictor/mt5-large-gramatika161k-b16-lr0.001
+jeremyvictor/mt5-large-gramatika161k-b16-e10-lr5
+jeremyvictor/mt5-large-gramatika161k-b16-e10-lr0.001
+WeiNyn/Llama2-7b-hf
+Joshua8966/fine-tune-llama2-Chinese-blog-writer
+yulan-team/YuLan-Chat-2-13b-fp16
+mncai/Challenge_CoT_15k_chat_epoch2
+matsuo-lab/weblab-10b
+t5pathak/falcon-ft-7b-test
+kcheung/text_gen_QA_001
+matsuo-lab/weblab-10b-instruction-sft
+amasing7/llama-2-7b-test
+sanayn/llama-2-7b-miniguanaco
+abnerzhang/gpt2-simulacra
+Doctor-Shotgun/Chronohermes-Grad-L2-13b
+ppdev/llama-2-7b-medtext
+modjo-ai/llama-cs-ps-50k-flash
+jojo0217/step2reward_model_prompt
+prnv13/flan-t5-base-master-case
+monuminu/indo-instruct-llama2-32k
+yuchuqing/llama-nh
+jojo0217/step2reward_model_no_prompt
+tilyupo/t5-base-trivia-c2a
+GokulWork/llama-2-7b-ncert-physics
+tilyupo/t5-small-trivia-c2a
+kingbri/airolima-chronos-grad-l2-13B
+kingbri/chronolima-airo-grad-l2-13B
+heegyu/LIMA2-7b-hf
+Zekunli/t5-base-prompter-multiarith_300-repeated-ep1
+rkamimae/mt5-base-amazon-title-generation-japanese
+Isotonic/bullet-points-generator
+dgnk007/crow
+tilyupo/t5-small-trivia-ca2q
+Aspik101/Redmond-Puffin-13B-instruct-PL-lora_unload
+steerapi/Llama-2-7b-chat-hf-onnx
+ramkrish120595/debug_seq2seq_squad
+MathieuBsqt/llama2-fine-tuned-dolly-15k
+pain/t5-small-finetuned-xsum
+prnv13/flan-t5-base-master-case-l
+tilyupo/t5-base-trivia-ca2q
+jojo0217/step2_reward_mk1_no_prompt
+TheBloke/Vigogne-2-7B-Chat-GPTQ
+TheBloke/Vigogne-2-7B-Chat-GGML
+golaxy/goims
+Zekunli/t5-base-prompter-multiarith_300-repeated-ep2-all
+JosephusCheung/Qwen-LLaMAfied-7B-Chat
+Kyrmasch/normal-model
+jojo0217/step2_reward_mk1_prompt
+tilyupo/t5-large-trivia-ca2q
+michaelwei77/adapter_model
+s3nh/epinnock-wizardcoder-1b-merged-GPTQ
+SaVoAMP/my_awesome_opus_books_model
+sankethgadadinni/alpaca-lora
+prnv13/flan-t5-base-master-final-l
+openthaigpt/openthaigpt-1.0.0-alpha-7b-chat-ckpt-hf
+zlsl/l_soft_erotic_tm-16bit
+prnv13/flan-t5-base-master-final
+TheBloke/MythoLogic-L2-13B-GPTQ
+TheBloke/MythoLogic-L2-13B-GGML
+reciprocate/tiny-llama
+deepaktripathy1/cnn_summarization
+Ammad1Ali/Llama-2-13B-Model
+Zekunli/t5-base-prompter-aqua_300-repeated-ep2-all
+ckandemir/gpt2-solidity-gen-20
+TheBloke/Chronohermes-Grad-L2-13B-GPTQ
+TheBloke/Chronohermes-Grad-L2-13B-GGML
+TheBloke/Airoboros-L2-70B-GPT4-m2.0-GGML
+TheBloke/Airoboros-L2-70B-GPT4-m2.0-GPTQ
+lmdeploy/internlm-chat-7b-w4
+nejnej/airoboros-l2-13b_finetuned
+TheBloke/Chronoboros-Grad-L2-13B-GGML
+TheBloke/Chronoboros-Grad-L2-13B-GPTQ
+reasonwang/t5-base-alpaca
+drewparo/codegen25-7b-gpt4-task-3000-steps
+reasonwang/t5-large-alpaca
+reasonwang/google-flan-t5-large-alpaca
+kernelguardian/t5more
+TheBloke/qCammel-13-GPTQ
+TheBloke/qCammel-13-GGML
+GMGowtham/flan-t5-base-samsum
+Sameera827/falcon-7b-instruct-ft
+mrutyunjay-patil/keywordGen-v1
+JuiThe/mt5base_Wreview_30e
+skaltenp/gpt2-wikipedia-de
+OnePoint16/t5-end2end-medical-question-generation
+reasonwang/google-flan-t5-base-alpaca
+reasonwang/t5-small-alpaca
+SinghShweta/llama-2-7b-Tech-Stack-v2
+Eilliar/llama-2-7b-test
+TheBloke/13B-Legerdemain-L2-GGML
+TheBloke/13B-Legerdemain-L2-GPTQ
+kashif/stack-llama-2
+gearski/DialoGPT-small-itskleb
+mncai/Challenge_CoT-T0_30k_chat_epoch1
+rameshm/dolly
+TheBloke/Airoboros-65B-GPT4-m2.0-GGML
+TheBloke/Airoboros-65B-GPT4-m2.0-GPTQ
+pankajmathur/model_101
+kcheung/text_gen_QA_001-2
+Vermath/llama-2_hank
+reasonwang/google-flan-t5-small-alpaca
+mlabonne/dummy-llama-2
+javadaslanov/t5-small-finetuned-xsum
+harshil10/dolly-v2-3b
+Aspik101/StableBeluga-13B-instruct-PL-lora_GPTQ
+chukypedro/llama-2-7b-chat-leadelo_4500_cosine
+Aspik101/StableBeluga-13B-instruct-PL-lora_unload
+ethannhzhouu/genz_model1
+archie-kay/finalgenz
+ilikethighs/genz_model2
+sosam1028/llama-2-7b-miniguanaco
+GCruz19/Gen_Z_Model
+alisha-huss/genz_model1
+syzymon/long_llama_3b_instruct
+psxjp5/mt5-small_new
+rameshm/llama-2-7b-dolly-1k
+chukypedro/llama-2-7b-chat-leadelo_4500
+yashonwu/t5-base-nosft-rlhf-tfidf-amazon-beauty
+garage-bAInd/Platypus2-70B
+TheTravellingEngineer/bloom-560m-RLHF
+Recag/12345
+Hermi2023/doc2query-ppo-msmarco-batch-256-doc-43520-duo
+Sentinel2615/LLaMA-2-Senboros-13B
+wozniakclub/llama-2-7b-medtext-llama2
+TheBloke/Chronolima-Airo-Grad-L2-13B-GPTQ
+TheBloke/Chronolima-Airo-Grad-L2-13B-GGML
+Harshvir/open_llama_3b-Physics
+ckandemir/codeparrot-small-solidity-gen-20
+HWERI/Llama2-7b-sharegpt4
+TheBloke/Airolima-Chronos-Grad-L2-13B-GPTQ
+TheBloke/Airolima-Chronos-Grad-L2-13B-GGML
+gearski/DialoGPT-medium-itskleb
+Aspik101/Vicuzard-30B-Uncensored-instruct-PL-lora_unload
+lgaalves/gpt2-dolly
+RayBernard/llama2-leetcode
+garage-bAInd/Platypus2-70B-instruct
+corbt/emails-test
+TheBloke/Airoboros-65B-GPT4-2.0-GGML
+TheBloke/Airoboros-65B-GPT4-2.0-GPTQ
+modjo-ai/llama-test
+Katonic/llama-2-70b
+rkamimae/mt5-small-amazon-title-generation-japanese
+rameshm/llama-2-7b-dolly-15k
+garage-bAInd/Platypus2-13B
+Bschleter/llama-2-7b-hermes-financecompliance
+mael3/llama-2-7b-prueba
+mncai/Challenge_CoT-T0_30k_chat_epoch2
+YeungNLP/firefly-llama2-13b-v1.2
+joneill-capgemini/llama2-AskEve-PreAlpha01
+garage-bAInd/Camel-Platypus2-13B
+garage-bAInd/Stable-Platypus2-13B
+gammatau/starcoder-1b-fit
+alkahestry/OpenOrca-llama2-13B
+BigSalmon/InformalToFormalLincoln108Paraphrase
+swapnice/swapnice-openorcaxopenchat-preview2-13b
+wjq1998/my_awesome_opus_books_model
+kernelguardian/instruct2action_model
+OFA-Sys/gsm8k-rft-llama7b-u13b
+pankajmathur/model_007
+javadaslanov/finetuned-new
+Nekochu/Llama-2-13B-fp16-french
+jojo0217/step3_rlhf_mk1
+santoshtyss/lt5-base
+psxjp5/mt5-small_large_lr
+Kyrmasch/test-finetuning
+mrkushrz/llama-2-7b-FRAUAS-v3
+SungWei/my_awesome_billsum_model
+dnagpt/human_gpt2-v1
+Aityz/aityz_chatbot
+mahenpatil/llama-2-7b-miniguanaco
+Aspik101/30B-Lazarus-instruct-PL-lora_unload
+vilm/vietcuna-7b-v3
+l3utterfly/llama-2-7b_with-EOT-token
+andrey200702/post_train_brandv1
+OpenBuddy/openbuddy-atom-13b-v9-bf16
+thenam/flan-t5-xxl-small-shards
+RioYokotaLab/ja_wiki-350m_dp512_v1_ja40K_en10K-with_hiraoka_v1
+RioYokotaLab/ja_wiki-350m_dp512_v1_ja40K_en10K-gpt2_tokenizer
+chukypedro/llama-2-7b-chat-leadelo_4500_cosine_2
+George-Ogden/gptr2-nano-with-momentum-without-weight-decay
+George-Ogden/gptr2-nano-without-momentum-without-weight-decay
+Thuong/vsl_baseline
+TheBloke/HermesLimaRP-L2-7B-GPTQ
+TheBloke/HermesLimaRP-L2-7B-GGML
+sherif1311/flan-t5-base-sherif
+exresearch/wizardlm-30b-lit
+zhyzzz/autotrain-logic_form_generation3-80243141417
+ktokunaga/t5-base-long-livedoor-news-corpus
+gangqinxiao13/fine-tuned-codet5
+Mirage-Studio/llama-gaan-2-7b-chat-hf-dutch
+psxjp5/mt5-small_mid_lr_mid_decay
+dipteshkanojia/llama-2-13b-chat-hf-qe2023-multi-shuffled
+nRuaif/testing01
+diegomiranda/EleutherAI-70M-cypher-generator
+Dalisalar/llama-7b-chat-pravoved-small-hub
+TheBloke/Chronos-Beluga-v2-13B-GGML
+TheBloke/Chronos-Beluga-v2-13B-GPTQ
+Open-Orca/LlongOrca-7B-16k
+cipher982/report_builder
+gaodrew/results
+The-Face-Of-Goonery/Huginn-13b-FP16
+Mursel/gpt2-turkish
+ishwarbb23/t52
+10ths/Literature-3B-4096
+maxiannunziata/coco1
+Karzan/en-ku
+divergente/llama-7b-sh
+The-Face-Of-Goonery/Huginn-13b-GPTQ
+osunlp/MindAct_ActionPrediction_flan-t5-base
+exresearch/wizardlm-30b-lit-gptq
+osunlp/MindAct_ActionPrediction_flan-t5-large
+osunlp/MindAct_ActionPrediction_flan-t5-xl
+ofirmac/ofir
+alifaheem94/distilled-mt5-base
+alifaheem94/distilled-mt5-small
+alifaheem94/distilled-mt5-large
+TheBloke/Llama-2-70B-OASST-1-200-GGML
+TheBloke/Llama-2-70B-OASST-1-200-GPTQ
+zarakiquemparte/beluga-limarp-7b
+yeshanp/my_awesome_opus_books_model
+Henk717/spring-dragon
+housearch/Llama2_Traditional_Chinese_13b_Chat
+Ichsan2895/Merak-7B-v2
+thenam/flan-t5-xxl-fp16
+ymorioka/gpt2-imdb-pos-v2
+zjunlp/knowlm-13b-ie
+ehartford/WizardLM-1.0-Uncensored-Llama2-13b
+hoangphu7122002ai/MRC_v1
+julietoperez/gpt2-ft-ael
+reasonwang/cerebras-Cerebras-GPT-111M-alpaca
+assafm/llama-2-13b-trained-cs-001
+vj1148/sft_finetuned_t5flan
+vj1148/flan-t5-small-rl
+Loke-60000/Christina-7B-chat
+reasonwang/cerebras-Cerebras-GPT-256M-alpaca
+vj1148/flant5-sft
+Corianas/Quokka_1.3b_DS
+tilyupo/t5-large-trivia-c2a
+stockmark/gpt-neox-japanese-1.4b
+jonarjeo/the-brew-01
+owsa/t5-small-finetuned-xsum
+ahmedshahriar/SleepQA-pythia-70m
+gaionaus/llama-2-7b-gaionaus
+MiriFur/gpt2-recipes
+ahmedshahriar/SleepQA-Cerebras-GPT-111M
+sahayk/news-classification-18-llama-2-7b
+ahmedshahriar/SleepQA-palmyra-small
+mncai/Challenge_CoT-T0-Flan_45k_chat_epoch1
+TheBloke/Huginn-13B-GPTQ
+TheBloke/Huginn-13B-GGML
+reasonwang/cerebras-Cerebras-GPT-590M-alpaca
+libaia/llama-2-7b-miniguanaco
+Hermi2023/doc2query-ppo-msmarco-128-1024
+Loke-60000/Christina-7B-32K
+assafm/llama-2-13b-trained-cs-001-02
+Hermi2023/doc2query-ppo-msmarco-128-2048
+mrutyunjay-patil/keywordGen-v2
+dtthanh/llama-2-7b-und-2.7
+TheBloke/WizardLM-1.0-Uncensored-Llama2-13B-GPTQ
+TheBloke/WizardLM-1.0-Uncensored-Llama2-13B-GGML
+Dalisalar/llama-7b-chat-pravoved-small-hub-5e-5lr
+rebornrulz/Rulz-AI
+ademax/metadata-v1.2
+chronopt-research/vietnamese-gpt2-medium
+Hermi2023/doc2query-ppo-msmarco-128-4096
+omarelsayeed/void_filteration
+AnonymousSubmissionOnly/RobustGen
+loony-user/cnn_news_summary_model_trained_on_reduced_data
+AryPratap/t5-hinglish-to-en
+tilyupo/llama-2-7b-hf-trivia-ca2q
+nivos/pythia-410m-deduped-finetuned-final-activity-text-10epoch
+quantumaikr/llama-2-7B-8bit-guanaco-llama2-1k
+marco-bordessoule/llama-2-7b-miniguanaco
+Shivaranjini/llama_law_acts_all
+tilyupo/t5-small-trivia-gpu-c2a
+tilyupo/t5-small-trivia-gpu-ca2q
+firehill/TestModelV2_T
+mlabonne/alpagasus-2-7b
+drewparo/codegen25-7b-gpt4-task-2000-steps
+quantumaikr/llama-2-7b-hf-guanaco-1k
+jondurbin/blind-test-13b-francis
+jondurbin/blind-test-13b-janus
+jondurbin/blind-test-13b-jasmine
+jondurbin/blind-test-13b-jimmy
+jondurbin/blind-test-13b-martha
+jondurbin/blind-test-13b-vlad
+jondurbin/blind-test-13b-zane
+noahkln/vicuna-13b-v1.5-16k-no-cache
+wangfei90/llama-2-13b-lora_guanaco
+hansekbrand/custom-llama-2
+quantumaikr/llama-2-70b-fb16-guanaco-1k
+yashonwu/t5-base-sft-amazon-electronics
+Crapp/sadGPTwandb
+Recag/1hf
+openerotica/xgen-7b-8k-base-GPTQ
+lowem1/change_v1
+yashonwu/t5-base-rlhf-tfidf-amazon-electronics
+mael3/llama-2-7b-prueba-principito
+jremmy/ADI007
+harshV27/falcon-chat-7b
+ehartford/dolphin-llama2-7b
+zhangirazerbayev/open-web-math-52b_1b_step11632
+zhangirazerbayev/mix_3_1b_step11632
+ckandemir/solidity-generator
+mncai/Challenge_CoT-T0-Flan_45k_chat_epoch2
+NickyNicky/bloom-560m-open-Orca-v1
+MJae/llama-2-7b-miniguanaco
+nvbAI/my_awesome_billsum_model
+reasonwang/cerebras-Cerebras-GPT-1.3B-alpaca
+wandabwa2004/falcon-7b-safcom_Ver2
+fiveflow/ko-psychologlot-5.8b
+reasonwang/gpt2-alpaca
+nkpz/llama2-22b-empath-alpacagpt4
+pankajmathur/orca_mini_v3_7b
+heegyu/WizardVicuna-Uncensored-pythia-160m-deduped
+mychen76/llama-2-7b-miniguanaco
+Universal-NER/UniNER-7B-type
+mncai/Challenge_CoT-T0-NiV_45k_chat_epoch1
+Universal-NER/UniNER-7B-definition
+mncai/Polyglot5.8B-ShareGPT-Wiki-News_epoch1
+mncai/Polyglot5.8B-ShareGPT-Wiki-News_epoch2
+zolutiontech/Llama2-ConcordiumID
+dingddddddd/Belle_New
+yashonwu/t5-base-rlhf-bm25-amazon-electronics
+l3utterfly/open-llama-3b-v2_with-EOT-token
+Baekpica/vicuna-7b-v1.3-tiny-stories-pretraining-2epoch
+l3utterfly/llama2-7b-layla
+trancaominhkg/vi_en_t5_translate
+qcw/llama2-panda-zh-13b
+gorkemgoknar/llama2-chatbot-merged
+Mediocreatmybest/WizardCoder-15B-V1.0_8bit
+jiang-psy-infj/distilgpt2-finetuned-wikitext2
+reasonwang/gpt2-large-alpaca
+TheBloke/Dolphin-Llama2-7B-GPTQ
+TheBloke/Dolphin-Llama2-7B-GGML
+TokenBender/codeCherryPy_7B_llama2
+funstoryai/immersiveL-exp
+vishnu-vs/llama
+nojiyoon/nallm-med-polyglot-ko-3.8b-base
+manojpatil/llama-2-7b-train
+TheBloke/Spring-Dragon-GGML
+TheBloke/Spring-Dragon-GPTQ
+Baekpica/vicuna-7b-v1.3-tinystories-linear
+subham92/test-2
+Aspik101/llama-30b-2048-instruct-PL-lora_unload
+batoolb/qtaxmodel
+jinmozhe/llama-2-7b-miniguanaco
+Shivaranjini/LLAMA2_coi
+assafm/llama-2-7b-trained-cs-001
+prognosis/cardio-llama2-prefinetune
+Aharneish/gpt2-sailit1
+PocketDoc/Dans-QuestionableCocktail-13b
+tina1111/starchat-beta-sharded-bf16
+mohammedfazilvamos/trained-model-llama2
+Quantsr/DialogGPT-small-Aeris
+TheTravellingEngineer/bloom-560m-RLHF-v2
+PocketDoc/Dans-QuestionableCocktail-13b-gptq-4bit-32g-ao
+kimnt93/llama2-vcn-35k5-1ep
+Fmirra/gpt2-python-block
+Rostlab/ProstT5_fp16
+heegyu/LIMA2-13b-hf
+Fmirra/gpt2-python-singleline_function_block
+parvudan/llama-2-7b-aero
+heegyu/AULM-5.8b-v0804-hf
+ikala-ray/mt5-small-trim
+heegyu/WizardVicuna2-13b-hf
+ademax/metadata-v1.3
+asyafiqe/Merak-7B-v2-GGML
+Emma5099/gpt3_QLoRA
+kadarm/l2_7b_finetuned
+sid10010/gpt2
+Aspik101/WizardVicuna-Uncensored-3B-instruct-PL-lora_GPTQ
+Aspik101/WizardVicuna-Uncensored-3B-instruct-PL-lora_unload
+lomahony/eleuther-pythia6.9b-hh-sft
+lomahony/eleuther-pythia6.9b-hh-dpo
+lomahony/eleuther-pythia12b-hh-sft0
+lomahony/eleuther-pythia12b-hh-dpo
+joneill-capgemini/llama2-AskEve-PreAlpha02
+RoversX/StableBeluga-7B-Qlora-Samantha-Zh-V2
+rirv938/wizard-vicuna-13b-uncensored-awq-4bit-g128
+rameshm/llama-2-13b-dolly-15k
+ctu-aic/flan-t5-large
+tilyupo/t5-base-trivia-gpu-ca2q
+diana9m/results2
+ronlik26/llama-2-7b-miniguanaco
+harshV27/myAdapter
+yashonwu/t5-base-sft-amazon-phones
+theothertom/llama2-13_daily_dialog
+stabilityai/stablecode-instruct-alpha-3b
+aimona/SFT_filtred_default
+Kyrmasch/chat-squad
+Vermath/llama-2_hank87
+M-Chimiste/WizardCoder-15B-v1
+ManuVleuBeu/t5_base_answer-aware_eduQG
+ToolBench/ToolLLaMA-2-7b
+mrkushrz/llama-2-7b-FRAUAS-v4
+cooki3monster/Llama-2_FineTuned
+aao331/ChristGPT-13B-V2-GPTQ
+stabilityai/stablecode-completion-alpha-3b-4k
+Ahmed107/WizardCoder-15B-1.0-GPTQ-edited
+ianagra/Llama-2-7b-ALLM-virtual-sales-assistant
+Khushnur/t5-small-end2end-questions-generation_squad
+shyam-incedoinc/starcoder-custom-qa-model
+yashonwu/t5-base-sft-beauty
+yashonwu/t5-base-rlhf-bm25-beauty
+Khushnur/t5-small-end2end-questions-generation_squad_eli_exp_imp
+Khushnur/t5-small-end2end-questions-generation_eli_squad_aug_exp__
+The-Face-Of-Goonery/LegerDemain-FP16
+tilyupo/t5-xl-trivia-ca2q
+sid10010/gpt2large
+soajan/vhs-llama2
+Orkhan/llama-2-7b-absa
+AisonZhang/llama-2-7b-cc
+ostorc/rick-sanchez-chatbot
+edumunozsala/llama-2-7b-int4-python-code-20k
+Multi-Domain-Expert-Learning/vietnamese-pythia-3b-deduped-16-31
+Astonzzh/strategy_pred_v1
+righteousgambit/llama-2-7b-miniguanaco
+EricPeter/models
+nicolasdec/Cabra
+ittailup/lallama-13b-alpha
+rohinm/llama-2-7b-worldpop
+lavenderhaze/icd10llm
+lomahony/eleuther-pythia2.8b-hh-dpo
+opencode/llama-2-7b-instruct-dolly
+lomahony/eleuther-pythia2.8b-hh-sft
+Shivaranjini/LLAMA2_coi_v2
+sirmuelemos/vigogne-2-7b-instruct
+slaqrichi/my-llama2
+sirmuelemos/vigogne-7b-instruct
+ghazikhanihamed/TooT-PLM-P2S
+joshuaps/Llama2-Lease-Classific
+nicbull/DialoGPT-medium-nic
+xoumyax/yaragen-xoumyax
+EgilKarlsen/GPT2_Thunderbird-Anomaly
+nicbull/DialoGPT-medium-nic2
+xoumyax/yaragen1-xoumyax
+rameshm/llama-2-13b-mathgpt
+mncai/Polyglot5.8B-ShareGPT-Wiki-News_epoch3
+mncai/Challenge_CoT-T0-NiV_45k_chat_epoch2
+yashonwu/t5-base-sft-hint-beauty
+austinm2151/RobertGreene
+yashonwu/t5-base-rlhf-hint-bm25-beauty
+TigerResearch/tigerbot-13b-base-v1
+ManagementEngineer/tnh-llama-2-7b-chat-hf
+zake7749/text-to-lyric
+lvkaokao/llama2-7b-hf-instruction-lora
+ithaka/llama-2-7b-miniguanaco
+JuiThe/mt5base_Base0.1
+bond005/FRED-T5-large-ods-ner-2023
+sivasis-tripathy/Llama-2-7b-chat-hf-sharded-bf16-2GB
+theodora-ai/TheoParaphraseT5
+RoversX/StableBeluga-7B-Qlora-Samantha-V3
+omamaatconrad/llama-2-7b-football-news-goaldotcom
+Aharneish/gpt2-sailit
+TheTravellingEngineer/llama2-7b-chat-hf-v2
+KaiNylund/t5-60M-poli_aff-2015-0
+KaiNylund/t5-60M-poli_aff-2015-1
+KaiNylund/t5-60M-poli_aff-2015-2
+KaiNylund/t5-60M-poli_aff-2015-3
+KaiNylund/t5-60M-poli_aff-2015-4
+KaiNylund/t5-60M-poli_aff-2015-5
+KaiNylund/t5-60M-poli_aff-2015-6
+KaiNylund/t5-60M-poli_aff-2015-7
+KaiNylund/t5-60M-poli_aff-2015-8
+KaiNylund/t5-60M-poli_aff-2015-9
+KaiNylund/t5-60M-poli_aff-2015-10
+KaiNylund/t5-60M-poli_aff-2015-11
+KaiNylund/t5-60M-poli_aff-2016-0
+KaiNylund/t5-60M-poli_aff-2016-1
+KaiNylund/t5-60M-poli_aff-2016-2
+KaiNylund/t5-60M-poli_aff-2016-3
+KaiNylund/t5-60M-poli_aff-2016-4
+KaiNylund/t5-60M-poli_aff-2016-5
+KaiNylund/t5-60M-poli_aff-2016-6
+KaiNylund/t5-60M-poli_aff-2016-7
+KaiNylund/t5-60M-poli_aff-2016-8
+KaiNylund/t5-60M-poli_aff-2016-9
+KaiNylund/t5-60M-poli_aff-2016-10
+KaiNylund/t5-60M-poli_aff-2016-11
+KaiNylund/t5-60M-poli_aff-2017-0
+KaiNylund/t5-60M-poli_aff-2017-1
+KaiNylund/t5-60M-poli_aff-2017-2
+KaiNylund/t5-60M-poli_aff-2017-3
+KaiNylund/t5-60M-poli_aff-2017-4
+KaiNylund/t5-60M-poli_aff-2017-5
+KaiNylund/t5-60M-poli_aff-2017-6
+KaiNylund/t5-60M-poli_aff-2017-7
+KaiNylund/t5-60M-poli_aff-2017-8
+KaiNylund/t5-60M-poli_aff-2017-9
+KaiNylund/t5-60M-poli_aff-2017-10
+KaiNylund/t5-60M-poli_aff-2017-11
+KaiNylund/t5-60M-poli_aff-2018-0
+KaiNylund/t5-60M-poli_aff-2018-1
+KaiNylund/t5-60M-poli_aff-2018-2
+KaiNylund/t5-60M-poli_aff-2018-3
+KaiNylund/t5-60M-poli_aff-2018-4
+KaiNylund/t5-60M-poli_aff-2018-5
+KaiNylund/t5-60M-poli_aff-2018-6
+KaiNylund/t5-60M-poli_aff-2018-7
+KaiNylund/t5-60M-poli_aff-2018-8
+KaiNylund/t5-60M-poli_aff-2018-9
+KaiNylund/t5-60M-poli_aff-2018-10
+KaiNylund/t5-60M-poli_aff-2018-11
+EricPeter/final_merged_checkpoint
+KaiNylund/t5-60M-poli_aff-2019-0
+KaiNylund/t5-60M-poli_aff-2019-1
+KaiNylund/t5-60M-poli_aff-2019-2
+KaiNylund/t5-60M-poli_aff-2019-3
+KaiNylund/t5-60M-poli_aff-2019-4
+KaiNylund/t5-60M-poli_aff-2019-5
+KaiNylund/t5-60M-poli_aff-2019-6
+KaiNylund/t5-60M-poli_aff-2019-7
+KaiNylund/t5-60M-poli_aff-2019-8
+KaiNylund/t5-60M-poli_aff-2019-9
+KaiNylund/t5-60M-poli_aff-2019-10
+KaiNylund/t5-60M-poli_aff-2019-11
+KaiNylund/t5-60M-poli_aff-2020-0
+KaiNylund/t5-60M-poli_aff-2020-1
+KaiNylund/t5-60M-poli_aff-2020-2
+KaiNylund/t5-60M-poli_aff-2020-3
+KaiNylund/t5-60M-poli_aff-2020-4
+KaiNylund/t5-60M-poli_aff-2020-5
+KaiNylund/t5-60M-poli_aff-2020-6
+KaiNylund/t5-60M-poli_aff-2020-7
+KaiNylund/t5-60M-poli_aff-2020-8
+KaiNylund/t5-60M-poli_aff-2020-9
+KaiNylund/t5-60M-poli_aff-2020-10
+KaiNylund/t5-60M-poli_aff-2020-11
+ifbot/t5-small-finetuned-xsum
+KaiNylund/t5-60M-lm-wmt-2012-0
+KaiNylund/t5-60M-lm-wmt-2012-1
+KaiNylund/t5-60M-lm-wmt-2012-2
+KaiNylund/t5-60M-lm-wmt-2012-3
+KaiNylund/t5-60M-lm-wmt-2012-4
+KaiNylund/t5-60M-lm-wmt-2012-5
+KaiNylund/t5-60M-lm-wmt-2012-6
+KaiNylund/t5-60M-lm-wmt-2012-8
+KaiNylund/t5-60M-lm-wmt-2012-9
+KaiNylund/t5-60M-lm-wmt-2012-10
+KaiNylund/t5-60M-lm-wmt-2012-11
+KaiNylund/t5-60M-lm-wmt-2013-0
+KaiNylund/t5-60M-lm-wmt-2013-1
+KaiNylund/t5-60M-lm-wmt-2013-2
+KaiNylund/t5-60M-lm-wmt-2013-3
+KaiNylund/t5-60M-lm-wmt-2013-4
+KaiNylund/t5-60M-lm-wmt-2013-5
+KaiNylund/t5-60M-lm-wmt-2013-6
+KaiNylund/t5-60M-lm-wmt-2013-7
+KaiNylund/t5-60M-lm-wmt-2013-8
+KaiNylund/t5-60M-lm-wmt-2013-9
+KaiNylund/t5-60M-lm-wmt-2013-10
+KaiNylund/t5-60M-lm-wmt-2013-11
+PocketDoc/Dans-QuestionableCocktail-2-13b
+KaiNylund/t5-60M-lm-wmt-2014-0
+PocketDoc/Dans-QuestionableCocktail-2-13b-gptq-4bit-32g
+KaiNylund/t5-60M-lm-wmt-2014-1
+KaiNylund/t5-60M-lm-wmt-2014-2
+KaiNylund/t5-60M-lm-wmt-2014-3
+KaiNylund/t5-60M-lm-wmt-2014-4
+KaiNylund/t5-60M-lm-wmt-2014-5
+KaiNylund/t5-60M-lm-wmt-2014-6
+KaiNylund/t5-60M-lm-wmt-2014-7
+Ismaelvillanuevamiranda/llama-2-7b-colorectal
+KaiNylund/t5-60M-lm-wmt-2014-8
+KaiNylund/t5-60M-lm-wmt-2014-9
+KaiNylund/t5-60M-lm-wmt-2014-10
+KaiNylund/t5-60M-lm-wmt-2014-11
+KaiNylund/t5-60M-lm-wmt-2015-0
+KaiNylund/t5-60M-lm-wmt-2015-1
+KaiNylund/t5-60M-lm-wmt-2015-2
+KaiNylund/t5-60M-lm-wmt-2015-3
+KaiNylund/t5-60M-lm-wmt-2015-4
+KaiNylund/t5-60M-lm-wmt-2015-5
+KaiNylund/t5-60M-lm-wmt-2015-6
+KaiNylund/t5-60M-lm-wmt-2015-7
+KaiNylund/t5-60M-lm-wmt-2015-8
+KaiNylund/t5-60M-lm-wmt-2015-9
+KaiNylund/t5-60M-lm-wmt-2015-10
+KaiNylund/t5-60M-lm-wmt-2015-11
+KaiNylund/t5-60M-lm-wmt-2016-0
+KaiNylund/t5-60M-lm-wmt-2016-1
+KaiNylund/t5-60M-lm-wmt-2016-2
+KaiNylund/t5-60M-lm-wmt-2016-3
+KaiNylund/t5-60M-lm-wmt-2016-4
+KaiNylund/t5-60M-lm-wmt-2016-6
+KaiNylund/t5-60M-lm-wmt-2016-7
+KaiNylund/t5-60M-lm-wmt-2016-8
+KaiNylund/t5-60M-lm-wmt-2016-9
+KaiNylund/t5-60M-lm-wmt-2016-10
+KaiNylund/t5-60M-lm-wmt-2016-11
+KaiNylund/t5-60M-lm-wmt-2017-0
+KaiNylund/t5-60M-lm-wmt-2017-1
+KaiNylund/t5-60M-lm-wmt-2017-2
+KaiNylund/t5-60M-lm-wmt-2017-3
+KaiNylund/t5-60M-lm-wmt-2017-4
+KaiNylund/t5-60M-lm-wmt-2017-5
+KaiNylund/t5-60M-lm-wmt-2017-6
+KaiNylund/t5-60M-lm-wmt-2017-7
+KaiNylund/t5-60M-lm-wmt-2017-8
+KaiNylund/t5-60M-lm-wmt-2017-9
+KaiNylund/t5-60M-lm-wmt-2017-10
+KaiNylund/t5-60M-lm-wmt-2017-11
+KaiNylund/t5-60M-lm-wmt-2018-0
+KaiNylund/t5-60M-lm-wmt-2018-1
+YoussefThabet/llama_kahrba
+KaiNylund/t5-60M-lm-wmt-2018-2
+KaiNylund/t5-60M-lm-wmt-2018-3
+KaiNylund/t5-60M-lm-wmt-2018-4
+KaiNylund/t5-60M-lm-wmt-2018-5
+KaiNylund/t5-60M-lm-wmt-2018-6
+KaiNylund/t5-60M-lm-wmt-2018-7
+KaiNylund/t5-60M-lm-wmt-2018-8
+KaiNylund/t5-60M-lm-wmt-2018-9
+KaiNylund/t5-60M-lm-wmt-2018-10
+KaiNylund/t5-60M-lm-wmt-2018-11
+KaiNylund/t5-60M-lm-wmt-2019-0
+KaiNylund/t5-60M-lm-wmt-2019-1
+marko-vasic/codeparrot
+KaiNylund/t5-60M-lm-wmt-2019-2
+KaiNylund/t5-60M-lm-wmt-2019-3
+KaiNylund/t5-60M-lm-wmt-2019-4
+KaiNylund/t5-60M-lm-wmt-2019-5
+KaiNylund/t5-60M-lm-wmt-2019-6
+KaiNylund/t5-60M-lm-wmt-2019-7
+KaiNylund/t5-60M-lm-wmt-2019-8
+KaiNylund/t5-60M-lm-wmt-2019-9
+KaiNylund/t5-60M-lm-wmt-2019-10
+KaiNylund/t5-60M-lm-wmt-2019-11
+KaiNylund/t5-60M-lm-wmt-2020-0
+KaiNylund/t5-60M-lm-wmt-2020-1
+KaiNylund/t5-60M-lm-wmt-2020-2
+KaiNylund/t5-60M-lm-wmt-2020-3
+KaiNylund/t5-60M-lm-wmt-2020-4
+KaiNylund/t5-60M-lm-wmt-2020-5
+KaiNylund/t5-60M-lm-wmt-2020-6
+KaiNylund/t5-60M-lm-wmt-2020-7
+KaiNylund/t5-60M-lm-wmt-2020-8
+KaiNylund/t5-60M-lm-wmt-2020-9
+KaiNylund/t5-60M-lm-wmt-2020-10
+KaiNylund/t5-60M-lm-wmt-2020-11
+KaiNylund/t5-60M-lm-wmt-2021-0
+KaiNylund/t5-60M-lm-wmt-2021-1
+KaiNylund/t5-60M-lm-wmt-2021-2
+KaiNylund/t5-60M-lm-wmt-2021-3
+KaiNylund/t5-60M-lm-wmt-2021-4
+KaiNylund/t5-60M-lm-wmt-2021-5
+KaiNylund/t5-60M-lm-wmt-2021-6
+KaiNylund/t5-60M-lm-wmt-2021-7
+KaiNylund/t5-60M-lm-wmt-2021-8
+KaiNylund/t5-60M-lm-wmt-2021-9
+KaiNylund/t5-60M-lm-wmt-2021-10
+KaiNylund/t5-60M-lm-wmt-2021-11
+Shivaranjini/LLAMA2_coii
+ishwarbb23/t52variant
+PocketDoc/Dans-QuestionableCocktail-2-13b-gptq-4bit-32g-ao
+JuiThe/mt5base_Base0.2
+rameshm/llama-2-13b-mathgpt-v2
+EricPeter/Llama-2-multilingual
+ckip-joint/bloom-3b-zh-instruct
+KaiNylund/t5-60M-aic-combined_years_with_year_flag
+KaiNylund/t5-60M-news_cls-combined_years_with_year_flag
+KaiNylund/t5-60M-news_sum-combined_years_with_year_flag
+KaiNylund/t5-60M-poli_aff-combined_years_with_year_flag
+psxjp5/mt5-small_25
+carlebiro/Reply40B
+norkart/sammendrag
+amogh-sinha/llama-2-7b-amoghsinha
+tilyupo/t5-xl-mmlu-qa2a
+MoinFaisal/Llama-2-7b-chat-MoinFaisal
+norkart/mt5-large-nn
+tilyupo/t5-xl-trivia-c2a
+andrey200702/test_pretrainv1
+cl-trier/flan-t5-small_twon-debug-generative-agent
+jojo0217/step2_reward_mk2_prompt
+s3nh/totally-not-an-llm-AlpacaCielo2-7b-8k-GPTQ
+bjoernp/thorsten_v0.2
+cl-trier/flan-t5-base_twon-generative-agent
+TigerResearch/tigerbot-13b-chat-v1
+weiren119/traditional_chinese_qlora_llama2_merged
+psxjp5/mt5-small
+Azure99/blossom-v2-3b
+jxhong/CAlign-alpaca-7b
+RoversX/llama-2-7b-chat-hf-Qlora-Samantha-V1
+WhoTookMyAmogusNickname/NewHope_HF_not_official
+haouarin/noon-7b-GPTQ-4bit
+dredge/llama-2-7b-miniguanaco
+dangkhoa99/falcon-7b-finetuned-QA-MRC-4-bit
+ridassaf/eb_t5_base_16
+aboonaji/llama2finetune
+Hannw/midjourney-falcon-7b
+eunyounglee/gpt-neox-pretrain-2gb
+Aurora1412/llama-2-7b-miniguanaco
+cabranch/distilgpt2-finetuned-wikitext2
+yashonwu/t5-base-sft-phones
+Gryphe/MythoMix-L2-13b
+mrSoul7766/simpleT5-Base-ECTSum
+yeontaek/llama-2-13b-Guanaco-QLoRA
+aboonaji/llama2finetune-v2
+vimal52/t5_base_finetune_v1.0
+yashonwu/t5-base-rlhf-bm25-phones
+Kyle1668/boss-sentiment-t5-large
+Kyle1668/boss-toxicity-t5-large
+Kyle1668/ag-news-t5-large
+reasonwang/gpt2-xl-alpaca
+Phoenixsymbol/falcon-7b-instruct-ft-v2
+yashonwu/t5-base-rlhf-tfidf-phones
+Denys87/llama-2-7b-test
+psxjp5/mt5-small_test_35
+usvsnsp/pythia-2.8b-sft
+duliadotio/dulia-13b-8k-alpha
+usvsnsp/pythia-6.9b-sft
+snowneji/flan-t5-base-finetuned-samsum
+TheBloke/MythoMix-L2-13B-GGML
+TheBloke/MythoMix-L2-13B-GPTQ
+chyavanshenoy/llama-2-7b-medtext
+openerotica/falcon-7b-GPTQ
+Mursel/mt5-base-turkish-finetuned-mlsum
+Jorghi21/llama2-7b-4bit
+sandeep12345/llama2-fine-tuned
+mrm8488/mt5-base-ft-rf-02
+s3nh/stabilityai-stablecode-completion-alpha-3b-4k-GPTQ
+usvsnsp/pythia-6.9b-rm-full-hh-rlhf
+nolanylee/llama-2-7b-miniguanaco
+conceptofmind/Flan-Llama-2-7b-12m-2e-5-bos-eos-epoch-1
+togethercomputer/Llama-2-7B-32K-Instruct
+TheBloke/stablecode-completion-alpha-3b-4k-GPTQ
+s3nh/stabilityai-stablecode-instruct-alpha-3b-GPTQ
+The-Face-Of-Goonery/Huginn-13b-v1.2
+s3nh/stabilityai-stablecode-completion-alpha-3b-GPTQ
+zkdtckk/falcon40-instruct-qlora-tta-v1
+madeinglasgow/llama-2-7b-dlsang
+mariiaponom/falcon_summ_merged
+TheBloke/stablecode-instruct-alpha-3b-GPTQ
+anastasia21112/llama-2-7b-anastasia21112
+sherif1311/t5-small-finetuned-xsum
+The-Face-Of-Goonery/Huggin1.2-GPTQ
+mosama/llama2-rope-scaled
+aka-nikko/ainz-ooal-gown
+knvarad/t5
+mncai/Polyglot5.8B-ShareGPT-Wiki-News_epoch4
+conceptofmind/Flan-Llama-2-7b-5m-1e-5-bos-eos-epoch-1
+mncai/Challenge_CoT-T0_30k_epoch1
+andrey200702/test_pretrainv2
+RoversX/tableBeluga-7B-instruct-pl-lora-Samantha-data-V1
+llSourcell/medllama2_7b
+Icaruas/V2
+Dhirajkumar/flan-t5-base-text_summarization_data
+jamessyx/pathasst_caption_tool
+miscjose/mt5-small-finetuned-genius-music
+jypppp/llama-2-7b-manual_GPT
+dythu/stack-llama-2
+andrewparkk/jayllm
+TWS2/llamingo-ja-13b-v2
+pankajmathur/orca_mini_v3_13b
+mncai/Challenge_CoT-T0_30k_epoch2
+Den4ikAI/ruT5-micro
+FelixChao/vicuna-7B-chemical
+yashonwu/t5-base-sft-electronics
+fasttyper/llama-2-7b-miniguanaco
+scribis/sebald_llama2
+WizardLM/WizardLM-70B-V1.0
+MoinFaisal/Llama-2-7b-chat-finetune
+mohammedfazilvamos/gpt2model
+JeffreyHuang/gorilla-llama-7b-th
+assafm/llama-2-13b-trained-cs-001-strategy-001
+DavidLazer/llama-2-7b-miniguanacomodel
+eunyounglee/GPT-NeoX-pretrain-enwik8
+achang/fin_gpt2_one_nvda
+bjoernp/trampeltier_v0.1
+Jorghi21/llama7b-4bit-fixed
+sinarashidi/llama-2-7b-chat-persian
+jonybepary/test_llama2
+vonjack/Qwen-LLaMAfied-HFTok-7B-Chat
+cloud-user/cnn_news_summary_model_trained_on_reduced_data
+jeppy20/gpt2-ft-ael
+vishal-carvia/flan-t5-small-samsum
+steerapi/Llama-2-7b-chat-hf-onnx-awq
+eunyounglee/GPT-NeoX-pretrain-imdb
+thorbjorgp93/medical-llama-2-7b
+TheBloke/Firefly-Llama2-13B-v1.2-GGML
+TheBloke/Firefly-Llama2-13B-v1.2-GPTQ
+fiveflow/ko-psychologlot-v2-5.8b
+Thuong/vsl_baseline_2
+Jukaboo/LLama2_7b_Jukabo_ft_german_hf
+openerotica/Llama-2-13B-GPTQ
+yashonwu/t5-base-rlhf-bm25-electronics
+ZahrizhalAli/calgpt-falcon-7b-finetuned-mental-health
+slaqrichi/llama-2-7b-miniCosmic
+McCreeChen/evecca_aftersale_model
+banhabang/t5_model_19593_0190800
+rirv938/wizard-vicuna-30b-uncensored-awq-4bit-g128
+tolga-ozturk/t5-base-nsp
+jionlyu/test
+jojo0217/step3_rlhf_mk2
+tolga-ozturk/t5-german-nsp
+yashonwu/t5-base-sft-clothing
+Wiserburak/llama-2-7b-miniguanaco
+bjoernp/thorsten_v0.31
+dythu/stack-llama-2-rl
+tolga-ozturk/t5-french-nsp
+clibrain/Llama-2-7b-ft-instruct-es
+RebeccaKnudsen/falcon-7b-instruct-ft
+AWfaw/ai-hdlcoder-model
+tolga-ozturk/t5-spanish-nsp
+mariiaponom/falcon_class_merged
+zagrebelnaya81/t5-small-finetuned-en-to-de
+Valkea/Llama-2-7b-hf-hearts-addict
+Chang-Su/llama-2-13b-chat-ko
+TheBloke/WizardLM-70B-V1.0-GGML
+TheBloke/WizardLM-70B-V1.0-GPTQ
+ManuVleuBeu/t5_base_answer-aware_normal_eduQG
+yashonwu/t5-base-rlhf-bm25-clothing
+bradmin/ployglot1.3
+hasibul1ah/finetuned_bloom_trained_model_bangladataset
+Photolens/llama-2-7b-langchain-chat
+zaddyzaddy/llama-2-7b-custom
+ganchengguang/Yoko-7B-Japanese-v0
+moraxgiga/falcon-7b-dolly
+EgilKarlsen/GPT2_Spirit-Anomaly
+theojolliffe/bart-ing-extract
+h2oai/h2ogpt-4096-llama2-7b-chat
+h2oai/h2ogpt-4096-llama2-13b-chat
+h2oai/h2ogpt-4096-llama2-70b-chat
+joaogante/tiny-random-gpt2-with-generation-config
+EgilKarlsen/GPT2_Spirit-Anomaly_Baseline
+h2oai/h2ogpt-4096-llama2-70b
+h2oai/h2ogpt-4096-llama2-7b
+h2oai/h2ogpt-4096-llama2-13b
+conceptofmind/Flan-Llama-2-7b-5m-2e-5-bos-eos-epoch-1
+TheBloke/huginnv1.2-GPTQ
+TheBloke/huginnv1.2-GGML
+andrey200702/test_presrebvrf3
+NIRVANA/T5_academic_paraphraser
+nicolasdec/cabra13b
+yashonwu/t5-base-sft-pet
+alex000kim/llama-2-7b-miniguanaco
+yashonwu/t5-base-rlhf-bm25-pet
+TheBloke/AlpacaCielo2-7B-8K-GGML
+TheBloke/AlpacaCielo2-7B-8K-GPTQ
+conceptofmind/Flan-Llama-2-7b-5m-3e-5-bos-eos-epoch-1
+jmparejaz/growthcadet_llam2
+anujay-incedoinc/codegen25-7b-instruct-custom-qa-model
+TokenBender/TokenBender_stableCodePy_3B_chat_v0.1
+chronopt-research/vietnamese-gpt2-base
+vichyt/codet5p-770m-py-codebleu-1-True-5e-05-0.1
+garage-bAInd/Camel-Platypus2-70B
+vichyt/codet5p-770m-py-codebleu-32-True-1e-06-0.1
+vichyt/codet5p-770m-py-codebleu-64-True-1e-06-0.1
+vichyt/codet5p-770m-py-codebleu-128-True-1e-06-0.1
+yzhuang/autotree_llama_small_nxor_l1_16_sin_local
+realzdlegend/Llama-2-13b-chat-8bit
+theojolliffe/flan-recipes
+juancopi81/lmd-8bars-2048-epochs40_v4
+Jbrophy/falcon-7B-Instruct-Romance-merged
+lkk688/my_awesome_opus_books_model
+jeremywu/gpt2-product-description
+EgilKarlsen/GPT2_Thunderbird-Anomaly_Baseline
+georgesung/llama2_7b_openorca_35k
+realzdlegend/Llama-2-7b-chat-hf-8bit
+supermaxmodels/testm
+sandeep12345/Biofilm_Llama-2_finetuned
+EgilKarlsen/GPT2_Thuderbird-Anomaly
+Stevross/Astrid-LLama-3B-GPU
+Kire1223/output-medium-Dialo
+rameshm/llama-2-13b-mathgpt-v3
+andrey200702/test_pretrain_v3
+steerapi/Llama-2-13b-chat-hf-onnx-awq
+Notespeak/ariadnetestn
+Stevross/Astrid-LLama-3B-CPU
+soajan/llama2-guessTitlewithOCR
+mncai/Challenge_CoT-T0_30k_wo_systemprompt_epoch1
+substratusai/llama-2-7b-weaviate-gorilla
+afkfatih/llama-2-7b-tr
+TheTravellingEngineer/bloom-1b1-RLHF-v2
+meninder/llama-2-7b-miniguanaco-msp
+vichyt/codet5p-770m-py-codebleu-1-True-1e-07-0.1
+vichyt/codet5p-770m-py-codebleu-1-True-5e-06-0.1
+Malcolmcjj13/qamodel_epoch2
+iabualhaol/FB-DLAI-Instruct-tune-v3
+pankajmathur/orca_mini_v3_70b
+EkoMickA/distilgpt2-finetuned-wikitext2
+chunwoolee0/keti-air-ke-t5-base-en-to-ko
+mncai/Challenge_CoT-T0_30k_wo_systemprompt_epoch2
+Norquinal/llama-2-7b-claude-instruct
+zhangirazerbayev/llama-2-7b-roundtrip-private
+nicbull/DialoGPT-medium-leric
+HiraishinEX/llama-2-13b-hf-malaya
+eunyounglee/GPT-NeoX-pretrain-wiki-abridged
+HenriCastro/think1
+ai-forever/mGPT-1.3B-armenian
+ai-forever/mGPT-1.3B-azerbaijan
+ai-forever/mGPT-1.3B-bashkir
+ai-forever/mGPT-1.3B-belorussian
+ai-forever/mGPT-1.3B-bulgarian
+ai-forever/mGPT-1.3B-chuvash
+ai-forever/mGPT-1.3B-georgian
+ai-forever/mGPT-1.3B-kalmyk
+ai-forever/mGPT-1.3B-kazakh
+ai-forever/mGPT-1.3B-kirgiz
+ai-forever/mGPT-1.3B-mari
+ai-forever/mGPT-1.3B-mongol
+ai-forever/mGPT-1.3B-ossetian
+ai-forever/mGPT-1.3B-persian
+ai-forever/mGPT-1.3B-romanian
+ai-forever/mGPT-1.3B-tajik
+ai-forever/mGPT-1.3B-tatar
+ai-forever/mGPT-1.3B-turkmen
+ai-forever/mGPT-1.3B-tuvan
+ai-forever/mGPT-1.3B-ukranian
+ai-forever/mGPT-1.3B-uzbek
+ai-forever/mGPT-1.3B-yakut
+Vasanth/dpo-santacoder1b
+BramVanroy/llama2-13b-ft-mc4_nl_cleaned_tiny
+Malcolmcjj13/csmodel_epoch3
+yentinglin/Taiwan-LLaMa-v0.0
+yentinglin/Taiwan-LLaMa-v0.9
+yentinglin/Taiwan-LLaMa-v1.0
+TabbyML/StableCode-3B
+lvyv/llama-2-7b-miniguanaco
+loganamcnichols/simple2000
+TheTravellingEngineer/llama2-7b-chat-hf-v3
+pankajmathur/model_007_preview
+TigerResearch/tigerbot-13b-chat-8bit
+austinm2151/MergedTest
+TheTravellingEngineer/llama2-7b-chat-hf-v4
+jojo0217/step3_rlhf_mk3
+hqfang/cosmic-model-1
+niuzitong/llama-2-7b-miniguanaco
+4i-ai/Llama-2-7b-alpaca-es
+eunyounglee/GPT-NeoX-pretrain-news
+ydang/llama-2-7b-james-test
+norkart/mt5-large-no-info-extraction-3000
+norkart/mt5-large-no-info-extraction-200
+prudhvirazz/t5-small-modified
+chargoddard/ypotryll-22b-gptq
+YoussefThabet/test_kahrba_dataset
+zlsl/l_erotic_kink_chat
+iliyaML/t5-small-billsum
+chunwoolee0/t5_small_billsum
+zaddyzaddy/llama-2-7b-trained-contract-32k
+aao331/PeronIA-13B-4bit-g128
+TheBloke/orca_mini_v3_7B-GGML
+TheBloke/orca_mini_v3_7B-GPTQ
+HWERI/pythia-1.4b-deduped-sharegpt
+barnybug/stack-llama-2-ggml
+ai-forever/mGPT-1.3B-buryat
+kavinilavan/Llama-2-13b-chat-hf-agent0_v2
+zolutiontech/Llama2-ConcordiumID-bigdataset
+clibrain/Llama-2-13b-ft-instruct-es
+yashonwu/t5-base-sft-baby
+yashonwu/t5-base-rlhf-bm25-baby
+andrey200702/test_pretrain_v4
+yashonwu/t5-base-sft-office
+yashonwu/t5-base-rlhf-bm25-office
+lemoniada/rozhorobot
+ganchengguang/Yoko-7B-Japanese-v1
+bibidentuhanoi/llama-2-7b-test
+Araaa/falconfinetuned
+abhinandanmishra/llama-2-7b-finetuned
+Kryvda/LLaMA_v1
+yashonwu/t5-base-sft-grocery
+OpenBuddy/openbuddy-openllama-3b-v10-bf16
+Babak-jfard/LangChain-test71
+samaksh-khatri/gmra_model_gpt2_10082023T191709
+kaxap/llama-2-70b-instruct-sql-16bits
+prnv13/llama_exp1
+snob/HeungEol-KoAlpaca-12.8B-v1.0
+yashonwu/t5-base-rlhf-bm25-grocery
+turingsummerexperience/my-great-gpt2-recipe-model-nathan
+lmdeploy/llama2-chat-7b-w4
+TheBloke/Stable-Platypus2-13B-GGML
+TheBloke/Stable-Platypus2-13B-GPTQ
+pankajmathur/model_009
+RoversX/llama-2-7b-chat-hf-Qlora-Samantha-V2
+lmdeploy/llama2-chat-13b-w4
+turingsummerexperience/RNH_Masterchef5000
+bigcode/santacoderpack
+turingsummerexperience/my-great-gpt2-recipe-model-kittychrysa
+yashonwu/t5-base-sft-toys
+surendranath/Llama-2-7b-chat-hf
+turingsummerexperience/Hamzas_Cookbook
+YusufAhmed58231/my-great-gpt2-i-think-it-makes-novels
+yashonwu/t5-base-rlhf-bm25-toys
+Trelis/Llama-2-7b-chat-hf-function-calling-GPTQ
+thenam/Llama-2-13b-hf-small-shards
+TheBloke/orca_mini_v3_13B-GGML
+TheBloke/orca_mini_v3_13B-GPTQ
+KyriakosT/llama2-qlora-greek_alpaca_50_full
+Malcolmcjj13/csmodels_3epoch_2
+Malcolmcjj13/qamodels_3epoch_1
+Photolens/llama-2-13b-langchain-chat
+mabrouk/codeparrot-ds
+yanggul/llama-2_autotrained
+wiserifle/llama2
+MayaPH/GodziLLa2-70B
+nuprl/MultiPLCoder-1b
+TheBloke/Platypus2-13B-GGML
+TheBloke/Platypus2-13B-GPTQ
+conceptofmind/Flan-Llama-2-7b-5m-9e-5-bos-eos-epoch-1
+universeTBD/astrollama
+vichyt/codet5p-770m-py-sanitized-codebleu-1-True-5e-07-0.1
+TheBloke/Camel-Platypus2-13B-GPTQ
+TheBloke/Camel-Platypus2-13B-GGML
+vichyt/codet5p-770m-py-sanitized-codebleu-128-True-1e-06-0.1
+lkk688/my_awesome_eli5_clm-model
+EgilKarlsen/GPT2-Sentence
+MichaelOrme/Profane
+MichaelOrme/Profane_Removed
+MichaelOrme/Paraphrased_Word
+MichaelOrme/Paraphrased_Sentence
+maximuslee07/llama-2-7b-rockwell
+vlofgren/llama-2-7b-miniguanaco-testy
+FYP19/t5-small-finetuned-sql4
+loss4Wang/twitter_sentiment_reg
+Gryphe/MythoMax-L2-13b
+rirv938/WizardLM-33B-V1.0-Uncensored-awq-4bit-g128
+steerapi/Llama-2-7b-chat-hf-onnx-awq-w8
+Khandker/bay01
+MFDLR/llm-finetuned-run01
+Kire1223/output-medium-anette-Dialo
+nkpz/llama2-22b-daydreamer-v1
+sandeep12345/Biofilm_Llama-2_finetuned_version_1
+yzhuang/autotree_llama_small_nxor_l1_16_local
+steerapi/Llama-2-7b-chat-hf-onnx-awq-w8-g0
+andrey200702/test_modelv5
+TheBloke/Platypus2-70B-Instruct-GPTQ
+TheBloke/Platypus2-70B-Instruct-GGML
+morzecrew/FRED-T5-RefinedPersonaChat
+wesley7137/platypus-13b-Logic
+zzzzzzzzzzzzzzzzzz/Llama-2-7b-chat-finetune-therapy
+robinliubin/h2o-llama2-7b-4bits
+surendranath/Llama-2-7b-chat-hf-v2
+weiren119/traditional_chinese_qlora_llama2_13b_merged
+cminor102/testingnewmodel2
+conceptofmind/Flan-Llama-2-7b-5m-2e-5-bos-eos-epoch-3
+wgpubs/gpt2-imdb-pos-v2
+smjain/abap-nous-hermes
+pe-nlp/llama-2-13b-vicuna-wizard
+jojo0217/step2_mk4
+austinm2151/KarinMontini
+0mij/llama-7b-webnlg-full
+Denys87/Llama-2-7B-bf16-sharded-JIRA
+quantumaikr/llama-2-70b-fb16-orca-chat-10k
+loloschmidt/llama-2-7b-int4-python-code-20k
+AleenCHEN/ad-generation-training-1691726132
+jeremyvictor/mt5-large-gramatika1500k
+WizardLM/WizardMath-7B-V1.0
+WizardLM/WizardMath-13B-V1.0
+WizardLM/WizardMath-70B-V1.0
+jeremyvictor/t5-v1_1-large-gramatika1500k
+jojo0217/step2_mk5
+smangrul/full-finetune-llama70b-chat-asst
+vishal-carvia/flan-t5-small-carvia_nlc2cmd
+manili/first_test
+ChanonUtupon/openthaigpt-merge-lora-llama-2-7B-2800k
+TheBloke/Platypus2-70B-GPTQ
+TheBloke/Platypus2-70B-GGML
+Norquinal/llama-2-7b-claude-chat
+ademoneye/my_awesome_opus_books_model
+jojo0217/step3_mk4
+merit/Model_Banana
+TheBloke/MythoMax-L2-13B-GGML
+TheBloke/MythoMax-L2-13B-GPTQ
+pramu/llama-2-7b-miniguanaco
+rirv938/manticore-30b-chat-pyg-alpha-awq-4bit-g128
+jojo0217/step3_mk5
+dmallick27/Demo_Model_11_08_23
+prudhvirazz/google-flan-t5-small-modified
+muhammadfhadli/gpt2-tidore-3
+FelixChao/vicuna-7B-physics
+samaksh-khatri/gmra_model_gpt2_11082023T140034
+CONCISE/LLaMa_V2-13B-Instruct-Uncensored-GGML
+TheBloke/Camel-Platypus2-70B-GGML
+TheBloke/Camel-Platypus2-70B-GPTQ
+ziqingyang/chinese-llama-2-13b
+nominate/llama2-13b-chat-hf-jmc-001-merged-q8_0
+samaksh-khatri/gmra_model_gpt2_11082023T144604
+Captluke/Llama-2-7b-finetune-v1
+logoyazilim/qna_model_2023-08-11-12-33-39-227865
+cminor102/testingnewmodel3
+RoversX/llama-2-7b-hf-small-shards-Samantha-V1-SFT
+Photolens/OpenOrcaxOpenChat-2-13b-langchain-chat
+panjiariputra/distilgpt2-finetuned-wikitext2
+engkufizz/llama-2-7b-datacom-v2
+nejnej/airoboros_l2-13b-v3_finetuned
+logoyazilim/qna_model_2023-08-11-13-16-31-064026
+smangrul/starcoder15B-personal-copilot-merged
+merit/Model_Coconut
+PharMolix/BioMedGPT-LM-7B
+vishal-carvia/flan-t5-small-carvia_nlc2cmd_ver2
+shanover/medbot-godel-v2
+kajdun/iubaris-13b-v3_GPTQ
+psxjp5/mlm_new
+Mayankksoni/T5_praise_generation
+jojo0217/llm_rlhf
+ChanonUtupon/openthaigpt-merge-lora-llama-2-13B-4bit-440k
+merit/Model_Durian
+umitmertcakmak/llama-2-7b-miniguanaco
+quantumaikr/llama-2-70b-fb16-korean
+psxjp5/mlm
+smangrul/starcoder7B-personal-copilot-merged
+Michelvh/flan-t5-mc-question-generation
+Arc53/docsgpt-7b-falcon
+parteeksj/flan-T5-large-LORA-scientific_papers
+nivos/flan-t5-base-activity-surrounding-summarize
+Captluke/Llama-2-7b-finetune-v2
+radlab/polish-gpt2-small
+parteeksj/flan-T5-base-LORA-scientific_papers
+weqweasdas/hh_rlhf_rm_open_llama_13b
+smangrul/full-finetune-llama7b-chat-asst
+ChanonUtupon/openthaigpt-merge-lora-llama-2-7B-3470k
+RajuKandasamy/tamillama_tiny_30m
+thekuan/llama2_R_equivalent
+andreaskoepf/llama2-7b-oasst-baseline
+TheBloke/WizardMath-7B-V1.0-GPTQ
+TheBloke/WizardMath-7B-V1.0-GGML
+keylei/flan-t5-base-finetuning
+Mirage-Studio/llama-gaan-2-7b-chat-hf-dutch-epoch-5
+thisserand/open_llama_7b_v2_sharded
+steerapi/Llama-2-7b-chat-hf-onnx-awq-w8-g128
+TheBloke/WizardMath-13B-V1.0-GGML
+TheBloke/WizardMath-13B-V1.0-GPTQ
+bibidentuhanoi/llama2-test
+YongHuang/opticarellama2
+TheBloke/WizardMath-70B-V1.0-GPTQ
+TheBloke/WizardMath-70B-V1.0-GGML
+Universal-NER/UniNER-7B-type-sup
+vikp/cleaner
+thucdangvan020999/llama2-7b-2epochs-merged
+thucdangvan020999/llama2-7b-5epochs-merged
+thucdangvan020999/llama2-7b-10epochs-merged
+thucdangvan020999/llama2-7b-20epochs-merged
+vlofgren/llama-2-7b-minilllama2-summ-ptbr
+Open-Orca/OpenOrca-Platypus2-13B
+victornica/RL-tuned_scuffed_molgen_blankinput
+0mij/llama-7b-webnlg-qa-full
+nuprl/MultiPLCoder-15b
+FYP19/t5-small-finetuned-sql5
+subset-data/finetune-5bb8b9feb9b9
+MaitreyaV/code2docstring_ruby
+ctestagrose95/wikiSQL
+MFDLR/llm-finetuned-run02
+Universal-NER/UniNER-7B-all
+lionelchg/llama-2-7b-dolly15k-ft2
+afkfatih/llama-2-7b-tr-4bit
+Pearax/Stable-Platypus2-13B-LIMARP
+yzhuang/autotree_llama_small_nxor_l1_16_sin
+victornica/RL-tuned_scuffed_molgen_blankinputmoreepochs
+MaitreyaV/t5-hf-ruby2text
+defog/sqlcoder
+ahalat/llama-2-7b-finetuned-filtering
+simsim314/WizardLM-70B-V1.0-HF
+arsalan432/llama2-dummy
+soajan/llama2-guessTitlewithOCR-extended
+OpenBuddy/openbuddy-coder-15b-v10-bf16
+thisishadis/T5_on_pubmed
+victornica/RL-tuned_scuffed_molgen_blankinputMAXepochs
+mncai/Challenge_CoT-preprocessed_T0_30k_epoch1
+quantumaikr/llama-2-70b-fb16-orca-chat
+victornica/RL-tuned_scuffed_molgen_AWblankinputmoreepochs
+jxiao/llama2_intent
+Experimental-Models/D-Llama-2-7b-4k-3e-6-1m
+weiren119/Taiwan-LLaMa-v1.0-4bits-GPTQ
+pankajmathur/model_007_13b_v2
+chunwoolee0/ke_t5_base_aihub
+Captluke/Llama-2-7b-finetune-v3
+YokaiKoibito/llama2_70b_chat_uncensored-fp16
+mncai/Challenge_CoT-preprocessed_T0_30k_epoch2
+Experimental-Models/D-Llama-2-7b-4k-3e-6-500k-epoch-1
+steerapi/TheBloke-Llama-2-13b-chat-fp16-w8-g128
+yupimrandy/butcher
+mihirinamdar/llama2-7b-bot-v1
+Captluke/Llama-2-7b-chat-finetune
+steerapi/TheBloke-Llama-2-7b-chat-fp16-w8-g128
+yupimrandy/DialoGPT-medium-butcher
+Pamripose/Llama-2-7b-chat-finetune
+aeolian83/poly-ko-1.3b-translate
+hclaim/clamgptattempt4
+totally-not-an-llm/EverythingLM-13b-16k
+FreedomIntelligence/phoenix-multiple-langs-v1
+TheBloke/Llama-2-13B-German-Assistant-v4-GPTQ
+impactframes/IF_PromptMKR_GPTQ
+sartmis1/starcoder-finetune-openapi
+nkpz/llama2-22b-daydreamer-v2
+tingkart/MLCNorway
+alimtegar/WizardLM-13B-V1.2-sharded
+marco-bordessoule/llama-2-7b-with-data1
+Trelis/Llama-2-13b-chat-hf-function-calling-GPTQ
+alimtegar/WizardCoder-15B-V1.0-sharded
+TigerResearch/tigerbot-13b-chat-v2
+Asilkan/mycustom_summarization_model
+Captluke/Llama-2-7b-chat-finetune-v1
+mohsin579/flan-t5-base-prompt-respinse
+wandabwa2004/falcon-7b-instruct-safcom
+alkahestry/llama2-13B-v1
+duwuonline/stupid-gpt
+FelixChao/llama2-13b-math1.1
+FYP19/my_model-2
+victornica/RL-tuned_scuffed_molgen_d2dr
+zarakiquemparte/kuchiki-l2-7b
+blueplanet2373/llama-2-7b-miniguanaco
+tsuyuan/Llama-2-7b-unit_random_embed
+tsuyuan/Llama-2-7b-unit
+Trelis/Llama-2-7b-chat-hf-hosted-inference-8bit
+nileshevrywhr/llama-2-7b-nileshevrywhr
+ajanderson1/llama-2-7b-miniguanaco
+davzoku/cria-llama2-7b-v1.2
+matvalan/finetuning-llama
+shanover/medbot_godel_v3
+diana9m/GPT2small_kd4
+Q-bert/llama-450m
+beaugogh/Llama2-7b-sharegpt4
+TheBloke/OpenOrca-Platypus2-13B-GPTQ
+TheBloke/OpenOrca-Platypus2-13B-GGML
+RandomNameAnd6/llama-2-7b-Jalex-14k
+The-Face-Of-Goonery/Huginn-v3-13b
+vandung/vit5-large-vietnews-summarization-finetuned-xsum
+TheBloke/EverythingLM-13B-16K-GPTQ
+TheBloke/EverythingLM-13B-16K-GGML
+vandung/t5paraphase-finetuned
+vandung/t5-large-paraphase-finetuned
+Experimental-Models/D-Llama-2-7b-4k-3e-6-500k-epoch-2
+santoshtyss/lt5-longbase
+Envoid/Bacchus-22B
+petals-team/StableBeluga2
+TheBloke/LlongOrca-7B-16K-GPTQ
+TheBloke/LlongOrca-7B-16K-GGML
+Experimental-Models/D-Llama-2-7b-4k-3e-6-500k-epoch-3
+EgilKarlsen/GPT2-System
+yzhuang/autotree_llama_small_nxor_l1_2_local
+andreaskoepf/llama2-7b-megacode2_min100
+Gigagash/codeparrot
+yupimrandy/DialoGPT-medium-hughie
+osazuwa/causalLLM-king
+Gigagash/codeparrot-small
+victornica/RL-tuned_scuffed_molgen_improvedd2dr
+johaanm/llama2-openassistant-a100
+kyle-mirich/new_translation_alpha_v1
+vtiyyal1/llama-fp16-13b-tobaccowatcher
+saiverse/pylorai-pythia-lora-cogmentai
+approach0/mathy-vicuna-13B-FFT
+fengtc/Llama-2-7b-chat-hf
+tlphams/gridone-ko-llm-5.8b
+sidharthaM/llama_yelp_data
+zjunlp/knowlm-13b-base-v1.0
+myatticus/finetuned-Merger-Agreement
+azale-ai/DukunLM-7B-V1.0-Uncensored
+azale-ai/DukunLM-13B-V1.0-Uncensored
+azale-ai/DukunLM-7B-V1.0-Uncensored-sharded
+azale-ai/DukunLM-13B-V1.0-Uncensored-sharded
+rombodawg/LosslessMegaCoder-llama2-7b-mini
+iakarshu/latr-base
+zjunlp/knowlm-13b-zhixi
+TaylorAI/Flash-Llama-3B
+raygx/distilGPT-NepSA
+GeneralRincewind/ShakespeareGPT
+sachinsingh31/flan-t5-base-samsum
+dwlee/ds_base_alpha
+huanhkv/llama-2-7b-demo
+kimvu/llama-2-7b-guanaco
+mohsin579/flan-t5-base-prompt-response
+usamakenway/llama2-7b-hf-chat-small
+Suchinthana/MT-5-Sinhala-Wikigen
+fengtc/Chinese-Llama-2-7b
+tsuyuan/Llama-2-13b-unit_random_embed
+aisyahhrazak/t5-small-bahasa-questiongenerator
+raygx/GNePT
+tsuyuan/Llama-2-13b-unit
+Samuael/llama-2-7b-tebot
+JuiThe/mt5large_Wreview
+Defetya/sharded-nous-hermes
+muskan2004/flan-t5-base-prompt-response
+YoussefThabet/youssefllamaGoogle
+tsuyuan/Llama-2-7bf-unit_random_embed
+tsuyuan/Llama-2-7bf-unit
+shakermaker-1/cjpw_finetune_test2
+Xilabs/calypso-3b-alpha-v2
+TheBloke/Huginn-v3-13B-GPTQ
+TheBloke/Huginn-v3-13B-GGML
+Rozi05/QuoteVibes_Model_Trained
+tuankg1028/llama-2-7b-miniguanaco
+Arc53/docsgpt-40b-falcon
+Arc53/docsgpt-14b
+MoinFaisal/llama-2-7b-custom
+viktorshamal/DialoGPT-small-joshua
+bigcode/santacoder-cf
+bigcode/santacoder-ldf
+davidli49/llama-2-7b-miniguanaco
+bradmin/ppo_model
+PetraAI/Nashmi
+myatticus/Contracts
+sherif1311/flan-t5-base-intent
+sherif1311/flan-t5-base-tobacco_intent
+msb-roshan/molgpt
+sherif1311/flan-t5-base-tobacco_intend
+sherif1311/flan-t5-base-tobacco_intd
+sherif1311/flan-t5-base-classification_int
+sherif1311/flan-t5-base-classification_int1
+Captluke/Llama-2-7b-chat-wiki-v2
+ronlik26/llama-2-7b-smallf
+jmstanley/stabilityai-StableBeluga2-GGML
+khhuang/zerofec-qa2claim-t5-base
+tatoy/llama-2-7b-miniguanaco
+lragnarsson/Llama-2-13b-geocoder
+bobsmith88/llama2-qlora-finetuned-french-merged
+khhuang/zerofec-daqa-t5-base
+rajpabari/llama-7b-rl-merged
+Severian/Firelight-13B_v1
+bweln/llama-2-7b-miniguanaco
+deepse/CodeUp-alpha-Llama-2-13b-chat-hf
+PakistanLegalAI/test_arslan1
+huanhkv/llama-2-7b-instruction-tuning
+johaanm/llama2-openassistant-a100-1
+ittailup/lallama-13b-merged
+TIGER-Lab/llama1_7b_aqua_sft
+kyle-mirich/new_translation_alpha_v2
+TIGER-Lab/llama1_7b_gsm8K_sft
+TIGER-Lab/llama1_7b_math_sft
+huanhkv/llama-2-7b-instruction-tuning_full
+smithclay/llama2-norton
+Facehugger135/llm
+andreaskoepf/llama2-7b-megacode2_frac05
+kyle-mirich/new_translation_alpha_v3
+andreaskoepf/llama2-13b-oasst-baseline
+hihisu1231/mbti
+mimi1998/my_awesome_model
+ZhiguangHan/output
+ODDHOOD/t5-large-pretrain-spanmasking
+ziqingyang/chinese-alpaca-2-13b
+pritam3355/t5-small-finetuned-en-to-de-accelerate
+samaksh-khatri/gmra_model_gpt2_14082023T103028
+PyaeSoneK/LlamaV2LegalFineTuned
+Norquinal/llama-2-7b-claude-chat-rp
+prudhvirazz/google-flan-t5-small-modified_v2
+samaksh-khatri/gmra_model_gpt2_14082023T112228
+tribber93/Llama-2-7b-chat-hf-sharded-bf16-2GB
+davzoku/cria-llama2-7b-v1.3
+genggui001/XVERSE-13B-LLAMA
+TheTravellingEngineer/llama2-7b-chat-hf-dpo
+kumari01priyanka/3zl5-3qa8-bhj0
+johaanm/llama2-openassistant-chatbased
+ihgn/Paraphrase-Detection-T5
+konbraphat51/KATO_prototype_small2015
+konbraphat51/kato_prototype_medium2015
+newronai/llama-2-7b-positiveOnly-adapterMerged
+scural/arxiv_model
+diana9m/t5_kd4
+jkhan447/results
+davidkim205/komt-Llama-2-7b-chat-hf
+yzhuang/autotree_llama_small_nxor_l1_2
+brngylni/demo_train
+princetyagi/iqlt5basewithRMgptneo125m
+princetyagi/iqlt5basewithRMgptneo350m
+princetyagi/ppot5basewithRMgptneo125m
+SachinKaushik/llama2-7b-chat-5g
+samaksh-khatri/gmra_model_gpt2-medium_14082023T134929
+princetyagi/ppot5basewithRMgptneo350m
+khointn/sebot_dpo
+ZhiguangHan/codet5p-220m
+Sinju/tuned_llama2
+vishnu-vs/llama-7bhf
+TheBloke/LosslessMegaCoder-Llama2-7B-Mini-GGML
+TheBloke/LosslessMegaCoder-Llama2-7B-Mini-GPTQ
+Kazuya393/llama-2-7b-miniguanaco
+TheBloke/CodeUp-Alpha-13B-HF-GPTQ
+TheBloke/CodeUp-Alpha-13B-HF-GGML
+HumanDynamics/reward_model
+HumanDynamics/ppo_model
+HumanDynamics/sft_model
+kyoyanagi/vanilla-mt5-tiny4L-vs16k
+ajibawa-2023/carl-llama-2-13b
+kyoyanagi/vanilla-mt5-tiny6L-vs16k
+kyoyanagi/vanilla-mt5-tiny8L-vs16k
+davidkim205/komt-Llama-2-13b-hf
+khoantap/llama-2base
+maribelrb/falcon-7b-instruct-v2
+google/t5_11b_trueteacher_and_anli
+MNewe/llama-2-7b-miniguanaco
+TheBloke/llama2-22B-daydreamer-v2-GPTQ
+TheBloke/llama2-22B-daydreamer-v2-GGML
+Michelvh/flan-small-mc-question-options-generation
+learn3r/t5_3b_epoch_10
+ODDHOOD/t5-large-pretrain-last-response
+TitanML/ct2-bfloat16-Llama-2-7b-hf
+vihangd/smartplat-3b-v1
+FarziBuilder/llama-2-7b-custom
+samaksh-khatri/gmra_model_gpt2-medium_14082023T183423
+bhenrym14/airophin-v2-13b-PI-8k-fp16
+TitanML/ct2-bfloat16-Llama-2-7b-chat-hf
+ittailup/lallama-13b-merged2
+mariiaponom/redp_7b_class
+Lakoc/fisher_dec_6_layers
+TitanML/ct2-bfloat16-Llama-2-13b-chat-hf
+Arsalan7/explainability
+vvasanth/llama-alpaca-food-140823
+TitanML/ct2-bfloat16-Llama-2-13b-hf
+EgilKarlsen/GPT2-Application
+openthaigpt/openthaigpt-1.0.0-beta-7b-chat-ckpt-hf
+sortxyz/llama2_finetuned
+Dallidalli/llama-2-7b-miniguanaco
+KoboldAI/LLaMA2-13B-Holomax
+TitanML/ct2-bfloat16-falcon-7b-instruct
+Karl-Wu/Llama-2-7b-chat-hf-function-calling
+TitanML/ct2-bfloat16-falcon-7b
+alvynabranches/ft-x-gen
+mariiaponom/redp_7b_summ
+TheBloke/PULI-GPT-3SX-GPTQ
+CesarGoersch/llama-2-7b-plantaofiscal
+konbraphat51/KATO_prototype_medium2015edit
+nejnej/airoboros_l2-13b-v4-ckpt-80_finetuned
+nejnej/airoboros_l2-13b-v4-ckpt-50_finetuned
+victornica/RL-tuned_scuffed_molgen_overfitcnr1
+BramVanroy/Llama-2-13b-chat-dutch
+bibidentuhanoi/my-awesome-mode
+InstaDeepExternalProject/llm_training_20230808_182741
+nkpz/llama2-22b-daydreamer-v3
+santoshtyss/lt5-longlarge
+santoshtyss/lt5-large
+tribber93/Llama-2-7b-chat-hf-sharded-bf16-5GB
+cooki3monster/Llama-2_mj
+raigon44/iTellJokes
+AyyYOO/Luna-AI-Llama2-Uncensored-FP16-sharded
+Kumail00Alawa/look-elsewhere
+Arsalan7/explainability1
+parsi-ai-nlpclass/persian-T5-formal2informal-transformer-model
+konbraphat51/KATO_prototype_1b2015edit
+Hari93/res
+myn11/gpt2_hdl
+victornica/RL-tuned_scuffed_molgen_cnr1_biggerbatches
+jpoz/llama-2-7b-react
+arvind2626/Stable-Beluga-arvind
+wesley7137/Eden-7B-V2-merged
+ssaaeee/S23-persian-informal-to-formal-gpt2-bolbolzaban-based
+Legacy7070/Psychedelic-Trip-Report-Generator
+yashonwu/t5-base-sft-sports
+pablo-tech/Llama-2-7B-bf16-sharded-7
+andreaskoepf/llama2-13b-megacode2_min100
+Yijia-Xiao/MedLLaMA
+vj1148/llama-2-7b-legal
+yashonwu/t5-base-rlhf-bm25-sports
+RohitKeswani/flant_t5_base_finetune_test
+johaanm/llama2-openassistant-chatbased1
+victornica/RL-tuned_scuffed_molgen_cnr1_smmollrbatches
+OpenAssistant/llama2-13b-megacode2-oasst
+Icaruas/Happy_Feet16k
+akaigraham/kgpt2
+rombodawg/LosslessMegaCoder-llama2-13b-mini
+devonho/llama-2-7b-miniguanaco
+akaigraham/kaigpt-123
+YokaiKoibito/falcon-40b-GGML
+chronbmm/byt5-sanskrit-analyzer-hackathon
+FelixChao/llama2-13b-math1.2
+buddhist-nlp/byt5-sanskrit-analyzer-hackathon
+chunwoolee0/cnn_dailymail_t5_small
+mzbac/llama2-13b-grammar-corrector
+bhenrym14/airophin-v2-13b-PI-8k-GPTQ
+michaelhhl/python-code-generate
+OFA-Sys/InsTagger
+kajuma/translater-1.7b
+limeblue/llama-2-7b-miniguanaco
+lvkaokao/llama2-7b-hf-chat-lora-v2
+ganeshkgp/LaMetrix
+vrsen/llama-7b-chat-ft
+aeolian83/Gugugo_for_DnD_v0.6
+samaksh-khatri/gmra_model_gpt2-medium_15082023T113143
+kyle-mirich/new_translation_alpha_v4
+tosh97/ko_summ
+wanglab/ClinicalCamel-70B
+obaidtambo/urdu_gahzal_gpt2
+fokyoum9/gpt2
+Zekunli/alpaca-2-7b-chat-gpt4
+squarelike/polyglot-ko-medical-5.8b
+heegyu/hh_rlhf_rm_open_llama_3b-hf
+Zekunli/alpaca-2-7b-chat-clean
+beaugogh/Llama2-13b-sharegpt4
+ecosumit/gpt-model
+davzoku/cria-llama2-7b-v1.3-GGML
+Manbarll/llama2-22B-daydreamer-v3-GPTQ-4bits-32g-ActOrder
+Araaa/fypllm
+jojo0217/step2_mk6
+TheBloke/LosslessMegaCoder-Llama2-13B-Mini-GGML
+TheBloke/LosslessMegaCoder-Llama2-13B-Mini-GPTQ
+fia24/tensorflowt5banel
+fokyoum9/gpt2test
+mohsin579/flan-t5-base-prompt-response2
+FunyTan/llama-2-7b-miniguanaco
+alzoubi36/priva_t5-v1.1-3b
+FarziBuilder/LLama-remark-try2
+mychen76/llama-2-7b-int4-printer-manual-2
+YoussefThabet/Llama2Colab
+OFA-Sys/gsm8k-rft-llama7b-sample100
+ronlik26/llama-2-7b-reccb10k
+TheBloke/GodziLLa2-70B-GGML
+TheBloke/GodziLLa2-70B-GPTQ
+nikinetrahutama/afx-issue-model
+hem007/Llama-2-7b-chat-finetune
+samaksh-khatri/gmra_model_gpt2-medium_15082023T162956
+inkoziev/chargpt-96M
+cenkersisman/gpt2-turkish-900m
+naumanshah007/llama-2-7b-naumanshah007
+yvillamil/Llama-2-7b-chat-ft-50k
+fokyoum9/gpt2final
+ajibawa-2023/carl-33b
+frank098/Stable-Platypus2-13B-reWOO-planner
+davesoma/SageBeluga13
+nielsandriesse/llama-2-complex-query-explanation
+PratapB/llama2_7b_text_to_sql
+MNewe/llama-2-7b-GermanDPA_02
+augustocsc/gpt-small
+mariiaponom/redp_3b_class
+assafm/llama-2-13b-trained-cs-combined-002
+nadsoft/nadsoft-revuer-13b-v0.1
+avemio-digital/pythia-2.8b-products_teltec
+sunil9dbit/llama-2-7b-miniguanaco
+MohammedAlsayani/aragpt2-base-with_arabic_quotes
+mariiaponom/redp_3b_summ
+jojo0217/step3_mk6
+GreenBitAI/LLaMA-3B-2bit-groupsize8
+ronlik26/llama-2-7b-reccbs50k
+renyulin/gpt2-movie-review-ctrl-ppo
+MFDLR/llm-finetuned-run03
+rameshm/llama-2-13b-mathgpt-v4
+ssaaeee/informal2formal
+TitanML/llama2-13B-chat-4bit-AWQ
+Yhyu13/oasst-rlhf-2-llama-30b-7k-steps-gptq-2bit
+mohsin579/flan-t5-base-prompt-response3
+Henil1/mt5-small-hindi-summary
+ajibawa-2023/scarlett-33b
+Ralphch97/StarChatBeta_Finetuned_Ralph
+mychen76/llama-2-7b-int4-code-2
+Trelis/Llama-2-7b-hf-function-calling
+nikinetrahutama/afx-issue-llama-model
+dickheadmorron12/andrewtate
+dshin01/rlhf_helpful_and_harmless
+ajibawa-2023/scarlett-13b
+masa8x/llama2-ft-japanese
+acrastt/Marx-3B
+Chanblock/llama2Remates
+GreenBitAI/LLaMA-3B-2bit-groupsize16
+MFDLR/llm-finetuned-run04
+vkiria/lora-flan-t5-large-chat
+SmartCodar/ameetLlama-2-7b-chat-finetune
+GreenBitAI/LLaMA-3B-2bit-groupsize32
+MarmoraAI/MarmoraGPT
+TheBloke/Llama2-22B-Daydreamer-v3-GGML
+TheBloke/Llama2-22B-Daydreamer-v3-GPTQ
+satvikp/llama-2-7b-miniguanaco
+sambitchakhf03/chatbox-llm-merged
+yvillamil/Llama-2-13b-chat-ft-ld-50k
+paytonray/my_awesome_billsum_model
+GreenBitAI/LLaMA-2-7B-2bit-groupsize32
+victornica/RL-tuned_scuffed_molgen_cnr1_2
+Ricdeq/Trained_Falcon
+steerapi/TheBloke-Llama-2-7b-chat-fp16-w8-g128int8
+satvikp/mj-prompter
+Joelwee/MarmoraGPT2
+zarakiquemparte/zaramix-l2-7b
+sharadjain/llama-2-7b-chat-finetune
+OlawumiSalaam/QAt5_squad_v1
+tschmmm/llama-2-13b-bdcheck_r1
+rshrott/description-together-ai
+Stevross/Astrid-LLama-7B
+aprilzoo/llama-2-7b-convobot-full-dateset-neat-spaceship-5
+UBC-NLP/AraT5v2-base-1024
+johaanm/llama2-openassistant-chatbased2
+mychen76/llama-2-7b-int4-printer-2
+dplutchok/llama2-autotrain
+kyle-mirich/new_translation_alpha_v5
+victornica/RL-tuned_scuffed_molgen_cnr1_3
+Sankukai/meta-llama2-imgen_prompt
+edor/Platypus2-mini-7B
+vural/llama-2-7b-miniguanaco
+sxx123/gpt2-medium
+zhohanx/t5-movie-title-retrieval
+tifa-benchmark/llama2_tifa_question_generation
+0x-YuAN/codeparrot-ds
+jsunster/gpt2-imdb-pos-v2
+The-Face-Of-Goonery/Huginn-22b-Prototype
+jionlyu/3B-test
+kyle-mirich/new_translation_alpha_v6
+guolonghui/llama-2-7b-miniguanaco
+OFA-Sys/gsm8k-rft-llama7b2-u13b
+JuiThe/mt5large_Wreview_30e
+Otavares/t5-small-finetuned-wikisql
+kyle-mirich/new_translation_alpha_v7
+Amal17/distilgpt2-finetuned-wikitext2
+Otavares/model_pre_tuning
+Joshua8966/pretrained-chinese-llama2-13b-chat
+kyle-mirich/new_translation_alpha_v8
+OFA-Sys/gsm8k-rft-llama13b-u13b
+upstage/SOLAR-0-70b-8bit
+smithclay/llama-2-7b-miniguanaco
+JuiThe/mt5small_Wreview_30e
+sgr23/stack-llama-2
+Spico/Humback-Myx
+satvikp/llama_movie_disc
+yzhuang/autotree_llama_small_nxor_l2_2
+Spico/Humback-M0
+OFA-Sys/gsm8k-rft-llama13b2-u13b
+achang/fin_gpt2_one_nvda_v2
+Amal17/wikipedia-20230601.ace
+abhinand/Llama-2-7B-bf16-sharded-512MB
+aeolian83/Gugugo_for_DnD_v0.7
+jojo0217/step3_mk7
+pathapati/llama2_7b_dbshift
+mychen76/llama-2-7b-printer-dolly-tm-t88v-model
+SIDDK/my_marathi_summarization_model
+luisroque/Llama-2-7b-minipython-instruct
+Voicelab/trurl-2-13b
+TheBloke/Scarlett-7B-GGML
+TheBloke/Scarlett-7B-GPTQ
+djinnn/Bhasa_model
+harshit989/my_awesome_billsum_model
+konbraphat51/KATO_prototype_medium2023_202308162
+alzoubi36/priva_t5-small
+TheBloke/Scarlett-13B-GGML
+TheBloke/Scarlett-13B-GPTQ
+alzoubi36/priva_t5-base
+alzoubi36/priva_t5-large
+alzoubi36/priva_t5-v1.1-base
+alzoubi36/priva_t5-v1.1-large
+Zekunli/alpaca-7b-lora-hf
+steerapi/TheBloke-Llama-2-13b-chat-fp16-w8-g128int8
+pathapati/llama-2-7b-dbshift
+Zekunli/alpaca-7b-lora-gpt4-hf
+Voicelab/trurl-2-7b
+carlebiro/llama-7b-hf
+4bit/medllama2_7b
+skmrafi/llama-2-7b-miniguanaco
+TheBloke/scarlett-33B-GPTQ
+TheBloke/scarlett-33B-GGML
+flozi00/Llama-2-13b-german-assistant-v5
+ronlik26/llama-2-7b-reccbs100k
+mohsin579/flan-t5-base-prompt-response4
+hongce-tech/llama-2-7b-miniguanaco
+mohsin579/flan-t5-base-prompt-response5
+huggingface-xu/hello_lm
+922-Narra/llama-2-7b-chat-tagalog-v0.1d
+TheBloke/Carl-Llama-2-13B-GPTQ
+yitong241/llama-recipe-7B-3epoch-12batch
+kellkubrick/FRED-T5-RefinedPersonaChat-qint8
+abhishek/llama2guanacotest
+PseudoCrocodiles/llama-2-7b-int4-python-code-20k
+A0B0C/Flacon
+PseudoCrocodiles/llama-2-7b-int4-python-code-20k_v2
+Natal/sentiment-analysis-bitcoin-tweets
+zhohanx/t5-movie-title-retrieval-xl
+prudhvi1123/llama-2-7b-miniguanaco
+alzoubi36/pglue_policy_ie_a_t5-small
+alzoubi36/pglue_opp_115_t5-small
+alzoubi36/pglue_piextract_t5-small
+alzoubi36/pglue_policy_detection_t5-small
+alzoubi36/pglue_policy_ie_a_t5-v1.1-small
+alzoubi36/pglue_policy_ie_b_t5-small
+alzoubi36/pglue_policy_ie_a_priva_t5-small
+monuminu/indo-instruct-llama2-70b
+nikinetrahutama/afx-issue-llama-chat-model-2
+sameehaafrulbasha/t5-sql
+alzoubi36/pglue_policy_qa_t5-small
+TheBloke/Carl-33B-GPTQ
+TheBloke/Carl-33B-GGML
+alzoubi36/pglue_opp_115_priva_t5-small
+alzoubi36/pglue_opp_115_t5-v1.1-small
+alzoubi36/pglue_policy_ie_a_priva_t5-base
+alzoubi36/pglue_piextract_priva_t5-small
+alzoubi36/pglue_policy_ie_a_t5-base
+alzoubi36/pglue_piextract_t5-v1.1-small
+alzoubi36/pglue_policy_detection_priva_t5-small
+alzoubi36/pglue_policy_detection_t5-v1.1-small
+Cyrema/Llama-2-7b-Bogpit
+alzoubi36/pglue_policy_ie_b_priva_t5-small
+alzoubi36/pglue_policy_ie_b_t5-v1.1-small
+alzoubi36/pglue_policy_ie_a_priva_t5-v1.1-base
+nikinetrahutama/afx-ai-llama-chat-model-3
+alzoubi36/pglue_policy_ie_a_t5-v1.1-base
+alzoubi36/pglue_policy_qa_t5-v1.1-small
+alzoubi36/pglue_policy_qa_priva_t5-small
+alzoubi36/pglue_opp_115_priva_t5-base
+kingbri/LLaMA2-13B-Holomax-GPTQ
+4bit/medllama2_7b_s
+crewdon/formulaLoraRawMerged
+smcmurtrey/my-summary-model
+alzoubi36/pglue_opp_115_t5-base
+duwuonline/my-translation
+haxuanson-rmit/RMIT-intro
+alzoubi36/pglue_privacy_qa_t5-v1.1-small
+smcmurtrey/llama-2-7b-custom
+rajuptvs/bigscience_bloom-560m_sharded_8bit
+aleandrananu/qcpg-dialogue-sentence
+alzoubi36/pglue_opp_115_priva_t5-v1.1-base
+georgepullen/Llama-2-13b-hf-sharded-bf16-1GB
+arya555/vicuna-7b-v1.5-hf
+alzoubi36/pglue_privacy_qa_t5-small
+alzoubi36/pglue_piextract_priva_t5-base
+rajuptvs/bigscience_bloom-560m_sharded
+alzoubi36/pglue_opp_115_t5-v1.1-base
+carlebiro/Llama-2-7b-chat-hf
+kelSidenna/llama-2-13b-SoftwareReq
+rajuptvs/bigscience_bloom-560m_sharded_bf16
+alzoubi36/pglue_policy_detection_priva_t5-base
+TheBloke/Carl-13B-GGML
+TheBloke/Carl-13B-GPTQ
+JGKD/JangoGPTv1.0
+willianhasse/tinystories-hf
+alzoubi36/pglue_piextract_t5-base
+rajuptvs/stabilityai_stablecode-instruct-alpha-3b-sharded-bf16
+nikinetrahutama/afx-ai-llama-chat-model-4
+Mani5112/llama-2-7b-custom
+alzoubi36/pglue_policy_detection_t5-base
+alzoubi36/pglue_piextract_priva_t5-v1.1-base
+alzoubi36/pglue_privacy_qa_priva_t5-small
+rajuptvs/stabilityai_stablecode-instruct-alpha-3b-sharded-8bit
+alzoubi36/pglue_policy_detection_priva_t5-v1.1-base
+oananovac/hillary_correct_tokenize_10_epochs
+banhabang/vit5-base-tag-generation
+alzoubi36/pglue_piextract_t5-v1.1-base
+alzoubi36/pglue_policy_ie_b_priva_t5-base
+banhabang/t5_model_37500
+alzoubi36/pglue_policy_detection_t5-v1.1-base
+caracena/aguila_spanish_alpaca
+PseudoCrocodiles/llama-2-7b-int4-python-code-20k_v4
+alzoubi36/pglue_policy_ie_b_t5-base
+oof-baroomf/MuseGPT-merged
+asedmammad/Marx-3B-GGML
+alzoubi36/pglue_policy_ie_b_priva_t5-v1.1-base
+crewdon/formulaLoraRawTunedMerged
+ElixIA/Market-JSON
+unionai/Llama-2-7b-hf
+unionai/Llama-2-7b-hf-8bit
+RuterNorway/Llama-2-13b-chat-norwegian
+TimurIs/llama-2-7b-isaevt-example-01
+research-dump/t5-small_hoax_timestamp_classifier_v1
+TheBloke/orca_mini_v3_70B-GPTQ
+TheBloke/orca_mini_v3_70B-GGML
+alzoubi36/pglue_policy_qa_priva_t5-base
+vwxyzjn/starcoderbase_1_0_triviaqa
+alzoubi36/pglue_policy_ie_b_t5-v1.1-base
+alzoubi36/pglue_policy_qa_t5-base
+Sliden/mofu_openllama
+intellya22/llama-2-7b-marco-sr
+acrastt/Puma-3B
+PseudoCrocodiles/llama-2-7b-int4-python-code-20k_v5
+vietgpt-archive/dama-7b-92000
+Open-Orca/LlongOrca-13B-16k
+alzoubi36/pglue_policy_qa_priva_t5-v1.1-base
+PAIXAI/Astrid-LLama-7B
+lshao123/mnoukhov_llama-7b-se
+aprilzoo/llama-2-7b-convobot-full-dateset-charmed-cloud-9
+loganamcnichols/3neg4_2epoch_llama
+andreaskoepf/falcon-40b-megacode2
+willianhasse/gpt2-owt-ds
+hihisu1231/mbti_small
+gokyo/my_awesome_eli5_clm-model
+michaelhhl/code-gen-accelerate
+diegomiranda/text-to-cypher
+andreaskoepf/llama2-13b-orcabest
+OpenAssistant/falcon-40b-megacode2-oasst
+ssbuild/tigerbot-13b-chat-int4
+alzoubi36/pglue_policy_qa_t5-v1.1-base
+rombodawg/LosslessMegaCoder-Falcon-40b-mini
+yitong241/llama-recipes-13b-3epoch-batch32
+threem/llama2_test
+Peerlessant/llama-2-7b-sql
+mzbac/llama2-13b-grammar-corrector-v1.1
+jkhan447/stylechange_task1-clean
+venkatsrini/tmp_trainer
+victornica/RL-tuned_scuffed_molgen_crn1_4_harshersubtract
+coconutzhang/llama-2-7b-miniguanaco
+naumanshah007/Llama-2-7b-chat-finetune-prime-minister-pakistan
+kavinilavan/Llama-2-13b-chat-hf-array_agent0_v1_2
+RicardoLee/Llama2-chat-7B-Chinese-withCode3W-LoRA
+carlAIwarts/Llama2-13b-Chinese-chat
+mimi33/vanilla-mt5-tiny6L-vs32k
+chargoddard/platypus-2-22b-relora
+nikinetrahutama/afx-ai-llama-chat-model-5
+mimi33/vanilla-mt5-tiny4L-vs32k
+victornica/RL-tuned_scuffed_molgen_crn1_4_harshersubtractmoreepochs
+Cyrema/Llama-2-7b-Cesspit
+oananovac/enron_correct_tokenize_10_epochs
+Cyrema/Llama-2-7b-Slimpit
+lshao123/mnoukhov_llama-7b-se-rm
+lshao123/mnoukhov_llama-7b-se-rl
+jypppp/llama-2-7b-manual_GPT_ver2
+bh8648/codeparrot
+yeontaek/llama-2-70b-IA3-guanaco
+datadriven/740_dialog_polyglot-ko-5.8b__A100_1x
+snigdhachandan/xyz
+mimi33/vanilla-mt5-tiny8L-vs32k
+rovi27/gpt2-wikitext2
+nikinetrahutama/afx-ai-llama-chat-model-6
+imamsyahid/medicalchat
+Dietmar2020/WizardLM-1.0-Uncensored-Llama2-13b-GermanQuad-V2-16Bit_V3
+Aspik101/trurl-2-7b-pl-instruct_unload
+yzhuang/autotree_llama_small_nxor_l1_2_v2
+itsrocchi/prova-it-seeweb-LLM-it
+ManopeDavid/gpt2-sharded-bf16-100MB
+sangmin6600/t5-v1_1-base-ko
+NihilArmstrong/llama-2-7b-td-academy-processed
+ManopeDavid/gpt2-sharded-bf16-100MB-GPU
+ManopeDavid/gpt2-sharded-bf32-100MB-GPU
+mayur456/lora-flan-t5-large-chat
+HaiTao90/gpt2-wiki
+alzoubi36/priva_t5-v1.1-small
+hihisu1231/mbti_100
+alzoubi36/pglue_policy_ie_a_priva_t5-v1.1-small
+alzoubi36/pglue_opp_115_priva_t5-v1.1-small
+kavinilavan/Llama-2-13b-chat-hf-array_agent0_v1_3
+alzoubi36/pglue_piextract_priva_t5-v1.1-small
+alzoubi36/pglue_policy_detection_priva_t5-v1.1-small
+cha7ura/category-classification-5-llama-2-7b-dummy-data-100-v1
+mahendrachouhan/llama-2-7b-mahi
+angelacy/t5-small-finetuned-xsum
+alzoubi36/pglue_policy_ie_b_priva_t5-v1.1-small
+oananovac/hillary_correct_tokenize_context_last_msg_10_epochs
+bh8648/codeparrot-small
+ophycare/llama-2-7b-chat-ophycare
+yeontaek/Platypus2-13B-LoRa
+DarrenChensformer/mt5-small-trim-50
+alzoubi36/pglue_privacy_qa_t5-base
+alzoubi36/pglue_privacy_qa_t5-v1.1-base
+DarrenChensformer/mt5-small-trim-100
+cha7ura/category-classification-5-llama-2-7b-dummy-data-1000-v1
+CONCISE/LLaMa_V2-13B-Instruct-Uncensored-HF
+alzoubi36/pglue_policy_qa_priva_t5-v1.1-small
+pr3ss/BioMedLM_sharded
+Stable-string/gpt2-zh-novel-ancient
+oananovac/enron_correct_tokenize_context_last_msg_10_epochs
+newronai/llama-2-7b-chat-merged-Trial1-8bit
+SilentLearner/model_save_subgen
+jtunguyen/llama-2-7b-guanaco
+zarakiquemparte/zarablend-l2-7b
+StephenLau/MyLlama
+alzoubi36/pglue_policy_ie_a_priva_t5-large
+alzoubi36/pglue_privacy_qa_priva_t5-v1.1-small
+RuterNorway/Llama-2-13b-chat-norwegian-GPTQ
+mohamedtolba/franco
+Voicelab/trurl-2-7b-8bit
+alzoubi36/pglue_policy_ie_a_t5-large
+thr10/th-ins-coder-v1
+mohamedtolba/mst
+mohamedtolba/franco-arabic
+xsa-face/llama-2-7b-miniguanaco
+Alexllm/Llama2-chat-13B-Chinese-Med-V1
+YassineBenlaria/t5-small-finetuned-xsum
+Voicelab/trurl-2-13b-8bit
+kajdun/iubaris-13b-v3_GGML
+dmallick27/OpenLlama_3b_Demo_Model_17_08_23
+mohamedtolba/franco-arabics
+guardrail/llama-2-7b-guanaco-dolly-mini
+yogeshchandrasekharuni/llama-2-7b-open-orca
+Michelvh/peft-finetune-flan-t5-mc-question-generation
+TheBloke/Llama2-13B-MegaCode2-OASST-GPTQ
+TheBloke/Llama2-13B-MegaCode2-OASST-GGML
+digitalpipelines/llama2_7b_chat_uncensored
+mindreader/llama-recipes-7b-3epoch-batch8
+kwankwan1000/DialoGPT-small-peppa
+sartmis1/starcoder-wikisql
+migtissera/Synthia-7B
+gopinathk-llm/t5-grammar-v1
+charliemktplace/Llama-2-7B-hf-20-sql
+TheBloke/Octocoder-GPTQ
+ganchengguang/Yoko_13B_Japanese_QLoRA
+MFDLR/llm-finetuned-run06
+vwxyzjn/starcoderbase-triviaqa
+ngocminhta/llama-2-7b-chat-vitd
+smirki/autotrain-t5-small-with-big-data-83042142160
+sarankup-newgen/email-train
+shadaab96ghani/llama-13b
+Kunhao/pile-7b-250b-tokens
+sartmis1/starcoder-wikisql-spider
+newsmediabias/UnBIAS-Debiaser
+Manoj21k/QnA_Gpt
+TheBloke/Zarablend-L2-7B-GGML
+TheBloke/Zarablend-L2-7B-GPTQ
+Harshvir/Llama-2-7B-physics
+emozilla/LLongMA-2-13b-16k-flash
+digitalpipelines/llama2_7b_chat_uncensored-GPTQ
+MFDLR/llm-finetuned-run07
+JGKD/JangoGPTv1.5
+MoonShinkiro/goldcan-lora
+jmoney54378256438905/airoboros-cybersharter-13B-testing
+sharadjain/llama-2-7b-chat-profiles
+Yijia-Xiao/7B-samsum
+Yijia-Xiao/7B-mmmlu
+conceptofmind/Pubmed-Llama-2-7b-2e-5-epoch-1
+adleme94/borges_clm-model
+yaamin6236/falcon-7b-instruct-ft
+Mani5112/llama-2-7b-custom-miniguanaco
+yeontaek/Platypus2-13B-IA3
+siacus/huff-test
+YassineBenlaria/t5-small-finetuned-tq-to-ar
+yeontaek/Platypus2-13B-QLoRa
+yashonwu/t5-base-sft-movies
+yzhuang/autotree_llama_small_nxor_l1_2_vit
+heegyu/polyglot-ko-5.8b-chat
+CyberNative/CyberBase-13b
+yzhuang/autotree_llama_small_nxor_l1_2_vit_local
+SreeramKalluri/aigqas_group1
+mjyh/falcon-7b-qlora-sclue-20230601-04-merged
+emozilla/LLongMA-2-13b-flash
+vietgpt-archive/dama-7b-100000
+rohanai777/massive-new
+tuankg1028/nghiem-privacy-policy
+yashonwu/t5-base-rlhf-bm25-movies
+yashonwu/t5-base-sft-cds
+kimnt93/cutypus-7b-inst
+acrastt/Griffin-3B
+Zekunli/alpaca-7b-lora-instructdial-47k
+yashonwu/t5-base-rlhf-bm25-cds
+Saurabh16100/MedLLM-1-1-New
+yaamin6236/falcon-7b-ft
+migtissera/Synthia-13B
+nakcnx/llama-2-otg-beta
+yeontaek/Platypus2xOpenOrca-13B-IA3
+heegyu/llama-2-ko-7b-chat
+iknow-lab/AULM-12.8b-v0
+newronai/llama-2-7b-chat-merged-Trial1-8bit_1
+sarankup-newgen/llama2-13b-email-trained-disk
+hihisu1231/mbti_plus
+TomatoZippo/Myfavouritemodels
+hihisu1231/mbti_plus2
+yashonwu/t5-base-sft-home
+Juniplayground/Mist_LLaMA-2-7B-1024_V3
+heegyu/polyglot-ko-1.3b-chat
+TimurIs/llama-2-7b-isaevt-doctor
+kimsan0622/gpt2-medium
+gaodrew/gaodrew-llama-30b-instruct-2048-Open-Platypus-100steps
+yeontaek/Platypus2xOpenOrca-13B-LoRa
+ezeroz/llama2-7b-digitalme-100000
+kimdwan/t5-base-korean-summarize-LOGAN
+muskan2004/flan-t5-base-prompt-response4
+anthonyfang/myllm2
+vishalkm/medalpaca-7b
+yashonwu/t5-base-rlhf-bm25-home
+Aspik101/trurl-2-13b-pl-instruct_unload
+DrakuTheDragon/Test_2
+yzhuang/autotree_llama_small_nxor_l1_16_vit
+jerome1519/flan-t5-base-finetuned-coding_instructions_2023_08_18__07_51
+caisarl76/llama2-70B-8bit
+hihisu1231/mbti_plus3
+rovi27/gpt2-small-spanish
+hoangphu7122002ai/ViT5_KPI
+jerome1519/t5-small-finetuned-coding_instructions_2023_08_18__08_41
+RAJ11/Llama2-7b-hf-physics_merged
+yashonwu/t5-base-sft-tools
+elonmollusk/mytest-llama2
+Peerlessant/llama-2-7b-sql2
+Abzu/orca-mini-v3-70b-gptq-q4
+caisarl76/llama2-70B-torch-float16
+mncai/Challenge_CoT-preprocessed_T0-Alpaca_60k_epoch1
+newronai/llama-2-7b-chat-merged-Trial1-8bit_2
+TitanML/llama2-7b-chat-4bit-AWQ
+yashonwu/t5-base-rlhf-bm25-tools
+TitanML/llama2-7b-base-4bit-AWQ
+zeeshanali00/llama-2-7b-miniguanaco
+kelSidenna/FT-llama-2-7b
+yogeshchandrasekharuni/llama-2-7b-1-percent-open-orca-1000-steps-v0
+Ishaq-AI/Llama-2-7b-chat-finetune
+talentlabs/chinese-alpaca-2-13b_v18-08-2023
+talentlabs/chinese-llama-2-13b_v18-08-2023
+SUPERSOKOL/uk-summarizer-finetuned-xlsum-uk
+TitanML/vicuna-13b-base-4bit-AWQ
+kochhar/llama-2-7b-guanaco-instruct-sharded-ft-guanaco-2k
+TitanML/vicuna-7b-base-4bit-AWQ
+TitanML/llama2-13b-base-4bit-AWQ
+zohaib99k/OpenOrcaxOpenChat-Preview2-13B
+sia-ai/llama-2-7b-1-percent-open-orca-1000-steps-v0
+chgk13/stablecode-completion-alpha-3b-4k-openvino-int8
+jerome1519/flan-t5-large-finetuned-coding_instructions_2023_08_18__12_06
+santoshtyss/lt5-small
+zarakiquemparte/zarafusionex-l2-7b
+l3utterfly/open-llama-3b-v2-layla
+santoshtyss/lt5-large2
+reciprocate/llama2-7b-gsm8k
+Ichsan2895/Merak-7B-v3
+TnT/process-based-repair
+zarakiquemparte/zarafusionix-l2-7b
+jionlyu/3B-test2
+aiplanet/effi-13b
+seeweb/SeewebLLM-it
+0mij/llama-dblp-kgtext
+emozilla/LLongMA-2-7b-flash
+andreaskoepf/llama2-13b-megacode3-16000
+devdanish99/llama-2-custom-1
+digitalpipelines/llama2_13b_chat_uncensored
+daviddudas/llama-2-7b-invoice-test-v2
+YassineBenlaria/t5-base-finetuned-tq-to-ar
+alzoubi36/pglue_piextract_t5-large
+Faradaylab/Aria-40B
+Faradaylab/Aria-70B
+malaysia-ai/llama2-13b-ft-instruct-1536
+prnv13/llama-7-master
+emozilla/LLongMA-2-7b-16k-flash
+alzoubi36/pglue_piextract_priva_t5-large
+squarelike/polyglot-ko-medical-chat-5.8b
+MFahadTS/llama-2-7b-miniguanaco
+jdowni80/llamaology-7b-test
+omniquad/Llama-7b-hf-shards
+alzoubi36/pglue_opp_115_t5-v1.1-large
+declare-lab/starling-7B
+predictive/marketing
+alzoubi36/pglue_policy_detection_t5-large
+M-Rehan/folder
+chelouche9/falcon40-patents
+taghiAgha/my_awesome_opus_books_model
+Emma5099/gpt3_LogitCompression
+alzoubi36/pglue_policy_detection_priva_t5-large
+suvadityamuk/my_awesome_opus_books_model
+aryansingh3475/collegeappbottest
+rentcarsAI/falcon-7b-codegenerator-qlora-merged
+chelouche9/falcon40-patents-2
+MFDLR/llm-finetuned-run08
+thomaskalnik/llama-2-7b-guanaco-dolly-mini
+MonishMeher/catalyst-kiran
+abacusai/Giraffe-v2-13b-32k
+oscar23333/my_awesome_eli5_clm-model
+xzuyn/GPT-2-Small-Stripped
+nhankins/legal_data_summarizer-finetuned-legal
+magnustragardh/mt5-small-finetuned-amazon-en-es
+xzuyn/GPT-2-XL-Stripped
+Zekunli/alpaca-7b-native-instructdial-63k
+Zekunli/alpaca-7b-lora-instructdial-63k
+gaodrew/gaodrew-gorgonzola-13b
+Salesforce/dialogstudio-t5-base-v1.0
+jdowni80/llamology-7b
+vikp/instruct_rater
+Salesforce/dialogstudio-t5-large-v1.0
+Delcos/Deep70b-Cht-Tned-Inst
+YassineBenlaria/mt5-small-finetuned-tq-to-ar
+alzoubi36/pglue_policy_ie_b_t5-large
+alzoubi36/pglue_piextract_t5-v1.1-large
+Faradaylab/aria-synthesia
+alzoubi36/pglue_policy_detection_t5-v1.1-large
+victornica/molgenscuffed_broken_moardata_moreepochs_moredropout_moredecay
+Kartikey95/flan-t5-large-noun-completion-de
+Kartikey95/flan-t5-large-noun-completion-en
+ronithsharmila/CMarket
+IngeniousArtist/stablelm-3b-finance
+ronithsharmila/sample1
+dripza/mexicyber
+alzoubi36/pglue_policy_ie_b_priva_t5-large
+Jinpkk/codeparrot-ds
+alzoubi36/pglue_policy_qa_t5-large
+biranchi125/falcon7b-ft-sc
+Isotonic/t5-base-ai4privacy
+SilentLearner/model_save_qa
+Youngwoo9/FlanPyeongsan
+akfung/llama_supreme
+mamamiya405/legal_alpaca_merged
+DataLinguistic/DataLinguistic-70B-4bit-V1.0
+TigerResearch/tigerbot-7b-base
+TigerResearch/tigerbot-7b-chat
+BrunoGR/Emotional_LLaMA2_f
+mncai/Llama2-7B-ShareGPT-Wiki_noprompt-News_noprompt-Llama2scheme-wo_systemprompt_epoch2
+kkfromus/cardio-llama-2-7b-miniguanaco-v5
+athrvk/llama2-finetune-for-trends
+magnustragardh/test-bert-finetuned-squad-accelerate
+arviii/nsql-llama-2-7B-bfloat16
+mncai/Challenge_CoT-preprocessed_T0-Alpaca_60k_epoch2
+lukashakkarainen/llama-2-13b-q4_0
+Aaron-96/news_gen
+Youngwoo9/T5_Pyeongsan
+baohl00/hate-speech-detection-vit5-base-1908
+jzdesign/mid-test2
+yeontaek/Platypus2xOpenOrca-13B-IA3-v2.1
+magnustragardh/codeparrot-ds
+dotvignesh/llama-2-7b-edu
+asedmammad/Medllama2-7b-GGML
+MonishMeher/catalyst-bedi
+marcchew/flan-t5-xl-orca-30k
+alzoubi36/pglue_policy_qa_priva_t5-large
+marcchew/flan-t5-3b-lamini-30k
+smangrul/starcoderbase1b-personal-copilot-A100-40GB-colab
+RishuD7/t5_number_v3
+niicovila/llama-v2-tst-law
+casperhansen/falcon-7b-awq
+alzoubi36/pglue_privacy_qa_t5-large
+chunwoolee0/distilgpt2_eli5_clm
+imone/LLaMA2_13B_with_EOT_token
+Livyatan/mT5-small-Hebrew-ParaShoot-QA
+mychen76/Llama-2-7b-chat-printer
+MFDLR/llm-finetuned-run09
+narendar145/Llama-2-7b-chat-finetune
+yashonwu/t5-base-sft-books
+dickheadmorron12/cobratatellm
+cg4/louxtest
+antoineard/llama-2-7b-miniguanaco
+hungeni/LLama2-7B-OAssis1
+yashonwu/t5-base-rlhf-bm25-books
+smangrul/starcoder1B-personal-copilot-merged
+yeontaek/llama-2-13b-QLoRA
+Verdiola/Tosho
+Padlex/ludii_expanded_validated_6_argh
+alzoubi36/pglue_policy_ie_b_t5-v1.1-large
+hungeni/LLama2-7B-AmrutaDB
+TaylorAI/Flash-Llama-7B
+lshao123/myCkpt_llama-7b-se
+yzhuang/autotree_llama_small_snxor_l1_128_vit_local
+TaylorAI/Flash-Llama-13B
+casperhansen/vicuna-7b-v1.5-awq
+Zubi401/salah-model-7b
+Henil1/mt5-small-hindi-summary-hindi-summary
+RomanOrac/llama-2-7b-slovenian
+asedmammad/longchat-7b-v1.5-32k-GGML
+Wolffire88/DialoGPT-medium-Android16
+optimacare/llama_training_test
+ZeroUniqueness/merged_model_300k
+nolly3317/DialoGPT-small-alice
+winstonlin800/openllama3b-alpaca
+Wanclouds/Llama-2-7b-chat-finetune
+lshao123/myCkpt_llama-7b-se-rm
+hidude562/OpenMusenet-2.1
+Mlemoyne/codeparrot-ds
+mir-hossain/llama-2-7b-guanaco-dolly-mini
+922-CA/llama-2-7b-monika-v0.3b
+ScottShao/llama2-7b-finetunned-openassistant-1060step
+yeontaek/llama-2-13b-Beluga-QLoRA
+smangrul/DeciCoder1B-personal-copilot-merged
+smangrul/starcoder1B-v2-personal-copilot-merged
+mRuiyang/UCLStats-llama2
+tgoktug/my_awesome_billsum_model
+MustEr/vgg_official
+YoussefThabet/youssofFalcon
+hseokool/Llama-2-7b-hf-230820-01
+kimdwan/polyglot-ko-1.3b-Logan
+beaugogh/Llama2-7b-openorca-mc-v1
+PRAJWAL23/python_code_generator
+UncleanCode/anacondia-70m
+aeolian83/Gugugo_for_DnD_v0.8
+skrishna/my-first-fine-tuned-model-ppo
+kyujinpy/KO-Platypus2-13B
+pmargain/llama-2-CV
+arunadiraju/my_awesome_qa_model
+kkfromus/cardio-llama-2-7b-miniguanaco-v6
+pmargain/llama-2-CV-10e
+kkkzzzkkk/test_distilgpt2
+mzbac/llama2-13b-grammar-corrector-v1.2
+kkkzzzkkk/test_palmyra-small
+kkkzzzkkk/test_t5_base
+digitalpipelines/llama2_13b_chat_uncensored-GPTQ
+marciogualtieri/funnybot-joke-generator-model-dad-jokes
+kkkzzzkkk/test_t5-small-de
+marciogualtieri/funnybot-joke-generator-model-question-answer-jokes
+kkkzzzkkk/test_battlestar-gpt2-small-x49
+marciogualtieri/funnybot-joke-evaluator-model
+kkkzzzkkk/test_t5_small_de_en
+MFDLR/llm-chat-run01
+kkkzzzkkk/test_t5-small-headline-generator
+kkkzzzkkk/test_t5-small-german
+kkkzzzkkk/test_hupd-t5-small
+DylanJHJ/fidt5-base-nq
+ehartford/Samantha-1.1-70b
+czurita/nsql-llama-2-7B-sharded-bf16-2GB
+talentlabs/chinese-llama-2-13b_v21-08-2023
+ad019el/mt5-small-finetuned-tq-to-ar
+Ralphch97/StarChatBeta_Finetuned_Ralph_v2
+kkfromus/cardio-llama-2-7b-miniguanaco-v7
+bingyinh/TANL-based_MaterialsMine_NER_RE_Multitask
+igorktech/OV-FRED-T5-RefinedPersonaChat
+asas-ai/bloom_3b_int8
+jessiedu314/gpt2-finetuned-billsum
+AisonZhang/llama-2-7b-customer_support
+telavir/WEOBlogModel-MD
+csemeer/llama-2-7b-miniguanaco
+andreaskoepf/llama2-70b-oasst-pre10
+alzoubi36/pglue_policy_qa_t5-v1.1-large
+bingyinh/TANL-based_MaterialsMine_joint_entity_relation
+bingyinh/TANL-based_MaterialsMine_NER
+bingyinh/TANL-based_MaterialsMine_RE
+gautamsabba/Llama-2-7b-opposite-science-instruct
+kkkzzzkkk/bigb
+TheBloke/LlongOrca-13B-16K-GPTQ
+TheBloke/LlongOrca-13B-16K-GGML
+RohitKeswani/flan-t5-base-samsum
+apasi/PlatypusLLama-13B
+mohanchinnappan/llama-2-7b-guanaco-dolly-mini
+alzoubi36/pglue_privacy_qa_priva_t5-large
+TaylorAI/Flash-Llama-1B-Zombie
+mariiaponom/llama_7b_class
+mariiaponom/llama_7b_summ
+mariiaponom/llama_13b_summ
+shivr/gpt2-large_local-narratives_pre
+michaelhhl/ja-news-gen
+shivr/gpt2-xl_local-narratives_pre
+ashercn97/hippo-7b
+porkorbeef/Llama-2-13b-sf
+feelinrealcute/pym-13b7
+vihangd/smartplat-3b-v2
+porkorbeef/Llama-2-13b-12_153950
+gautamsabba/Llama-2-7b-resume-distiller-instruct
+Lyn4ever29/GuWenLLM
+TaylorAI/Flash-Llama-1B-Zombie-2
+Quxingwei/math_7b_ckpt_myown
+ElWapoteDev/llama-2-7b-maaused
+cassanof/minicoder-random
+heegyu/polyglot-ko-3.8b-chat
+alzoubi36/pglue_privacy_qa_t5-v1.1-large
+chargoddard/Chronorctypus-Limarobormes-13b
+ChanonUtupon/openthaigpt-merge-lora-llama-2-7B-chat-1380k
+umjolyne/zelda-test
+cassanof/minicoder-lua
+VietnamAIHub/LLaMA2_Vietnamese_Medical_SFT_13B
+dumela123/llama2-mine-finetune
+ChanceFocus/finma-7b-trade
+liezeleinstein/erikatest4small
+yujiepan/llama-2-tiny-random
+asas-ai/bloom_360M_8bit
+dahara1/weblab-10b-instruction-sft-GPTQ
+FreedomIntelligence/ReaLM-7b
+dffesalbon/gpt2-dota-toxic
+VinVanGogh/Llama-2-7B-Psychology-Indo
+pr1me/llama2_13b_chat_uncensored
+asas-ai/bloom_3B_8bit
+anujay-incedoinc/stablecode-instruct-javacode5k-3b
+AleksiDu/HarryPotterBot
+yaamin6236/falcon-7b-ft-LORA
+kavinilavan/Llama-2-13b-chat-hf-array_agent0_v1_4
+TheBloke/Samantha-1.1-70B-GGML
+TheBloke/Samantha-1.1-70B-GPTQ
+TaylorAI/Flash-Llama-1B-Zombie-3
+ChiomaBless/Chiomascreation
+agarc15/gpt2-finetuned-PRC
+yeontaek/Platypus2xOpenOrca-13B-IA3-v3
+kkfromus/cardio-llama-2-7b-miniguanaco-v8
+OpenAssistant/llama2-70b-oasst-sft-v10
+quantumaikr/KoreanLM-1.5b
+quantumaikr/KoreanLM-3B
+gautamsabba/llama-2-7b-resume-distiller-chat
+OpenBuddy/openbuddy-llama2-70b-v10.1-bf16
+asedmammad/Llama-2-7B-32K-Instruct-GGML
+VinVanGogh/Llama-2-7b-Aixiety
+asas-ai/AraT5_base_8bit
+prnv13/llama-7-master-1
+kaitchup/llama-2-7b-4bit-autogptq
+kkfromus/cardio-llama-2-7b-miniguanaco-v9
+asas-ai/AraT5_msa_base_8bit
+StephenLau/MyLlama-2-13b
+RishuD7/t5_number_v4
+gautamsabba/llama-2-7b-opposite-science-chat
+TusharJoshi89/title-generator
+prnv13/llama-7-master-2
+sahithya20/checkpoint-mbpp-t5base
+DenisPashkov/llama-2-7b-miniguanaco
+budecosystem/genz-70b
+RishuD7/t5_number_v5
+akhily/gpt2-simulacra
+TheBloke/Llama-2-7B-32K-Instruct-GPTQ
+TheBloke/Llama-2-7B-32K-Instruct-GGML
+uukuguy/speechless-hermes-coig-lite-13b
+TFLai/JokeGPT-en
+922-Narra/llama-2-7b-chat-cebuano-v0.1
+testno25/ftpythia
+techtank/mt5-small-finetuned-amazon-en-es
+JennnDexter/my_awesome_opus_books_model
+anarubioruiz/ARIA-text-input-model_v1
+zarakiquemparte/zarablend-m-l2-7b
+dnagpt/dnagpt_unigram
+maryxxx/tiny-llamas-110m-trippy
+Mani5112/llama-2-7b-scitldr_tuned_model_1000
+Samuael/llama-2-7b-tebot-amharic
+flozi00/Llama-2-13b-german-assistant-v6
+SoyGema/tst-translation
+dumela123/llama2-mine-finetune2
+zarakiquemparte/zarablend-mx-l2-7b
+kundank/evinspect-usb-flant5-large
+Ali-Das/t5-small-finetuned-wikisql
+hoangphu7122002ai/ViT5_MultiTask
+Hunzla/output_urdu
+flozi00/Llama-2-13b-german-assistant-v6-4bit-autogptq
+NekoPunchBBB/llama-2-13b-open-platypus-merged
+maryxxx/gpt2-tiny
+NEU-HAI/mental-alpaca
+MemerMemetan/better-japanese-weblab-10b-instruct
+JiyangZhang/CoditT5
+thanhnew2001/merged5
+NEU-HAI/mental-flan-t5-xxl
+baxterstockman/my_awesome_eli5_clm-model
+nafisehNik/GGIRT-T5-base
+victornica/molgenscuffed_broken_molgptlike
+Sidd2000/MPT-30B-Instruct-peft
+Clakmann/t5-base-Clakmann-thesis-epoch10
+luffycodes/nash-vicuna-13b-v1dot5-ep2-w-rag-w-simple
+luffycodes/nash-vicuna-13b-v1dot5-ep3-w-rag-w-simple
+luffycodes/nash-vicuna-33b-v1dot3-ep3-w-rag-w-simple
+Icaruas/Corperate
+TheBloke/L2-MythoMax22b-Instruct-Falseblock-GGML
+TheBloke/L2-MythoMax22b-Instruct-Falseblock-GPTQ
+mariiaponom/llama_13b_class_1
+luffycodes/nash-vicuna-33b-v1dot3-ep2-w-rag-w-simple
+raghuram87/ScienceLLM1
+naimur900/gsg_t5_model
+MerlynMind/merlyn-education-corpus-qa-v2
+alzoubi36/pglue_opp_115_t5-large
+alzoubi36/pglue_policy_ie_a_t5-v1.1-large
+alzoubi36/pglue_opp_115_priva_t5-large
+alzoubi36/pglue_privacy_qa_priva_t5-base
+alzoubi36/pglue_privacy_qa_priva_t5-v1.1-base
+Pdmk/t5-small-finetuned-summary_pd
+TheBloke/Llama2-22B-GPLATTY-GGML
+TheBloke/Llama2-22B-GPLATTY-GPTQ
+dhmeltzer/Llama-2-7b-hf-wiki30k-no-gl-r-64-alpha-16-full
+ElWapoteDev/llama-2-7b-maausedv2
+serenaz/Llama-2-7b-hf-lora-medical-meadow
+aidenTim/llama-2-7b-courtcase-2
+anjakuzev/harry_7
+totally-not-an-llm/EverythingLM-13b-V2-16k
+HoangCuongNguyen/llama-2-7b-CTI-research
+chukypedro/llama-2-7b-chat-leadelo_system_model_costant
+Stevross/Astrid-LLama-7B-4bit
+asas-ai/araGPT2_mega_8bit
+pythonist/nepGPTmodel
+FelixChao/vicuna-33b-coder
+BigSalmon/InformalToFormalLincoln109Paraphrase
+baxterstockman/my_lotr_test1
+mesolitica/llama-7b-hf-2048-fpf
+ElWapoteDev/llama-2-7b-copypaste
+cooki3monster/Llama-2_mj321
+garage-bAInd/Platypus2-7B
+serenaz/Llama-2-7b-hf-medical-meadow
+mncai/SGPT-5.8B-wiki-mirae-epoch5
+mncai/Challenge_CoT-preprocessed_T0-Alpaca-Platypus_85k_epoch1
+isenbek/local-llama2-chat-7b-hf
+lmzheng/fine-tuned-judge
+alzoubi36/pglue_policy_ie_a_priva_t5-v1.1-large
+satvikp/llama_movie_disc_v2
+oananovac/enron_gpt2_model
+RishuD7/t5_number_v6
+gywy/llama2-13b-chinese-v2
+ssuhoon/test2
+tx39/llama-13b-T-caremi-judgment-correctness
+tx39/llama-13b-T-caremi-judgment-interpretability
+SheenCloud/sheen-7b-chat
+Aditya02/LLama-Discriminator
+marcchew/LaMini-Flan-T5-248M-Orca-12.5K
+AliceZhao/t5_recommendation_sports_equipment_english
+RishuD7/t5_number_v7_new_data
+TheBloke/EverythingLM-13b-V2-16K-GPTQ
+TheBloke/EverythingLM-13b-V2-16K-GGML
+sminchoi/llama-2-7b-guanaco-dolly-mini
+mncai/Challenge_CoT-preprocessed_T0-Alpaca-Platypus_85k_epoch2
+huashiyiqike/testmodel
+ScottShao/llama2-7b-finetunned-openassistant-1060step-merged
+lengoctuong/gpt2-finetuned-coqa
+4i-ai/Llama-2-13b-alpaca-es
+RAJ11/Llama2-7b-stackex_merged
+longquan/Llama-2-7b-chat-hf-japanese-custom-ds
+newronai/lma2-7b-Chat-Adapter-N-merged
+DevaMalla/llama7b
+FinchResearch/seal-7b-chat
+myatticus/finetuned-Final-Merger_Agreement
+TheBloke/Llama2-28B-Air03-GPTQ
+midoskarr/corrine3
+Samuael/llama-2-7b-tebot-amharic_tuned
+sahithya20/checkpoint-tech-t5base
+rohanbalkondekar/yes-bank
+NousResearch/Nous-Hermes-Llama2-70b
+abhinand/llama-2-13b-hf-bf16-sharded
+karimasbar/results
+alzoubi36/pglue_opp_115_priva_t5-v1.1-large
+pssubitha/llama-2-7b-sales-force-chat
+flozi00/Llama-2-7b-german-assistant-v3
+Saurabh16100/distilgpt2-finetuned-wikitext2
+ScottShao/llama2-7b-finetunned-openassistant-merged_test
+lengoctuong/gpt2-finetuned-chatbot
+chgk13/decicoder-1b-openvino-int8
+gigant/graph_t5_230822
+mesolitica/llama-13b-hf-2048-fpf
+zeeshanali00/llama-2-7b-int4-python-code-20k
+TheBloke/Chronorctypus-Limarobormes-13b-GGML
+TheBloke/Chronorctypus-Limarobormes-13b-GPTQ
+yvillamil/Llama2-13b-chat-ft-docs
+abhimazu/openvino_llama2
+RishuD7/t5_number_v8_balanced
+LarryTheLigma/larryl
+TheBloke/Griffin-3B-GGML
+TheBloke/Griffin-3B-GPTQ
+TheBloke/Marx-3b-GPTQ
+TheBloke/Marx-3b-GGML
+Andrei-Alex/Fine-Tune-Adapters
+vikp/reverse_instruct
+TheBloke/Puma-3b-GPTQ
+TheBloke/Puma-3b-GGML
+kkfromus/cardio-llama-2-7b-miniguanaco-v10
+alkahestry/llama2-13B-W
+TheBloke/Synthia-13B-GPTQ
+TheBloke/Synthia-13B-GGML
+dpml/vicuna_mt_450s
+tayyabm/my_awesome_opus_books_model
+duwuonline/my_summarize_vi
+MustEr/gpt2-elite
+TheBloke/Synthia-7B-GPTQ
+TheBloke/Synthia-7B-GGML
+TheBloke/Zarablend-MX-L2-7B-GGML
+TheBloke/Zarablend-MX-L2-7B-GPTQ
+gK29382231121/llama2fine2
+pedrogarcias/falcon_response
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_8_e-1_s6789_v4_l4
+vabatista/question-generation-t5-small-pt-br-2
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_8_e-1_s6789_v4_l4
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_8_e-1_s6789_v4_l4
+vladjr/mt5-small-finetuned-amazon-en-es
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_8_e-1_s6789_v4_l4
+TheBloke/Trurl-2-13B-GPTQ
+TheBloke/Trurl-2-13B-GGML
+Karzan/gpt2-walamakan
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_8_e1_s6789_v4_l4
+philschmid/330aa24bbb
+roa7n/gpt2-cl-human_nontata_promoters
+nelut/llama2-disertation-assistant-final
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e-1_s6789_v4_l4
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e-1_s6789_v4_l4
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_8_e1_s6789_v4_l4
+naot97/vietnamese-toxicity-detection_1
+tsuyuan/Llama-2-7b-hf-unit
+TheBloke/Trurl-2-7B-GPTQ
+TheBloke/Trurl-2-7B-GGML
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_8_e2_s6789_v4_l4
+anushehchaudry/llama-2-tiny-random
+Trelis/Llama-2-7b-chat-hf-function-calling-v2
+Icaruas/7bill_instruct
+Isotonic/flan-t5-base-trading_candles
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_8_e2_s6789_v4_l4
+rohanbalkondekar/bank-exp-2
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_8_e3_s6789_v4_l4
+mariiaponom/llama_13b_class_2
+alpindale/Llama-2-13b-hf
+kkfromus/cardio-llama-2-7b-miniguanaco-v11
+Icaruas/7bill8k
+ausboss/llama-2-13b-supercot-GPTQ
+VinVanGogh/Llama-2-7b-Aixiety-v2
+sriramgs/rpl_gpt2
+ostorc/Don_Quijote_1_Generator
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_8_e3_s6789_v4_l4
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_8_e4_s6789_v4_l4
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_8_e-1_s6789_v4_l4_manual
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e0_s6789_v4_l4
+alzoubi36/pglue_piextract_priva_t5-v1.1-large
+yvillamil/Llama2-13b-chat-ft-docs-QR
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e0_s6789_v4_l4
+ashercn97/hippo-7b-4
+naimur900/gsg-T5model
+NEU-HAI/Llama-2-7b-alpaca-cleaned
+Trelis/Llama-2-13b-chat-hf-function-calling-v2
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_8_e4_s6789_v4_l4
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_8_e-1_s6789_v4_l4_manual
+Zekunli/alpaca-7b-native-instructdial-68k
+philschmid/f9749f03ca
+prashantgpt91/llama-2-7b-miniguanaco
+shekharchatterjee/temp-model-174
+khoantap/llama-2-limarp-penta
+dpml/vicuna_mt_1350s
+alkahestry/llama-2-lim-qlora
+migtissera/Synthia-70B
+rirv938/llama-70b-awq-4bit-g128
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e1_s6789_v4_l4
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e1_s6789_v4_l4
+alzoubi36/pglue_policy_detection_priva_t5-v1.1-large
+tushar1408/distilgpt2-finetuned-wikitext2
+GitMaxd/test-model
+Sakshi1307/llama-2-7b-Sakshi
+totally-not-an-llm/PuddleJumper-13b
+n3bbb/llama-2-7b-tort-verdict-8k
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e2_s6789_v4_l4
+alzoubi36/priva_t5-3b
+acrastt/Marx-3B-V2
+922-CA/llama-2-7b-monika-v0.3c1
+BaseStation/llama-2-7b-tort-verdict-8k
+halo-69/distilgpt2-finetuned-finance
+chargoddard/MelangeA-70b
+Hardwarize/llama-2-7b-guanaco-dolly-mini
+harinib246/distilgpt2-finetuned-wikitext2
+ehartford/Samantha-1.11-70b
+chargoddard/MelangeB-70b
+Koohack/koohack-novel-text-1.3B
+kimnt93/vc-7b-02
+Samuael/llama-2-7b-tebot-amharic_tuned_2
+doas/test5
+hanseokhyeon/kullm-polyglot-5.8b-v2-GPTQ
+chowdhuryshaif/xsum_model
+chargoddard/MelangeC-70b
+yongzx/pythia-70m-sft-hh
+VietnamAIHub/Vietnamese_llama_30B_SFT
+pmargain/llama-2-ICC23-1
+sulgi/ex_Exe
+hf-internal-testing/tiny-random-IdeficsForVisionText2Text
+hf-internal-testing/tiny-random-IdeficsModel
+aidenTim/Llama-2-7b-minipython-instruct
+austin/t5-icd-summarize
+Shana4/T5_2E_2T
+Shana4/T5_2E
+CAIRE-CedarsSinai/falcon-7b-qlora-chat-support-bot-faq-alzkb-version-2
+yeontaek/Platypus2xOpenOrca-13B-LoRa-v2
+yongzx/pythia-160m-sft-hh
+Jinpkk/ITproject_version1
+doas/test4
+yongzx/pythia-410m-sft-hh
+neelmistry/llama2finetune-test2
+pe-nlp/llama-2-13b-platypus-vicuna-wizard
+Andyrasika/summarization_model
+RandomNameAnd6/DharGPT
+Junrulu/MemoChat-Fastchat-T5-3B
+Junrulu/MemoChat-Vicuna-7B
+GokulWork/meta-Llama-2-7b-chat-hf-Question-Answering
+Junrulu/MemoChat-Vicuna-13B
+isenbek/llama-2-7b-chat-hf-local
+Junrulu/MemoChat-Vicuna-33B
+ademax/metadata-v2.0
+beaugogh/Llama2-7b-openorca-mc-v2
+mncai/mnc_foundation_w_systemprompt_epoch6
+mncai/mnc_foundation_w_systemprompt_epoch4
+vodkaslime/test-converter-repo
+martindevoto/my_test_eli5_clm-model
+tyzhu/fw_num_bi_train_10_eval_10_flan-t5-xl
+tyzhu/fw_baseline_squad_train_1000_eval_100_t5-large
+tyzhu/fw_squad_num_bi_train_100_eval_100_flan-t5-xl
+abdiharyadi/IndoT5-base-amr-to-text-linearized-penman-ilmy-epochs-3
+OpenLemur/lemur-70b-chat-v1
+bjfxs/llama2-7b-finetunned-openassistant-test
+rohanbalkondekar/llama-2-7b-banking-support
+vodkaslime/test-repo-stablecode
+tyzhu/fw_baseline_squad_train_10000_eval_100_t5-large
+ophycare/llama-2-7b-chat-ophycare-2
+agarc15/gpt2-finetuned-INCIBE
+victornica/RL-tuned_scuffed_molgen_betterbaseCRN1
+agarc15/gpt2-finetuned-KAGGLE
+duongttr/jd-gpt2-vi
+yeontaek/Platypus2xOpenOrca-13B-IA3-v4
+smangrul/starcoder-personal-copilot
+dead-owwl/custom_billsum_model
+FieldSu/distil_student_24
+Wissam42/llama-test
+AWfaw/ai-hdlcoder-model-small
+Jayanth2002/llama2_email
+ferhataddour/GPT2_finetuned
+HyperbeeAI/Tulpar-7b-v0
+flozi00/Llama-2-7b-german-assistant-v3-4bit-autogptq
+yongzx/pythia-1b-sft-hh
+Dhruvil47/t5-base-sentence-followup
+malhajar/Platypus2-70B-instruct-4bit-gptq
+Bandid/ltest-fine-tuned
+OpenLemur/lemur-70b-v1
+mncai/Challenge_CoT_Flan_30k_epoch2
+atishay2411/llama-2-7b-tagging
+undimoel/mt5-small-finetuned-amazon-en-es
+wasimmadha/exigent-datetime-extraction
+Fredithefish/Guanaco-3B-Uncensored
+openskyml/llama-7b-chat-hf-cpu
+dpml/vicuna_mt_900s
+Faradaylab/ARIA_7B
+seungheondoh/cap-llama
+yongzx/pythia-1.4b-sft-hh
+vwxyzjn/starcoderbase-triviaqa1
+Brobles/llama2-13b-question-answer
+tyzhu/fw_baseline_squad_train_10000_eval_100_gpt2
+DrishtiSharma/codet5-small-Generate-docstrings-for-Python-bs-16
+DrishtiSharma/codet5-small-Generate-docstrings-for-Python-bs-8
+Dizzykong/Rocket-166m-.1
+chunwoolee0/mt5_small_wmt16_de_en
+SHJ622/falcon_7b_ecommerce_ai_chatbot
+zarakiquemparte/zaraxe-l2-7b
+michamcs/llama-2-7b-miniguanaco
+Devden/Llama2
+SHJ622/falcon_7b_ecommerce_ai_chatbot_n100
+Michael-Vptn/text-summarization-t5-base
+Samuael/llama-2-7b-tebot-amharic_tuned_3
+KoboldAI/LLaMA2-13B-Holomax-GPTQ
+DrishtiSharma/codet5-small-Generate-docstrings-for-Python-bs-32
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e3_s6789_v4_l4
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e2_s6789_v4_l4
+smjain/WizardLM-7B-V1.0-gptq-4bit
+bjoernp/llama-2-7b-de-instruct_v0.2
+lengoctuong/distilgpt2-finetuned-eli5
+openskyml/pigeon-llm
+Teja2022/trained
+OpenBuddy/openbuddy-llama2-13b-v11-bf16
+Jinpkk/ITproject_version2
+renede/falcon-7b-qlora-chat-support-bot-faq-alzkb-with-Nick-data
+lengoctuong/distilgpt2-finetuned-wikitext2
+mandeepbagga/llama-2-7b-hf-rolls-royce
+Writer/palmyra-20b-chat
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e3_s6789_v4_l4
+xiang9156/llama-2-7b-int4-python-code-20k
+lengoctuong/gpt2-finetuned-wikitext2
+chatham84/version1
+garrachonr/LlamaDos
+mandeepbagga/llama-2-7b-hf-rolls-royce-e2
+ccore/small-gpt2-test
+TheBloke/PuddleJumper-13B-GGUF
+augustocsc/gpt-base
+toughdata/flan-t5-base-quora-question-answer
+Wachu2005/tlant5xl
+IngeniousArtist/openllama-3b-finance
+BlueandOrangeBoi/argument_bot
+ksabeh/t5-base
+IHaBiS/MythoMax-13b-upstage-65b-instruct-FalseBlock
+msaad02/llama2_7b_brockportgpt
+TheBloke/PuddleJumper-13B-GGML
+mariiaponom/flan_class_onnx
+TheBloke/PuddleJumper-13B-GPTQ
+victornica/RL-tuned_scuffed_molgen_gauacamolCRN1
+flozi00/Llama-2-13b-german-assistant-v5-4bit-autogptq
+allenai/kaleido-small
+Zestor/Llama-2-7b-chat-hf-apex-02082023-1255-gptq-4bit
+sominw/rel23_conll
+renede/falcon-7b-qlora-chat-support-bot-faq-alzkb-test
+liezeleinstein/jasft-base
+allenai/kaleido-base
+allenai/kaleido-large
+allenai/kaleido-xl
+allenai/kaleido-xxl
+Jinpkk/ITproject_version3
+rtlabs/StableCode-3B
+TaylorAI/FLAN-Llama-7B-2_Llama2-7B-Flash_868_full_model
+marksverdhei/flan-t5-large-multiqg
+sominw/rel23_nyt
+marksverdhei/gpt2-multiqg
+msaad02/llama2_7b_brockportgpt_gguf
+akashmaggon/mt5-small-finetuned-amazon-en-es
+K00B404/llama-2-7b-dolly-tuned
+wingman-live/llama-2-7b-chat-wingman-5678910-torch
+PyaeSoneK/finetuned_pythia-2.8b-deduped_legal
+kymsa/a10org7bch
+victornica/RL-tuned_scuffed_molgen_gauacamolCRN1_12epoch
+PyaeSoneK/Fine_Tuned_Pythia_smallest_140_legal
+JasonMoss/my_awesome_eli5_clm-model
+PyaeSoneK/pythia_70m_legalQA
+Araeynn/my_awesome_eli5_clm-model
+CAIRE-CedarsSinai/falcon-7b-qlora-chat-support-bot-faq-alzkb-version-1
+mcombatti/llama-2-7b-miniguanaco
+Shana4/T5_1E
+Shana4/T5_1E_2T
+Icaruas/Instruct_13_8k
+msaad02/llama2_7b_brockportgpt_gptq
+Nehu/demo
+DylanJHJ/STARTER-base-qrecc
+victornica/RL-tuned_scuffed_molgen_gauacamolCRN1_14epoch
+porkorbeef/Llama-2-13b-11_114559-10
+lvkaokao/llama2-7b-hf-chat-lora-v3
+HeshamHaroon/falcon-rw-1b-4bit
+tyzhu/fw_baseline_squad_train_10000_eval_100_gpt2-large
+Araeynn/toast
+HSiTori/llama2-7b-chat-scienceQA
+Shana4/T5_1E_64
+Shana4/T5_1E_2T_64
+jessiedu314/gpt2-medium-freeze-finetuned-10kfindsum
+ehartford/Samantha-1.11-13b
+lengoctuong/gpt2-finetuned-wikitext2-test
+neil-code/autotrain-test-summarization-84415142559
+ishvalin/mt5-small-finetuned-amazon-en-es
+starmpcc/Asclepius-13B
+tyzhu/fw_baseline_squad_train_1000_eval_100_gpt2-large
+wingman-live/llama-2-7b-chat-wingman-20230824045856-torch
+YoussefThabet/youssefllamatestsave
+malaysia-ai/llama2-13b-ft-instruct-2048-packing
+atharvapawar/securix_Llama-2-7B-Chat-GGML
+austin/t5-base-icd-summarize
+shivr/RedPajama-INCITE-Chat-3B-v1_local-narratives_pre
+victornica/moses_cbgpt
+sandeep12345/Llama-2-7b-chat-finetune_v2
+GralchemOz/Nous-Hermes-Llama2-13b-chinese
+Nehu/demo1
+bjfxs/llama2-7b-finetunned-openassistant-test-lora1
+Nehu/Flan
+pranjal01/fine_tuned_gpt2_clm-model
+marcchew/LaMini-Flan-T5-77M-Orca-55K
+ngoantech/Llama-2-7b-vietnamese-20k
+cherry1556/stack-llama-2
+TimurIs/llama-2-7b-isaevt-doctor-03
+Theosphil/Churn_Predictor
+chunwoolee0/mt5_small_kde4_en_ko
+ChillyMango/llama-2-7b-kurtisbot
+neil-code/autotrain-summarization-84573142568
+Vezora/Narwhal-7b
+starmpcc/Asclepius-7B
+ArtORias1/lyrics
+heegyu/WizardVicuna-pythia-410m-deduped
+TigerResearch/tigerbot-13b-base
+ezeroz/llama2-7b-digitalme-new-1000
+nomsgadded/Translation
+tyzhu/find_word_baseline_10000_gpt2-large
+TheBloke/Nous-Hermes-Llama2-70B-GGUF
+OpenBuddy/openbuddy-llama2-13b-v11.1-bf16
+wasimmadha/exigent-datetime-extraction-cleaned
+cherry1556/stack-llama-2-cherry
+bjfxs/llama2-7b-finetunned-openassistant-test-learningRate1
+muneerhanif7/Llama-2-13B-GPTQ
+TheBloke/Nous-Hermes-Llama2-70B-GPTQ
+TheBloke/Nous-Hermes-Llama2-70B-GGML
+oananovac/enron_gpt2_model_part2
+tyzhu/find_word_baseline_1000_gpt2-large
+himanshu04/potato-new
+hihisu1231/mbti_230823
+DrishtiSharma/codet5-small-generate-docstrings-codexglue-python-bs-32
+guiba44/admin_doc_summarizer_llama2
+caffeinatedwoof/Llama-2-7b-chat-hf-mental_health_counseling_conversations
+kimnt93/vc-7b-03
+AL49/Llama-2-7b-chat-hf-NoAccelerate-sharded-bf16-2GB
+kimnt93/vc-7b-04
+woodings/llama-2-7b-miniguanaco
+ademax/normalize_s2t_dataset
+bielsebub/llama2-finetuned-merged
+Shivam098/my_awesome_opus_books_model
+TheBloke/Nous-Puffin-70B-GGUF
+CHIH-HUNG/llama-2-13b-OpenOrca_5w
+chunwoolee0/mt5_small_bongsoo_en_ko
+MaximMS/myDialogModel
+Ketak-ZoomRx/Planner_ACG
+overenginar/open-llama-7b-oasst
+YoussefThabet/youssefllama_Links
+marcchew/LaMini-Flan-T5-77M-Orca-55K-CPU-GPU
+TheBloke/Nous-Puffin-70B-GGML
+TheBloke/Nous-Puffin-70B-GPTQ
+overenginar/falcon-7b-oasst
+sag-uniroma2/extremITA-Camoscio-7b
+sahil2801/llama-70-1
+overenginar/gpt2-oasst
+himanshu04/potato-final
+vincenttttt/NCCUCS_CtoD_CS
+Ali-Das/t5-small-finetuned-spider
+jroberts/my-great-gpt2-recipe-model-nathan
+asas-ai/bloom_7B_8bit
+BossRulez/my-great-gpt2-recipe-model-nathan
+brizolaki/my-great-gpt2-recipe-model-ApoArj
+s1nn01/my-great-gpt2-recipe-model-jack
+reasialois/my-great-gpt2-recipe-model-gertrude
+saima1510/my-great-gpt2-recipe-model-nathan
+OpenMatch/TASTE-beauty
+jroberts/my-great-gpt2-recipe-model-jack
+mischel/llama-2-7b-TEST_V01
+yaleh/y64m-2wf7-sxeo-0
+OpenMatch/TASTE-sports
+Medissa/finetuned_t5_QA
+folflo/mt5-small-finetuned-amazon-en-de
+fiveflow/flan-t5-base-gsm8k
+atharvapawar/Securix_GPT_Neo
+czurita/tscholak-cxmefzzi-sharded-bf16-2GB
+KingKazma/xsum_gpt2_fine_tuning_500_10_3000_6_e9_s6789_v4_l6
+reciprocate/shepherd-13b
+KingKazma/xsum_gpt2_fine_tuning_500_10_3000_6_e9_s6789_v4_l5
+OpenMatch/TASTE-toys
+KingKazma/xsum_gpt2_fine_tuning_500_10_3000_6_e9_s6789_v4_l4
+KingKazma/xsum_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l4
+muluayele/llama-2-7b-guanaco-dolly-mini_canonical
+OpenMatch/TASTE-yelp
+sartmis1/llama2-70b-chat-openapi
+Francesco-A/mt5-small-finetuned-amazon-en-es
+fiveflow/flan-t5-large-gsm8k
+TheBloke/CodeLlama-13B-fp16
+ehartford/Samantha-1.11-7b
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_10_3000_6_e9_s6789_v4_l4
+alpindale/CodeLlama-34B-hf
+unmolb/ChattoBotto-v1
+sartmis1/starcoder-v2-openapi-special-tokens
+KingKazma/xsum_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l5
+KingKazma/xsum_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l4_manual
+KingKazma/xsum_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l6
+TheBloke/CodeLlama-13B-Instruct-fp16
+TheBloke/CodeLlama-13B-Python-fp16
+4bit/hf_vicuna_7b
+codellama/CodeLlama-7b-hf
+codellama/CodeLlama-7b-Python-hf
+codellama/CodeLlama-13b-hf
+codellama/CodeLlama-13b-Python-hf
+codellama/CodeLlama-7b-Instruct-hf
+codellama/CodeLlama-13b-Instruct-hf
+h2oai/h2ogpt-16k-codellama-13b-instruct
+TheBloke/CodeLlama-7B-Instruct-fp16
+TheBloke/CodeLlama-7B-Python-fp16
+codellama/CodeLlama-34b-hf
+TheBloke/CodeLlama-7B-fp16
+h2oai/h2ogpt-16k-codellama-13b-python
+h2oai/h2ogpt-16k-codellama-13b
+h2oai/h2ogpt-16k-codellama-34b
+h2oai/h2ogpt-16k-codellama-34b-python
+h2oai/h2ogpt-16k-codellama-34b-instruct
+ff670/rp-1
+KingKazma/xsum_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l5_manual
+codellama/CodeLlama-34b-Python-hf
+codellama/CodeLlama-34b-Instruct-hf
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l4
+TheBloke/CodeLlama-7B-Instruct-GGUF
+TheBloke/CodeLlama-7B-Python-GGUF
+TheBloke/CodeLlama-7B-GGUF
+NousResearch/CodeLlama-7b-hf
+talentlabs/chinese-alpaca-2-13b_v25-08-2023
+NousResearch/CodeLlama-13b-hf
+NousResearch/CodeLlama-34b-hf
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_10_3000_6_e9_s6789_v4_l5
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l4_manual
+KingKazma/xsum_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l6_manual
+sah-shashi/ChattoBotto-v1
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_10_3000_6_e9_s6789_v4_l6
+ehartford/CodeLlama-34b-Python-hf
+Theosphil/llm_finetune
+NousResearch/CodeLlama-7b-hf-flash
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l6
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l5
+ehartford/CodeLlama-34b-Instruct-hf
+coldra1n/LLaMA2_PubMed_Final
+h2oai/h2ogpt-16k-codellama-7b-instruct
+h2oai/h2ogpt-16k-codellama-7b-python
+h2oai/h2ogpt-16k-codellama-7b
+NousResearch/CodeLlama-13b-hf-flash
+xianglingjing/llama-2-7b-int4-text-to-sql
+NousResearch/CodeLlama-34b-hf-flash
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l5_manual
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_10_3000_6_e-1_s6789_v4_l6_manual
+sirdifupsa/t5-base-finetuned-xsum
+literallywood/DialoGPT-small-ekansh
+yashonwu/t5-base-sft-instruments
+newronai/lma2-7b-Chat-Adapter-500.100.25-FullNew-merged
+TheBloke/CodeLlama-13B-GGUF
+TheBloke/CodeLlama-13B-Instruct-GGUF
+antoineard/llama-2-7b-finetuned-5000-samples
+TheBloke/CodeLlama-7B-Instruct-GPTQ
+TheBloke/CodeLlama-13B-Python-GGUF
+Cheezedog/gpt2convosbot
+TheBloke/CodeLlama-34B-Python-fp16
+TheBloke/CodeLlama-34B-Instruct-fp16
+TheBloke/CodeLlama-34B-fp16
+TheBloke/CodeLlama-34B-GGUF
+MaximMS/MySecondModel
+Cheezedog/gpt2convosbot2
+retr0sushi04/haiku-llama
+Abhishek9998/llama2-resume-summary
+peteryushunli/mt5-small-finetuned-amazon_electronics-en-es
+mohamedemam/QA_GeneraToR
+TheBloke/CodeLlama-34B-Python-GGUF
+Mahmoud22/my_autotrain_llm
+TheBloke/CodeLlama-7B-Instruct-GGML
+TheBloke/CodeLlama-7B-Python-GGML
+TheBloke/CodeLlama-34B-Instruct-GGUF
+unionai/Llama-2-7b-hf-wikipedia
+TheBloke/CodeLlama-7B-GGML
+TheBloke/CodeLlama-13B-Instruct-GGML
+muluayele/llama-2-7b_fineTuned_chat_cannonical
+TheBloke/CodeLlama-7B-Python-GPTQ
+TheBloke/CodeLlama-13B-Python-GGML
+Joshwabail/llama-2-7b-miniguanaco
+GaussianMixture/CodeLlama-34b-Instruct-hf
+TheBloke/CodeLlama-13B-GGML
+Akhilsplendid/T5-model
+Weni/WeniGPT-L-70
+msong/codeparrot-ds
+abdiharyadi/IndoT5-base-amr-to-text-linearized-penman-ilmy-epochs-10
+TheBloke/CodeLlama-7B-GPTQ
+zarakiquemparte/zarafusionex-1.1-l2-7b
+hihisu1231/mbti_20230824
+TFMC/openbuddy-llama2-13b-v11.1-bf16-GGUF
+bikshang/distilgpt2-finetuned-wikitext2
+abdiharyadi/IndoT5-base-amr-to-text-linearized-penman-ilmy-epochs-3-with-lemma-and-upos-and-voice
+ziqingyang/chinese-llama-2-lora-7b-16k
+ziqingyang/chinese-llama-2-lora-13b-16k
+CHIH-HUNG/llama-2-13b-dolphin_5w
+chunwoolee0/ke_t5_base_bongsoo_en_ko
+TheBloke/CodeLlama-13B-Instruct-GPTQ
+ziqingyang/chinese-llama-2-13b-16k
+talentlabs/chinese-llama-2-13b_v25-08-2023
+ziqingyang/chinese-llama-2-7b-16k
+silvacarl/Llama-2-7b-chat-hf-gptq-4bit
+dhmeltzer/llama-7b-SFT_eli5_wiki65k_1024_r_64_alpha_16_merged
+tyzhu/find_word_baseline_1000_flan-t5-large
+dhmeltzer/llama-7b-SFT_ds_wiki65k_1024_r_64_alpha_16_merged
+dhmeltzer/llama-7b-SFT_ds_eli5_1024_r_64_alpha_16_merged
+peteryushunli/codeparrot-ds
+tyzhu/fw_num_bi_train_100_eval_100_flan-t5-large
+TheBloke/CodeLlama-13B-Python-GPTQ
+yuchenlin/easy-instruct-small
+DAMO-NLP/SeqGPT-560M
+abdiharyadi/IndoT5-base-amr-to-text-linearized-penman-ilmy-epochs-10-with-lemma-and-upos-and-voice
+yuchenlin/easy-instruct-base
+e22vvb/t5-small-finetuned-wikisql
+devonho/my_awesome_eli5_clm-model
+TinyPixel/CodeLlama-7B-bf16-sharded
+Icaruas/GPTQ_Lang_LLAMA
+tyzhu/fw_squad_num_train_100_eval_100_flan-t5-xl
+tyzhu/fw_squad_num_train_1000_eval_100_flan-t5-xl
+TinyPixel/CodeLlama-7B-Python-bf16-sharded
+NowaBwagel0/distilgpt2-finetuned-wikitext2
+paulwright75/llama-2-7b-guanaco-dolly-mini
+vodkaslime/codellama-7b-hf
+hihisu1231/mbti_230825_newdata
+santis2/test_distilgpt2_imdb_sentiment
+TinyPixel/CodeLlama-7B-Instruct-bf16-sharded
+heegyu/WizardVicuna-open-llama-3b-v2
+nafizh/llama-2-7b-hf-kg
+TheBloke/CodeLlama-13B-GPTQ
+Ravi07bec/llama-7b-pretrained-ravi-aug24
+nikinetrahutama/afx-ai-llama-chat-model-12
+hpn00689/flan-t5-base-samsum
+AlvianKhairi/Llama-2-7b-chat-finetune-25k
+yaleh/6tim-862t-o7ja-0
+ScottShao/falcon-openassistant-test-100
+JakeYunwooKim/mt5-small-finetuned-amazon-en-es
+JennnDexter/Translation
+yzhuang/autotree_llama_small_nxor_l1_2_vit_rl_local
+nafizh/llama-2-7b-hf-kg-quote
+honnlp/t5_sum_large_2_epochs
+hellomyoh/translator-12000-base-polyglot1.3b_v1
+TheBloke/CodeLlama-34B-Instruct-GPTQ
+raygx/sushantNGPT-NepSA
+philschmid/shepherd-2-hf-int4
+kavinilavan/Llama-2-13b-chat-hf-array_n_poa_agent0_v1
+hihisu1231/mbti_230825
+Jeppo/Llama-2-13B-chat
+metricspace/DataPrivacyComplianceCheck-3B-V0.9
+laampt/vn_instructions_10000_steps
+fiveflow/flan-t5-large-sat
+bjfxs/llama2-7b-finetunned-openassistant-origin
+raygx/GNePT-NepSA
+talentlabs/chinese-llama-2-13b_v25-08-2023-noon
+bongchoi/test-llama2-7b
+TheBloke/CodeLlama-34B-Python-GPTQ
+gilf/llama-2-7b-privacyredaction
+crodri/falcon_aguila_meteocat
+IGeniusDev/llama13B-quant8-testv1-openorca-customdataset
+Andrei-Alex/Fine-Tuned-merged
+ksabeh/gave
+dominguesm/canarim-7b-vestibulaide
+lomahony/eleuther-pythia12b-hh-sft
+javieitor/DialoGPT-medium-Rick
+mimi4/llama_2_7b_nor_hf
+stevenbowler/MedChatBot
+Farjfar/Llama-2-7b-chat-finetune
+TheBloke/CodeLlama-34B-GPTQ
+haouarin/noon-7b-GGML-4bit
+mustafamegahed/science_examl_llm
+sah-shashi/ChattoBotto-v2
+TabbyML/CodeLlama-7B
+Devops-hestabit/airboroes-33B-ggml-m2.0
+Guilherme34/Jennifer-7bv2
+mlabonne/EvolCodeLlama-7b
+FinchResearch/GTamaraw-1b
+justinlamlamlam/omodel
+Andrei-Alex/Fine-Tuned-GPTQ
+jinaai/starcoder-1b-textbook
+PocketDoc/Dans-CreepingSenseOfDoom-13b
+gongzhao1/llama-2-7b-miniguanaco
+CBucci/my_awesome_billsum_model
+alaeddine-13/starcoder-1b-textbook
+AlekseyKorshuk/vic15-exp-syn-fight-cp3838
+alkahestry/llama2-13B-w2
+wangrongsheng/CareLlama2-7b-multi
+AlekseyKorshuk/vic15-exp-syn-fight-cp1919
+AlekseyKorshuk/vic15-exp-syn-fight-cp5757
+AlekseyKorshuk/vic15-exp-syn-romantic-cp2620
+AlekseyKorshuk/vsinrom3
+PocketDoc/Dans-CreepingSenseOfDoom-13b-gptq-4bit-32g-ao
+AlekseyKorshuk/vic15-exp-syn-romantic-cp1310
+TheBloke/Samantha-1.11-70B-GGML
+TheBloke/Samantha-1.11-70B-GPTQ
+TheBloke/Samantha-1.11-70B-GGUF
+bedus-creation/eng-limbu-model
+heegyu/WizardVicuna-pythia-1.4b-deduped
+oananovac/enron_gpt2_model_part3
+caffeinatedwoof/Llama-2-7b-chat-hf-Amod-mental_health_counseling_conversations
+Defetya/orca-sharded
+chatham84/llama-2-13b-chatham84
+Kuduxaaa/ava-small
+asandhir/LaMini-Cerebras-590M-miniguanaco
+KunalK2/Redditcommentbot
+unionai/Llama-2-7b-hf-wikipedia-8bit
+Cheezedog/commentbot
+Danielbrdz/Barcenas-7b
+Defts-lab/llama_test_omni
+Roy029/flan_mix10e_prefixmiss
+MFDLR/llm-finetuned-run-context-01
+Lms18/docs_pythia_70M_ftqa
+unionai/Llama-2-13b-hf-wikipedia
+mlabonne/dummy-CodeLlama-7b-hf
+MonsterMine2015/Falcon_Training
+mlabonne/PyLlama-7b
+yzhuang/autotree_llama_small_snxor_l1_2_vit
+nafizh/llama-2-13b-hf-kg-300_epoch
+duwuonline/EsperBERTo
+ehartford/Samantha-1.11-CodeLlama-34b
+sheparddw/codellama-7b-zap-next-steps-8-25-23
+sahil2801/llama-70-epoch1
+unionai/Llama-2-13b-hf-wikipedia-8bit
+atharvapawar/Chat-Fine-tune-microsoft-DialoGPT-small
+Sakshi1307/llama-2-7b-Finetuned-FindSUM-TotalData
+Phind/Phind-CodeLlama-34B-v1
+justinthelaw/opera-bullet-interpreter
+TheBloke/Samantha-1.11-CodeLlama-34B-GPTQ
+TheBloke/Samantha-1.11-CodeLlama-34B-GGUF
+Phind/Phind-CodeLlama-34B-Python-v1
+clibrain/Llama-2-7b-ft-instruct-es-gptq-4bit
+BlueBeagle/t5-small-finetuned-xsum
+Medissa/t5_large_finetuned_extra
+Medissa/finetuned_t5_extra_QA
+TheBloke/Llama2-70B-OASST-SFT-v10-GGUF
+shivam001/gpthack
+TheBloke/Llama2-70B-OASST-SFT-v10-GPTQ
+TheBloke/Llama2-70B-OASST-SFT-v10-GGML
+yashonwu/t5-base-sft-all
+verres17/distilgpt2-finetuned-wikitext2
+minchiosa/llama-2-7b-miniguanaco
+ChillyMango/llama-2-7b-jerrybot
+unmolb/ChattoBotto_v2
+acrastt/OmegLLaMA-3B
+heegyu/llama-small-randomweights
+zarakiquemparte/zarablend-1.1-l2-7b
+newsmediabias/UnBIAS-LLama2-Debiaser
+WizardLM/WizardCoder-Python-34B-V1.0
+Jaehun/faithful_model
+yashonwu/t5-base-rlhf-bm25-all
+WizardLM/WizardCoder-Python-13B-V1.0
+NousResearch/CodeLlama-13b-Instruct-hf-flash
+NousResearch/CodeLlama-7b-Instruct-hf-flash
+04RR/ScienceLLM
+FinchResearch/GTamaraw2-1b
+liaaron1/llama-2-7b-chat-bible-shards
+neelmistry/Llama-2-7b-chat-finetune2608
+Benson/llama-2-7b-miniguanaco-hf
+EDGE-AI/EDGE_0-7B_GGML
+Toflamus/GPT-2_para3M
+approach0/mathy-vicuna-13B-FFT-phase2
+caffeinatedwoof/llama-2-7b-chat-hf-amod-mental-health-counseling-conversations
+yudiwbs/llama-2-7b-eli5_id_1k
+Lancelot53/flan-t5-base-xlsum
+SINGHANKIT/t5forqgeneration
+bedus-creation/eng-limbu-model-001
+Roy029/flan_mix_resize10e_prefix
+SebastianSchramm/Cerebras-GPT-111M-instruction-GPTQ-4bit-128g-actorder_True
+asyafiqe/Merak-7B-v3-Mini-Orca-Indo
+Mediocreatmybest/Phind-CodeLlama-34B-Python-v1_8bit_nf4
+TheBloke/Phind-CodeLlama-34B-v1-GPTQ
+TheBloke/Phind-CodeLlama-34B-v1-GGUF
+ldhldh/1.3b_full
+TheBloke/Phind-CodeLlama-34B-Python-v1-GGUF
+Mediocreatmybest/Phind-CodeLlama-34B-Python-v1_8bit_fp4
+smjain/flan-alpaca-xl_onnx
+karsar/Llama2_merged_4bit_ALL_67k_r64_3e
+SebastianSchramm/UniNER-7B-all-GPTQ-4bit-128g-actorder_True
+retr0sushi04/robotics-prompt-v1
+OpenAssistant/codellama-13b-oasst-sft-v10
+prarabdhshukla/fine-tuned-t5-keyphrase-detection
+prarabdhshukla/fine-tuned-t5-answer-aware-question-generation
+jed351/gpt2-rthk
+ldhldh/1.3b_full_2
+mustafamegahed/llm_test_II
+Luciano/llama-2-7b-guanaco-dolly-mini
+TheBloke/WizardCoder-Python-34B-V1.0-GPTQ
+TheBloke/WizardCoder-Python-34B-V1.0-GGUF
+TheBloke/Zarafusionex-1.1-L2-7B-GGML
+TheBloke/Zarafusionex-1.1-L2-7B-GPTQ
+yangxh1791/llama-2-7b-miniguanaco
+TheBloke/Zarafusionex-1.1-L2-7B-GGUF
+TheBloke/Synthia-70B-GGUF
+TheBloke/Synthia-70B-GGML
+TheBloke/Synthia-70B-GPTQ
+jondurbin/airoboros-c34b-2.1
+922-CA/LLilmonix3b-v0.3
+jondurbin/airoboros-l2-70b-2.1
+aman-mehra/gpt2-large-finetune-squad-ep-4.0-lr-2e-05-wd-0.01
+DrishtiSharma/DialoGPT-large-faqs-block-size128-bs-16
+aman-mehra/gpt2-large-finetune-squad-ep-1.0-lr-2e-05-wd-0.0
+TheBloke/Phind-CodeLlama-34B-Python-v1-GPTQ
+aman-mehra/gpt2-large-finetune-squad-ep-2.0-lr-2e-06-wd-0.01
+lello5/llama-2-7b-miniguanaco
+victornica/yummy_guacamol
+asyafiqe/Merak-7B-v3-Mini-Orca-Indo-GPTQ
+kmaurinjones/flan-t5-legal-extractor
+FinchResearch/GTamaraw3-1b
+blazingbhavneek/llama-2-7b-guanaco-bhavneek
+magnustragardh/codeparrot-ds-accelerate
+FinchResearch/MarLin-7b
+TheBloke/Genz-70b-GGML
+TheBloke/Genz-70b-GPTQ
+TheBloke/Genz-70b-GGUF
+TheBloke/Llama-2-70B-Orca-200k-GGML
+TheBloke/Llama-2-70B-Orca-200k-GPTQ
+TheBloke/Llama-2-70B-Orca-200k-GGUF
+jmaczan/llama-2-7b-c-137
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-2e-5
+BigSalmon/InformalToFormalLincoln110Paraphrase
+Aaron-96/news_ft
+jmaczan/llama-2-7b-rick-c-137
+ChillyMango/llama-2-7b-sjbot
+Karzan/gpt2-walamakan-2
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_6_e-1_s6789_v4_l5
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_6_e-1_s6789_v4_l5
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_6_e1_s6789_v4_l5
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_6_e1_s6789_v4_l5
+odunola/foodie-test
+fbellame/llama2-pdf-to-quizz-13b
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_6_e2_s6789_v4_l5
+ChillyMango/llama-2-7b-tonebot
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_6_e2_s6789_v4_l5
+aman-mehra/gpt2-medium-finetune-squad-ep-2.0-lr-2e-05-wd-0.01
+newronai/lma2-7b-Chat-Adapter-3500.500.50-FullNew-merged
+LyteAIs/t5-large-finetuned-english-to-darija
+RI05/my_awesome_billsum_model
+davidli49/test2-gptq-4bit
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_6_e3_s6789_v4_l5
+TheBloke/Airoboros-c34B-2.1-GPTQ
+TheBloke/Airoboros-c34B-2.1-GGUF
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e0_s6789_v4_l5
+JJinBBangMan/codeparrot-ds
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e0_s6789_v4_l5
+anonuseranonuser/tutorbot-spock-bio-llama-diff
+Trelis/CodeLlama-34b-Instruct-hf-function-calling-v2
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_6_e3_s6789_v4_l5
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_6_e4_s6789_v4_l5
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_6_e-1_s6789_v4_l5_manual
+Glavin001/coqar-questions-llama-2-7b-v0.1
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_6_e4_s6789_v4_l5
+yashonwu/t5-base-rlhf-tfidf-all
+KingKazma/cnn_dailymail_t5-small_fine_tuning_500_4_50000_6_e-1_s6789_v4_l5_manual
+TheBloke/Airoboros-L2-70B-2.1-GPTQ
+TheBloke/Airoboros-L2-70B-2.1-GGUF
+TheBloke/Airoboros-L2-70B-2.1-GGML
+aman-mehra/gpt2-finetune-squad-ep-2.0-lr-2e-05-wd-0.01
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e1_s6789_v4_l5
+oscorrea/scores-llama2-13b-sm
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e1_s6789_v4_l5
+Toflamus/gpt2_pretrained
+Aj-Cdr/JokeGPT-v2
+yudiwbs/llama-2-7b-chat_eli5_id_1k
+Glavin001/coqar-questions-llama-2-7b-v0.1-GPTQ
+aman-mehra/gpt2-finetune-squad-ep-2.0-lr-0.0001-wd-0.1
+hihisu1231/practice1
+baxterstockman/my_awesome_eli5_clm-model_new_new
+yashonwu/t5-base-rlhf-electra-all
+Ravi07bec/llama-7b-pretrained-ravi-aug25
+fangloveskari/Platypus_QLoRA_LLaMA_70b
+aman-mehra/gpt2-finetune-squad-ep-2.0-lr-0.0001-wd-0.0
+zarakiquemparte/zaraxls-l2-7b
+aman-mehra/gpt2-finetune-squad-ep-2.0-lr-2e-05-wd-0.0
+oscorrea/shortDescriptions-llama2-13b-sm
+zarakiquemparte/tulpar-limarp-l2-7b
+aman-mehra/gpt2-finetune-squad-ep-5.0-lr-2e-05-wd-0.01
+aman-mehra/gpt2-medium-finetune-squad-ep-2.0-lr-0.0001-wd-0.1
+eraser/llama-2-wip-llama-2-7b
+WizardLM/WizardCoder-3B-V1.0
+WizardLM/WizardCoder-1B-V1.0
+monsoon-nlp/nyc-savvy-llama2-7b
+ScottShao/falcon-openassistant-test-101
+mintz1104/llama-2-7b-miniguanaco
+Seungyoun/codellama-7b-instruct-pad
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-1e-5
+aman-mehra/gpt2-finetune-squad-ep-5.0-lr-2e-05-wd-0.0
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-0.5e-5
+wyuancs/Fine_Tuned_T5_small_for_DailyDialog
+Aakkash/t5-base-finetuned-amazon-en-es
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-5e-5
+TinyPixel/lima-test
+wyuancs/fine_tuned_DialogueGPT_on_DailyDialog
+luckygyana/flan-t5-base-prompt-response
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-7e-6
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-2e-6
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-1e-6
+chenzhwsysu57/my_awesome_opus_books_model
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-5e-6
+DrishtiSharma/DialoGPT-large-faqs-block-size-256-bs-16-lr-1e-05
+chargoddard/llama-2-34b-uncode
+seeklhy/codes-1b
+DrishtiSharma/DialoGPT-large-faqs-block-size-64-bs-16-lr-1e-05
+TheBloke/Huginn-22B-Prototype-GPTQ
+TheBloke/Huginn-22B-Prototype-GGML
+TheBloke/Huginn-22B-Prototype-GGUF
+josephilo/pub1
+DrishtiSharma/DialoGPT-large-faqs-block-size-32-bs-16-lr-1e-05
+seeklhy/codes-3b
+LiChenYi/llama-2-7b-combined-1
+YoussefThabet/youssefllama_Links500
+DrishtiSharma/DialoGPT-large-faqs-block-size-16-bs-16-lr-1e-05
+ScottShao/falcon-openassistant-test-102
+DrishtiSharma/DialoGPT-large-faqs-block-size-400-bs-16-lr-1e-05
+seeklhy/codes-7b
+sarojregmi200/indi-translate
+DrishtiSharma/DialoGPT-large-faqs-block-size-350-bs-16-lr-1e-05
+SebastianSchramm/UniNER-7B-type-GPTQ-4bit-128g-actorder_True
+corvideon/llama-2-7b-guanaco-dolly-mini
+Nagase-Kotono/polyglot-ko-12.8b-Nagase-Kotono-0.3v
+SebastianSchramm/UniNER-7B-definition-GPTQ-4bit-128g-actorder_True
+aman-mehra/gpt2-medium-finetune-squad-ep-2.0-lr-0.0001-wd-0.0
+seeklhy/codes-15b
+Bodor/my_awesome_opus_books_model
+xwasco/llama-2-7b-miniguanaco
+SebastianSchramm/UniNER-7B-type-sup-GPTQ-4bit-128g-actorder_True
+tangy0/llama-2-7b-miniguanaco
+victornica/yucky_guacamol
+shekharchatterjee/temp-model-278
+yashonwu/t5-base-rlhf-tctcolbert-all
+shuvom/pythia-70m-FT-Lamini-420
+JackLord1/llama-2-7b-guanaco-dolly-mini
+TheBloke/CodeLlama-13B-oasst-sft-v10-GPTQ
+TheBloke/CodeLlama-13B-oasst-sft-v10-GGML
+TheBloke/CodeLlama-13B-oasst-sft-v10-GGUF
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e2_s6789_v4_l5
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e2_s6789_v4_l5
+tangy0/llama-2-7b-dtlpy_v0.1
+Mediocreatmybest/WizardCoder-Python-34B-V1.0_8bit_nf4
+dpml/vicuna_mqm_ref_50s
+dpml/vicuna_mqm_ref_100s
+dpml/vicuna_mqm_ref_150s
+Al-Hathboor-Bikal-ai-2023/SRTIP-GPT-F7B-base
+p9chen/sft_qlora_llama2_7b_test
+lenbrocki/SerenaQ
+TheBlokeAI/genchats-test-merge
+zarakiquemparte/hermes-rp-l2-7b
+yxgao/llama-2-7b-miniguanaco
+KingKazma/xsum_gpt2_fine_tuning_500_4_50000_6_e3_s6789_v4_l5
+RishuD7/t5_number_v8
+KingKazma/cnn_dailymail_gpt2_fine_tuning_500_4_50000_6_e3_s6789_v4_l5
+Taishi-N324/ja_llama_410m_v3
+iblfe/webnesday
+RobbeD/OpenLlama-Platypus-3B
+suzii/DS-Chatbot-ViT5-finetune_eu
+TheBloke/WizardCoder-Python-13B-V1.0-GPTQ
+TheBloke/WizardCoder-Python-13B-V1.0-GGML
+TheBloke/WizardCoder-Python-13B-V1.0-GGUF
+aman-mehra/gpt2-medium-finetune-squad-ep-2.0-lr-2e-05-wd-0.0
+nadiamaqbool81/llama-2-7b-int4-java-code-1k
+PulsarAI/OpenOrca-Platypus2-13B-QLoRA-0.80-epoch
+Al-Hathboor-Bikal-ai-2023/SRTIP-GPT-F40B-Instruct
+ChillyMango/llama-2-7b-albertbot
+taozi555/MythoMax-Kimiko-Mix
+PulsarAI/OrcaMini-Platypus2-13B-QLoRA-0.80-epoch
+yxgao/llama-2-7b-chat-hf-guanaco
+yzhuang/autotree_llama_small_26_vit
+PulsarAI/Stable-Platypus2-13B-QLoRA-0.80-epoch
+Al-Hathboor-Bikal-ai-2023/SRTIP-GPT-F7B-instruct-sharded
+PulsarAI/Nous-Hermes-Platypus2-13B-QLoRA-0.80-epoch
+Fredithefish/Guanaco-3B-Uncensored-v2
+Mohanrajv27/GPT2-Finetuned-text-to-sql
+PulsarAI/Limarp-Platypus2-13B-QLoRA-0.80-epoch
+mzc-daniel/kullm-13b-origin-daniel
+PulsarAI/MythoMix-Platypus2-13B-QLoRA-0.80-epoch
+PulsarAI/PuddleJumper-Platypus2-13B-QLoRA-0.80-epoch
+GtQuik702/OPT-350M-Erebus-wikitext2
+1q2w3e4r5t/Polyglot12.8B_finetuned_55k
+victorlxh/iKG-v1.0
+datadriven/bsc_work_3.8b_daTrue
+victornica/sticky_guacamol
+kimnt93/vc-7b-06
+oilbread/KoAlpaca-Polyglot-5.8B-10epoch-eosend
+j5ng/kullm-12.8b-GPTQ-8bit
+nomsgadded/clm
+fangloveskari/ORCA_LLaMA_70B_QLoRA
+sminpark/ds-alpha-model-v0.1-merged
+ymorioka/t5-base-long-qkquiz
+Intel/Llama-2-7b-hf-onnx-int4
+julianchu/finllama-7B
+lavanyats/llama-2-7b-miniguanaco
+Nagase-Kotono/polyglot-ko-12.8b-Nagase-Kotono-0.4v
+fiveflow/flan-t5-base-sat
+fiveflow/flan-t5-small-sat
+fiveflow/flan-t5-small-gsm8k
+cherry1556/stack-llama-2-0828
+yxgao/llama-2-7b-chat-hf-guanaco-sharegpt-cn
+yzhuang/autotree_llama_small_snnxor_l1_2_vit
+ymorioka/t5-base-long-qkquiz-qag
+papersubmission/trlx_flan_t5_xl_sft_rl
+ChaiML/llama7b_dummy
+papersubmission/trlx_flan_t5_large_sft_rl
+papersubmission/trlx_flan_t5_base_sft_rl
+Isotonic/gpt2-context_generator
+axiong/PMC_LLaMA_13B
+rozek/LLaMA-2-7B-32K_GGUF
+Saugatkafley/fine-tuned-flan-t5-base-science-LLM
+victornica/mushy_guacamol_20iter
+papersubmission/trlx_flan_t5_small_sft_rl
+DylanJHJ/function-base-qrecc
+sgr23/llama2-fine-tuned-dolly-15k-dto
+scorinaldi/trymodel
+khoantap/limarp-v2-qlora
+iwahith/Llama-2-7b-chat-finetune
+Aharneish/gpt2-spiritual
+Existance/mT5_multilingual_XLSum-marathi-summarization
+Pankti99/llama-2-7b-medical
+AhmedDaniyal/GPT2CODEGEN
+tangy0/llama-2-7b-dtlpy_v0.2
+kavinilavan/Llama-2-13b-chat-hf-array_n_poa_agent0_v2
+liaaron1/llama-2-7b-liaaron1-bible-shards
+bjfxs/llama2-7b-finetunned-openassistant-test-learningRate2
+zrx-kishore/Llama-2-7b-chat-hf-array_agent0
+JennnDexter/clm
+smallyu/LLaMA2-7B-Spider-En
+dpml/vicuna_mqm_worst_50s
+dpml/vicuna_mqm_worst_100s
+dpml/vicuna_mqm_worst_150s
+d0rj/FRED-T5-large-instruct
+estonto/fido-gpt
+ymorioka/t5-base-long-qkquiz-qag2
+nedima68/author_articles_GPT2_textgen_TR
+TabbyML/CodeLlama-13B
+hihisu1231/my-mbti-qgnda
+victornica/mushy_guacamol_40iter
+hihisu1231/test-jay-model
+Vasanth/codellama2-finetuned-codex-fin
+hihisu1231/dtpi
+hihisu1231/MZ
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-1e-05-deepspeed-True
+Jinpkk/ITproject_version4
+Ayushnangia/bloom3B-2bit-gptq
+mrkushrz/llama-2-7b-Chat-hf_QAInformatik
+jaimin/llama-2-7b-miniguanaco
+Vertti/TuumaPEFTDialogue04Merged
+AllanOuii/Llama-2-7b-chat-hf-1
+FlagAlpha/Atom-7B
+DrishtiSharma/DialoGPT-large-faqs-block-size-128-bs-16-lr-1e-05-deepspeed-stage2
+Shivaya/llama-2-7b-miniguanaco
+oMarquess/nahara-v1-merged
+foscraft/ca-t5-67
+clibrain/Llama-2-13b-ft-instruct-es-gptq-4bit
+zrx-kishore/Llama-2-13b-chat-hf-8bit-array_agent0
+Trofish/KULLM-RLHF
+xianf/testmodel
+ArmelR/doremi-280m
+SasnayaLetovka/tinkoff-zhientaev-model
+yfshi123/weblab-10b-sft-gptq-32g
+victornica/mushy_guacamol_60iter
+aman-mehra/gpt2-xl-finetune-squad-ep-0.2-lr-2e-05-wd-0.01
+monuminu/llama-2-7b-miniguanaco
+alkahestry/llama-2-Ptp2
+yangdechuan/codeparrot-ds
+elyza/ELYZA-japanese-Llama-2-7b
+nitinjainbotstar/llama-2-7b-nitin
+elyza/ELYZA-japanese-Llama-2-7b-instruct
+kavinilavan/Llama-2-13b-chat-hf-array_8bit
+elyza/ELYZA-japanese-Llama-2-7b-fast
+NobodyExistsOnTheInternet/PuffedConvo13bLoraE4
+pe-nlp/llama-2-70b-platypus-vicuna-wizard
+KinGPT/GPT2-oops
+elyza/ELYZA-japanese-Llama-2-7b-fast-instruct
+iwahith/Llama-2-7b-CSR
+banhabang/vit5-large-tags-generation
+mncai/Llama2-7B-ShareGPT-Wiki_noprompt-News_noprompt-CoT_epoch4
+Mediocreatmybest/WizardCoder-Python-13B-V1.0_8bit_nf4
+schauppi/WizardCoder-1.0-34B
+asas-ai/mt5xl_8bit
+Sao10K/Medusa-13b
+aman-mehra/gpt2-xl-finetune-squad-ep-0.6-lr-0.0001-wd-0.001
+simlamkr1/llama2_finetuned_chatbot
+paceport/quantized_model
+Ralphch97/StarChatBeta_Finetuned_Ralph_v3
+polymath707/llama-2-7b-miniguanaco
+wangrongsheng/CareLlama2-7b-merge-mix
+fiveflow/gpt2-sat-aqua
+fiveflow/gpt2-aqua
+asas-ai/bloomz_7b_8bit
+verres17/pythia-160m-finetuned-wikitext2
+loubnabnl/CodeLlama-7b-hf
+ChillyMango/llama-2-7b-chisbot
+TariqJamil/Llama-2-13b-chat-q4bit
+HiranyaDilukshi/lesson-summarization
+mncai/SGPT-5.8B-wiki-mirae-bank_securities-epoch5
+larsenweigle/llama-2-7b-miniguanaco
+paceport/quantized_model-7B
+Edmon02/codeparrot
+axiomepic/harmon
+Edmon02/codeparrot-small
+bedus-creation/eng-limbu-model-002
+josepholiver/TEST_MODEL_1
+guidoivetta/xi-ciai-cba-martin-fierro
+Blai/en_fr_initial
+monuminu/llama-2-13b-miniguanaco
+dsmonk/llama2_qlora_finetuned_ns_summary
+baxterstockman/my_awesome_eli5_clm-model_8_28_1
+polymath707/llama-2-13b-miniguanaco
+DRAGOO/flan-t5-small-ocp-chat
+Brobles/bgoogle
+guidoivetta/peppa_pig
+AdxLive/flan-t5-base-samsum
+TheBloke/Phind-CodeLlama-34B-v2-GPTQ
+4bit/Chinese-Llama-2-7b-4bit
+lvwerra/starcoderbase-gsm8k
+tgoktug/my_awesome_t5_model
+MonsterMine2015/Test_Colab
+thiagomf/Llama-2-7b-chat-hf-recipes
+Phind/Phind-CodeLlama-34B-v2
+Rahuf/aImy_test_model
+kimnt93/kmv-7b-01
+logeshr/llama-2-7b-miniguanaco
+ChaiML/llamademo
+migtissera/Synthia-70B-v1.1
+aman-mehra/gpt2-xl-finetune-squad-ep-1.0-lr-0.001-wd-0.0
+cssupport/t5-small-awesome-text-to-sql
+anhnv125/llama-op-v4
+tiiuae/falcon-180B
+jondurbin/airoboros-l2-13b-2.1
+jondurbin/airoboros-l2-7b-2.1
+Michael-Vptn/text-summarization-v2-t5-base
+ccbeauchamp/asdfjk
+misterkuka/4-bit-cerebras-3b-8k-base
+oilbread/KoAlpaca-Polyglot-5.8B-10epoch-fulldata
+zarakiquemparte/zarafusionex-1.2-l2-7b
+porkorbeef/Llama-2-13b-15_170806-7
+datadriven/bsc_communication_3.8b_daTrue
+datadriven/bsc_total_3.8b_daTrue
+CHIH-HUNG/llama-2-13b-dolphin_20w
+ehartford/WizardLM-1.0-Uncensored-CodeLlama-34b
+Delcos/GB
+kuleshov/llama-7b-4bit-v2
+xianf/testmodel_2
+VietnamAIHub/Vietnamese_LLama2_13B_8K_SFT_General_Domain_Knowledge
+vietgpt-archive/hoa-7b
+tyzhu/fwv2_random_num_train_1000_eval_100_t5-large
+ldhldh/1.3b_full_simple
+RicardoLee/Llama2-chat-13B-Chinese-withCode3W-LoRA
+huyen89/llama-2-7b-miniguanaco
+kimnt93/kmv-7b-02
+ChillyMango/llama-2-7b-chitchat
+AIDC-ai-business/Luban-13B
+1warden2/T5XSum_AWSBlogs
+alkahestry/nous-hermes-llama2-13b
+oananovac/test_enron
+tyzhu/fwv2_random_num_train_100_eval_100_t5-large
+oananovac/test_enron_repo
+monsoon-nlp/mGPT-quantized
+j5ng/kullm-5.8b-GPTQ-8bit
+Pankti99/llama-2-7b-HealthCareMagic
+EsiLambda/my_awesome_opus_books_model
+tyzhu/fwv2_random_num_tip_train_100_eval_100_t5-large
+polymath707/llama-2-70b-miniguanaco
+TheBloke/Phind-CodeLlama-34B-v2-GGUF
+polymath707/llama-2-13b-miniguanaco-v2
+axiomepic/harmony
+FinchResearch/Manish-1b
+tyzhu/fwv2_random_num_tip_train_10_eval_10_t5-large
+FinchResearch/Gurkha-copilot-1b
+tyzhu/fwv2_squad_num_train_100_eval_100_t5-large
+FinchResearch/Sherman-copilot-1b
+Vertti/TuumaPEFTDialogue05Merged
+tyzhu/fwv2_random_num_train_10_eval_10_t5-large
+FinchResearch/Nines-llama2-7b
+Intel/Llama-2-7b-chat-hf-onnx-int4
+Knight1991/my_awesome_opus_books_model
+purna419/llama-2-7b-instruct-tuning
+tyzhu/fwv2_squad_num_train_10_eval_10_t5-large
+ArenT-B/llama-2-7b-guanaco-dolly-mini
+Sampson2022/test-gpt2
+dharmik-19/llama-2-7b-perceptive-analytics
+kristinashemet/llama-2-7b-TEST_V01
+qnquang/zien-llama-2-7b-fine-tuned-test
+imosnoi/llama-2-7b-miniguanaco
+khoantap/wizard-limarp
+synapsoft/Llama-2-7b-hf-flan2022-1.2M
+kaitchup/Llama-2-7b-gptq-4bit
+rajamamoon/llama-2-7b-pot-hf
+WizardLM/WizardCoder-Python-7B-V1.0
+hrfoukin75/mythomax_finetuned
+kavinilavan/Llama-2-13b-chat-hf-array_4bit_new_prompt
+kaitchup/Llama-2-7b-gptq-3bit
+tyzhu/fwv2_squad_num_train_1000_eval_100_t5-large
+nilotpalkumar3/Llama-2-7b-finetune
+TheBloke/Lemur-70B-Chat-v1-GGUF
+TheBloke/Lemur-70B-Chat-v1-GGML
+amasing7/sf-trained
+kartiks26/Mental_Health_Assistant_Llama2-7B
+kaitchup/Llama-2-7b-gptq-2bit
+Ankur464221/t5-small-finetuned-xsum
+erebos/atlas-llama-7b-finetune
+TheBloke/Samantha-1.11-13B-GPTQ
+TheBloke/Samantha-1.11-13B-GGUF
+TheBloke/Samantha-1.11-13B-GGML
+polymath707/llama-2-70b-miniguanaco-v2
+Kryvda/New-model
+amasing7/sf-trained2
+Skepsun/chinese-llama-2-7b-sft-openchat
+dekomori09/llama-2-7b-marketing
+sekarmulyani/gpt2-ulasan-beauty-products-gen
+amasing7/sf-trained-falcon
+Sao10K/Mythical-Destroyer-L2-13B
+asas-ai/bloom_1B_8bit
+OpenBuddy/openbuddy-coder-34b-v11-bf16
+TheBloke/MythoMax-Kimiko-Mix-GGUF
+TheBloke/MythoMax-Kimiko-Mix-GGML
+TheBloke/MythoMax-Kimiko-Mix-GPTQ
+Aniya/llama2-7b-instruction-gen
+mrkushrz/llama-2-7b-Chat-hf_QAInformatik-v2
+peterpan0718/llama-2-7b-miniguanaco
+tog/llama-2-7b-miniguanaco
+multimodalai/cerebras-llama2-7b-8k-trl-lora-instruct-3k-v1
+climatefinance/Evaluator_v1.0
+conceptofmind/Yarn-Llama-2-13b-64k
+umitmertcakmak/Llama-2-13B-fp16-mental-health-chatbot
+sidharthsingh1892/cobol-to-java-llama-2-7b
+TerryHenrickson/t5-small-finetuned-xsum
+ticoAg/gpt2-tigerbot-pt-zh
+TheBloke/Lemur-70B-Chat-v1-GPTQ
+InstaDeepExternalProject/llm_training_20230817_092041
+oananovac/gpt2_twitter_v3
+TheBloke/Mythical-Destroyer-L2-13B-GGUF
+TheBloke/Mythical-Destroyer-L2-13B-GGML
+mohanraj/GPT2_Finetuned_Text_To_Sql
+PRAli22/t5-base-question-answering-system
+KedirAhmed/Llama-2-7b-chat-finetune
+niting3c/llama-2-7b-hf-zero-shot-prompt
+AbdelrahmanFakhry/finetuned-gpt2-multi-QA-Generation
+yeontaek/airoboros-2.1-llama-2-13B-QLoRa
+nlok5923/llama-v2-2
+tangy0/llama-2-7b-dtlpy_v0.4chat
+Adun/openthaigpt-1.0.0-beta-7b-ckpt-hf
+bitadin/checkpoint-230167
+KimJY/LogicLMv2
+4bit/ELYZA-japanese-Llama-2-7b-instruct
+learn3r/t5_3b_epoch_3_qa
+TheBloke/Mythical-Destroyer-L2-13B-GPTQ
+amasing7/sf-trained-falcon-7b
+dariolopez/llama-2-7b-miniguanaco
+TheBloke/Airoboros-L2-13B-2.1-GGUF
+TheBloke/Airoboros-L2-13B-2.1-GGML
+robsucher/llama-2-7b-miniguanaco
+tyzhu/fwv2_random_rare_train_1000_eval_100_t5-large
+The-Face-Of-Goonery/Huginn-13b-V4
+nguyenthanhdo/dummy_test
+TheBloke/Airoboros-L2-13B-2.1-GPTQ
+rhbbs/My-upload-test
+kstecenko/xgen_with_function_calls2_merged
+Sao10K/Mythical-Destroyer-V2-L2-13B
+KimJY/LogicLMv2Sharded
+brightlightkim/llama-2-7b-miniguanaco
+amasing7/sf-trained-falcon-7b-largeds
+RishuD7/t5_options_v1
+TheBloke/model_007-70B-GGML
+TheBloke/model_007-70B-GGUF
+TheBloke/model_007-70B-GPTQ
+priyasaravana/modelGPTlm
+gipul/llama-7b-ggml
+holtbui/mt5-small-finetuned-amazon-en-es
+tyzhu/fwv2_random_rare_train_100_eval_100_t5-large
+asas-ai/mt5_large_8bit
+priyasaravana/modelGPTlm_1
+tarudesu/unit-t5-base
+anjakuzev/trump_v1
+KennethTM/gpt2-medium-danish-review-response
+dariolopez/llama-2-7b-oasst1-es
+victornica/mini_molformer_gsf
+tyzhu/fwv2_squad_num_train_10000_eval_100_t5-large
+bhawanisinghshekhawat/ml_llama_ft
+nirkr/t5-small-samsum_5eps
+The-Face-Of-Goonery/Huginn-13b-v4.5
+multimodalai/cerebras-llama2-7b-8k-trl-lora-edtech-6k-v1
+conceptofmind/Yarn-Llama-2-7b-64k
+oscorrea/scores-lince-sm
+tog/llama-2-7b-galleon
+yzhuang/autotree_llama_26_vit
+dcbv/charluv13b-4bit
+VatsaDev/codeparrot-ds
+Devden/masha-1
+Devden/masha-2
+nirkr/t5-small-billsum_5eps
+TheBloke/Airoboros-L2-7B-2.1-GGUF
+TheBloke/Airoboros-L2-7B-2.1-GGML
+TheBloke/Airoboros-L2-7B-2.1-GPTQ
+PulsarAI/Luban-Platypus2-13B-QLora-0.80-epoch
+hidude562/OpenMusenet-2.1-L
+maxolotl/llama2-wait3-1
+llmf/cabecalho-de-ementas-com-ptt5
+nugget00/mt5-small-finetuned-amazon-en-es
+Rakeshkamma/Llama-2-7b-chat-finetune
+akashmaggon/lamini70m
+hieunguyenminh/BullsBot
+Goo-Bello-Cello/229_testing_20230824.bin
+TFMC/ELYZA-japanese-Llama-2-7b-instruct-GPTQ-4bit-64g
+chowdhuryshaif/sum_model
+Benson/llama-2-7b-miniguanaco-chat-hf
+Chanblock/llama2_250_data_final
+aoyuqc/hf_test_eli5_clm-model
+mesolitica/llama-7b-hf-16384-fpf
+NousResearch/Yarn-Llama-2-7b-64k
+NousResearch/Yarn-Llama-2-13b-64k
+TaylorAI/Llama-3B-RLCD-SFT_Llama-3B-Flash_936_full_model
+hecool108/ct-p1
+hecool108/ct-p2
+minhdang/thu_nghiem_3
+tyzhu/fwv2_random_num_train_10000_eval_100_t5-large
+eqhylxx/vicuna-160m
+conghao/llama2-7b-chat-hf
+hellomyoh/nmt-s12000-kullm-polyglot-5.8b-v1
+oscorrea/scores-falcon40b-sm-merged
+polymath707/llama-2-70b-miniguanaco-v3
+amurshak/llama-2-7b-miniguanaco
+anjakuzev/trump_v2
+porkorbeef/Llama-2-13b-public
+victornica/molgpt_selfies
+nirkr/t5-small-cnn_dailymail_5eps
+alexue4/text-normalization-ru-terrible
+yzhuang/autotree_llama_26_vit_local
+wnic00/t5-small-finetune-bilingual-summarization
+oddlyshapedfn/YouCompleteRe
+Minbai/Sakura_Bloomfinetuning
+ldhldh/1.3b_full_simple_add_inst
+RishuD7/t5_dropdown_ck_v1
+Andyrasika/finetuned-gpt2_dolly_lite
+kavinilavan/Llama-2-13b-chat-hf-array_n_poa_4epoch
+gyupro/Koalpaca-Translation-KR2EN
+talentlabs/chinese-llama-2-13b_v30-08-2023
+sminpark/ds-alpha-draft-model
+CHIH-HUNG/llama-2-13b-OpenOrca_20w
+ezeroz/llama2-7b-ko-2260
+yzhuang/autotree_llama_26_vita
+kavinilavan/Llama-2-7b-chat-hf-array_new
+rozek/LLaMA-2-7B-32K-Instruct_GGUF
+TigerResearch/tigerbot-13b-chat-4bit
+hothanhlong/my_awesome_eli5_clm-model
+Toflamus/Finetuned3
+Nanum/llama-2-7b-nanum-merge
+tyzhu/fwv2_baseline_squad_train_1000_eval_100_gpt2-large
+tianyil1/denas-llama2
+alkahestry/hermes-limarp-13B
+diana9m/llama-2-7b-miniguanaco
+DevaMalla/llama7b_alpaca_bf16
+umerah/Task3
+PulsarAI/Ensemble5-Platypus2-13B-QLora-0.80-epoch
+dahara1/ELYZA-japanese-Llama-2-7b-fast-instruct-GPTQ
+TheBloke/Mythical-Destroyer-V2-L2-13B-GGUF
+TheBloke/Mythical-Destroyer-V2-L2-13B-GPTQ
+TheBloke/Mythical-Destroyer-V2-L2-13B-GGML
+vgaraujov/Dummy5
+PulsarAI/Airboros2.1-Platypus2-13B-QLora-0.80-epoch
+alibidaran/llama-2-7b-guanaco-dolly-mini
+PulsarAI/MythicalDestroyerV2-Platypus2-13B-QLora-0.80-epoch
+TigerResearch/tigerbot-7b-chat-8bit
+IkariDev/Athena-v1
+PulsarAI/Athena-Platypus2-13B-QLora-0.80-epoch
+Sarvagha/falcon-7b-instruct-sharded
+TheBloke/Huginn-13B-v4.5-GPTQ
+TheBloke/Huginn-13B-v4.5-GGUF
+TheBloke/Huginn-13B-v4.5-GGML
+tyzhu/fwv2_baseline_squad_train_10000_eval_100_gpt2-large
+TheBloke/Huginn-13B-v4-GGUF
+TheBloke/Huginn-13B-v4-GGML
+Sarvagha/Text2SQL_prompting
+usernamedesu/MythChan-13b-test2
+PulsarAI/OpenOrcaPlatypus2-Platypus2-13B-QLora-0.80-epoch
+Medissa/t5_conetxt_first
+Nota-Research/t5-small-facilify
+pumaML/turkishReviews-ds-mini
+Anaswara/llama-2-7b-miniguanaco
+kavinilavan/Llama-2-13b-chat-hf-array_n_poa_4epoch_v2
+TheBloke/Huginn-13B-v4-GPTQ
+KimJY/GLM-13B-gptq-4bit
+bhawanisinghshekhawat/ml_llama_ft_igql
+JoSw-14/LoKuS-13B
+Kryvda/New-model-1
+conceptofmind/Yarn-Llama-2-13b-128k
+schwgHao/llama-13b-reward
+philschmid/test-gptq
+yeontaek/WizardCoder-Python-13B-LoRa
+mesolitica/llama-13b-hf-16384-fpf
+TheBloke/Athena-v1-GGML
+TheBloke/Athena-v1-GGUF
+uukuguy/speechless-orca-platypus-coig-lite-2k-0.6e-13b
+krishnareddy/triage-llama2-7b
+typevoid/llama2-7b-int4-dolly15K
+Biakko/mt5_summnerizing_ru_10_epochs
+usernamedesu/MythChan-13b-test2-GPTQ
+actionpace/Chronorctypus-Limarobormes-13b
+yonataneshel/mt5_large_ft_spider_hebrew
+sade-adrien/starcoder_moe_cppjs2py_snippet1
+FarziBuilder/LLama-remark-try3
+TheBloke/Athena-v1-GPTQ
+chukypedro/llama-2-7b-chat-leadelo_cosine_model
+TheBloke/Luban-13B-GGML
+TheBloke/Luban-13B-GGUF
+DangFutures/Pile_Re_Re_Lora
+hellomyoh/nmt-s12000-kullm-polyglot-5.8b-ep5-v1
+usernamedesu/MythKimikoChan-Mix
+TheBloke/Luban-13B-GPTQ
+schwgHao/llama2-13b
+TheBloke/Kimiko-v2-13B-GGUF
+TheBloke/Kimiko-v2-13B-GGML
+anjakuzev/trump_v3
+asandhir/t5-small_multinews_model
+TheBloke/Kimiko-v2-13B-fp16
+Defetya/8bit-7B-nous
+anhnv125/llama-op-v5
+TheBloke/Kimiko-v2-13B-GPTQ
+dsmonk/llama2-7b-ftqlora-gptq
+vkram/llama-2-7b-miniguanaco
+usernamedesu/MythKimikoChan-Mix-GPTQ
+J-Wiggler2/Caesar
+yzhuang/autotree_llama_26_vit_test
+akashmaggon/lamini701m
+mattelone/llama-2-7b-miniguanaco
+JosephusCheung/Qwen-VL-LLaMAfied-7B-Chat
+kimnt93/kmv-7b-03
+jondurbin/airoboros-l2-70b-2.1-creative
+uukuguy/speechless-orca-platypus-coig-lite-4k-0.5e-13b
+bedus-creation/eng-limbu-model-003
+akashmaggon/lamini7021m
+Emma92/llama-2-7b-emma-1k
+akashmaggon/gpt2akash
+profetize/gpt2-wikitext2
+Enno-Ai/llama2-ennodata-ft-7b
+DeepaPeri/okdoc
+amurshak/llama-2-7b-2-epoch
+nirkr/t5-small-cnn_dailymail_5eps-cnn_dailymail_10eps
+NousResearch/Yarn-Llama-2-13b-128k
+sahil2801/llama-70-v2
+lgaalves/llama-2-7b-hf_open-platypus
+system-technologies/population_size_extraction_bloomz3b_finetune
+KnutJaegersberg/black_goo_recipe_a
+ai-maker-space/instruct-tuned-llama-7b-hf-alpaca_gpt4_5_000_samples_v2
+Doctor-Shotgun/llama-2-13b-chat-limarp-v2-merged
+victornica/mini_molformer_gsf_6epochs
+TheBloke/fiction.live-Kimiko-V2-70B-GGML
+TheBloke/fiction.live-Kimiko-V2-70B-GGUF
+TheBloke/fiction.live-Kimiko-V2-70B-GPTQ
+TheBloke/fiction.live-Kimiko-V2-70B-fp16
+Undi95/MythoMax-L2-Kimiko-v2-13b
+CHIH-HUNG/llama-2-13b-FINETUNE1_17w
+akashmaggon/70mwithdatacollator
+Geo/gpt2_custom_q_and_a
+kaiyuy/onnx-leandojo-lean4-tacgen-byt5-small
+jondurbin/airocoder-34b-2.1
+vikp/instruct_llama_7b
+J-Wiggler2/Caesar2
+filipealmeida/llama-2-7b-pii-transform
+sminchoi/llama-2-7b-guanaco-llama2-10k
+polo1478/llama-2-7b-miniguanaco
+Joshua8966/blog-writer_v31-8-2023
+cmagganas/instruct-tuned-llama-7b-hf-alpaca_gpt4_5_000_samples
+sigmoid/otg-llama2-7b-chat
+TigerResearch/tigerbot-7b-chat-4bit
+PanoEvJ/instruct-tuned-llama-7b-hf-alpaca_gpt4_5_000_samples
+sue3489/test0_kullm-polyglot-5.8b-v2-koalpaca-v1.1b
+filipealmeida/open-llama-3b-v2-pii-transform
+victornica/molgpt_selfies_6epoch_256width_withclipping_10iter_nooptim
+enyaaaaaa/chatbot
+akshat3492/mT5
+Shangding-Gu/Lunyu-LLM
+batman555/layer_1_classifier_google
+inkoziev/charllama-35M
+victornica/molgpt_selfies_6epoch_256width_withclipping_20iter_nooptim
+datastreams/ds-alpha-draft-model
+conceptofmind/Yarn-Llama-2-7b-128k
+ulichovick/custom_gpt2_generation
+jiztastamablastamarang/llama-2-7b-titles
+AlvianKhairi/Llama-2-7b-chat-finetune-25k-no_link
+NousResearch/Yarn-Llama-2-7b-128k
+victornica/molgpt_selfies_6epoch_256width_withclipping_30iter_nooptim
+zizzo/ZZZ_Testing
+Basu03/lora-flan-t5-large-chat
+usernamedesu/MythKimikoBlue-Mix
+Toflamus/GPT-2_3M_finetuned2
+Jbrophy/falcon-7B-Instruct-story-prompt-merged
+DavidLanz/tcp2023
+yrajm1997/medical-qa-fine-tuned-gpt2
+chatham84/llama-2-13b-chatham84-13b-v2
+soketlabs/bhasha-7b-2k-hi
+victornica/molgpt_selfies_6epoch_256width_withclipping_40iter_nooptim
+usernamedesu/MythKimikoBlue-Mix-GPTQ
+sue3489/test1_kullm-polyglot-5.8b-v2-koalpaca-v1.1b
+maxolotl/falcon-wait3-v1
+jjaaaww/posi_13b
+ziqingyang/chinese-alpaca-2-lora-7b-16k
+ziqingyang/chinese-alpaca-2-lora-13b-16k
+uukuguy/speechless-orca-platypus-coig-lite-4k-0.6e-13b
+kavinilavan/Llama-2-7b-chat-hf-array_n_poa_4epoch
+umerah/Task3_2
+ygutierrez/llama-2-7b-miniguanaco
+yujiepan/llama-2-tiny-3layers-random
+flozi00/codellama-34b-german-assistant-v1
+Gusanidas/gus-2-7b-russ
+tyzhu/squad_for_gpt_train_10000_eval_100_gpt2-large
+oMarquess/trained-2k10-v4-model-merged
+KnutJaegersberg/black_goo_recipe_b
+vichyt/codet5p-770m-py-sanitized-codebleu-1-True-5e-07-0.1-traditional
+rabiulrahat/llama-2-7b-chuk-test
+Gusanidas/gus-2-7b-russ-2
+flozi00/codellama-34b-german-assistant-v1-4bit-autogptq
+sekarmulyani/gpt2-ulasan-ecommerce
+victornica/molgpt_selfies_6epoch_256width_withclipping_60iter_nooptim_2
+chukypedro/llama-2-7b-chat-leadelo_cosine_model_2
+kavinilavan/pythia2.8b_array_n_poa_new
+TheBloke/MythoMax-L2-Kimiko-v2-13B-GGUF
+TheBloke/MythoMax-L2-Kimiko-v2-13B-GGML
+TheBloke/MythoMax-L2-Kimiko-v2-13B-GPTQ
+chats-bug/sagi_llama_2_7b_lora_finetuned
+Daya7624/Tuned_Model
+umerah/Task3_3
+RishuD7/t5_dropdown_ck_v2
+uukuguy/speechless-codellama-platypus-13b
+amirmhemati/my_awesome_billsum_model
+TheBloke/Airoboros-L2-70B-2.1-Creative-GGUF
+TheBloke/Airoboros-L2-70B-2.1-Creative-GGML
+TheBloke/Airoboros-L2-70B-2.1-Creative-GPTQ
+Idriska/my_awesome_eli5_clm-model
+Gen-Sim/Gen-Sim
+abhinavkulkarni/codellama-CodeLlama-7b-Instruct-hf-w4-g128-awq
+Isotonic/t5-small-ai4privacy
+Karan-PayU/LLAMA-Finetuned
+Isotonic/mt5-small-ai4privacy
+legacy107/flan-t5-large-bottleneck-adapter-cpgQA
+Joshua8966/test_chinese_llama2_13b_model
+ziqingyang/chinese-alpaca-2-7b-16k
+wangrongsheng/CareLlama2-7b-super-mix
+ziqingyang/chinese-alpaca-2-13b-16k
+Narasingha/cnn_summarization
+Marie-Laure/SantaCoder
+marcchew/Platypus-2-7B-LaMini-14K
+Abonia/Llama-2-7b-chat-finetune
+squarelike/Gugugo-koja-1.3B-V0.95
+winglian/chat-34b
+bhenrym14/airoboros-l2-13b-2.1-PI-16k-fp16
+liquac09/llama2-13b-prototype-v1
+usernamedesu/MythKimikoBlue-Mix-v2
+Viachek/llama-2-7b-miniguanaco
+jessiedu314/gpt2-finetuned1-merchantname
+nirkr/t5-small-cnn_dailymail_1eps
+Sao10K/Stheno-L2-13B
+androlike/astramix_l2_7b
+Sao10K/Stheno-Inverted-L2-13B
+Undi95/UndiMix-v1-13b
+lgaalves/falcon-7b_guanaco
+AL49/Bananas-sharded-bf16-2GB
+nRuaif/13B-temp
+TheBloke/llama-2-13B-chat-limarp-v2-merged-GGML
+TheBloke/llama-2-13B-chat-limarp-v2-merged-GGUF
+abhinavkulkarni/codellama-CodeLlama-7b-Python-hf-w4-g128-awq
+TheBloke/llama-2-13B-chat-limarp-v2-merged-GPTQ
+Rishu9401/Llama-2-7b-chat-finetune
+lgaalves/gpt2_open-platypus
+TheBloke/LoKuS-13B-GGUF
+TheBloke/LoKuS-13B-GGML
+maryshca/fpmi-abitur-model
+Geo/gpt2_custom_c_q_and_a
+marinowskiii/valyrian-gpt2-large
+toandat/Merge
+ValiantLabs/ShiningValiant
+dariolopez/llama-2-7b-databricks-dolly-oasst1-es
+TheBloke/LoKuS-13B-GPTQ
+KimJY/LGLMv3
+abhinayadutta/abhinaya-peft-Qlora-Falcon7b
+player1537/Dolphinette
+akashmaggon/pythia-70m
+Saiteja/quantized_llama_7b
+kyujinpy/KO-Platypus2-7B-ex
+qazisaad/new_model
+ConorVanek/recommendation_llm
+oananovac/gpt2_twitter_v4
+ccore/opt-125-smart-test
+androlike/astramix_l2_7b_4bit_128g_gptq
+lgaalves/gpt2_platypus-dolly-guanaco
+yethmasoo/distilgpt2-finetuned-wikitext2
+uonlp/okapi-fr-llama
+922-Narra/llama-2-7b-chat-tagalog-v0.3
+uonlp/okapi-es-llama
+yzhuang/autotree_llama_26_vita_12_test
+denisgr04/guap
+akashlesh/Llama-2-7b-chat-finetune
+sam2ai/falcon-extend-odia-1B
+922-Narra/llama-2-7b-chat-tagalog-v0.3a
+isashap/AIResume-distilgpt2
+eqhylxx/full-vicuna-160m
+CHIH-HUNG/llama-2-13b-FINETUNE2_3w
+oananovac/gpt2_twitter_v5
+dimitars/doctorai
+Medissa/t5_conetxt_last
+isashap/waldomodel
+Sentdex/WSB-GPT-13B
+Sentdex/WSB-GPT-7B
+lgaalves/gpt2_guanaco-dolly-platypus
+profetize/test-trainer
+TheBloke/Synthia-70B-v1.1-GGML
+TheBloke/Synthia-70B-v1.1-GGUF
+TheBloke/Synthia-70B-v1.1-GPTQ
+solanotodeschini/cohelm-llama-7b-v1
+Dawnstarhunter/DialoGPT-medium-Eveline
+syedhuq/llama-2-7b-guanaco-dolly-mini
+fhirfly/rapidfhir-procedures
+Toflamus/GPT-2_para3M_2epoch_256
+migtissera/Synthia-7B-v1.2
+Undi95/UndiMix-v2-13b
+mncai/Llama2-7B-blend-w-CoT-wo-dedup-LoRA_epoch4
+qazisaad/llama-2-13b-sft-product-titles-esci-train-test
+sue3489/test2_kullm-polyglot-5.8b-v2-koalpaca-v1.1b
+qazisaad/llama-2-13b-sft-optimized-titles-esci-train-test
+abeiler/huggingface-goatLora-goatV9-testData-morePushes
+TimVan1/Just4Test
+kkuramitsu/momogpt-neox-testing
+uukuguy/speechless-llama2-luban-orca-platypus-13b
+luffycodes/mcq-vicuna-13b-v1.5
+abeiler/huggingface-goatLora-goatV10-fullData-withAutoInference
+jondurbin/airoboros-33b-2.1
+TaylorAI/Flash-Llama-220M
+JJinBBangMan/mt5-small-finetuned-amazon-en-es
+victornica/molgpt_selfies_6epoch_256width_withclipping_10iter
+mattoofahad/llama-2-7b-finetune-test1
+Informalone/FB-DLAI-Instruct-tune-v3
+victornica/mini_molformer_gsf_3epochs_512width
+matvalan/vittae-llama-2-13b
+yzhuang/autotree_llama_26_vita_6_p40
+monsoon-nlp/mGPT-13B-quantized
+substratusai/weaviate-gorilla-v2
+KnutJaegersberg/black_goo_recipe_c
+nirkr/t5-small-alldatasets
+xoumyax/yaragen2-xoumyax
+yrajm1997/gpt_model
+shazinho10/llama-2-7b-rayn
+lintang/t5-v1_1-base-sglue
+Markus256/DaniTalkinator
+lintang/t5-v1_1-base-flan
+kavinilavan/pythia2.8b_array_new
+TheBloke/Yarn-Llama-2-7B-64K-GGUF
+TheBloke/Yarn-Llama-2-7B-64K-GGML
+TheBloke/Yarn-Llama-2-7B-64K-GPTQ
+TheBloke/Yarn-Llama-2-7B-128K-GGUF
+TheBloke/Yarn-Llama-2-7B-128K-GGML
+AllanOuii/Llama-2-13B-Chat-fp16-1
+ldos/text_shortening_model_v1
+TheBloke/Yarn-Llama-2-13B-128K-GGML
+TheBloke/Yarn-Llama-2-13B-128K-GGUF
+gothstaf/questionset1
+ldos/text_shortening_model_v2
+osieosie/bloom-560m-4bit
+osieosie/bloom-1b7-4bit
+wiktorw/my_awesome_opus_books_model
+karmanandan/mt5-small-finetuned-amazon-en-es
+TheBloke/Yarn-Llama-2-13B-64K-GGML
+TheBloke/Yarn-Llama-2-13B-64K-GGUF
+wiktorw/my_awesome_opus_books_modelllo
+iblfe/ara
+PY007/TinyLlama-1.1B-step-50K-105b
+khalilUoM/bloom_p560m_5
+jinoooooooooo/falcon_7b_python_instructions
+roa7n/gpt2-cl-rng-human_nontata_promoters
+polymer/model-007-2-13b
+victornica/molgpt_selfies_6epoch_256width_withclipping_20iter
+Aharneish/question-answer-training
+Vertti/TuumaPEFTDialogue06Merged
+Joshua8966/chinese-llama-2-13b-chat_v1-09-2023
+IronChef/MascotAI_Open_LLaMA_FINAL
+wiktorw/my_awesome_opus_books_modelllo_block
+ldos/text_shortening_model_v3
+Lelon/t5-german-paraphraser-small
+turboderp/Llama-7B-3.0bpw-h6-exl2
+sahil2801/llama-70-v2-epoch5
+arunsamhug/t5_recommendation_sports_equipment_english
+Lelon/t5-german-paraphraser-large
+AllanOuii/Llama-2-7B-Chat-fp16-2
+abhinavkulkarni/codellama-CodeLlama-13b-Instruct-hf-w4-g128-awq
+hellomyoh/nmt-s395107-kullm-polyglot-5.8b-memoq-v1
+abhinavkulkarni/codellama-CodeLlama-13b-Python-hf-w4-g128-awq
+Sarvagha/new_model
+madhan2301/llama-2-7b-chuk-test
+legacy107/flan-t5-large-bottleneck-adapter-cpgQA-unique
+Toflamus/Pretrained_evaluated
+TheBloke/Yarn-Llama-2-13B-128K-GPTQ
+ldos/text_shortening_model_v4
+Mikivis/xuanxuan
+Lucrosus/gpt2_760k_5
+devparagiri/llama-2-7b-miniguanaco
+TheBloke/Yarn-Llama-2-7B-128K-GPTQ
+dadi/t5-small-finetuned-question-generation
+gothstaf/llma-pretrain-2
+yrajm1997/medical-qa-gpt2
+vihangd/smartplat-3b-v3
+wandabwa2004/llama-2-7b-saf
+monuminu/llama-2-70b-miniguanaco
+sahilxyd/DialoGPT-small-joshua
+Medissa/t5_conetxt_last_epoch1
+tkoyama/mt5-small-finetuned-amazon-en-es
+ldos/text_shortening_model_v5
+Varunk29/codellama-2-7b-miniguanaco
+dadi/gpt2-finetuned-question-generation
+UDE-SE/SantaCoderForReturnTypeClassification
+victornica/molgpt_selfies_6epoch_256width_withclipping_30iter
+Medissa/t5_conetxt_last_epoch2
+wentingzhao/natural-dialogues-user-assistant-2048
+wentingzhao/natural-dialogues-user-assistant-4096
+ticoAg/gpt2-tiger-sft-zh
+wentingzhao/natural-dialogues-assistant-2048
+iashchak/ruGPT-3.5-13B-gptq-4bits
+uni-tianyan/Uni-TianYan
+premai-io/CodeLlama-34b-Instruct-hf
+Undi95/ReML-L2-13B
+doncamilom/OChemSegm-flan-T5-large
+ldos/text_shortening_model_v6
+Undi95/ReMM-L2-13B-v1
+Aditya02/LLama-Discriminator-Default
+wangqi777/chinese-baby-llama2
+Mira-LeafTown/GPT-2-Chinese-AnimeThesaurus
+uukuguy/speechless-llama2-hermes-orca-platypus-13b
+cantrollmyrs/llama-2-7b-miniguanaco
+vikp/llama_coder
+chatham84/llama-2-13b-chatham84-13b-v6
+TheBloke/Yarn-Llama-2-13B-64K-GPTQ
+yzhuang/autotree_llama_26_vit_6l_local
+qarisoft/tstmodel0
+victornica/molgpt_selfies_6epoch_256width_withclipping_40iter
+GeorgiaTech/t5-small-finetuned
+chatham84/llama-2-13b-chatham84-13b-v7
+Xenova/WizardCoder-1B-V1.0
+DiegoVSulz/capivarinha-portugues-7b-lv2-gptq-128-4bit
+rb05751/my_finetuned_gpt2_model
+yzhuang/autotree_llama_26_vita_12
+Sriram-Gov/Sarcastic-Headline-Llama2
+CHIH-HUNG/llama-2-13b-FINETUNE2_3w-gate_up_down_proj
+uukuguy/speechless-llama2-hermes-orca-platypus-wizardlm-13b
+syedhuq/llama-2-7b-chat-hf-v2
+TheBloke/Airoboros-33B-2.1-GPTQ
+TheBloke/Airoboros-33B-2.1-GGUF
+TheBloke/Airoboros-33B-2.1-GGML
+mihirtw/med-train-llama
+Ertoip/rpg-portrait-generator
+JennnDexter/my_awesome_billsum_model
+TheBloke/Stheno-Inverted-L2-13B-GGUF
+TheBloke/Stheno-Inverted-L2-13B-GGML
+weathergpt/distilweathergpt
+TheBloke/Stheno-L2-13B-GGUF
+TheBloke/Stheno-L2-13B-GGML
+raghuram87/ScienceLLMTrained5k
+Devio/test-22B
+TheBloke/UndiMix-v1-13B-GGML
+TheBloke/UndiMix-v1-13B-GGUF
+chatham84/llama-2-13b-chatham84-13b-v8
+substratusai/weaviate-gorilla-v3
+TheBloke/UndiMix-v2-13B-GGUF
+TheBloke/UndiMix-v2-13B-GGML
+TheBloke/Stheno-Inverted-L2-13B-GPTQ
+Devio/test2
+TheBloke/Stheno-L2-13B-GPTQ
+acrastt/Bean-3B
+KingKazma/xsum_t5-small_fine_tuning_500_4_150_8_e1_s6789_v4_l4
+KingKazma/xsum_t5-small_fine_tuning_500_4_150_8_e2_s6789_v4_l4
+KingKazma/xsum_t5-small_fine_tuning_500_4_150_8_e3_s6789_v4_l4
+KingKazma/xsum_t5-small_fine_tuning_500_4_150_8_e4_s6789_v4_l4
+KingKazma/xsum_t5-small_fine_tuning_500_4_3000_8_e1_s6789_v4_l4
+TheBloke/UndiMix-v1-13B-GPTQ
+yzhuang/autotree_llama_26_vita_12_all
+bhenrym14/airoboros-l2-13b-2.1-YaRN-64k
+uukuguy/speechless-llama2-13b
+hiboyang/codeparrot-ds
+Guanglong/mojing-llm-7b
+TheBloke/UndiMix-v2-13B-GPTQ
+lindeberg/LaMini-T5-61M_optimized
+Toflamus/Pretrained_evaluated_cosine
+Guanglong/mojing-llm-13b
+elliotthwang/Elliott-LLaMa-GPTQ
+Icaruas/Penguin_Writer
+anhtu12st/llama-2-7b-miniguanaco
+PeanutJar/LLaMa-2-PeanutButter_v18_A-7B
+StudentLLM/Alpagasus-2-13b-QLoRA-merged
+TaylorAI/Flash-Llama-30M
+victornica/molgpt_selfies_6epoch_256width_withclipping_60iter
+vita-group/llama-2-7b_wanda_2_4_gptq_4bit_128g
+migtissera/Synthia-70B-v1.2
+vita-group/vicuna-7b-v1.3_gptq
+vita-group/vicuna-13b-v1.3_gptq
+Darshit007/Llama-2-7b-chat-hf-GPTQ
+muzammil-eds/Llama-2-13b-chat-hf-orca
+substratusai/weaviate-gorilla-v4
+Alpi157/Final_advisor
+hammerjohn/learning-Llama-2-7b-chat-hf
+vicky7901/my_LLaMA-2-model
+Medissa/t5_conetxt_last_epoch3
+Consisto/llama-2-7b-miniguanaco
+hmxiong/llama_13b
+CHIH-HUNG/llama-2-13b-FINETUNE2_3w-q_k_v_o_proj
+devparagiri/sage-v1
+TheBloke/Speechless-Llama2-Hermes-Orca-Platypus-WizardLM-13B-GGML
+TheBloke/Speechless-Llama2-Hermes-Orca-Platypus-WizardLM-13B-GPTQ
+TheBloke/Speechless-Llama2-13B-GPTQ
+TheBloke/Speechless-Llama2-13B-GGUF
+TheBloke/Speechless-Llama2-13B-GGML
+TheBloke/Speechless-Llama2-Hermes-Orca-Platypus-WizardLM-13B-GGUF
+TheBloke/Asclepius-13B-GGUF
+TheBloke/Asclepius-13B-GGML
+TheBloke/Asclepius-13B-GPTQ
+TheBloke/OpenBuddy-Llama2-13B-v11.1-GPTQ
+TheBloke/OpenBuddy-Llama2-13B-v11.1-GGML
+TheBloke/OpenBuddy-Llama2-13B-v11.1-GGUF
+dariolopez/llama-2-7b-oasst1-es-test-format
+victornica/molgpt_selfies_6epoch_256width_withclipping_70iter
+sam2ai/falcon-base-1b-odia-pt
+devparagiri/sage-v2
+yzhuang/autotree_llama_26_vita_6_all
+sharoz/gpt2-medium-custom-functions-dataset-python
+abeiler/goatV10-testData-withAutoInference-withS3SafeTens
+SymeCloud/Llama2-7b-Chat-GGUF
+pssubitha/llama-2-7b-sales-force
+Corianas/llama-2-7b-evolCode
+polymath707/asean-llama-2-13b-epoch-1-v1
+Avenuenw/prompt-extender
+polymath707/vietnamese-llama-2-13b-handmade-v1-epoch-5
+elliotthwangmsa/elliottmsa_QPT
+turboderp/Llama-7B-4.0bpw-h6-exl2
+coralexbadea/StableBelugaTest1
+KingKazma/xsum_t5-small_fine_tuning_500_10_50000_8_e-1_s6789_v4_l4
+mychen76/stack-llama2-dpo
+QuanAI/llama-2-7b-question-answering
+PeanutJar/LLaMa-2-PeanutButter_v18_B-7B
+amasand/gpt2-imdb-pos-ppo
+coralexbadea/StableBelugaTestSimple1
+KingKazma/xsum_t5-small_fine_tuning_500_10_50000_8_e1_s6789_v4_l4
+luffycodes/mcq-hal-vicuna-13b-v1.5
+victornica/molgpt_selfies_6epoch_256width_withclipping_80iter
+Devio/test-3b
+KingKazma/xsum_t5-small_fine_tuning_500_10_50000_8_e2_s6789_v4_l4
+TsLLM/MutiLinguistic-34B-V1.0
+Enno-Ai/vigogne2-enno-13b-sft-lora-4bit
+hidude562/OpenMusenet-2.11-L-VG
+KingKazma/xsum_t5-small_fine_tuning_500_10_50000_8_e3_s6789_v4_l4
+siddharthbulia/therapy-bot
+KingKazma/xsum_t5-small_fine_tuning_500_10_50000_8_e4_s6789_v4_l4
+Aexyno/flan-t5-small-samsum
+KingKazma/xsum_t5-small_fine_tuning_500_10_50000_8_e5_s6789_v4_l4
+polymath707/asean-llama-2-70b-epoch-1-v1
+KasparZ/llama-2-7b-cyborg
+KingKazma/xsum_t5-small_fine_tuning_500_10_50000_8_e6_s6789_v4_l4
+Ammad1Ali/llama-v2-7B-alt
+ComradeBallin/PixelLlama
+tdperez/mt5-small-finetuned-xsum
+KingKazma/xsum_t5-small_fine_tuning_500_10_50000_8_e-1_s6789_v4_l4_second
+coralexbadea/StableBelugaTestSimple1_aux
+KingKazma/xsum_t5-small_fine_tuning_500_4_50000_8_e-1_s6789_v4_l4_final
+Yasmine-AbuAdla/llama-2-7b-guanaco-dolly-mini
+SoyGema/english-hebrew
+SoyGema/english-hindi
+chukypedro/llama-2-13b-chat-leadelo_cosine_model_3
+Undi95/Nous-Hermes-13B-Code
+gsdavis/distilgpt2-finetuned-wikitext2
+gaodrew/OpenOrca-Platypus2-13B-thera-250
+SoyGema/english-hindi-bleu
+lifeofcoding/mastermax-llama-7b
+Xenova/tamillama_tiny_30m
+Xenova/TinyLLama-v0
+Xenova/llama-160m
+Xenova/llama-68m
+chukypedro/llama-2-13b-chat-leadelo_cosine_model_4
+EnterNameBros/Senko-san-medium-abcd
+mw-huggingface/debug_pipeline
+CHIH-HUNG/llama-2-13b-FINETUNE1_17w-gate_up_down_proj
+stkf/gigagen-full-2023-08-13-v0.1
+polymath707/vietnamese-llama-2-13b-handmade-v3-epoch-10
+quantumaikr/llama-2-70B-instruct
+rggg/t5-small-finetuned-amazon-en-es
+victornica/molgpt_selfies_6epoch_256width_withclipping_100iter
+polymer/model-007-2-13b-sharded
+TungLam/vicuna-7b-v1.5-vi
+msong/codeparrot-ds-small
+chunwoolee0/ke_t5_base_bongsoo_ko_en
+6adityaverma/DialoGPT-large-Walter
+quantumaikr/KoreanLM-llama-2-7B-finetuned
+victornica/molgpt_selfies_mosesonly
+prognosis/medicalcode-v0
+msong/codeparrot-ds-accelerate
+elinas/chronos-70b-v2
+guidoivetta/lacan
+quantumaikr/KoreanLM-7B-GPTQ-4bit
+cmsolson75/llama-2-7b-lyric_tune
+substratusai/weaviate-gorilla-v4-random-split
+EgilKarlsen/GPT2-AA
+ezeroz/llama2-7b-digitalme-new-5000
+Hardeep/llama-2-7b-miniguanaco
+KnutJaegersberg/black_goo_recipe_d
+Tong1106/Llama-2-7b-chat-finetune
+Nomitronz/OOrca-Platy2-13B-QLoRA-Sam-Chat-Uncensored
+DataLinguistic/DataLinguistic-34B-V1.0
+EgilKarlsen/GPT2-CSIC
+TungLam/vicuna-7b-v1.5-visquad
+Aminrhmni/PersianLegalQAsystem
+Nagase-Kotono/Nagase_Mana-kullm-polyglot-12.8b-0.2v
+priyasaravana/languageModel_GPT2
+polymath707/asean-llama-2-70b-epoch-1-v3
+polymath707/asean-llama-2-13b-v2-epoch-5
+douha/T5_SpellCorrector2
+6adityaverma/DialoGPT-large-Rick
+EgilKarlsen/GPT2-BGL
+talentlabs/chinese-llama-2-13b_v03-09-2023
+lintang/t5-v1_1-large-flan
+lintang/t5-v1_1-xl-flan
+chunwoolee0/ke_t5_base_bongsoo_ko_en_epoch2
+hieunguyen1053/nmt_en_to_vi_html
+msy127/Llama-2-7b-chat-finetune-test-sh-500
+lonelyBoy159/work-model
+harshil10/falcon_7b
+sarthakpadhi2016/codellama-2-7b-chat-finetune
+EgilKarlsen/GPT2-PKDD
+natfil/Llama2-13b-chat-german-pmserver_v2
+Gusanidas/gus-craby-7bn-1
+Ben141/llama3-testrun
+Gusanidas/gus-craby-7bn-1-saf
+raycao/YingGPTModel
+petals-team/falcon-rw-1b
+eha7/mt5-small-finetuned-amazon-en-es
+ElixIA/Llama-2-7b-hf
+faresfawzi/QG_t5_small
+KnutJaegersberg/megatron-gpt2-345m-lima
+KnutJaegersberg/LLongMA-3b-LIMA
+ceadar-ie/Llama2-7B-AIVision360
+tdperez/mt5-small-finetuned-pt-gec
+Sakonii/distilgpt2-nepali-qa
+tdperez/t5-small-finetuned-pt-gec
+Lancelot53/flan-t5-base-html
+Lancelot53/flan-t5-base-srbd
+Alpi157/Final_conversational_model
+PRAli22/t5-base-text-summarizer
+tea90210/llama-2-7b-miniguanaco
+1q2w3e4r5t/Polyglot5.8B_finetuned
+dadi/distilgpt2-finetuned-question-generation
+aboonaji/llama2finetune-v3
+AL49/llama-2-7b-lotr
+EnterNameBros/Senko-ai-medium
+ludis/tsukasa-limarp-7b
+abeiler/goatV9-wAI-noS3-wTrToConMocon
+edmundtsou/t5-small-finetuned-en-toHI-ro
+ComradeBallin/PixelLlamav7
+abeiler/goatV9-wAI-noS3-wToMoconMod-v2
+dariolopez/Llama-2-databricks-dolly-oasst1-es-axolotl
+Undi95/LewdEngine
+chukypedro/Llama-2-13b-Chat-GPTQ
+EgilKarlsen/GPT2-Spirit
+EgilKarlsen/GPT2-Thunderbird
+substratusai/weaviate-gorilla-v4-schema-split
+sahajrajmalla/patrakar-gpt
+MatthisHoules/checkpoints
+PeanutJar/LLaMa-2-PeanutButter_v10-7B
+gaodrew/OpenOrca-Platypus2-13B-thera-1250
+victornica/molgpt_sel_6e_clip_256w_mosesonly_1iter
+Medissa/t5_base_epoch5
+CHIH-HUNG/llama-2-13b-FINETUNE1_17w-q_k_v_o_proj
+DrishtiSharma/sentence-t5-large-quora-text-similarity
+victornica/molgpt_sel_6e_clip_256w_mosesonly_2iter
+xtie/T5v1.1-PET-impression
+xtie/ClinicalT5-PET-impression
+xtie/Flan-T5-PET-impression
+xtie/GPT2-PET-impression
+xtie/OPT-PET-impression
+victornica/molgpt_sel_6e_clip_256w_mosesonly_3iter
+danielmiranda/llama-2-7b-miniguanaco
+Danielbrdz/CodeBarcenas-7b
+victornica/molgpt_sel_6e_clip_256w_mosesonly_4iter
+andrewprayle/llama-2-7b-miniguanaco
+syedhuq/llama-2-7b-hf-v2
+yzhuang/autotree_llama_26_vita_6l_octo
+xDAN2099/max_fulltune_shareChat_0903v1_ckp9
+antoineard/llama-2-7b-finetuned-v2-500-samples
+MatthisHoules/rat-t5-base-grounded-qdmr
+Undi95/MLewd-L2-13B
+antoineard/llama-2-13b-finetuned-v2-500-samples
+porkorbeef/Llama-2-13b-0904
+CalderaAI/13B-Theseus-MK1
+gstaff/gpt2-magic-card-web
+HoangCuongNguyen/t5-cti-fine-tuned
+substratusai/weaviate-gorilla-v4-api-split
+southlemon/llama-2-7b-strl1
+gaodrew/OpenOrca-Platypus2-13B-thera-1250-gptq
+openchat/openchat_v3.2_super
+uukuguy/speechless-codellama-orca-13b
+ludis/tsukasa-limarp-7b-gguf
+KingLTD/pretrain_Law_model_vit5_version1
+Undi95/ReMM-L2-13B-PIPPA
+CHIH-HUNG/llama-2-13b-FINETUNE2_TEST_2.2w
+KingLTD/pretrain_Law_model_vit5_version2
+kimnt93/kmv-7b-05
+mesolitica/translation-nanot5-small-malaysian-cased
+uukuguy/speechless-codellama-orca-platypus-13b-0.10e
+Nikhil-trustt/Llama-2-7b-chat-finetune-nikhil
+Envoid/Yousei-22B
+KingLTD/pretrain_Law_model_vit5_version3
+diabolic6045/itineraries_Generator
+42dot/42dot_LLM-PLM-1.3B
+victornica/molgpt_selfies_25mzinc
+synapsoft/Llama-2-7b-chat-hf-flan2022-1.2M
+RAJ11/final_model
+mlenjoyneer/rut5_large_sum_gazeta
+coralexbadea/LlamaFull2Laws
+42dot/42dot_LLM-SFT-1.3B
+edumunozsala/llama-2-7b-int4-GPTQ-python-code-20k
+kavinilavan/llama2-13b-array_n_poa_new
+ldos/text_shortening_model_v7
+JihyukKim/eli5-sub-question-generator
+InstaDeepExternalProject/llm_training_20230901_132240
+InstaDeepExternalProject/llm_training_20230901_132015
+Jaredquek/Olier0.2
+abhinavsingh95/llama-v2-7b-hf-shard-small
+ingenio/llama-2-medqa-finetuned
+tiiuae/falcon-180B-chat
+Rabinovich/Llama-2-7B-Chat-GGUF
+Mikivis/gpt2-large-lora-sft
+agonh/LlongOrca-13B-16K-GPT
+gigant/graph_t5_230904
+agonh/Huginn-13B-GPT
+AIDC-ai-business/Marcoroni-7B
+priyasaravana/languageModelV1_GPT2
+uukuguy/speechless-codellama-orca-airoboros-13b-0.10e
+hclaim/clamgptattempt5
+agonh/MythoMax22b-Falseblock-GPT
+SoyGema/english-spanish
+Nikhil-trustt/codellama-7b
+Medissa/t5_full_answer_epoch3
+FinchResearch/baLM-1b
+AIDC-ai-business/Marcoroni-13B-v0
+priyasaravana/languageModelV2_GPT2
+FinchResearch/baLM-small-tl
+ldos/text_shortening_model_v8
+sarasultan/gpt2_base
+Geo/gpt2_custom_c_q_and_a_v2
+FinchResearch/SiLM-3b-v2
+krishnareddy/icddxdesc-llama2-7b
+Geo/gpt2_custom_c_q_and_a_v3
+FinchResearch/SiLM-3b-v1
+yonataneshel/mt5_base_ft_spider_hebrew
+FinchResearch/bumble
+rohanbalkondekar/asia-bank-chat-support-64e-llama-7b
+mHossain/en_bn_summarize_v1
+CHIH-HUNG/llama-2-13b-Open_Platypus_and_ccp_2.6w
+wei123602/llama2-13b-fintune2
+FinchResearch/GLaMv2
+rohitpanjwani/base_model_ep_20
+SoyGema/english-spanish-2
+Geo/output
+deadpool1003/my_awesome_billsum_model
+Ralphch97/StarChatBeta_Finetuned_Ralph_v3.5
+Kutsu7/fine_tuned_t5_japanese
+taewhan/k2t-test2
+ldos/text_shortening_model_v9
+feigym-0527674254/my_awesome_opus_books_model
+nbogdan/bdn-se-flan_adapters
+tsobolev/mt5-small-finetuned-amazon-en-es
+nbogdan/flant5-small-1bs-0ex-overall
+nbogdan/flant5-small-1bs-0ex-paraphrasing
+nadiamaqbool81/llama-2-7b-int4-java-code-1.178k
+kaitchup/OPT-1.3B-SFT-DSChatLoRA
+ticoAg/gpt2-tigerzh-med-sft-v1
+nbogdan/flant5-small-0ex-overall-1epochs
+Transform72/PandasSolver
+Abhishek898/Llama-2-7b-chat-finetune
+TaylorAI/Flash-Llama-30M-2001
+SoyGema/english-spanish-3
+nbogdan/flant5-small-0ex-paraphrasing-1epochs
+nbogdan/flant5-small-0ex-elaboration-1epochs
+TaylorAI/Flash-Llama-30M-4001
+AshtonIsNotHere/CodeLlama_7B_nlp_pp
+nbogdan/flant5-small-0ex-bridging-1epochs
+nbogdan/flant5-small-1ex-overall-1epochs
+TaylorAI/Flash-Llama-30M-6001
+nbogdan/flant5-small-1ex-paraphrasing-1epochs
+nbogdan/flant5-small-1ex-elaboration-1epochs
+TheBloke/Llama-2-7B-GGUF
+agonh/Airoboros-13B-GPT
+hetalshah1981/llama2_offerings_v1
+nbogdan/flant5-small-1ex-bridging-1epochs
+coralexbadea/Llama2Simple2Laws
+zarakiquemparte/zararp-l2-7b
+ophycare/llama-2-7b-chat-ophycare-3-0
+bogdan1/llama2-bg
+TheBloke/Llama-2-7b-Chat-GGUF
+Karzan/ckb-t5-base
+Ayaka/t5-imdb
+Fredithefish/Guanaco-7B-Uncensored
+coralexbadea/HopesAndDreams
+nbogdan/flant5-small-2ex-overall-1epochs
+Pclanglais/Arsene
+Icaruas/teach_flan
+TaylorAI/Flash-Llama-30M-8001
+TheBloke/Llama-2-13B-chat-GGUF
+agonh/Mythical-Destroyer-13B-GPT
+Verdiola/T5small
+poedator/b560_8bit
+TheBloke/Llama-2-13B-GGUF
+agonh/Synthia-13B-GPT
+TaylorAI/Flash-Llama-30M-10001
+Undi95/ReMM-SLERP-L2-13B
+agonh/Trurl-13B-GPT
+TheBloke/Llama-2-70B-chat-GGUF
+TaylorAI/Flash-Llama-30M-12001
+atorsvn/distilgpt2-gptq-4bit
+nbogdan/flant5-small-2ex-paraphrasing-1epochs
+agonh/Llama2-22B-GPLATTY-GPT
+TaylorAI/Flash-Llama-30M-14001
+atorsvn/LaMini-GPT-774M-gptq-4bit
+prognosis/cardio-llama-2-7b-miniguanaco-v14
+54data/Llama2-7b-finetuned
+agonh/chronorctypus-Limarobormes-13b-GPT
+TaylorAI/Flash-Llama-30M-16001
+pijarcandra22/IndoBali_Model
+agonh/PuddleJumper-13B-GPT
+TaylorAI/Flash-Llama-30M-18001
+Radhey/llama2-qlora-finetunined-french
+nbogdan/flant5-small-2ex-elaboration-1epochs
+agonh/StableBeluga-13B-GPT
+ldos/text_shortening_model_v10
+TaylorAI/Flash-Llama-30M-20001
+royal42/chess-transformer-829
+amacbee/codeparrot-ds
+TheBloke/Llama-2-70B-GGUF
+agonh/Koala-13B-8K-GPT
+TaylorAI/Flash-Llama-30M-22001
+agonh/Llama2-22B-Daydreamer-v3-GPT
+TaylorAI/Flash-Llama-30M-24001
+nbogdan/flant5-xxl-0ex-overall-1epochs
+agonh/Stheno-L2-13B-GPT
+PulsarAI/Nova-13B
+nbogdan/flant5-small-2ex-bridging-1epochs
+TaylorAI/Flash-Llama-30M-26001
+tarudesu/unit-t5-base-km-50
+thiagomf/Llama-2-7b-hf-sharded-bf16-1GB
+ophycare/llama-2-7b-chat-ophycare-3-1
+tarudesu/unit-t5-base-km-100
+nbogdan/flant5-base-0ex-overall-1epochs
+PulsarAI/SpeechlessV1-Nova-13B
+TaylorAI/Flash-Llama-30M-28001
+nbogdan/flant5-base-0ex-paraphrasing-1epochs
+dpml/in-house-alpaca
+TaylorAI/Flash-Llama-30M-30001
+PulsarAI/EnsembleV5-Nova-13B
+nbogdan/flant5-base-0ex-elaboration-1epochs
+casperhansen/yarn-llama-2-7b-64k-awq
+TaylorAI/Flash-Llama-30M-32001
+nbogdan/flant5-large-2ex-overall-3epochs
+nbogdan/flant5-base-0ex-bridging-1epochs
+PulsarAI/Orca-Nova-13B
+TaylorAI/Flash-Llama-30M-34001
+nbogdan/flant5-base-1ex-overall-1epochs
+tarudesu/unit-t5-base-km-200
+kam1run/DialoGPT-large-kami
+KnutJaegersberg/black_goo_recipe_e
+TaylorAI/Flash-Llama-30M-36001
+nbogdan/flant5-base-1ex-paraphrasing-1epochs
+gsl22/ell-v4-alpaca-model
+nbogdan/flant5-base-1ex-elaboration-1epochs
+Admin08077/Number1
+TaylorAI/Flash-Llama-30M-38001
+nbogdan/flant5-base-1ex-bridging-1epochs
+masonbarnes/open-llm-search
+xtie/T5Score-PET
+TaylorAI/Flash-Llama-30M-40001
+PygmalionAI/pygmalion-2-13b
+jscode13/dog_model
+TaylorAI/Flash-Llama-220M-small-5001
+TaylorAI/Flash-Llama-30M-42001
+Fraol/extract1
+MindNetML/llama-2-7b-miniguanaco
+PygmalionAI/pygmalion-2-7b
+monsoon-nlp/nyrkr-joker-llama
+TaylorAI/Flash-Llama-30M-44001
+TheBloke/openchat_v3.2_super-GPTQ
+TheBloke/openchat_v3.2_super-GGUF
+nbogdan/flant5-base-2ex-overall-1epochs
+TaylorAI/Flash-Llama-30M-46001
+TaylorAI/Flash-Llama-30M-48001
+922-CA/LLilmonix3b-v0.4a
+TaylorAI/Flash-Llama-220M-combined-3001
+TaylorAI/Flash-Llama-220M-50k-steps
+Trelis/Llama-2-70b-chat-hf-function-calling-v2
+oscorrea/Descriptions-lince-sm
+victornica/molgpt_selfies_25mzinc_384width
+TheBloke/MythoLogic-Mini-7B-GGUF
+atorsvn/RedPajama-INCITE-Chat-3B-v1-gptq-4bit
+mesolitica/translation-nanot5-base-malaysian-cased
+nbogdan/flant5-base-2ex-paraphrasing-1epochs
+nbogdan/flant5-large-2ex-paraphrasing-3epochs
+tarudesu/TOPLINE-fine-tuned-unit-t5-base-km-50
+TaylorAI/Flash-Llama-220M-combined-6001
+nbogdan/flant5-base-2ex-elaboration-1epochs
+TaylorAI/Flash-Llama-220M-combined-9001
+devonbrack/fine-tuned-llama
+Xenova/pythia-14m
+MichelNivard/tidycodellama
+Xenova/pythia-31m
+Xenova/pythia-70m
+Xenova/pythia-70m-deduped
+Xenova/pythia-160m
+Xenova/pythia-160m-deduped
+Xenova/pythia-410m
+Xenova/pythia-410m-deduped
+TaylorAI/Flash-Llama-220M-combined-12001
+atorsvn/LaMini-GPT-124M-gptq-4bit
+neshkatrapati/flan-t5-base-adherence
+nbogdan/flant5-base-2ex-bridging-1epochs
+TaylorAI/Flash-Llama-220M-combined-15001
+aladeldiablo/Test01
+nbogdan/flant5-large-0ex-overall-1epochs
+TheBloke/L2-MythoMax22b-Instruct-Falseblock-GGUF
+TaylorAI/Flash-Llama-220M-combined-18001
+openlamm/lamm186k_llama2chat7b_lora32
+TheBloke/MythoLogic-L2-13B-GGUF
+nbogdan/flant5-large-0ex-paraphrasing-1epochs
+vikp/nbs_instruct
+TaylorAI/Flash-Llama-220M-combined-21001
+TheBloke/MythoMax-L2-13B-GGUF
+nbogdan/flant5-large-2ex-elaboration-3epochs
+zhuuu/t5-small-finetuned-xsum
+Aliga0924/llama-2-7b-miniguanaco
+thiagomf/Llama-2-7b-hf-nfe150
+TheBloke/MythoMix-L2-13B-GGUF
+nbogdan/flant5-large-0ex-elaboration-1epochs
+TheBloke/vicuna-13B-v1.5-16K-GGUF
+abeiler/goatV9-Merged-testingError
+TaylorAI/Flash-Llama-220M-combined-24001
+TheBloke/vicuna-13B-v1.5-GGUF
+tarudesu/PROPOSED-fine-tuned-unit-t5-base-km-50
+TaylorAI/Flash-Llama-220M-combined-clip-3001
+dminhk/WizardCoder-Python-7B-V1.0-GPTQ
+TheBloke/vicuna-7B-v1.5-16K-GGUF
+TheBloke/vicuna-7B-v1.5-GGUF
+nbogdan/flant5-large-0ex-bridging-1epochs
+TaylorAI/Flash-Llama-220M-combined-27001
+legacy107/flan-t5-large-bottleneck-adapter-cpgQA-unique-8
+TheBloke/Chronohermes-Grad-L2-13B-GGUF
+jessiedu314/gpt2-medium-finetuned1-merchantname
+bingwork/llama-2-7b-chat-mimiguanaco-1k
+TaylorAI/Flash-Llama-220M-combined-clip-6001
+oilbread/KoAlpaca-Polyglot-5.8B-20epoch-datatune
+TheBloke/Camel-Platypus2-13B-GGUF
+TaylorAI/Flash-Llama-220M-combined-30001
+nbogdan/flant5-large-1ex-overall-1epochs
+urvog/llama-2-13b-transcript-chat
+TheBloke/Platypus2-13B-GGUF
+TheBloke/Stable-Platypus2-13B-GGUF
+dhmeltzer/llama-7b-SFT-qlora-eli5-wiki_DPO_ds_RM_contrast_1024_r_64_alpha_16_merged
+TaylorAI/Flash-Llama-220M-combined-clip-9001
+TaylorAI/Flash-Llama-220M-combined-33001
+dhmeltzer/llama-7b-SFT-qlora-eli5-wiki_DPO_ds_RM_top_2_1024_r_64_alpha_16_merged
+nbogdan/flant5-large-1ex-paraphrasing-1epochs
+sammyblues/llama-2-7b-themerlin-04092023
+zhaolzhang/llama-2-7b-miniguanaco
+TaylorAI/Flash-Llama-220M-combined-36001
+TaylorAI/Flash-Llama-220M-combined-clip-12001
+TheBloke/airoboros-l2-13B-gpt4-1.4.1-GGUF
+hantech/byt5_correct2
+nbogdan/flant5-large-1ex-elaboration-1epochs
+TaylorAI/Flash-Llama-220M-combined-39001
+TheBloke/airoboros-l2-7b-gpt4-1.4.1-GGUF
+nbogdan/flant5-large-2ex-bridging-3epochs
+TheBloke/Nous-Hermes-Llama-2-7B-GGUF
+TaylorAI/Flash-Llama-220M-combined-clip-15001
+quantumaikr/llama-2-70B-chat
+TheBloke/Nous-Hermes-Llama2-GGUF
+gsakthivel/gsv-peft-Qlora-Falcon7b
+prognosis/cardio-llama-2-7b-miniguanaco-guideline-v15
+nbogdan/flant5-large-1ex-bridging-1epochs
+YokaiKoibito/falcon-40b-GGUF
+TheBloke/AlpacaCielo2-7B-8K-GGUF
+Guillemor/llama-2-7b-miniguanaco
+TheBloke/EverythingLM-13B-16K-GGUF
+uukuguy/speechless-codellama-dolphin-orca-platypus-13b
+TheBloke/EverythingLM-13b-V2-16K-GGUF
+runaksh/medquad-finetuned-gpt2
+Naobon/codeparrot-ds
+ezeroz/llama2-7b-digitalme-new-10000
+InstaDeepExternalProject/llm_training_20230904_160029
+InstaDeepExternalProject/llm_training_20230904_161836
+amphora/tulu-7b
+TheBloke/Redmond-Puffin-13B-GGUF
+nbogdan/flant5-large-2ex-overall-1epochs
+jllp/llama-2-7b-miniguanaco
+BlahBlah1/LLama2Charts
+CobraMamba/mamba-gpt-3b-v4
+YuvalH19/gpt2_migendb
+victornica/molgpt_selfies_25mzinc_384width_fk
+yangdechuan/mt5-small-finetuned-amazon-en-es
+tomo-03/codeparrot-ds
+Shishir1807/llama2-7b-Drug
+hpcai-tech/openmoe-base
+talentlabs/chinese-llama-2-13b_v05-09-2023
+TheBloke/ReMM-SLERP-L2-13B-GPTQ
+TheBloke/ReMM-SLERP-L2-13B-GGUF
+TigerResearch/tigerbot-70b-base
+ticoAg/ICare
+yogeshchandrasekharuni/llama-2-7b-skil-internal-wiki-v1
+kavinilavan/llama2-13b-array_n_poa_new_bf16
+hidude562/OpenMusenet-LContext-2.11
+nbogdan/flant5-large-2ex-paraphrasing-1epochs
+glassofwine/DialoGPT-medium-johanwine
+Medissa/t5_full_answer_augmented_epoch3
+TheBloke/WizardLM-13B-V1.2-GGUF
+Daya7624/Tuned_Model_Gpt2
+Alex7756/Llama-2-13b-gf-0901
+RiadhHasan/Finetune_llama2_V6_with_bin
+TheBloke/WizardMath-13B-V1.0-GGUF
+mattia-ds/llama-2-7b-miniguanaco
+yangdechuan/mt5-small-finetuned-amazon-en-es-accelerate
+SylloTips/zero-shot-tagging
+hpcai-tech/openmoe-8B
+Alex7756/Llama-2-13b-gf-0901-gptq-4bit
+sia-ai/llama-2-7b-isha-faq-v1
+TheBloke/WizardMath-7B-V1.0-GGUF
+sartmis1/CodeLlama-34b-instruct-openapi
+TheBloke/Firefly-Llama2-13B-v1.2-GGUF
+TheBloke/OpenBuddy-Llama2-70b-v10.1-GGUF
+TheBloke/OpenBuddy-Llama2-70b-v10.1-GPTQ
+Daya7624/Llama-2-7b_Tuned_Webmd
+ElixIA/Market-YAML-COMPLETION-23-09-14
+sartmis1/starcoder-v3-openapi-extra
+nbogdan/flant5-large-2ex-elaboration-1epochs
+ksabeh/t5-base-attribute-generation
+TheBloke/HermesLimaRP-L2-7B-GGUF
+TaylorAI/Flash-Llama-220M-combined-clip-18001
+TheBloke/Zarablend-L2-7B-GGUF
+MatthisHoules/rat-t5-qdmr-grounded-with-db
+TheBloke/Zarablend-MX-L2-7B-GGUF
+ASEDISH/my_awesome_billsum_model
+TaylorAI/Flash-Llama-220M-combined-clip-21001
+pankaj-munde/llama-2-13b-chat-gptq
+Abhishekdhaka/llama-2-7b-finetuned
+bsp-albz/distilgpt2-finetuned-wikitext2
+npvinHnivqn/Llama-tiny
+rizerphe/CodeLlama-function-calling-1354-7b-Instruct-hf
+kristinashemet/llama-2-7b-TEST_V02
+nbogdan/flant5-xl-2ex-overall-3epochs
+nbogdan/flant5-large-2ex-bridging-1epochs
+TaylorAI/Flash-Llama-220M-combined-clip-24001
+yekaraoglann/results
+Medissa/t5_full_answer_augmented_epoch2
+bitadin/description-v0-t5-base-llm-1
+TaylorAI/Flash-Llama-220M-combined-clip-27001
+TigerResearch/tigerbot-70b-chat-v1
+Suchinthana/databricks-dolly-15k-sinhala
+TheBloke/orca_mini_v3_7B-GGUF
+Vagus30/llama-2-7b-miniguanaco
+PygmalionAI/mythalion-13b
+TheBloke/Huginn-13B-GGUF
+ldos/text_shortening_model_v11
+AnikaAI/mt5-small-finetuned-amazon-en-es
+AnikaAI/mt5-small-finetuned-amazon-en-de
+TheBloke/Huginn-v3-13B-GGUF
+TaylorAI/Flash-Llama-220M-combined-clip-30001
+nbogdan/flant5-xl-0ex-overall-1epochs
+mattia-ds/llama-2-7b-mj
+54data/llama-2-ko-7b-mrc
+TheBloke/Dolphin-Llama2-7B-GGUF
+TheBloke/orca_mini_v3_13B-GGUF
+TheBloke/Chronos-Beluga-v2-13B-GGUF
+TaylorAI/Flash-Llama-220M-combined-clip-33001
+AnikaAI/test-bert-finetuned-squad-accelerate
+ebony59/llama7b-AO3-1k
+Juniplayground/Mist_LLaMA-2-7B-1024_V7_GPTQ_Quantised
+TheBloke/13B-Legerdemain-L2-GGUF
+Undi95/CreativityEngine
+TaylorAI/Flash-Llama-220M-combined-clip-36001
+TheBloke/qCammel-13-GGUF
+nbogdan/flant5-xl-0ex-paraphrasing-1epochs
+PixelistStudio/prompt-extend
+TheBloke/huginnv1.2-GGUF
+androlike/TerraMix_L2_13B_16K
+TheBloke/Hermes-LLongMA-2-13B-8K-GGUF
+Undi95/ReasoningEngine
+bitadin/bulletPoint-v0-t5-base-llm-1
+thiagomf/Llama-2-7b-hf-nfe150_v2
+prognosis/medicalcode-prefinetune-v1
+TheBloke/WizardLM-1.0-Uncensored-Llama2-13B-GGUF
+sujantkumarkv/legalpilot-7b-india-v1.0
+akira1608/T5-model
+hf-internal-testing/Llama-2-7B-GPTQ
+TheBloke/LLongMA-2-7B-GGUF
+Undi95/CodeEngine
+TheBloke/Carl-Llama-2-13B-GGUF
+TheBloke/CodeUp-Llama-2-13B-Chat-HF-GGUF
+CHIH-HUNG/llama-2-13b-Open_Platypus_and_ccp_2.6w-3_epoch
+TheBloke/chronos-13b-v2-GGUF
+KnutJaegersberg/megatron-gpt2-345m-evol_instruct_v2
+InstaDeepExternalProject/llm_training_20230905_091930
+YeungNLP/firefly-llama2-7b-base
+TheBloke/Llama-2-13B-German-Assistant-v4-GGUF
+TheBloke/qCammel-70-x-GGUF
+mHossain/en_bn_summarize_v2
+K9586/ruDialoGPT
+bitadin/description-v0-t5-base-llm-10
+TheBloke/Spring-Dragon-GGUF
+TheBloke/Airolima-Chronos-Grad-L2-13B-GGUF
+RomanEn/anonymizer_llama2_test_4
+TheBloke/Chronolima-Airo-Grad-L2-13B-GGUF
+YeungNLP/firefly-llama2-13b-base
+nbogdan/flant5-xl-2ex-paraphrasing-3epochs
+vibhav18/merged_Insurance_weights
+TheBloke/Vigogne-2-7B-Chat-GGUF
+TheBloke/Chronorctypus-Limarobormes-13b-GGUF
+TheBloke/Hermes-LLongMA-2-7B-8K-GGUF
+TheBloke/Synthia-13B-GGUF
+TheBloke/CodeUp-Alpha-13B-HF-GGUF
+yzhuang/autotree_llama_26_vit_12l_local
+TheBloke/llama-2-13B-Guanaco-QLoRA-GGUF
+santyzenith/pictos_gpt2_full_ft
+NekoPunchBBB/Llama2-13b-hf-Open-Platypus-QLoRA-att
+rizerphe/CodeLlama-function-calling-6320-7b-Instruct-hf
+jossefharush/gpt2-rs
+TheBloke/llama-2-13B-German-Assistant-v2-GGUF
+ldos/text_shortening_model_v12
+ebony59/llama-7b-AO3-1to1
+TheBloke/Llama2-22B-GPLATTY-GGUF
+Nan-Do/python-assistant-7b-problem_solver
+Karzan/walamakan-t5-base
+Moghazy/xyz_tuned
+TheBloke/Airochronos-L2-13B-GGUF
+flytech/devchat-llama-7b
+TheBloke/llama2-22B-daydreamer-v2-GGUF
+TheBloke/Chronoboros-Grad-L2-13B-GGUF
+TheBloke/Vigogne-2-13B-Instruct-GGUF
+TheBloke/WizardLM-1.0-Uncensored-CodeLlama-34B-GGUF
+TheBloke/WizardLM-1.0-Uncensored-CodeLlama-34B-GPTQ
+TheBloke/LlongOrca-13B-16K-GGUF
+TheBloke/OpenOrca-Platypus2-13B-GGUF
+Salesforce/dialogstudio-t5-3b-v1.0
+TheBloke/Vigogne-2-7B-Instruct-GGUF
+TheBloke/Synthia-7B-GGUF
+Gowtham86396/hf-small-shards
+zhaolzhang/llama-2-7b-resume
+TheBloke/OpenAssistant-Llama2-13B-Orca-8K-3319-GGUF
+Ammad1Ali/Alex-2-7B-TR
+TheBloke/Samantha-1.1-70B-GGUF
+guidoivetta/cortazar
+PulsarAI/Nova-13B-50-step
+guidoivetta/Julio-Cortazar
+gauravvaid/distilgpt2-finetuned-clm
+guidoivetta/Edgar-Allan-Poe
+TheBloke/llama-2-7B-Guanaco-QLoRA-GGUF
+lgaalves/gpt2_camel_physics-platypus
+TheBloke/Llama2-22B-Daydreamer-v3-GGUF
+TheBloke/Pygmalion-2-13B-GPTQ
+TheBloke/Pygmalion-2-13B-GGUF
+guidoivetta/Jose-Saramago
+TheBloke/Pygmalion-2-7B-GPTQ
+TheBloke/Pygmalion-2-7B-GGUF
+TheBloke/Mythalion-13B-GPTQ
+TheBloke/Mythalion-13B-GGUF
+TheBloke/LlongOrca-7B-16K-GGUF
+TheBloke/Llama2-13B-MegaCode2-OASST-GGUF
+TheBloke/LosslessMegaCoder-Llama2-13B-Mini-GGUF
+yzhuang/autotree_llama_26_vita_12l_octo_subset
+Cesar42/Llama-2-7b-chat-Entrened
+TheBloke/StableBeluga-7B-GGUF
+Undi95/MLewd-L2-13B-v2
+TheBloke/Llama-2-7B-32K-Instruct-GGUF
+TheBloke/Platypus2-70B-Instruct-GGUF
+jlpan/moe_test
+rmadiraju/llama-2-7b-minirmcrs
+TheBloke/Chronos-70B-v2-GPTQ
+TheBloke/Chronos-70B-v2-GGUF
+TheBloke/LosslessMegaCoder-Llama2-7B-Mini-GGUF
+TheBloke/StableBeluga-13B-GGUF
+ChillyMango/llama-2-7b-jmcbot
+TheBloke/StableBeluga2-70B-GGUF
+atorsvn/TinyLlama-1.1B-step-50K-105b-gptq-4bit
+smjain/flan-alpaca-base-quantized
+RahaMohebbi/simoolation-llama2-13b
+TheBloke/Upstage-Llama-2-70B-instruct-v2-GGUF
+Riiid/sheep-duck-llama-2
+mouadnech/Grammar-and-Spelling-Checker
+Masterjp123/MythicalMax
+smjain/flan-alpaca-xl-quantized
+TheBloke/Luna-AI-Llama2-Uncensored-GGUF
+TaylorAI/Flash-Llama-1.8B
+DanielFarfan/my_awesome_opus_books_model
+TheBloke/llama2-7b-chat-codeCherryPop-qLoRA-GGUF
+TheBloke/Trurl-2-13B-GGUF
+jscode13/Llama-2-7b-chat-finetune
+elliotthwang/Chinese-LLaMa-GPTQ
+alzoubi36/pglue_policy_ie_b_priva_t5-v1.1-large
+VietnamAIHub/Vietnamese_llama2_7B_8K_SFT_General_domain
+mzbac/CodeLlama-34b-guanaco-gptq
+CalderaAI/13B-Thorns-l2
+TheBloke/orca_mini_v3_70B-GGUF
+TheBloke/Platypus2-70B-GGUF
+rkp74/t5_true-false
+dmlea/mt5-small-finetuned-amazon-en-es
+teknium/OpenHermes-13B
+huggingmaxli/mli-test-13b-brand-v2
+wentingzhao/natural-dialogues-user-assistant-2048-step6000
+Hapski/DialoGPT-small-nene
+HAERAE-HUB/tulu_13B
+ShalevLS/GPT2-Model
+yetmare/my_awesome_billsum_model
+wentingzhao/natural-dialogues-assistant-2048-step4800
+Gayathri142214002/t5_Question_Generation
+HAERAE-HUB/tulu_7B
+TokenBender/cheekyChameli_3
+TheBloke/airoboros-l2-70B-GPT4-2.0-GGUF
+sartmis1/starcoder-v3-openapi-extra-new
+EnzoZacharias/Llama-2-7b-chat-hf-fine-tuned
+kimnt93/kmv-600m-01
+alibaba-pai/pai-bloom-1b1-text2prompt-sd-v2
+prognosis/medicalcode-prefinetune-v2
+ldos/text_shortening_model_v13
+hellomyoh/nmt-s395107-kullm-polyglot-5.8b-memoq-v1-gptq
+metric-space/sft
+alzoubi36/pglue_policy_qa_priva_t5-v1.1-large
+lovelysharma488/opt-125m-gptq-4bit
+InstaDeepExternalProject/llm_training_20230905_172750
+masonwill/llama-2-7b-miniguanaco
+ym2o/my_awesome_eli5_clm-model
+Gusanidas/gus-craby-15bn-2
+Azure99/blossom-v2-llama2-7b
+hellomyoh/nmt-s395107-kullm-polyglot-5.8b-memoq-v2-gptq
+hantech/byt5_correct3
+bitadin/bulletPoint-v0-t5-base-llm-10
+TheBloke/Trurl-2-7B-GGUF
+kavinilavan/llama2-13b-BQ
+Ketak-ZoomRx/llama-2-7b-drug
+kkken/stack-llama-2
+victornica/molgpt_selfies_6epoch_384width_withoptim_10iter
+rishi-3bigs/llama2-7b-finetuned-unfiltered
+Gusanidas/gus-craby-15bn-3
+Akshay95/t5_recommendation_sports_equipment
+sarwarbeing/child-labour-flan-t5-contrastive-learning
+TheBloke/WizardMath-70B-V1.0-GGUF
+EnzoZacharias/Llama-2-70b-chat-hf-fine-tuned_LLama_70B_V1
+EnzoZacharias/Llama-2-7b-chat-hf-fine-tuned_LLama_7B_V1
+Gusanidas/gus-craby-15bn-4
+CHIH-HUNG/llama-2-13b-FINETUNE1_17w-r16
+Crazi/bnm1
+folflo/mt5-small-finetuned-HunSum-1_v0905
+AdityanCSA/llama-2-7b-chat-hf
+RDaneelOlivaw/custom_t5_robot_model
+AtheerAlgherairy/llama-2-7b-int4-dst
+EnzoZacharias/Llama-2-7b-chat-hf-fine-tuned_LLama_7B_V2
+Thanatosq/dolly_v2_3b_0
+Shrek29/custom_qna_chatbot_ecommerce_falcon_7b_sharded_quantized_v2
+TheBloke/GodziLLa2-70B-GGUF
+Shrek29/QNA_chatbot_ecommerce_falcon_7b_sharded_quantized
+Mikivis/gpt2-large-lora-sft1
+Undi95/ReMM-Lion-13B
+Hit918/save_model
+alzoubi36/pglue_privacy_qa_priva_t5-v1.1-large
+hantech/mt5_correct
+Mikivis/gpt2-large-lora-sft2
+brugmark/distilgpt2-finetuned-wikitext2
+victornica/molgpt_selfies_6epoch_384width_withoptim_20iter
+Geet686/Llama-2-7b-chat-finetune
+Mikivis/gpt2-large-lora-stf4
+PoungPoung/fen_chess
+EnzoZacharias/Llama-2-7b-chat-hf-fine-tuned_LLama_7B_V3
+lisamb/news-classification-18-llama-2-7b
+ashishpatel26/tinystarcoder-rlhf-model
+TheDexter00/Chat-LLm
+sess1/Llama-2-7b-chat-finetune
+gauravvaid/codeparrot-ds
+papasega/distilbert_initial_get_generate_fluency
+athens5522/t5-small-finetuned-xsum
+TheBloke/Camel-Platypus2-70B-GGUF
+Typly/Pigeon-7B
+RANITBAG/output
+mncai/Llama2-13B-Foundation_epoch4
+akkshay/hyde-llama-7b
+papasega/distilbertGPTgeneratedFluency
+Ja3ck/llama-2-7b-chat-hf-book-recom-ch24
+nRuaif/Mythalion-Kimiko-v2
+uparag/medquad-finetuned-gpt2
+malikali/falcon-b2
+Sao10K/Stheno-1.1-L2-13B
+daraffleur/min_test_llama-2-7b
+sess1/Llama-2-7b-chat-finetunetest1
+washimneupane/minipile_1B
+papasega/distilbertGPTgeneratedFluency1000
+optimum/gpt2-neuronx-bs128
+pssubitha/llama-2-7b-insurance
+victornica/molgpt_selfies_6epoch_384width_withoptim_30iter
+Sao10K/Stheno-1.2-L2-13B
+Sao10K/Stheno-Inverted-1.2-L2-13B
+TheBloke/Synthia-70B-v1.2-GGUF
+TheBloke/Synthia-70B-v1.2-GPTQ
+MichelNivard/tidycodellama2
+NikitaPojo/Llama-2-7b-chat-finetune
+optimum/gpt2-neuronx-bs16
+gigant/graph_t5_230906
+AK-12/llama-2-medical-fine-tune
+PeanutJar/LLaMa-2-PeanutButter_v19_R8-7B
+TheBloke/airoboros-l2-70B-gpt4-1.4.1-GGUF
+mariamoracrossitcr/distilgpt2_finetuneWithEli5
+silvacarl/Llama-2-7b-chat-finetune-test
+Crazi/bnm2_batch32
+InstaDeepExternalProject/llm_training_20230906_095707
+Undi95/MLewd-L2-13B-v2-1
+LogitsAI/Llama-2-7b-chat-hf
+Undi95/MLewd-L2-13B-v2-1-050
+victornica/molgpt_selfies_6epoch_384width_withoptim_40iter
+bugdaryan/Code-Llama-2-13B-instruct-text2sql
+TheBloke/Falcon-180B-Chat-GPTQ
+Undi95/MLewd-L2-13B-v2-1-015
+hoangphu7122002ai/ViT5_multitask_fcd
+TheBloke/Airoboros-L2-70B-GPT4-m2.0-GGUF
+naresh4u/sip-text-to-sql-model
+lgaalves/llama-2-13b-chat-platypus
+abacaj/starcoderbase-1b-sft
+hoangphu7122002ai/mrc_multihop_fcd
+niicovila/llama-v2-13b-tst-law
+RAJ11/Llama2-7b-chat-chem_moleconcept_merged
+Sao10K/Medusa-1.1-L2-7B
+atwine/llama-2-7b-chat-fully-quantized-q4-06092023
+yzhuang/autotree_llama_10_vit_12l_quantile_local
+agonh/Llama-2-13B-GPT
+TheBloke/WizardLM-70B-V1.0-GGUF
+joe-xhedi/llama-2-7b-chuk-test
+yzhuang/autotree_llama_10_vita_12l_octo_subset_filter_quantile
+bhawanisinghshekhawat/ml_llama2_ft_igql
+godoyj/test-model-ptt5-1-savinghf
+victornica/molgpt_selfies_6epoch_384width_withoptim_50iter
+yzhuang/autotree_llama_10_vit_12l_local_always_sample
+TheBloke/Llama-2-70B-OASST-1-200-GGUF
+yzhuang/autotree_llama_10_vit_24l_local_always_sample
+mariiaponom/lskfdfksjdfk
+TheBloke/llama2_70b_chat_uncensored-GGUF
+flytech/open-llama-3b-v2-4bit
+behnamsh/gpt2_camel_physics
+ParthGohil19/Llama-2-7b-chat-finetune
+TheBloke/llama-2-70b-Guanaco-QLoRA-GGUF
+nicholas-miklaucic/darwin-7b
+kimnt93/kmv-7b-06
+yzhuang/autotree_llama_10_vit_24l_local
+TheBloke/Kimiko-7B-GGUF
+victornica/molgpt_selfies_6epoch_384width_withoptim_60iter
+yzhuang/autotree_llama_10_vit_12l_local
+rmadiraju/llama-2-7b-minirmcrs-1
+luffycodes/noether-vicuna-13b
+BigSalmon/InformalToFormalLincoln111Paraphrase
+PreetSan/distilgpt2-finetuned-wikitext2
+jscode13/mars-model
+yzhuang/autotree_llama_10_vit_24l_local_f75
+HenriCastro/think_proof_concept
+yzhuang/autotree_llama_10_vita_36l_octo_subset_filter_nopos
+adriancowham/llama-2-7b-letstalk-instruct
+BigSalmon/InformalToFormalLincoln112Paraphrase
+gmongaras/wizardLM-7B-HF-8bit
+yzhuang/autotree_llama_10_vit_24l_local_f80
+victornica/molgpt_selfies_6epoch_384width_withoptim_70iter
+Multi-Domain-Expert-Learning/falcon1b
+Xenova/starcoderbase-1b-sft
+allen-liao/demo
+TrevorJS/mtg-code-llama-7b-sft-merged
+victornica/molgpt_selfies_6epoch_384width_withoptim_80iter
+maxolotl/falcon-wait3-en-es-v2
+rmadiraju/llama-2-7b-minirmcrs-2
+CHIH-HUNG/llama-2-13b-FINETUNE1_17w-r4
+Nikhil-trustt/nikhil-trustt-llama7b-customdata-python
+venkatkaushik/medquad-gpt
+ikno/my-polyglot-model
+bhawanisinghshekhawat/ml_llama2_ft_igql_q
+DrishtiSharma/llama-2-7b-databricks-dolly-15k
+new5558/openthai-gpt-1.0.0-beta-merged
+TrevorJS/mtg-code-llama-7b
+ahnyeonchan/OpenOrca-AYT-13B
+adriancowham/llama-2-7b-letstalk
+ikno/my-polyglot-model_epoch4
+Davlan/omowe-t5-small-diacritizer-all-und-full
+dhiruHF/llama2-docqa-v2-merged
+sahithya20/experiments
+EnzoZacharias/starcoder-fine-tuned_StarCoder_Bigcode_V1
+zolutiontech/Llama2-7B-test-runpod
+nileshevrywhr/Llama-2-7b-chat-hf
+Davlan/omowe-t5-small-diacritizer-menyo
+rkshukla/Llama-2-7b-chat-RA
+922-CA/l2-7b-monika-ddlc-v0.3m
+muhammadfhadli/Llama-2-7b-hf-indo
+nailiamirzakhmedova/Llama-2-7b-hf-inquisitive-questions
+mHossain/en_bn_summarize_v3
+TheBloke/Falcon-180B-Chat-GGUF
+quantumaikr/falcon-180B-chat-instruct
+codefuse-ai/CodeFuse-13B
+codefuse-ai/CodeFuse-CodeLlama-34B
+pvduy/rm_stablebeluga_13b_arena_synth
+922-CA/l2-7b-natsuki-ddlc-v0.1
+talentlabs/chinese-llama-2-13b_v07-09-2023
+yzhuang/autotree_llama_10_vita_36l_octo_subset_filter_psudo_label
+Davlan/omowe-t5-small
+Davlan/byt5-small-diacritizer-menyo
+nailiamirzakhmedova/Llama-2-7b-chat-hf-inquisitive-questions
+922-CA/l2-7b-sayori-ddlc-v0.1
+wenzhiwei/codeparrot-ds
+TheBloke/Kimiko-13B-GGUF
+krishnareddy/icddxdesc2-llama2-7b
+malhajar/Uni-TianYan-4bit-gptq
+tum-nlp/IDMGSP-GPT-2-INTRODUCTION
+tum-nlp/IDMGSP-GPT-2-ABSTRACT
+tum-nlp/IDMGSP-GPT-2-CONCLUSION
+datnguyen/bloom-gptq-8bit
+922-CA/l2-7b-yuri-ddlc-v0.1
+garvit2023/llama2-csr-assistant
+prognosis/cardio-llama-2-7b-miniguanaco-v16
+nailiamirzakhmedova/Llama-2-13b-hf-inquisitive-questions
+khoantap/pyg-rp
+revolutionarycomrade/dst
+TigerResearch/tigerbot-70b-chat-4bit-v1
+taaredikahan23/Llama-2-7b-chat-finetune
+wenzhiwei/weights
+vanim/chatgpt2-medical-QnA
+posicube/Llama2-chat-AYT-13B
+ahsan-mavros/rouge-test
+nailiamirzakhmedova/Llama-2-13b-chat-hf-inquisitive-questions
+daedalus314/Griffin-3B-GPTQ
+ash-23-g4/imdb-warmup-test
+Thomas-X-Yang/Llama-7b-gsm-prolog
+taewhan/k2t-second
+mahimairaja/tweet-summarization-llama-2-finetuned
+ash-23-g4/gpt2-warmup-imdb-split-0.6-epochs-5
+ash-23-g4/gpt2-warmup-imdb-split-0.6-epochs-1
+mHossain/en_bn_summarize_v4
+mHossain/en_bn_summarize_v5
+jb723/llama2-ko-7B-model
+EnzoZacharias/Llama-2-7b-chat-hf-fine-tuned_meta_llama_DiffParam1
+Davlan/mt5-small-diacritizer-menyo
+ldos/text_shortening_model_v14
+uukuguy/speechless-codellama-dolphin-orca-platypus-34b
+Manish1903/finetune-llma2-200
+vivekfogteams/fastchat-3b-copy
+vichyt/codet5p-770m-py-sanitized-codebleu-1-True-1e-07-0.1-traditional
+Fredithefish/Guanaco-13B-Uncensored
+garcianacho/llama-2-7b-ProtSmi
+mHossain/en_bn_summarize_v6
+ldos/text_shortening_model_v15
+rishi-3bigs/llama2-7b-finetuned-unfiltered-8epochs
+ViktorDo/mt5-small-finetuned-amazon-en-es
+b3G0R/FLang
+TheBloke/YuLan-Chat-2-13B-GPTQ
+TheBloke/YuLan-Chat-2-13B-GGUF
+zarakiquemparte/pygmalion-lrp-grad-l2-7b
+mncai/Llama2-13B-Blend-LoRA_epoch4
+anhnv125/llama-op-v8.2
+Mikivis/gpt2-large-lora-alpacagpt4
+Mikivis/gpt2-large-lora-cot
+Mikivis/gpt2-large-lora-enhonesty
+Mikivis/gpt2-large-lora-gpt_teacher
+josedanielaromi/llama-2-7b-miniguanaco
+Undi95/ReMM-S-Kimiko-v2-13B
+lu-vae/llama2-13b-sharegpt4-test
+flozi00/t5-small-llm-tasks
+The-Face-Of-Goonery/Huginn-19b-prototype
+TheBloke/13B-Thorns-L2-GPTQ
+TheBloke/13B-Thorns-L2-GGUF
+mandeepbagga/falcon-7b-instruct-flipkart-product-description
+Kotokin/MLewd-L2-13B-v2-1-GPTQ
+irodkin/gpt2-wiki2
+abeiler/goatV9-chat-QLORA-Merged-TempTest-2
+ldos/text_shortening_model_v18
+jdmartinev/MLEAFIT_es2ptT5
+mHossain/en_bn_summarize_v7
+chatham84/llama-2-13b-chatham84-13b-64-8-1-v9
+mzbac/Tulu-30B-GPTQ-Grammar-Correction
+abeiler/goatV10-QLORA
+Bala2223/finetune_Llama-2-7b-chat-hf
+santoshaimlops/santosh-model
+Koltunov-Matthew/my_model
+olegka/llama-2-7b-guanaco-dolly-mini
+Ahmed-Eissa01/Llama-2-7b-linkdev-04
+pkulium/distilgpt2-finetuned-wikitext2
+Sao10K/Stheno-Mix-L2-20B
+quantumaikr/falcon-180B-wizard_alpaca_dolly_orca
+Undi95/UndiMix-v3-13B
+squarelike/llama2-ko-medical-7b
+ammarinjtkrbh/llama-2-7b-food-search
+Tensoic/Llama-2-7B-alpaca-2k-test-merged
+chunyuu/results
+LemTenku/model
+yzhuang/autotree_llama_10_vit_24l_local_f80_rl
+Eliac11/tinkNLP
+KrasniyDoshik/llama-2-7b-guanaco-dolly-mini
+ViktorDo/flan-t5-small-finetuned-summaries
+Vlad00k/DockerRuDialoGPT-medium
+andreipb/gpt2-poetry-model-crpo
+vladjr/mt5-small-finetuned-americanas-pt
+felipeoes/llama-2-7b-legislation
+Terps/mt5-small-finetuned-amazon-en-es
+moraxgiga/Tiny_llama_fine_tuning
+ViktorDo/flan-t5-base-finetuned-summaries
+Silvernine/llama-2-7b-miniguanaco
+aanosov/tb_001
+Terps/mt5-finetuned-amazon-en-es-accelerate
+Jaehun/coverage_model
+yzhuang/autotree_llama_10_vit_12l_quantile_local_f80
+chatham84/llama-2-13b-chatham84-13b-64-8-1-v10
+yeefever/not-real-facts
+sirdifupsa/t5-small-finetuned-xsum
+minhbui/merge_model_llama2
+wentingzhao/natural-dialogues-user-assistant-2048-clean-epoch3
+Eliac11/FitModel
+yeefever/not-real-facts2
+kimnt93/kmv-7b-01-32k
+faresfawzi/t5-small_s2orc_5_epochs
+aanosov/tb_002
+ChillyMango/llama-2-7b-freddybot
+yzhuang/autotree_llama_10_tt_12l_local
+sarankup-newgen/llama2-70b-email-trained-delivered
+BarraHome/Llama-2-7b-GPTQ-Pacemaker
+wesley7137/Carl_L2_13B_GGML_Q4_0
+Brouz/Slerpeno
+Undi95/MLewd-L2-13B-v2-2
+aanosov/tb_003
+ajaytevatia/aimlops_m6_mp1
+aanosov/tb_004
+royallab/Pygmalion-2-13b-SuperCOT
+ChillyMango/llama-2-7b-lakshbot
+kitbear444/DialoGPT-medium-kit
+OpenBuddy/openbuddy-codellama2-34b-v11.1-bf16
+jangmin/gptq-llama2-7b-chat-hf-food-order-understanding-30K
+Arjun-G-Ravi/chat-GPT2
+fastbond/llama-2-7b-guanaco-viggo-long-FULL
+IDEA-CCNL/Ziya-Coding-15B-v1
+qucie/llama-2-7b-miniguanaco-test
+K9586/model
+flytech/togetherchat-dev-7b
+maxolotl/falcon-wait3-en-es-v2-2
+quantumaikr/falcon-180B-WizardLM_Orca
+nguyenthanhdo/pygmalion-dolphin-qlora
+guidoivetta/Peppa-Pig
+Suchinthana/Sinhala-Translate-and-Dolly-Llama-7b
+wentingzhao/natural-dialogues-user-assistant-2048-epoch3
+yunhuan929/falcon_180b
+ChillyMango/llama-2-7b-mimibot
+ludis/tsukasa-13b-qlora-limarp
+ingeol/llama2_test_01
+CHIH-HUNG/llama-2-13b-Open-Platypus_2.5w
+yzhuang/autotree_llama_10_tt_12l_local_all
+achieverprince/llama-2-7b-miniguanaco
+Rudra501/model_1B_finance
+ChillyMango/llama-2-7b-danbot
+Juniplayground/Mist_LLaMA-2-7B-1024_V7_GPTQ_Quantised_Version2
+RAJ11/Llama2-7b-Moleconcept_v3_400steps_sft_merged
+abhinand/BioMedGPT-LM-7B-sharded-bf16
+hanifabdlh/flan-t5-freedomintelligence-alpaca-gpt4-indo
+LeeSB/flan-t5-small
+JMYasir/trReviews-ds-mini
+LeeSB/chatGPT
+diana9m/llama-2-7b-PHASE1
+gurprbebo/LLAMA_V52_BaseModel
+gokul8967/Sofi-gptq
+SonnyAu/DialoGPT-dumbledore
+chargoddard/llama-2-26b-trenchcoat-stack
+LAYEK-143/LLAMA
+youngchannel/my_KoT5-summarization
+zahid0/flan-t5-base-fine-tuned-1
+TheBloke/Llama-2-PeanutButter_v19_R8-7B-GPTQ
+TheBloke/Llama-2-PeanutButter_v19_R8-7B-GGUF
+TheBloke/Guanaco-7B-Uncensored-GGUF
+chargoddard/llama-2-16b-nastychat
+TheBloke/Guanaco-13B-Uncensored-GGUF
+TheBloke/Guanaco-7B-Uncensored-GPTQ
+swbaek/LLAMA1_65B_HF
+Ujjawal/llama2-salesforce-dialogstudio-tweetsumm
+TheBloke/Airoboros-L2-13B-2_1-YaRN-64K-GGUF
+kongwl15/llama-2-7b-miniguanaco
+dahara1/ELYZA-japanese-Llama-2-7b-instruct-AWQ
+shenshan/chinese-alpaca-2-gguf
+TheBloke/Guanaco-13B-Uncensored-GPTQ
+beomi/llama-2-ko-70b
+kavinilavan/pythia-2.8-array-100
+sess1/Llama-2-7b-chat-finetunetest2
+TheBloke/Airoboros-L2-13B-2_1-YaRN-64K-GPTQ
+gdupont/llama-2-7b-galleon
+paymanshus/llama2-formextract-lora-8bit-merged
+FunkEngine/SchweinZwei-13b
+paymanshus/llama2-formextract-lora-bf16-merged
+InstaDeepExternalProject/llm_training_20230907_135709
+bajajdivya/chatbot
+922CA/llama-2-7b-monika-v0.3i-Kv2-c
+Hawk28/bloom-3b-finetuned-spider
+aanosov/tb_006
+Spurthi/aimlops_m6_mp1
+922CA/l2-7b-natsuki-ddlc-v0.1-Kv2
+taranetsdan/ruDialoGPT_v2_medium
+kavinilavan/pythia-2.8-array-100-v2
+922CA/l2-7b-sayori-ddlc-v0.1-Kv2
+sess1/Llama-2-7b-chat-finetunetest3
+TheBloke/Falcon-180B-GGUF
+ahsan-mavros/ten-epochs
+vgaraujov/Dummy5nano
+Joshua8966/chinese-llama-2-13b_v07-09-2023
+taranetsdan/DialoGPT_v2_medium
+Ketak-ZoomRx/FermaCTm1
+talentlabs/chinese-llama-2-13b_v08-09-2023
+mariaxclarisse/familia-ensemble
+ccore/llama-2-330m-Rhetorical-Agents
+Ketak-ZoomRx/FermaCTm2
+jondurbin/spicyboros-7b-2.2-checkpoints
+TheBloke/Chronos-Hermes-13b-v2-GGUF
+xDAN2099/sft_llama2_cn_shareChat_0906_ckp28
+willyninja30/ARIA-70B-French
+InstaDeepExternalProject/llama-2-chat-13b-trained
+aanosov/tb_009
+Hawk28/llama-3b-finetuned-spider
+dgnk007/eagle
+gigant/graph_t5_230908
+vikp/instruction_learning_rater
+ldos/text_shortening_model_v23
+Hawk28/llama-3b-finetuned-spider-v1
+Sherstnev/llama-30b-awq-w4
+ldos/text_shortening_model_v24
+prognosis/medicalcode-prefinetune-v3
+talentlabs/chinese-llama-2-13b_v09-09-2023
+hiyouga/Baichuan2-7B-Base-LLaMAfied
+Ammad1Ali/Alex-2-7B-AirB
+rirv938/wizard-vicuna-13b-uncensored-w4-g128-awq-v2
+jondurbin/spicyboros-7b-2.2
+Kimata/opt-125m-gptq
+JunF1122/gpt2_finetuned_recipe
+DeepMount00/llama2-fine-tuned-estrattore
+chatham84/llama-2-13b-chatham84-13b-64-8-1-v11
+Sao10K/Stheno-1.3-L2-13B
+fuzhao/openmoe_large_tmp
+ldos/text_shortening_model_v25
+flozi00/Llama-2-13b-german-assistant-v7
+kaungmyat/translation
+ChillyMango/llama-2-7b-marcusbot
+casperhansen/vicuna-7b-v1.5-awq-gemv
+dcbv/charluv-mythalion-13b
+Faradaylab/ARIA-70B-V2
+aanosov/tb_010
+cspencergo/llama-2-7b-tabular
+tsobolev/codeparrot-ds-accel
+Hawk28/llama-3b-finetuned-spider-v2
+slaqrichi/llama-2-13b-chat-miniguanaco
+bibidentuhanoi/llama2-gideon-sharded
+shailesh1914/medquad-finetuned-gpt2
+rshrott/description-together-ai-8bit
+taewhan/k2t-third
+rshrott/description-together-ai-4bit
+datnguyen/bloomz-1b1-4bit-2048vic4
+dcbv/charluv-mythalion-128g-4bit
+Rhayar/model_rhayar
+wentingzhao/natural-dialogues-user-assistant-2048-clean-split-epoch3
+TheBloke/airoboros-l2-13b-gpt4-2.0-GGUF
+abacusai/Giraffe-v2-70b-32k
+wentingzhao/natural-dialogues-assistant-2048-clean-epoch3
+bajajdivya/chatbot1
+Brouz/REMM-PYG-0.65-SLERP
+justinj92/llama27b-in-legalchat
+josedanielaromi/llama-2-7b-miniguanaco20050630
+lmonsalve/test
+TheBloke/airoboros-l2-13b-gpt4-m2.0-GGUF
+wentingzhao/natural-dialogues-assistant-2048-epoch3
+TheBloke/airoboros-l2-7B-gpt4-2.0-GGUF
+TheBloke/airoboros-l2-7B-gpt4-m2.0-GGUF
+ccore/Llama2-330m-32k-Rhetorical-Agents-QA-Builder
+lisamb/customer_complaint-18-llama-2-7b_fine_tune_train_v07
+lmonsalve/Contitucion-15_2
+TheBloke/Guanaco-3B-Uncensored-v2-GPTQ
+TheBloke/COTHuginn-4.5-19B-GGUF
+TheBloke/COTHuginn-4.5-19B-GPTQ
+bugdaryan/WizardCoderSQL-15B-V1.0
+TheBloke/Spicyboros-7B-2.2-GGUF
+hidude562/OpenMusenet-2.11-3M
+TheBloke/Spicyboros-7B-2.2-GPTQ
+hidude562/OpenMusenet-2.11-S
+hidude562/OpenMusenet-2.11-M
+Undi95/MLewd-L2-13B-v2-3
+hidude562/OpenMusenet-2.11-L
+notzero/testqlora
+ExpectoZX/flan-t5-xl-regex-controllable-generation
+taide/b.1.0.0
+TheBloke/Falcon-180B-GPTQ
+vladjr/ptt5-base-portuguese-vocab-finetuned-americanas-pt
+mikojelly/7-2epoch-predict
+Jianyuan/SFT-llamachat-v0
+peterli0913/llama
+Kwee-Kim/llama-2-7b-kk
+wei123602/llama2-13b-fintune2-4E
+wandabwa2004/llama-2-7b-saf2
+hiyouga/Baichuan2-7B-Chat-LLaMAfied
+JMYasir/trReviews-ds
+thainq107/flan-t5-small-amazon-reviews-multi
+Juniplayground/Mist_LLaMA-2-7B-1024_V7_GPTQ_Quantised_Version3
+filipealmeida/open_llama_3b_v2_sharded
+malhajar/llama-2-70b-hf-chat-turkish
+intwis100/Llama-2-7b-chat-hf_v1
+dileepmohanan/llama-2-7b-miniguanacodileep
+jondurbin/spicyboros-13b-2.2-checkpoints
+thainq107/t5-large-amazon-reviews-multi
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w
+intwis100/Llama-2-7b-chat-hf_v2
+dpml/in-house-alpaca-lr3e5
+atwine/llama-2-7b-chat-non-quantized-090923
+ninachely/my-ruDialoGPT-medium-model
+jondurbin/spicyboros-13b-2.2
+Nitsuke/falcon-7b-instruct-ft
+Tehniyat/llama-2-7b-miniguanaco
+Aharneish/qa-flant5
+Abhinav7/necrozma-llama-2-7b
+tomhavy/Llama-2-7b-chat-hf-sharded-bf16-fine-tuned-ENG-KIR
+Mikivis/gpt2-large-lora-gpt4all
+bintanggg/my_awesome_billsum_model
+bibidentuhanoi/llama2-gideon-sharded2
+SoyGema/english-guyarati
+flozi00/Llama-2-13b-german-assistant-v7-4bit-autogptq
+wei123602/llama-13b-FINETUNE3
+ninachely/model
+sgr23/llama2-on-dolly-15k-dto
+arjunssat/Llama-2-7b-chat-finetune
+DKARAGODIN/distilgpt2-finetuned-wikitext2
+arsenZabara/rjd4
+TokenBender/cheekyChameli_13B_v2_Chai
+haouarin/noon-7b-8bits
+Undi95/MLewdBoros-L2-13B
+Ammad1Ali/Alex-2-7B-Pol
+Medissa/t5_more_context
+MatthisHoules/rat-t5-large-qdmr-grounded-with-db
+stokome/llama-2-7b-en_hg
+Undi95/ReML-v2-L2-13B
+Undi95/ReMM-v2-L2-13B
+DrishtiSharma/llama-2-7b-int4-flashatn-dolly-15k-r-64
+tim9510019/llama-2-7b-miniguanaco
+TheBloke/Uni-TianYan-70B-GPTQ
+TheBloke/Uni-TianYan-70B-GGUF
+BarraHome/llama-2-7b-int4-pacemaker-20k
+922CA/l2-7b-yuri-ddlc-v0.1-Kv2
+nikitharao/catlm
+ndilsou/mbay_model
+DrishtiSharma/llama-2-7b-int4-alpaca-flash-attention-tp-2-merged
+TheBloke/ORCA_LLaMA_70B_QLoRA-GGUF
+DrishtiSharma/llama-2-7b-int4-alpaca-flash-attention-tp-1-merged
+DrishtiSharma/llama-2-7b-int4-alpaca-normal-attention-tp-2-merged
+waseem9211/llama-2-7b-int4-python-code-20k
+DrishtiSharma/llama-2-7b-int4-alpaca-normal-attention-tp-1-merged
+DrishtiSharma/llama-2-7b-int4-dolly-15k-flashatn-r-32-merged
+ndilsou/t5-mbay-translation
+dpml/a_mono
+godoyj/test-model-ptt5-wikilingua
+NoahBSchwartz/llama-2-7b-LLM-Link
+LemTenku/model2
+Undi95/ReMM-v2-L2-13B-VARIANT
+TheBloke/ORCA_LLaMA_70B_QLoRA-GPTQ
+nadiamaqbool81/codet5-large-hf
+ndilsou/t5-v1_1-small-mbay-translation
+flytech/togetherchat-dev-7b-v2
+Danielbrdz/Barcenas-13b
+adamc-7/imdb-expert
+sam2ai/open_llama_3b_odia_gptq_128_4bit
+sarasultan/gpt2_base2
+nadiamaqbool81/starcoderbase-1b-hf
+vikp/instruction_following_rater
+arnavkomaragiri/llama-2-7b-guanaco-dolly-mini
+Xenova/LaMini-GPT-774M
+Undi95/CodeEngineV2
+Xenova/LaMini-Cerebras-111M
+victornica/molgpt_selfies_100mzinc_384width
+Xenova/dlite-v2-774m
+Xenova/gpt2-large-conversational
+rb05751/reuters-gpt2-text-gen
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-2e-06-wd-0.01
+PanoEvJ/T5_base_SFT_summarization
+mychen76/llama2_dolly15
+arsenZabara/llama-2-7b-guanaco-dolly-mini
+Codexister/DialoGPT-medium-KafkaBotV1
+mfodwo/STUGPT-small-v1
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-1e-05-wd-0.01
+Vigneshsundaram1006/flan-t5-base-samsum
+migtissera/Synthia-70B-v1.2b
+arsenZabara/RJD-hak
+bitadin/description-v3-t5-base-llm-10
+aman-mehra/gpt2-medium-finetune-squad-ep-0.5-lr-0.0001-wd-0.0001
+kepinsam/my_awesome_opus_books_model
+lloorree/mythxl-70b
+lloorree/kssht-holo-70b
+lloorree/kssht-fango-70b
+lloorree/kssht-gonzo-70b
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-1e-06-wd-0.0001
+anhnv125/llama-op-v9
+SouthMemphis/t5-small_for_summarization
+wanderer2k1/T5-custom-ViQuad2
+BaleChen/checkpoint-400-merged
+iamkhadke/invoice-extraction-v2-llama-2-7b-v2
+aman-mehra/gpt2-medium-finetune-squad-ep-0.5-lr-1e-05-wd-0.0001
+Envoid/Libra-19B
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-1e-05-wd-0.0001
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-1e-05-wd-0.001
+misshimichka/tinkoff-dailogpt-olymp
+Sabbir2023/Llama-2-7b-chat-finetune
+thrunlab/gpt2-medium_gated
+aman-mehra/gpt2-medium-finetune-squad-ep-0.1-lr-1e-05-wd-0.0001
+sakshamkhatwani/myModel
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-2e-05-wd-0.0
+pssubitha/llama-2-7b-sales-force-chat-3
+GabSo/santacoder-finetuned-the-stack-bash
+ludis/tsukasa-13b-qlora-limarp-gptq
+pierre-pessarossi/llama2-7b-shakespeare-f16p
+swbaek/tulu_65b
+MekeyPan/mt5-small-finetuned-amazon-en-zh
+anhnv125/llama-op-v9.1
+pssubitha/llama-2-7b-sales-force-chat-3.1
+Biakko/llama2_7b_summarizing_news_rus
+legacy107/adapter-flan-t5-large-bottleneck-adapter-cpgQA
+mlabonne/drllama-7b
+wandabwa2004/llama-2-7b-saf3
+qualis2006/llama-2-7b-int4-python-code-18k
+osieosie/bloom-7b1-4bit
+MatthisHoules/rat-t5-large-qdmr-grounded-with-db-v2
+osieosie/bloom-7b1-3bit
+TheBloke/Spicyboros-13B-2.2-GPTQ
+TheBloke/Spicyboros-13B-2.2-GGUF
+YoussefThabet/youssefllama_Links_English
+TheBloke/Pygmalion-2-13B-SuperCOT-GGUF
+MarcusCosta/llama-2-7b-miniguanaco
+TheBloke/Tulpar-7B-v0-GGUF
+prattay/Llama-2-7b-chat-finetune-prattay
+TheBloke/Pygmalion-2-13B-SuperCOT-GPTQ
+ChenMnZ/falcon-7b-omniquant-w3a16g64
+ChenMnZ/falcon-180b-omniquant-w3a16g512
+TheBloke/Tulpar-7B-v0-GPTQ
+MFDLR/llm-finetuned-13b-context-01
+legacy107/flan-t5-large-bottleneck-ia3-union-cpgQA
+gmongaras/Wizard_7B_Reddit_Political_2019
+AhmedElDokmak/opt-125m-gptq-4bit
+Sao10K/JanniesBasedLigma-L2-13B
+WGNW/Llama-2-ko-7b-Chat-auto-gptq-4bit
+nostradamus89/llama-2-7b-mini_1c
+sansanai/coati-sft
+gmongaras/Wizard_7B_Reddit_Political_2019_8bit
+chunpingvi/training_acc
+sansanai/coati-rm
+ScottShao/llama2-7b-finetunned-customer-service-v2
+Undi95/Unholy-v1-10L-13B
+rshrott/description-awq-4bit
+silpakanneganti/flan-t5-base-empathy-classification
+Debojit/bitcoin-sentiment-tweets-llama2-7b
+TokenBender/BloodofTheGods_13B_chai
+FranciscoMacaya/Llama-2-7b-chat-finetune
+NewstaR/OpenStar-1b
+godoyj/modelo-wikilingua-3epoch
+pragmatic-programs/human-data-ft-listener
+pragmatic-programs/pragmatic-ft-listener
+Tensoic/Llama-2-openhermes
+sriramgs/RPL_gpt2_new
+nhat117/dica-longllama2-13b-v1
+aframson/babygpt
+Rem0020/test-model
+NewstaR/OpenStar-13b
+TIGER-Lab/MAmmoTH-Coder-7B
+codefactory4791/instruct-tuned-llama-7b-hf-alpaca_gpt4_5_000_samples
+Ralphch97/StarChatBeta_Finetuned_Ralph_v3.9
+Undi95/Unholy-v1-12L-13B
+Theosphil/summarizer
+asimniazi63/llama-2-7b-jazz-pretrained
+iashchak/ruGPT-3.5-13B-ggml
+sajidhameed63/llama-2-7b-jazz-pretrained
+mindchain/llama-2-7b-custom004444444
+silpakanneganti/flan-t5-base-auto-complete
+SM0rc/llama2-chatbot
+ElixIA/Market-JSON-COMPLETION
+Theosphil/mt5-small-finetuned-personal_data
+atwine/llama-2-7b-chat-non-quantized-091023
+bitadin/bulletPoint-v3-t5-base-llm-10
+TIGER-Lab/MAmmoTH-7B
+TheBloke/MLewdBoros-L2-13B-GPTQ
+TheBloke/MLewdBoros-L2-13B-GGUF
+sajidhameed63/llama-2-7b-jazz-prepaid_package_finetuned
+TheBloke/ReMM-v2-L2-13B-GGUF
+TheBloke/Llama-2-13B-Ensemble-v5-GGUF
+maxivimax/FitModelPostik
+TheBloke/ReMM-v2-L2-13B-GPTQ
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0003-wd-0.001
+AnunaAI/llama2_7b_medq_gptq4
+TheBloke/Llama-2-13B-Ensemble-v5-GPTQ
+aman-mehra/gpt2-medium-finetune-squad-ep-0.1-lr-0.0003-wd-0.001
+DemonMaike/game_on_llama2_QLoRA
+arthurmluz/ptt5-wikilingua
+jondurbin/airoboros-l2-7b-2.2
+jondurbin/airoboros-l2-13b-2.2
+aman-mehra/gpt2-medium-finetune-squad-ep-0.1-lr-0.0003-wd-0.01
+jondurbin/spicyboros-70b-2.2-prequant-merge
+aman-mehra/gpt2-medium-finetune-squad-ep-0.05-lr-0.0001-wd-0.001
+victornica/molgpt_selfies_100mzinc_384width_withoptim_10iter
+oilbread/KoAlpaca-Polyglot-5.8B-20epoch-datatune_eos
+Nadilazev/bloom-custom-llm-exam
+wentingzhao/natural-dialogues-user-assistant-2048-clean-epoch10
+SoupChickn/Valeen-DialoGPT
+wentingzhao/natural-dialogues-user-assistant-2048-clean-split-epoch10
+AtheerAlgherairy/llama-2-7b-chat-dst_JSON_Prompt_20Train
+sumyeongahn/results
+nguyenthanhdo/pygmalion-tuned-v2
+camiller/distilgpt2-finetuned-wikitext2
+Jianyuan/SFT-llamachat-v1
+wentingzhao/natural-dialogues-assistant-2048-clean-epoch10
+wentingzhao/natural-dialogues-user-assistant-2048-clean-chat-epoch10
+TIGER-Lab/MAmmoTH-13B
+TIGER-Lab/MAmmoTH-70B
+schwgHao/llama2-13b-reward
+TIGER-Lab/MAmmoTH-Coder-34B
+The-Face-Of-Goonery/Huginn-16B-Prototype
+victornica/molgpt_selfies_100mzinc_384width_withoptim_20iter
+strumber/newLetsMODDataset22222
+dhmeltzer/Llama-2-7b-hf-eli5-cleaned-1024_qlora_merged
+codefactory4791/medical-instruct-tuned-llama-7b-medical_meadow_medical_flashcards_2000_samples
+dhmeltzer/Llama-2-7b-hf-eli5-cleaned-wiki65k-1024_qlora_merged
+vihangd/smartyplats-3b-v1
+aman-mehra/gpt2-medium-finetune-squad-ep-0.1-lr-1e-07-wd-0.001
+rombodawg/WizardCoder-Python-7B-V1.0_Sharded_1.5gb
+chukypedro/llama-2-7b-chat-leadelo_constant
+legacy107/flan-t5-large-bottleneck-prefix-union-cpgQA
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-1e-07-wd-0.001
+atwine/llama-2-7b-chat-non-quantized-091123
+strumber/newLetsMODDataset333
+aman-mehra/gpt2-medium-finetune-squad-ep-0.5-lr-1e-07-wd-0.001
+Codexister/DialoGPT-medium-KafkaBotV2
+kimnt93/px-7b-01
+ahmeddbahaa/AraT5v2-base-1024-finetune-ar-xlsum
+Jianyuan/SFT-llamachat-v3
+21ksuresh/full-fine-tuned-flan-dialogue-summary
+ludis/tsukasa-13b-qlora-limarp-gguf
+igandhi21/llama-2-7b-miniguanaco
+Moses25/Llama2-Moses-7b-chat
+lloorree/mythxl-70b-gptq
+victornica/molgpt_selfies_100mzinc_384width_withoptim_210iter
+afifaniks/llama-2-7b-guanaco-qlora
+javirandor/generator-7b-token1
+jerichosiahaya/vits-tts-id
+Sonian/llama-2-7b-sonian
+nfliu/t5-v1_1-xl-binary-nli
+ammarinjtkrbh/llama-2-7b-food-search_1M
+Jukaboo/Llama2_7B_dialogsum_ft_v2400_merged
+michaelfeil/ct2fast-CodeLlama-7b-hf
+bitadin/checkpoint-49752
+Ketak-ZoomRx/pythia-2.8-array-100-v3
+djinnn/Bhasa-Translator-Model
+kavinilavan/pythia-2.8-array-100-v3
+ezeroz/llama2-7b-digitalme-new-50000
+robvanderg/flan-t5-base-starwars
+michaelfeil/ct2fast-CodeLlama-34b-hf
+anhnv125/llama-op-v10.1
+michaelfeil/ct2fast-CodeLlama-13b-hf
+Sabbir2023/Llama-2-7b-chat-hf-finetune-2v
+harouzie/mt5-small-translation-en2vi
+TheBloke/Nous-Hermes-13B-Code-GPTQ
+TheBloke/Nous-Hermes-13B-Code-GGUF
+qwopqwop/test-awq
+InfAI/flan-t5-text2sparql-naive
+TheBloke/Unholy-v1-10l-13B-GGUF
+Faradaylab/ARIA-70B-V3
+chukypedro/Llama-2-7b-Chat-GPTQ
+Shishir1807/pistachio-tapir
+nailiamirzakhmedova/Llama-2-7b-hf-cmv
+ahsan-mavros/pima-diabetes
+harshraj/Llama-2-7b-chat-Finetune_openAssist
+hantech/byt5_correct5
+ldos/text_shortening_model_v26
+quantumaikr/plankton-500M
+quantumaikr/plankton-100M
+TheBloke/Unholy-v1-10l-13B-GPTQ
+endrcn/llama-2-7b-finetune
+khoantap/best-model-evar-13b
+TheBloke/Unholy-v1-12L-13B-GGUF
+mindchain/offload
+manishiitg/llama-2-7b-aditi-chat-40k
+victornica/molgpt_selfies_100mzinc_384width_withoptim_220iter
+Shishir1807/nebulous-dove
+TheBloke/Unholy-v1-12L-13B-GPTQ
+gshields/translate_model_v1
+mtc/stabilityai-StableBeluga-7B-all-languages-lora-8bit-seahorse-attribution-merged
+dacorvo/gpt2-neuronx-bs16
+Shishir1807/cherry-gopher
+KoalaAI/OPT-1.3b-Chat
+Chedly/lora-flan-t5-large-chat
+TokenBender/BOTG_fp16
+swapnilborude/falcon_7b_version_v3
+ldos/text_shortening_model_v27
+Shishir1807/pythia-2.8-array-100-v4
+GreenBitAI/LLaMA-2-7B-2bit-groupsize8
+DariusStaugas/LLaMa_test
+stefaniftime/tmpnk87cy75
+divyasanap/document-generation
+rishi-3bigs/llama2-7b-finetuned-unfiltered-23epochs
+FlagAlpha/Atom-7B-Chat
+ahsan-mavros/error-test
+Sabbir2023/Llama-2-7b-chat-hf-finetune-16v
+ldos/text_shortening_model_v28
+NewstaR/Starlight-7B
+nelut/llama2-disertation-assistant-final_2
+Alpi157/Final_model_eng
+ldos/text_shortening_model_v29
+recall-io/flan-t5-large-question-generator-v2
+ScottShao/llama2-7b-finetunned-customer-service-v3
+lchakkei/IMMuseum-Atom-7B
+avemio-digital/codellama_teltec
+ldos/text_shortening_model_v30
+356wertghwesr/Athena-v1-colab
+nailiamirzakhmedova/Llama-2-7b-hf-cmv-strategies
+egorishti/email-summarization-model-t5
+recall-io/flan-t5-large-answer-generator-v2
+TonyJPk7/llama2-chat-finetune-Qlora
+ldos/text_shortening_model_v31
+PoungPoung/uci_chess
+Sao10K/Euryale-L2-70B
+mmkuznecov/model
+zeeshanali00/llama-2-7b-data-description
+DaertML/tiny_starcoder_py-GPTQ
+OhCherryFire/llama2-7b-game24-value-sft-ep3
+Atulit23/flan-t5-base-indian-constitution
+Sao10K/Euryale-Inverted-L2-70B
+OhCherryFire/llama2-7b-prontoqa-small_value-ep1
+ldos/text_shortening_model_v32
+nguyenthanhdo/noprob_model
+DaertML/stablelm-base-alpha-3b-4bit-GPTQ
+rockysec/Llama-2-13b-hf
+lmonsalve/Contitucion-15_lemm
+sam-liu-lmi/vicuna-7b-v1.5-w4-g128-awq
+rombodawg/WizardCoder-Python-13B-V1.0_Sharded_1.5gb
+kavinilavan/pythia-2.8-array-100-v4
+TemporalGames/opt-1.3b-lambada_rmt_ms7_bptt7_sl2028_mt10_cur3
+mabecerra100/eli5_clm-model
+cmarkea/bloomz-7b1-mt-sft-chat
+NoIdeaLand/test-2048-1500ck
+cmarkea/bloomz-3b-sft-chat
+cmarkea/bloomz-560m-sft-chat
+Jianyuan/SFT-llamachat-v4
+anhnv125/llama-op-v10
+Undi95/OpenRP-13B
+gmongaras/Wizard_7B_Squad
+thrunlab/gpt2-medium
+thrunlab/gpt2-medium_gated_freeze
+TIGER-Lab/MAmmoTH-Coder-13B
+kimnt93/px-7b-02
+SeyedAli/Persian-Text-paraphraser-mT5-V1
+TheBloke/Llama-2-70B-Ensemble-v5-GGUF
+TheBloke/Spicyboros-70B-2.2-GGUF
+TheBloke/Spicyboros-70B-2.2-GPTQ
+thrunlab/gpt2-medium_oracle
+gmongaras/Wizard_7B_Squad_8bit
+philikai/llama-2-7b-spiderSQL-philikai
+Severian/Mino
+ElixIA/Market-YAML-COMPLETION-Q
+folflo/mt5-small-finetuned-HunSum-1_v0911
+victornica/molgpt_selfies_100mzinc_384width_withoptim_310iter
+mpetrenko/model
+mfodwo/STU_chatbot_model
+coconutzhang/llama-2-7b-ghcv1
+boomerchan/Magpie-13b
+TheBloke/Marcoroni-7b-GGUF
+TheBloke/Marcoroni-13B-GGUF
+Jbrophy/falcon-7B-short-story-gen-v2
+ishani340/flan-t5-base-samsum
+sia-ai/llama-2-7b-skil-internal-wiki-v2
+hp1502/Legal_Text_Summarizer
+Slowblood/opt-125m-gptq-4bit
+abeiler/goatV9-chat-GOAT
+NewstaR/Starlight-13B
+ruiguo0225/egfr_report
+silverliningeda/llama-2-7b-miniguanaco
+hanzla/Wizard-Vicuna-7B-Uncensored-HF_REFINED
+victornica/molgpt_selfies_100mzinc_384width_withoptim_320iter
+TheBloke/Marcoroni-13B-GPTQ
+llucasmarques/flan-t5-base-SamsumTraduzido
+TheBloke/Marcoroni-7b-GPTQ
+dot-ammar/dotless_model-small
+corbt/classify-recipes-v1
+crumb/core1-base-464m-c4
+withmartian/bubble-codegen-v1
+nanom/gtp_adaptation_martin_fierro_v1
+TheBloke/Llama-2-70B-Ensemble-v5-GPTQ
+mncai/Llama2-13B-Blend-LoRA-3rd-best_epoch4
+nanom/gtp_adaptation_martin_fierro_v2
+choco9966/Llama-2-7b-instruct-tuning
+DylanJHJ/ntr-base-qrecc
+NekoPunchBBB/Llama-2-13b-hf_Open-Platypus-8bit-att
+victornica/molgpt_selfies_100mzinc_384width_withoptim_330iter
+JunF1122/gpt2_finetuned_10000recipe_chicken
+elliotthwang/Elliott-Chinese-LLaMa-GPTQ
+xiongzhongchi/rst-all-11b-int8
+hhuggv/my_awesome_eli5_clm-model
+Sabbir2023/Llama-2-13b-chat-hf-16v
+harborwater/open-llama-3b-v2-wizard-evol-instuct-v2-196k
+mncai/Llama2-13B-Blend-LoRA-3rd-best_epoch8
+coconutzhang/llama-2-7b-ghcv1-test
+speechlessai/speechless-codellama-dolphin-orca-platypus-13b
+choco9966/opt-125m-finetuned
+pszemraj/pythia-31m-simplewiki-2048
+skadewdl3/llama-2-7b-recipe_nlg_lite
+ekshat/Llama-2-7b-chat-finetune-for-text2sql
+Tsomerville/llama-2-7B-lunaAI-general-drlorenzo-v.1.0
+karunyads/Llama-2-7b-chat-finetune
+khoantap/awesome-hermes
+bitadin/checkpoint-99504
+ahsan-mavros/balanced-test
+victornica/molgpt_selfies_100mzinc_384width_withoptim_340iter
+itsskofficial/llama-2-7b-minilinkedin
+pieken/saiga2_7b_lora_merged
+Vishal24/llama2-7B-base
+Laaleh/model_qa
+ZoeLiu8828/llama-2-7b-fineTuned
+mani1kumar/distilgpt2-finetuned-wikitext2
+dujiang/llama-2-7b-miniguanaco
+RJZauner/llama_7b_esrs_v2
+TemporalGames/opt-1.3b-lambada_rmt_ms7_bptt7_sl2028_mt10_cur4
+cheekychy/finetuned_t5
+etri-xainlp/polyglot-ko-12.8b-instruct
+axiong/PMC_LLaMA_13B_int8
+kavinilavan/pythia-2.8-array-100-v5
+annaovesnaatatt/gpt2-post-ppo
+cjdshr/my_awesome_billsum_model
+annaovesnaatatt/martin-arguments
+annaovesnaatatt/reward-model
+annaovesnaatatt/better-rm-gpt2-ppo
+anhnv125/llama-op-v11
+clarin-knext/plt5-large-msmarco
+Glavin001/tiny-puffed-llama-GPTQ
+Yukang/Llama-2-7b-longlora-8k
+agonh/llama-2-7b-guanaco-dolly-mini
+agonh/llama-2-7b-miniguanaco
+Yukang/Llama-2-7b-longlora-16k
+stefaniftime/tmp93avx00w
+Yukang/Llama-2-7b-longlora-32k
+vivek2001123/dpo-santacoder1b
+Yukang/Llama-2-13b-longlora-8k
+Yukang/Llama-2-13b-longlora-16k
+lightblue/openorca_stx
+Yukang/Llama-2-70b-longlora-32k
+TonyJPk7/llama2-7b-chat-finetune
+CogwiseAI/dpo_santacoder1b
+Yukang/Llama-2-7b-longlora-8k-ft
+Yukang/Llama-2-7b-longlora-16k-ft
+Yukang/Llama-2-7b-longlora-32k-ft
+Shivaya/llama-2-7b-guanaco-dolly-mini
+Mihir1108/Llama2-finetune
+Hans12Wurst123/llama-2-7b-miniguanaco
+victornica/molgpt_selfies_100mzinc_384width_withoptim_350iter
+sahithya20/checkpoint-qa
+javirandor/generator-7b-token2
+Recag/BharatAI
+HWERI/pythia-70m-deduped-cleansharegpt
+naul/test-gpt
+Mob-Barley/llama-2-7b
+stefaniftime/dialoGPT-finetuned
+Yukang/Llama-2-13b-longlora-8k-ft
+Yukang/Llama-2-13b-longlora-16k-ft
+MariaHabib/t5-small-finetuned-xsum
+Yukang/Llama-2-13b-longlora-32k-ft
+pollux83/llama-2-7b-miniguanaco
+mareuva/gpt2-finetuned-wikitext2
+Nikhil-trustt/codellama-api-7b-ins
+jondurbin/spicyboros-c34b-2.2-prequant-merge
+AK-12/llama-2-medical-fine-tune-new_sys_msg
+Shishir1807/llama-2-7b-custom
+mhemetfaik/flan-t5-large-copy
+TheBloke/Llama-2-13B-Chat-Dutch-GPTQ
+clp/llama-2-7b-chuk-test
+jondurbin/airoboros-l2-70b-2.2-prequant-merge
+lizhuang144/flan-t5-small-VG-factual-sg-id
+lizhuang144/flan-t5-base-VG-factual-sg-id
+lizhuang144/flan-t5-large-VG-factual-sg-id
+p2991459/llama-2-7b-custom
+TheBloke/Llama-2-13B-Chat-Dutch-GGUF
+akashmaggon/my_awesome_eli5_clm-model
+mani1kumar/distilgpt-qlora-ft
+himan11/llama2-7b-mental-health
+TheBloke/JanniesBasedLigma-L2-13B-GPTQ
+TheBloke/JanniesBasedLigma-L2-13B-GGUF
+AffanPervez/SummaryLLAMA
+tahreema-r-z/my_awesome_billsum_model
+tiagotrindade/CD7BI-test
+edukom/Serbian-GPT-2
+speechlessai/speechless-codellama-34b-v1.0
+Yukang/Llama-2-13b-longlora-18k-ft
+tiagotrindade/CD7BI-test2
+moska/plt5-seq-clf-with-entities-updated-finetuned
+legacy107/flan-t5-large-ia3-cpgQA-merged
+TheBloke/Sheep-Duck-Llama-2-70B-GGUF
+egorishti/email-summarization-model-t5-v2
+TheBloke/Sheep-Duck-Llama-2-70B-GPTQ
+Hans12Wurst123/llama-2-7b-nuv-test
+Shishir1807/stylish-impala
+YoussefThabet/A_Links
+khoantap/wizard-13b-sharded
+SouthMemphis/t5-efficient-tiny-finetuned-flant5-en
+victornica/molgpt_selfies_100mzinc_384width_withoptim_360iter
+Shishir1807/analytic-trogon
+Undi95/ReML-v2.1-L2-13B
+moska/plt5-seq-clf-with-entities-updated-50-finetuned
+Undi95/ReMM-v2.1-L2-13B
+YoussefThabet/A
+legacy107/adapter-flan-t5-large-bottleneck-ia3-cpgQA
+Rathohan/my_awesome_eli5_clm-model
+Jorghi21/WeniGPT-L-70-4bit
+crumb/core1-base-464m-redpajama
+lgaalves/xgen-7b-8k_dolly
+GAIR/MathGenAI-7B
+TheBloke/Airoboros-L2-7B-2.2-GPTQ
+TheBloke/Airoboros-L2-13B-2.2-GPTQ
+TheBloke/Airoboros-L2-7B-2.2-GGUF
+TheBloke/Airoboros-L2-70b-2.2-GGUF
+TheBloke/Airoboros-L2-13B-2.2-GGUF
+HectorWoods42/t5-small-finetuned-xsum
+jallojee1/JalloGPT-small-v1
+lgaalves/llama-2-13b-hf-platypus
+nguyenthanhdo/llama2-13B-roleplay-mix
+HectorWoods42/t5-base-finetuned-xsum
+khoantap/WizardLM-1.0-Uncensored-Llama2-13b
+khoantap/MythoMax-L2-13b
+khoantap/PuddleJumper-13b
+khoantap/airoboros-l2-13b-2.1
+Shruthipriya/modified_llama2
+khoantap/Chronos-Beluga-v2-13bfp16
+rfroli/llama2-fine-tuned-dolly-15k-ain
+Vigneshsundaram1006/flan-t5-small
+TheBloke/Spicyboros-c34b-2.2-GGUF
+TheBloke/Spicyboros-c34b-2.2-GPTQ
+TheBloke/Llama-2-13B-Ensemble-v6-GGUF
+TheBloke/Llama-2-13B-Ensemble-v6-GPTQ
+TheBloke/Euryale-Inverted-L2-70B-GGUF
+VS18/flan-t5-base-billsum
+DaertML/WizardCoder-Python-13B-V1.0-nf4-8bit-doublequant-BNB
+TheBloke/Euryale-L2-70B-GGUF
+TheBloke/Airoboros-L2-70b-2.2-GPTQ
+ChaiML/chaiverse-00-20x07a
+datnguyen/bloom-1b1-4bit-10kvic4
+DaertML/WizardCoder-15B-V1.0-nf4-8bit-doublequant-BNB
+bsp-albz/llama2-7b-platypus-ckpt-1000
+bsp-albz/llama2-13b-platypus-ckpt-1000
+datnguyen/bloom-1b7-4bit
+stealthwriter/llama-2-7b-miniguanaco
+hcevik/customml-test
+atharvapawar/Llama-2-7b-chat-finetune-app
+JuanKO/rlhf_base_model
+chachamatcha/NoDrama-CodeLLama-QLoRa-Evol
+Tsomerville/llama-2-7B-lunaAI-general-drlorenzo-v.1.1-500epoch
+silverliningeda/llama-2-7b-silverliningeda-verilog-codegen
+Doctor-Shotgun/ds-brew-13b
+Doctor-Shotgun/ds-spicy-brew-13b
+mamachang/llama2-continue-train
+Undi95/MLewdBoros-L2-13B-SuperCOT
+E1010836/hackathon
+Panchovix/airoboros-l2-70b-gpt4-1.4.1-safetensors
+HectorWoods42/t5-distractor-v1
+Undi95/OpenRP-13B-SuperCOT
+Atulit23/gpt2-indian-constitution
+bitadin/checkpoint-174132
+Weni/WeniGPT-L-70-4bit
+Gauravvaid-shell/osdu_enterprise_llm
+atwine/llama-2-7b-chat-non-quantized-091223
+Chanblock/Photolens-llama-2-7b-langchain-chat-fine-tuning
+TheBloke/Euryale-L2-70B-GPTQ
+yzhuang/autotree_llama_10_tt_12l_local_xor
+Undi95/ReMM-v2-Kimiko-v2-13B
+CogwiseAI/sft-santacoder-1b
+aman-mehra/gpt2-medium-finetune-squad-ep-0.1-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+Undi95/UndiMix-v4-13B
+aman-mehra/gpt2-medium-finetune-squad-ep-0.07-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+aman-mehra/gpt2-medium-finetune-squad-ep-0.09-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+DavidSharma/falcon-7b-instruct-sharded-bf16
+aman-mehra/gpt2-medium-finetune-squad-ep-0.12-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+aman-mehra/gpt2-medium-finetune-squad-ep-0.14-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+aman-mehra/gpt2-medium-finetune-squad-ep-0.16-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+dhmeltzer/Llama-2-7b-hf-eli5-cleaned-1024_qlora_simple_merge
+TemporalGames/opt-1.3b-lambada_rmt_ms7_bptt7_sl2028_mt10_cur5
+Undi95/Unholy-v1.1-13B
+hyonbokan/BGP-llama_20k-cosine
+dhmeltzer/Llama-2-7b-hf-eli5-cleaned-wiki65k-1024_qlora_simple_merge
+aman-mehra/gpt2-medium-finetune-squad-ep-0.18-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+kimnt93/px-7b-03
+tyzhu/squad_v2_1000_0.50_id_t5-large
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+pien-27/small-t5-finetuned-news-vi-summarization
+TheBloke/Euryale-Inverted-L2-70B-GPTQ
+EfazAhmed/distilgpt2-finetuned
+tyzhu/squad_v2_1000_1.00_id_t5-large
+aman-mehra/gpt2-medium-finetune-squad-ep-0.05-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+aman-mehra/gpt2-medium-finetune-squad-ep-0.22-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+sauce1337/AppleSauce-L2-13b
+manasi-s/llama-2-7b-samsum
+aman-mehra/gpt2-medium-finetune-squad-ep-0.15-lr-2e-06-wd-0.0001-glb_sd-1-reorder
+TigerResearch/tigerbot-70b-chat-v2
+thangvip/mt5-small-finetuned-visum
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-07-wd-0.0001-glb_sd-1-reorder
+Outlouder/flan-t5-small-FT-15k
+sandeep16064/mt5-small-finetuned-amazon-en-es
+mesolitica/llama-7b-hf-32768-fpf
+texasdave2/tinystarcoder-rlhf-model
+Panchovix/airoboros-l2-70b-gpt4-1.4.1_5.0bpw-h6-exl2
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.0001-glb_sd-1-reorder
+mariiaponom/llama-chat
+mesolitica/llama-13b-hf-32768-fpf
+Doctor-Shotgun/ds-brew-13b-6bpw-h6-exl2
+Doctor-Shotgun/ds-spicy-brew-13b-6.0bpw-h6-exl2
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.0001-glb_sd-1-reorder
+iamplus/Llama-2-7b-hf-ChatOrca
+wei123602/llama2-13b-FINETUNE3_TEST
+khoantap/tatsty-lasagna
+mncai/Llama2-13B-Blend-LoRA-3rd-best_epoch6
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.002-wd-0.0001-glb_sd-1-reorder
+khoantap/Terminator-v2
+Pravincoder/Llama-finetune
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.002-wd-0.001-glb_sd-1-reorder
+ausboss/llama2-13b-supercot-loras2
+nitinbhayana/llama2-7B
+ahsan-mavros/classification-test
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.001-glb_sd-1-reorder
+tyzhu/squad_v2_1000_0.00_id_t5-large
+Yukang/Llama-2-7b-longlora-100k-ft
+Panchovix/airoboros-l2-70b-gpt4-1.4.1_4bit-bpw_variants_h6-exl2
+Yukang/Llama-2-13b-longlora-64k
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.001-glb_sd-1-reorder
+panjiajia/llama2-sdprompt
+bitadin/checkpoint-223884
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.001-glb_sd-1-reorder
+retro56/zs-writer
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.002-wd-0.01-glb_sd-1-reorder
+bitadin/attributes-v6-flan-t5-base-llm-10
+sauce1337/BerrySauce-L2-13b
+Doctor-Shotgun/ds-smol-brew-7b
+Yukang/Llama-2-13b-longlora-32k
+BEBO-DBIndia/LLAMA_V58M
+Shishir1807/llama2-trial
+tomjam/my-fine-tuned-model-ppo
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.01-glb_sd-1-reorder
+Apptware/QNA_chatbot_ecommerce_falcon_7b_sharded_quantized
+jypppp/manual_gpt2
+silpakanneganti/flan-t5-base-churnescalation-classification
+lapups/llama-2-7b-evolution-v1
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.01-glb_sd-1-reorder
+rishi-3bigs/llama2-7b-finetuned-unfiltered-20epochs
+SoyGema/english-georgian
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.01-glb_sd-1-reorder
+airjairj/my_awesome_opus_books_model
+sammyblues/llama-2-7b-themerlin-13092023
+Ketak-ZoomRx/Trial_llama_1k
+kmfoda/tiny-random-gpt2
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-3e-07-wd-0.0001-glb_sd-1-reorder
+sahithya20/t5-small-people
+Doctor-Shotgun/ds-smol-brew-7b-5.0bpw-h6-exl2
+erebos/atlas-llama-7b-finetune-custom-dataset-test
+naul/bloom-test
+SouthMemphis/t5-tiny_for_summarization
+PulsarAI/Luban-Marcoroni-13B-v1
+yeong12/stack-llama-2
+kavinilavan/llama2-7b-BQ-v1
+ezeroz/llama2-7b-digitalme-new-local1-20000
+alkahestry/LLaMA2-13B-Mytho
+nikhilwani/machine_translation-en-fr-opus
+TokenBender/why_are_we_here
+Secbone/llama-2-13B-instructed
+AIDC-ai-business/Marcoroni-70B
+SharKRippeR/QA_T5_small_seq2seq
+gshields/translate_model_v2
+amentaga/llama-2-Dolffia
+Lucrosus/gpt2_120_110k
+krndev1992/test-llama-2
+Ankur464221/t5-small-transcripts
+Ankur464221/transcripts-t5-small-finetuned
+Rohitdileep/my_awesome_opus_books_model
+Shishir1807/Model_M2
+mlpipes-asabay/md-assistant
+Shishir1807/Model_M1
+jondurbin/airoboros-c34b-2.2-prequant-merge
+khoantap/talkative-witch
+Shishir1807/Model_M3
+Siddharth63/bioul2-small-nl24
+Shishir1807/Model_M4
+RJuro/llama-2-7b-chuk-test-gptq-4bit
+shitalpdhakne/llama2-shital
+Shishir1807/Model_M5
+mani1kumar/distilgpt2-ft_sustain
+Shishir1807/Model_M6
+TheBloke/Kuchiki-L2-7B-GGUF
+TheBloke/Kuchiki-L2-7B-GPTQ
+Shishir1807/Model_M7
+Siddharth63/bioul2-small-nl16
+TheBloke/Llama2-Chat-AYT-13B-GGUF
+aman-mehra/gpt2-medium-finetune-squad-ep-0.25-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-11
+GowthamYarlagadda/therapist-falcon-7b
+TheBloke/Llama2-Chat-AYT-13B-GPTQ
+AutonLabTruth/scifix_t5_exp
+aman-mehra/gpt2-medium-finetune-squad-ep-0.29-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-12
+ksjpswaroop/immiGPT
+jondurbin/airoboros-l2-70b-2.2
+waleko/codereviewer-finetuned-msg
+aman-mehra/gpt2-medium-finetune-squad-ep-0.23-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-13
+Undi95/ReMM-v1-LRPSGPT-2Char-13B
+oh-yeontaek/llama-2-7B-LoRA-assemble
+aquinovo/gpt2-simulacra
+Undi95/ReMM-v1-LRPSGPT-1Char-13B
+Undi95/MLewdBoros-LRPSGPT-1Char-13B
+dhmeltzer/llama-7b-SFT_eli5_wiki65k_1024_r_64_alpha_16_simple_merge
+jondurbin/spicyboros-70b-2.2
+Undi95/MLewdBoros-LRPSGPT-2Char-13B
+jondurbin/airoboros-c34b-2.2
+dhmeltzer/llama-7b-SFT_ds_wiki65k_1024_r_64_alpha_16_simple_merge
+jondurbin/spicyboros-c34b-2.2
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-1e-05-glb_sd-1-data_sd-0
+dhmeltzer/llama-7b-SFT_ds_eli5_1024_r_64_alpha_16_simple_merge
+NewstaR/Morningstar-13b-hf
+ganchengguang/USA-7B-instruction-incontext-learning
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-1e-05-glb_sd-1-data_sd-0
+TheBloke/Llama-2-Coder-7B-GGUF
+airjairj/MODELLO
+Kranajan/llama-2-7b-test-01-a
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-1e-05-glb_sd-1-data_sd-0
+baebee/GPTagalog
+casperhansen/opt-125m-awq
+FelixChao/CodeLlama13B-Finetune-v1
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-0
+DiTy/dialogpt
+chukypedro/llama-2-7b-chat-hf
+manishiitg/llama-2-7b-aditi-chat-40k-GPTQ
+TheBloke/Llama-2-Coder-7B-GPTQ
+mncai/Llama2-7B-Active_after_Curriculum_Curriculum_epoch6
+Doctor-Shotgun/mythospice-70b
+HyperbeeAI/Tulpar-7b-v1
+Arial2/Testing_chat_modal
+Pawel1212/L2-7B
+lmonsalve/Contitucion-15_lemm_tilde
+bleedchocolate/new-hire-req-v2
+aadajinkya/llama-2-7b-int4-python-code-20k
+latimar/Synthia-13B-exl2
+PulsarAI/Luban-Marcoroni-13B-v2
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-1
+aadajinkya/llama-2-7b-int4-python-code-10
+BigSalmon/InformalToFormalLincoln113Paraphrase
+GreenBitAI/LLaMA-2-7B-4bit-groupsize32
+wei123602/llama2-13b-FINETUNE3_TEST2
+GuntherFrager/cortazar_1
+bitadin/checkpoint-47772
+ckandemir/chatgpt-crd3
+Chelo11/Martin-Fierro
+emialcaraz/Peppa-Pig
+BAH-ML-ASC/Falcon-7b-Instruct
+Maximilianoeze/Martin-Fierro
+GuntherFrager/Julio-Cortazar
+sofiabobbiesi/Edgar-Allan-Poe
+didicito/Julio-Cortazar
+martinnnuez/Martin-Fierro
+PulsarAI/Luban-Marcoroni-13B-v3
+valentinbrodsky/Julio-Cortazar
+javier-rooster/Martin-Fierro
+campici0/Martin-Fierro
+Doctor-Shotgun/mythospice-limarp-70b
+xEricCardozo/Martin-Fierro
+dyvanoff/Referencias-de-Vinos
+JuanPH/Edgar-Allan-Poe
+federidos/Peppa-Pig
+Naevier/Referencias-de-Vinos
+royallab/Pygmalion-2-13b-SuperCOT-exl2
+pssubitha/llama-2-7b-sales4
+gongoody/Martin-Fierro
+federidos/Martin-Fierro
+Andrew-XZR/Edgar-Allan-Poe
+angegar/Martin-Fierro
+cniclis/Julio-Cortazar
+TemporalGames/opt-1.3b-lambada_rmt_ms7_bptt7_sl2028_mt10_cur6
+GreenBitAI/LLaMA-3B-4bit-groupsize32
+TemporalGames/opt-1.3b-lambada_rmt_ms7_bptt7_sl2028_mt10_final
+PathOr/PathOr_LLama_70B_CHAT
+rebootai/ragama-nh-7b-v1
+oh-yeontaek/llama-2-13B-LoRA-assemble
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-2
+ingeniumacademy/reuters-gpt2-text-gen
+pogpog/mt5-small-finetuned-amazon-en-es
+Ansoi/chatp
+latimar/Phind-Codellama-34B-v2-exl2
+Ansoi/kundachat
+SamJoshua/llama-7b-dolly
+InfAI/flan-t5-text2sparql-custom-tokenizer
+aman-mehra/gpt2-medium-finetune-squad-ep-2.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-3
+Peeepy/SuperCOT-L2-13B-GGUF
+malhajar/llama-2-70b-hf-chat-turkish-gptq
+eunyounglee/GPT-NeoX-19M-Viet
+uf-aice-lab/Llama-2-QLoRA
+royallab/Pygmalion-2-13b-SuperCOT2
+PahaII/MM-Vicuna-7B-ft
+PahaII/MM-LLaMA-7B-ft
+jsonfin17/autotrain-financial-convo-summary2-89074143846
+PahaII/MM-LLaMA-3B-ft
+PahaII/MM-Alpaca-3B-ft
+PahaII/MM-LLaMA-2-7B-ft
+PahaII/MM-LLaMA-2-7B-chat-ft
+Peeepy/SuperCOT-L2-13B-GPTQ
+TigerResearch/tigerbot-13b-chat-v3
+yzhuang/autotree_llama_10_tt_12l_local_icc_all
+lu-vae/llama2-13B-sharegpt4-orca-openplatypus-8w
+gokul8967/sasuke_ch1-gptq
+SiberiaSoft/SiberianFredT5-instructor
+halo-69/Bloom_3b_squad
+khoantap/quiet-witch
+liquac09/crazy-baby-13b
+WGNW/llama-2-ko-7b-auto-gptq
+aman-mehra/gpt2-medium-finetune-squad-ep-2.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-4
+tyzhu/squad_v2_1000_0.90_id_t5-large
+ckandemir/DialoGPT-small-crd3
+jmLuis/GPT2-THESIS
+bitadin/checkpoint-95544
+Intel/Llama-2-70b-chat-hf-onnx-int4
+wei123602/llama2-13b-FINETUNE3_TEST3
+PulsarAI/ChatAYT-Lora-Assamble-Marcoroni
+aoyuqc/pupu-pmc
+tvganesh/test_trainer
+vihangd/smartyplats-3b-v2
+marczen/llama-2-7b-chat-miniguanaco
+Envoid/Libra-32B
+PulsarAI/ChatAYT-Lora-Assamble-Marcoroni-v2
+Ketak-ZoomRx/Prim_Drug_Pythia
+TheBloke/AppleSauce-L2-13B-GPTQ
+TheBloke/BerrySauce-L2-13B-GPTQ
+TheBloke/AppleSauce-L2-13B-GGUF
+ezeroz/llama2-7b-digitalme-new-local2-20000
+dipro7/mammals-of-india-v0
+TheBloke/BerrySauce-L2-13B-GGUF
+Ketak-ZoomRx/Prim_Drug_Llama
+keyon008/llama-2-7b-chat-asiga-mini
+napatswift/mt5-fixpdftext
+talalif/spx2
+oscorrea/descriptions-falcon40b-sm-merged
+Sandipan1994/flan-t5-base-finetuned-FOMC
+eunyounglee/GPT-NeoX-1.3B-Viet-1
+FreedomIntelligence/AceGPT-7B
+PulsarAI/prompt-generator
+gangkongkong/llama-2-7b-gangkk
+CogwiseAI/sft_llama2_7b
+thanhdaonguyen/llama2-easy-peasy
+jypppp/llama-2-7b-manual_GPT_final
+ViktorDo/flan-t5-base-finetuned-summaries-BioArxiv
+Vagus30/Llama-2-7b-chat-hf-finetuned-qa
+wenwenD/llama-2-7b-GeometricKR
+teknium/OpenHermes-7B
+ViktorDo/flan-t5-base-finetuned-summaries-LPI
+TheBloke/Pygmalion-2-13B-SuperCOT2-GPTQ
+TheBloke/Llama-2-13B-LoRA-Assemble-GPTQ
+TheBloke/Llama-2-13B-LoRA-Assemble-GGUF
+serialdev/llama-2-7b-python-instruct
+TheBloke/Llama-2-7B-LoRA-Assemble-GGUF
+silpakanneganti/llama-7b-auto-complete-finetuned-4bit-14Sep23
+TheBloke/Pygmalion-2-13B-SuperCOT2-GGUF
+RadarSISA/Llama-2-7b-chat-finetune
+zarakiquemparte/zararp-1.1-l2-7b
+CHIH-HUNG/llama-2-13b-FINETUNE2_3w-r16
+ViktorDo/flan-t5-base-finetuned-summaries-PREDICTS
+moska/plt5-small-rel-clf-50
+TheBloke/Marcoroni-70B-GGUF
+ezeroz/llama2-7b-digitalme-new-55000
+Ankur464221/t5-small-finetuned-transcripts
+moska/plt5-small-rel-clf-KL-loss-50
+sam2ai/opt-125m-odia-ext
+922CA/l2-7b-fmg9-gfl-v0.1a
+Gryphe/LlamaGramma-7b
+moska/plt5-small-rel-clf-KL-loss-5
+TheBloke/Llama-2-7B-LoRA-Assemble-GPTQ
+Undi95/MLewd-L2-Chat-13B-Old
+dgnk007/eagle2
+joernio/codetidal5
+hmxiong/vicuna_v_detr_use_enc_hiddenlayer_-3
+thienkieu611/mt5-translation
+aman-mehra/gpt2-medium-finetune-squad-ep-2.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-5
+922CA/l2-7b-negev-gfl-v0.1b
+bitadin/checkpoint-16048
+hmxiong/vicuna_v_detr_hiddenlayer_-3
+Mithilss/Llama-2-7b-hf
+hmxiong/ScanNet_Finetune_use_enc_hiddenlayer_-3
+mihika/t5-base-finetuned-en-to-ro
+vibhav18/new_merged_model
+DKingOfAI/llama-2-7b-insurance
+anhnv125/llama-op-v12
+fnlp/SpeechGPT-7B-ma
+fnlp/SpeechGPT-7B-cm
+reciprocate/rm-llama2-7b-gsm8k
+aianthony/llama-2-7b-miniguanaco
+lyogavin/Anima-7B-100K
+maximuslee07/llama-2-7b-rockwell-2k
+ezeroz/llama2-7b-digitalme-new-60000
+kaitchup/OPT-350M-RM-DSChat
+Jianyuan/SFT-llamachat-v5-500
+duongna/fooocus_expansion
+ElixIA/Market-YAML-COMPLETION
+TheBloke/Marcoroni-70B-GPTQ
+pszemraj/pythia-31m-simplepile-lite-2048-scratch-2e
+longhoang06/bloom-1b7-shards
+Pawel1212/L2-13b
+Globaly/globaly-1-llama2-7b
+dhmeltzer/Llama-2-13b-hf-eli5-cleaned-1024_qlora_merged
+Ray-dl/gpt2-GPTQ
+ajibawa-2023/Uncensored-Frank-7B
+Brillibits/Instruct_Llama70B_Dolly15k
+dhmeltzer/Llama-2-13b-hf-eli5-cleaned-wiki65k-1024_qlora_merged
+nlpfromscratch/distilgpt2-yoda
+SadiulArefin/flan-t5-xlsum
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-07-wd-0.0001-glb_sd-1-data_sd-0
+Suprit/Zhongjing-LLaMA-base
+MingLiiii/cherry-alpaca-5-percent-7B
+dhmeltzer/Llama-2-13b-hf-ds_wiki_1024_full_r_64_alpha_16_merged
+dhmeltzer/Llama-2-13b-hf-ds_eli5_1024_r_64_alpha_16_merged
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-0
+TheBloke/Chinese-Alpaca-2-7B-GGUF
+TheBloke/Chinese-Alpaca-2-13B-GPTQ
+TheBloke/Chinese-Llama-2-13B-GPTQ
+TheBloke/Chinese-Llama-2-7B-GGUF
+TheBloke/Chinese-Alpaca-2-13B-GGUF
+TheBloke/Chinese-Llama-2-13B-GGUF
+anhnv125/llama-op-v13
+HarGaw/Llama-2-7b-chat-finetune
+open-web-math/codellama_7b_instruct
+dhmeltzer/Llama-2-13b-hf-eli5-wiki-1024_r_64_alpha_16_merged
+kimnt93/px-13b-01
+ajibawa-2023/Uncensored-Frank-13B
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.0001-glb_sd-1-data_sd-0
+Severus27/BeingWell_llama2_7b
+ajibawa-2023/Uncensored-Frank-33B
+nikhilwani/Text_Summarization
+sam2ai/tiny_llama_1.1b_odia_ext
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.0001-glb_sd-1-data_sd-0
+TheBloke/Chinese-Alpaca-2-7B-GPTQ
+TheBloke/Chinese-Llama-2-7B-GPTQ
+Ansoi/birdstruct
+nlpfromscratch/gpt2-cornellmoviedialog
+tim9510019/llama-2-7b-codeData
+wei123602/FINETUNE3_TEST4
+neshkatrapati/flan-t5-base-nqdata
+mamachang/llama-7b-sagemaker-feature-processing
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.001-glb_sd-1-data_sd-0
+bhawanisinghshekhawat/ml_numberstation_llama2_7b_ft_igql
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.001-glb_sd-1-data_sd-0
+atwine/llama-2-7b-chat-non-quantized-091423
+mindchain/opt-125m-gptq-4bit
+lhallee/ankh_large_enc_pt
+Kevinger/t5-small-finetuned-xsum
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.001-glb_sd-1-data_sd-0
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.01-glb_sd-1-data_sd-0
+NoahBSchwartz/llama-2-7b-miniguanaco
+TheBloke/CodeFuse-CodeLlama-34B-GPTQ
+TheBloke/CodeFuse-CodeLlama-34B-GGUF
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.01-glb_sd-1-data_sd-0
+folflo/mt5-small-finetuned-HunSum-1_v0914
+mindchain/Llama-2-7b-hf-gptq-4bit_GPTQ
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.01-glb_sd-1-data_sd-0
+oscorrea/Descriptions-lince-sm-2
+skrishna/eleuther-pythia70m-hh-sft
+skrishna/eleuther-pythia70m-hh-dpo
+skrishna/eleuther-pythia160m-hh-sft
+skrishna/eleuther-pythia410m-hh-sft
+skrishna/eleuther-pythia160m-hh-dpo
+skrishna/eleuther-pythia410m-hh-dpo
+skrishna/eleuther-pythia2.8b-hh-sft
+pszemraj/pythia-31m-goodwiki-deduped-2048-scratch
+skrishna/eleuther-pythia2.8b-hh-dpo
+hyonbokan/BGP-llama_20k-constant
+lloorree/kssht-andromeda-70b
+skrishna/eleuther-pythia6.9b-hh-sft
+ativilambit/results
+skrishna/eleuther-pythia6.9b-hh-dpo
+Parcurcik/joke_ai
+jaychiu/t5-fine-tune
+ezeroz/llama2-7b-digitalme-new-local3-20000
+ezeroz/llama2-7b-digitalme-new-local4-20000
+Cartinoe5930/lima-2-7b-bnb-merge
+pszemraj/pythia-31m-KI_v1-2048-scratch
+manishiitg/llama-2-13b-aditi-chat-57k-GPTQ
+sakshamkhatwani/reactCodeGenerationModel2
+oh-yeontaek/llama-2-70B-LoRA-assemble-v2
+NoahBSchwartz/llama-2-7b-LLM-Link3
+jaychiu/my_flan_t5_base
+pszemraj/pythia-31m-simplewiki-scratch-bf16
+schnabear/DialoGPT-medium-FinalFantasyDialogue-OLD
+vlsp-2023-vllm/hoa-7b
+eugenepentland/axolotlLLM
+ezeroz/llama2-7b-digitalme-new-70000
+JeisonJA/llama-2-7b
+urvog/llama2-13b-hf-chat-intentcall-healthcare
+taewhan/k2t_five_key
+lr619/opt-1.3b-first
+huyen89/gpt2-imdb-pos-v2
+intlsy/opt-175b-hyperparam
+vibhorag101/llama-2-7b-chat-hf-phr_mental_health-2048
+taltaf9133/medquad-finetuned-gpt2
+bibidentuhanoi/llama2-BMO
+YanaS/llama2-bg-GGUF
+sksayril/llm-chat-7b
+WGNW/kollama-13b-auto-gptq
+bitadin/checkpoint-112336
+rayho/DialoGPT-small-polysoft
+isashap/bloomz-560m_PROMPT_TUNING_CAUSAL_LM
+arkin04/loyaltymodel
+folflo/mt5-small-finetuned-HunSum-1_v0915
+JorritJ/spicyboros-c34b-2.2-4.0bpw-h6-exl2
+naul/test-gpt2
+schnabear/DialoGPT-small-FinalFantasyDialogue-OLD
+ezeroz/local3
+aryaman-23/gpt2-train
+anhnv125/expm
+stefaniftime/dialoGPT-finetuned-withEOS
+Reham721/MCQs
+FreedomIntelligence/AceGPT-13B
+PRAli22/arat5-base-arabic-dialects-translation
+lumensfox/Tomo
+nchen909/codellama-7b-python-sft-v1.1
+mzn/distilgpt2-finetuned-wikitext2
+tuankg1028/nghiem_model_15-9
+AIMLRapid/fine-tuned-llama2-model-uncensored
+kavinilavan/llama2-7b-BQ-v2
+GabSo/santacoder-finetuned-robot
+danlou/persona-generator-llama-2-7b-qlora-merged
+khoantap/yet-another-witch
+anhnv125/llama-exp
+Arrivedercis/llama-2-13b-minifinreport
+Sudhee1997/Llama-2-7b-Custom-Recruit
+casperhansen/tinyllama-1b-awq
+huyen89/gpt2-mgt-v1
+Mike-HF/flan-t5-base-premise-conclusion
+tim9510019/llama-2-7b-Economic-230915
+elliotthwang/Elliott-Chinese-LLaMa-GPTQ-V1.0
+parthsolanke/SaulGPT2
+Mike-HF/flan-t5-base-premise-conclusion-2
+legacy107/bloom-560m-cpgqa
+TheBloke/Synthia-70B-v1.2b-GGUF
+TheBloke/Synthia-70B-v1.2b-GPTQ
+pszemraj/BL-pythia-31m-simpleRW-lite-2048-scratch
+gmongaras/Wizard_7B_Reddit_Political_2019_13B
+ethzanalytics/pythia-31m
+TangQiaoYu/ToolAlpaca-13B
+janM37/llama-2-7b-miniguanaco
+jonsmith/llama2-8200-1p-bf16-shard
+Xwin-LM/Xwin-LM-7B-V0.1
+Xwin-LM/Xwin-LM-13B-V0.1
+Xwin-LM/Xwin-LM-70B-V0.1
+justinlamlamlam/essay_generator_v1
+DKingOfAI/llama-2-7b-miniguanacos
+ymruki/kakkolang
+SebastianAmayaCeballos/MLEAFIT_tralate_spanish_portuguese
+MFDLR/llm-finetuned-7b-context-01-new
+nRuaif/Summited
+Hawk28/Llama-7B-spider-sql-context
+shuvom/pythia-70m-FT-fka-95
+danlou/persona-generator-llama-2-7b-qlora-merged-gguf
+Iir/13B
+priyabrat/Title_Generation_T5Small_Model
+gmongaras/reddit_negative_v1_8B
+Kevinger/t5-small-finetuned
+TangQiaoYu/ToolAlpaca-7B
+TheBloke/ChatAYT-Lora-Assamble-Marcoroni-GPTQ
+TheBloke/ChatAYT-Lora-Assamble-Marcoroni-GGUF
+TheBloke/Luban-Marcoroni-13B-v3-GPTQ
+TabbyML/StarCoder-3B
+gmongaras/Wizard_7B_Squad_v2
+vietgpt/dama-2-7b
+gmongaras/reddit_negative_v1_13B
+alanrios2001/Llama-2-7b-chat-ptbr
+lloorree/kssht-b4-70b
+Panchovix/airoboros-l2-70b-gpt4-1.4.1_2.5bpw-h6-exl2
+NekoPunchBBB/Llama-2-13b-hf_Open-Platypus-QLoRA-multigpu
+NoahBSchwartz/llama-2-7b-LLM-Link4
+MingLiiii/cherry-alpaca-10-percent-7B
+DKingOfAI/llama-2-7b-insurancebot2
+aman-mehra/gpt2-medium-finetune-squad-ep-3.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-6
+neelblabla/email-classification-llama2-7b-peft
+QMB15/Mythomax-L2-13B-8bit-exl2
+ahsan-mavros/balanced-genai-training
+MingLiiii/cherry-alpaca-15-percent-7B
+Weyaxi/act2promptadvanced-orig
+afnna/Llama-2-7b-chat-hf-salty1
+QMB15/Stheno-L2-13B-8bit-exl2
+MingLiiii/cherry-wizardlm-10-percent-7B
+Reham721/Subjective_QG
+hhuuggoo/qa-docs
+mgoin/TinyLlama-1.1B-step-50K-105b-ONNX
+MingLiiii/cherry-wizardlm-20-percent-7B
+medarc/Pubmed-Llama-2-7b-2e-5-epoch-3
+zarakiquemparte/kuchiki-1.1-l2-7b
+nazneen/llama-2-7b-sft
+euclaise/falcon_1b_stage1
+mychen76/codellama-7b-ocr
+DangFutures/Writer_small
+manahil1/my_awesome_opus_books_model
+manahil1/Code_Corrector_Model
+martinsinnona/modelo-scad-conversational
+ezeroz/llama2-7b-digitalme-new-80000
+nazneen/llama-2-13b-sft
+aman-mehra/gpt2-medium-finetune-squad-ep-3.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-7
+thanh29nt/halonglong
+catweld/llama-2-7b-translate_eng
+Doctor-Shotgun/CalliopeDS-L2-13B
+Chanblock/model_1000_dataset
+MingLiiii/cherry-wizardlm-30-percent-7B
+manishiitg/llama-2-7b-aditi-chat-70k
+nikhilwani/casual_llm_updated
+MingLiiii/cherry-wizardlm-40-percent-7B
+Doctor-Shotgun/CalliopeDS-L2-13B-exl2
+elliotthwang/Elliott-Chinese-LLaMa-GPTQ-V2.0
+wendyfeifei/llama-2-7b-wendyfeifei
+kuanhuggingface/flan-t5-base-encodec
+PY007/TinyLlama-1.1B-intermediate-step-240k-503b
+thainq107/flan-t5-small-twitter-sentiment-analysis-zero-shot
+MingLiiii/cherry-wizardlm-filtered-7B
+kuanhuggingface/speech-chatgpt-flan-t5-base-encodec2instruction-promptTTS
+minhbui/viettel_v1_mix_100k
+ChillyMango/llama-2-13b-mafia-preschool
+subirmansukhani/llama-2-7b-miniguanaco
+yzhuang/autotree_llama_10_tt_12l_local_icc_all_ql
+open-web-math/codellama_7b_instruct_2e-5lr
+vikp/phi2
+zuess05/yaan-pt-1.1
+ezeroz/llama2-7b-digitalme-new-90000
+Koshti10/llama2_Gameplan
+open-web-math/codellama_7b_instruct_3e-5lr
+royallab/Pygmalion-2-13b-SuperCOT-weighed
+open-web-math/codellama_7b_instruct_5e-5lr
+open-web-math/codellama_7b_instruct_1e-5lr
+thainq107/flan-t5-small-twitter-sentiment-analysis
+YeungNLP/firefly-llama2-7b-chat
+Kavita08/Llama-2-7b-chat-finetune_1ep
+aman-mehra/gpt2-medium-finetune-squad-ep-4.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-8
+TheBloke/OpenOrca_Stx-GGUF
+TheBloke/OpenOrca_Stx-GPTQ
+TheBloke/CalliopeDS-L2-13B-GGUF
+TheBloke/CalliopeDS-L2-13B-GPTQ
+mesolitica/translation-nanot5-tiny-malaysian-cased
+folflo/mt5-small-finetuned-HunSum-1_hvg_index
+sksayril/llama2finetune-v3
+Me1oy/Text-Sum_arxiv_LLaMA1
+M-RKZ/llama-2-7b-miniguanaco
+316usman/Llama-2-7b-chat-constitution
+ezeroz/llama2-7b-digitalme-new-100000
+TheBloke/Kuchiki-1.1-L2-7B-GGUF
+TheBloke/Kuchiki-1.1-L2-7B-GPTQ
+Aminrhmni/PersianAutomaticPunctuation
+Shishir1807/CT_M1
+scwoods/Llama-2-7b-chat-hf-fine-tuned
+fxmarty/really-tiny-falcon-testing
+Shishir1807/CT_M4
+Shishir1807/CT_M3
+speechlessai/speechless-llama2-dolphin-orca-platypus-13b
+davidkim205/komt-llama2-7b-v1
+nRuaif/Sumit-2
+Shishir1807/CT_M5
+Shishir1807/CT_M6
+Shishir1807/CT_M2
+alan-23/llama-2-7b-chat-hf-instruct-medical-assistance
+Ketak-ZoomRx/CT_M7
+Yessense/llama2-7b-gptq-4bit
+Ketak-ZoomRx/CT_M8
+TheBloke/Airoboros-c34B-2.2-GPTQ
+TheBloke/Airoboros-c34B-2.2-GGUF
+Ketak-ZoomRx/CT_M9
+Ketak-ZoomRx/CT_M10
+Ketak-ZoomRx/CT_M11
+TheBloke/Synthia-34B-v1.2-GGUF
+marcchew/LaMini-40k-Platypus2-7B
+Ketak-ZoomRx/CT_M12
+QwertyCodingKeyboard/opt-125m-gptq-4bit
+Droidfanat/llama-2-7b-custom-russian
+wei123602/Llama-2-13b-FINETUNE4
+ArnaudHureaux/llama-2-7b-miniguanaco
+bitadin/checkpoint-272816
+Me1oy/German_LLaMA2
+twhoool02/distilgpt2-finetuned-wikitext2
+TheBloke/Synthia-34B-v1.2-GPTQ
+nRuaif/Submit-3
+nickypro/tinyllama-15M
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w
+afnna/salty-Llama-2-13b-hf
+OhCherryFire/llama2-7b-game24-value-sft-ep3-new_upload
+nickypro/tinyllama-42M
+nickypro/tinyllama-110M
+hidude562/Maestro-3-v0.1
+TheBloke/Pygmalion-2-13B-SuperCOT-weighed-GGUF
+TheBloke/Pygmalion-2-13B-SuperCOT-weighed-GPTQ
+mncai/Llama2-7B-Foundation-wo-dedup_epoch2
+aman-mehra/gpt2-medium-finetune-squad-ep-4.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-9
+TheBloke/TigerBot-70B-Chat-GGUF
+satpalsr/llama2_7b_alpaca_2k_test
+PY007/TinyLlama-1.1B-Chat-v0.1
+Undi95/MLewd-L2-Chat-13B
+QMB15/mythomax-L2-13B-4.625bit-exl2
+a2ran/FingerFriend-t5-small
+Rams901/llama-2-7b-sql
+TheBloke/TigerBot-70B-Chat-GPTQ
+TheBloke/WizardCoder-Python-7B-V1.0-GGUF
+TheBloke/WizardCoder-Python-7B-V1.0-GPTQ
+stevessschen/llama-2-7b-miniguanaco
+SuperSecureHuman/t5_base_trails
+Yulwoo/santacoder-finetuned-the-stack-bash
+mncai/Llama2-7B-Foundation-wo-dedup_epoch4
+vibhorag101/llama-2-7b-10k-eos-issue
+alkahestry/wizard-rp
+renyulin/llama2-13b-sql-merged
+nickypro/tinyllama-15M-fp32
+nickypro/tinyllama-42M-fp32
+nickypro/tinyllama-110M-fp32
+mncai/Llama2-7B-Foundation-wo-dedup_epoch6
+Shishir1807/M2_llama
+Shishir1807/M3_llama
+YOZ1/llama2-13b-Rad-Impression
+kaiyuy/leandojo-lean4-retriever-byt5-small
+manishiitg/llama-2-13b-aditi-chat-70k
+dhmeltzer/Llama-2-13b-hf-eli5-wiki-1024_qlora_merged
+KaiNylund/t5-3b-news_sum-2012-vec
+MingLiiii/cherry-alpaca-pre-experienced-7B
+siddjha/Llama-2-7b-chat-finetune
+Joctet/llama-2-7b-miniguanaco
+giasuddin/llama-2-7b-guanaco-qlora
+KaiNylund/t5-3b-news_sum-2013-vec
+cs2/dummy1
+KaiNylund/t5-3b-news_sum-2014-vec
+chenqile09/chinese-alpaca-2-LoRA-7B-couplet
+lmganon123/Euryale-L2-70B-2.1BPW-exllama2
+KaiNylund/t5-3b-news_sum-2015-vec
+DKingOfAI/llama-2-7b-ticketbot
+Shishir1807/M1_llama
+KaiNylund/t5-3b-news_sum-2016-vec
+Shishir1807/M4_llama
+anyuanay/my_awesome_billsum_model
+Shishir1807/M6_llama
+Shishir1807/M5_llama
+KaiNylund/t5-3b-news_cls-2012-vec
+TheBloke/MLewd-L2-Chat-13B-GPTQ
+TheBloke/MLewd-L2-Chat-13B-GGUF
+aiseeker/my_awesome_wiki-model
+KaiNylund/t5-3b-news_cls-2013-vec
+KaiNylund/t5-3b-news_cls-2014-vec
+kaiyuy/onnx-leandojo-lean4-retriever-byt5-small
+KaiNylund/t5-3b-news_cls-2015-vec
+KaiNylund/t5-3b-news_cls-2016-vec
+huyen89/gpt2-mgt-v2
+Panchovix/Uni-TianYan-70B-4.65bpw-h6-exl2
+arthurmluz/ptt5-wikilingua-2
+KaiNylund/t5-3b-lm-wmt-2012-vec
+KaiNylund/t5-3b-lm-wmt-2013-vec
+iandennismiller/LLama-2-MedText-13b-GGUF
+open-web-math/codellama_7b_instruct_8e-5lr
+jbaquerot/flame2-fine-tuned-dolly-15k
+kislayt/lyme-tweet-classification-v0-llama-2-7b
+sanjaypantdsd/llama-2-7b-chuk-test
+open-web-math/codellama_7b_instruct_1e-4lr
+open-web-math/codellama_7b_instruct_2e-4lr
+KaiNylund/t5-3b-lm-wmt-2014-vec
+arthurmluz/ptt5-xlsum
+KaiNylund/t5-3b-lm-wmt-2015-vec
+KaiNylund/t5-3b-lm-wmt-2016-vec
+KaiNylund/t5-3b-poli_aff-2015-vec
+KaiNylund/t5-3b-poli_aff-2016-vec
+mathiasgz/llama2-psychobot
+KaiNylund/t5-3b-poli_aff-2017-vec
+sarasultan/morphgpt_sbzflota
+KaiNylund/t5-3b-poli_aff-2018-vec
+KaiNylund/t5-3b-poli_aff-2019-vec
+bitadin/checkpoint-38151
+yeiner28/EZAuditTestEntrenado1
+KaiNylund/t5-3b-poli_aff-2020-vec
+petern48/llama-2-7b-meditation-100-samples
+KaiNylund/t5-3b-lm-poli-2015-vec
+KaiNylund/t5-3b-lm-poli-2016-vec
+Panchovix/Uni-TianYan-safetensors
+KaiNylund/t5-3b-lm-poli-2017-vec
+KaiNylund/t5-3b-lm-poli-2018-vec
+KaiNylund/t5-3b-lm-poli-2019-vec
+jaekwon/pretrained_buddy
+KaiNylund/t5-3b-lm-poli-2020-vec
+ShalevLS/loto
+KaiNylund/t5-3b-lm-twitter-2015-vec
+royallab/Pygmalion-2-13b-SuperCOT-weighed-exl2
+KaiNylund/t5-3b-lm-twitter-2016-vec
+KaiNylund/t5-3b-lm-twitter-2017-vec
+KaiNylund/t5-3b-lm-twitter-2018-vec
+KaiNylund/t5-3b-lm-twitter-2019-vec
+KaiNylund/t5-3b-lm-twitter-2020-vec
+KaiNylund/t5-3b-aic-2006-2008-vec
+KaiNylund/t5-3b-aic-2009-2011-vec
+RTVS/LyricsGPT2
+HuggingFaceH4/llama-2-13b-sft
+alayaran/bodo-gpt2-clm-setencepiece
+KaiNylund/t5-3b-aic-2012-2014-vec
+KaiNylund/t5-3b-aic-2015-2017-vec
+Aakkash/t5-small-finetuned-news
+alayaran/bodo-t5-mlm-sentencepiece
+KaiNylund/t5-3b-aic-2018-2020-vec
+nev/pythia-sts-pictures
+KaiNylund/t5-3b-lm-arxiv-2006-2008-vec
+SiberiaSoft/SiberianPersonaFred-2
+KaiNylund/t5-3b-lm-arxiv-2009-2011-vec
+KaiNylund/t5-3b-lm-arxiv-2012-2014-vec
+manishiitg/llama-2-13b-aditi-chat-70k-GPTQ
+SiberiaSoft/SiberianPersonaFredLarge-2
+KaiNylund/t5-3b-lm-arxiv-2015-2017-vec
+PY007/TinyLlama-1.1B-Chat-v0.2
+imi1/mythxl-70B-2.30bpw-h6-exl2
+KaiNylund/t5-3b-lm-arxiv-2018-2020-vec
+Pav91/llama-2-7b-PJ1
+vibhorag101/llama-2-13b-chat-hf-phr_mental_therapy
+sksayril/finoma-2-7b-chat-finetune
+PeanutJar/LLaMa-2-PeanutButter_v37_SFT-R1-DPO-R2-7B
+open-web-math/codellama_7b_instruct_3e-4lr
+chenqile09/chinese-alpaca-2-LoRA-7B-couplet-100k
+Thireus/WizardLM-70B-V1.0-HF-4.0bpw-h6-exl2
+Ketak-ZoomRx/M7_llama
+insub/gpt2-large-imdb-fine-tuned
+chunwoolee0/ke_t5_base_nikl
+LiChenYi/llama-2-13b-combined-1
+jaymojnidar/Llama-2-7b-chat-hf-sharded-bf16-5GBMAX
+chunwoolee0/ke_t5_small_nikl_summarization
+Ketak-ZoomRx/M9_llm
+pien-27/t5-small-finetuned-xsum
+mwitiderrick/llama-2-7b-chat-mlabonne-optimized
+marcchew/Marcoroni-7B-LaMini-40K
+ICBU-NPU/FashionGPT-70B-V1.1
+ebahena/llama-2-7b-afinado
+Adapting/Cypher_Generator
+Ketak-ZoomRx/M4_llama
+a2ran/FingerFriend-t5-base
+Shishir1807/M11_llama
+mtc/NousResearch-Llama-2-7b-hf-attribution-qlora-4bit-attribution-merged
+DhruvShek/synapsellm-7b-v0-1
+dipxsy/testmodel
+Harshithacj123/llama-2-7b-miniguanaco
+ICBU-NPU/FashionGPT-70B-V1
+Shishir1807/M12_llama
+Fisayo/my_gpt2
+wangmw11/llama-2-7b-python
+pssubitha/llama-2-7b-chat-formatted_data_sales1
+Shishir1807/M8_llama
+Shishir1807/M10_llama
+TinyPixel/testmodel1
+TinyPixel/testmodel2
+huyen89/gpt2-mgt-v3
+TheBlokeAI/Test-AWQ-13B-128
+hidude562/Maestro-3.0b-L
+HoangCuongNguyen/flan-t5-cti-fine-tuned
+alienverarslan/llama-2-7B-32K-instruct-forrester.com
+FreedomIntelligence/HuatuoGPT-reward-model-7B
+dipxsy/Jarvis-small
+ricecake/codellama-pygmalion
+vegegogi/woori_buddy_5.8b
+TheBlokeAI/Test-AWQ-13B-128-No_Safetensors
+AIDC-ai-business/Marcoroni-13B
+eslamxm/AraT5v2-base-1024-finetuned-ar-wikilingua
+NewstaR/Porpoise-6b-instruct
+Rams901/llama-2-7b-sql-v1
+zake7749/yayi-7b-llama2-4bit-autogptq
+glaiveai/glaive-coder-7b
+mtc/NousResearch-Llama-2-7b-hf-swisstext23-summarization-qlora-4bit-merged
+bdambrosio/bloom-awq
+bdambrosio/falcon-7b-awq
+bdambrosio/llama-2-7b-awq
+health360/Healix-410M
+bdambrosio/llama-7b-awq
+DKingOfAI/llama-2-13b-insurancebot
+bdambrosio/mpt-7b-awq
+niteshkadyan/guidedselling_v1
+bdambrosio/opt-2.7b-awq
+bdambrosio/vicuna-7b-v1.5-awq
+gathnex/gathllama-2
+leopra96/taylorlyrics
+vegegogi/woori_buddy_12.8b
+Lazycuber/L2-7b-Chat-Guanaco-Uncensored
+TheBloke/ReMM-v2.1-L2-13B-GGUF
+TheBloke/ReMM-v2.1-L2-13B-GPTQ
+Atulit23/meta-llama-indian-constitution
+TheBloke/Magpie-13B-GPTQ
+Kevin-yyds/opt-125m-gptq-4bit
+Panchovix/Marcoroni-70B-safetensors
+Eigeen/Mythalion-Kimiko-v2-6.05bpw-h8-exl2
+wentingzhao/natural-dialogues-20230910-assistant-2048-epoch3
+haoranxu/ALMA-7B
+TheBloke/Llama-2-70B-LoRA-Assemble-v2-GPTQ
+TheBloke/Llama-2-70B-LoRA-Assemble-v2-GGUF
+haoranxu/ALMA-7B-Pretrain
+haoranxu/ALMA-13B
+Harshithacj123/llama-2-7b-cireco
+haoranxu/ALMA-13B-Pretrain
+Eigeen/mythalion-13b-2.30bpw-h4-exl2
+QMB15/mythomax-13B-8.13bit-MAX-exl2
+pengold/t5-vietnamese-summarization
+JackFram/llama-160m-base
+Arrivedercis/llama-2-7b-finreport
+hidude562/Maestro-3.0b2-L
+orensul/llama-2-7b-video-editing
+NoIdeaLand/test-3k-mx
+Thireus/WizardLM-70B-V1.0-HF-5.0bpw-h6-exl2
+Thireus/WizardLM-70B-V1.0-HF-6.0bpw-h6-exl2
+hdeldar/llama-2-7b-persian-text-1k
+hrangi/t5-small-finetuned-pubmed
+devashat/medium_big_training_set
+Fredithefish/GodLLaMA-13B
+Atulit23/meta-llama-indian-constitution-chat
+eugenepentland/axolotl_question_classifier
+Chris126/llama-2-13b-miniguanaco
+xbsd/xbsd-llama-2-7b-miniguanaco
+headmediadesign/bloom-perchay
+Undi95/MLewd-ReMM-L2-Chat-20B-Inverted
+DenisPashkov/llama-2-7b-document-validator
+mychen76/codellama-7b-paddle-ocr
+Panchovix/sheep-duck-llama-2-70b-safetensors
+euclaise/falcon_1b_stage2
+Undi95/MLewd-ReMM-L2-Chat-20B
+aatherton2024/eng-nah-svo-translation
+eqhylxx/spider-llama-160m
+Danielbrdz/Barcenas-6b
+Panchovix/airoboros-l2-70b-gpt4-1.4.1_4.65bpw-h6-exl2
+hyonbokan/BGP-llama-13b-2
+radek/cf93e7b4cb774077b87ed9f1d626f9e8
+amirabdullah19852020/pythia-160m_sentiment_reward
+amirabdullah19852020/pythia-70m_sentiment_reward
+yeiner28/EZAuditTest2
+0xk1h0/codegen25-7B-ds-zero3
+KennethTang/Page2Summary
+p208p2002/llama-chinese-81M
+DaisyStar004/llama-2-7b-covid
+ChaiML/phase2_winner_13b2
+mesolitica/llama-1b-hf-32768-fpf
+TigerResearch/tigerbot-70b-chat-4bit-v2
+Panchovix/Synthia-70B-v1.2b-safetensors
+Intel/Llama-2-13b-chat-hf-onnx-int4
+cideon00/vi-llama2-qlora
+Vasanth/dpo-flant5
+furquan/opt_2_7_b_prompt_tuned_sentiment_analysis
+Intel/Llama-2-13b-hf-onnx-int4
+alayaran/bodo-pos-gpt2-fine-tune
+manishiitg/llama-2-7b-aditi-chat-70k-GPTQ
+davidshtian/llama2-2-7b-neuronx
+KnutJaegersberg/deacon-3b
+Intel/Llama-2-70b-hf-onnx-int4
+chenqile09/chinese-alpaca-2-LoRA-13B-couplet-100k
+jmelsbach/real-estate-llm
+atwine/llama-2-7b-chat-non-quantized-091823
+Haary/llama-2-7b-chuk-test
+juanluisrto/llama-2-7b-MKBHD
+mtc/NousResearch-Llama-2-7b-hf-attribution-with-target-modules-qlora-4bit-merged
+nikhil121/myllamamodellnew
+mwitiderrick/llama-2-7b-chat-mwitiderrick-lamini
+TheBloke/llama2_7b_chat_uncensored-GGUF
+hpcai-tech/Colossal-LLaMA-2-7b-base
+Secbone/llama-33B-instructed
+AdaptLLM/medicine-LLM
+asyafiqe/Merak-7B-v3-Mini-Orca-Indo-gptq-2
+TonyJPk7/llama2-7b-chat-finetune_NoRatio
+Voicelab/trurl-2-13b-academic
+0xk1h0/pythia-6.9B-ds-zero3
+AnonymousSubmissionOnly/robust-t5-5000
+mhenrichsen/context-aware-splitter-1b
+Shishir1807/llama2-7b-BQ-prompt2-v1
+AnonymousSubmissionOnly/robust-t5-10000
+silpakanneganti/flan-t5-base-interactly-classification
+Vishal24/Llama-2-7b-chat-hf-fine-tuned
+TunedModelSk/llama_2_ep_1
+kavinilavan/llama2-7b-BQ-prompt2-v1
+dipxsy/jarvis-blend
+LoneStriker/airoboros-l2-70b-gpt4-1.4.1-2.4bpw-h6-exl2
+GeeeG/llama-2-7b-miniguanaco
+Luciya/llama-2-7b-nuv-repeat-300
+YoussefThabet/YoussefLlama_FullData
+nchen909/codellama-7b-chinese-sft-v1.2
+ceadar-ie/Llama2-13B-AIVision360
+sess1/Llama-2-7b-chat-finetunetest4
+Toshikawa/llm_summer_school_2023_1
+Aliw7979/llama-2-persian-sentiment-analysis
+flozi00/t5-base-llm-tasks
+Mediform/german-gpt2-intent-classification
+NewstaR/StableGalen-6b
+Recag/RECag
+anhnv125/llama-op-v17
+Jackoon/JSON-expert_4-Llama-13b
+waseem9211/llama-2-7b-python-code-20k_test
+Villekom/gpt3-finnish-3B-sft
+tanguyhardion/llama-2-7b-fine-tuned
+Toshikawa/outputs
+euclaise/falcon_1b_stage3
+mtc/NousResearch-Llama-2-7b-hf-swisstext23-summarization-with-target-modules-qlora-4bit-merged
+tim9510019/llama-2-7b-Economic
+Patrickmdey/pillarbox-gpt2-imdb-uncased
+marianbasti/Llama-2-13b-fp16-alpaca-spanish
+tanzirghumay/banglat5_banglaparaphrase-finetuned
+fe2plus/t5-small-finetuned-xsum
+YoussefThabet/YoussefLlama_HalfData
+hilariooliveira/mt5-small-finetuned-amazon-en-es
+wei123602/Llama-2-13b-FINETUNE4_TEST
+hilariooliveira/mt5-small-finetuned-amazon-en-es-accelerate
+fe2plus/t5-base-finetuned-xsum
+khoantap/not-so-mythical-human
+AdaptLLM/law-LLM
+AdaptLLM/finance-LLM
+BaleChen/checkpoint-900_merged
+AmineAmira/Llama-2-7b-hf-finetune
+AnatolyBelov/my_t5_small_test
+Skepsun/baichuan-2-llama-7b-sft
+sproos/mantis-outbeddings-gpt2-medium
+ExecrableChromosphere/llama2-7b-chat-vanessa
+Recag/BH_AI
+Chris126/llama-2-13b-miniguanaco-gptq-4bit
+dileepjayamal/llama-2-7b-miniguanaco
+GAIR/GAIRMath-Abel-7b
+TunedModelSk/llama_2_ep_2
+sdranju/llama-2-7b-instruct
+GokhanAI/1.3b_opt
+Ferrxni/WSJ-classification-llama-2-7b
+Paul-B98/codet5p_220m_py_sum
+GAIR/GAIRMath-Abel-70b
+marcchew/Marcoroni-7B-LaMini-80K
+AnatolyBelov/my_t5_small_en_ge_test
+ChaiML/phase_3_top_solution
+ccore/LLAMA2-446m
+mychen76/codellama-7b-paddle-ocr-v2
+ebony59/llama7b-AO3-IO
+mpalaval/xsum_finetuned_on_train
+Panchovix/sheep-duck-llama-2_4.65bpw-h6-exl2
+lgaalves/gpt-2-xl_camel-ai-physics
+Jaehun/hardy-disco-14-Ep.2
+mhenrichsen/context-aware-splitter-7b
+Angry-Wizard/DND5eMonsterText
+Panchovix/Synthia-70B-v1.2b_4.65bpw-h6-exl2
+Undi95/66Mytho33Pyg2-13B
+madhavappaneni/finetuned-reddit-gpt2
+JessieLibra/llama-2-7b-miniguanaco
+Fernandoib/my_awesome_eli5_clm-model
+entropy/roberta_zinc_decoder
+furquan/opt-1-3b-prompt-tuned-sentiment-analysis
+Axel2000/my_awesome_eli5_clm-model
+le-vh/Llama2-7b-finetuned-merged
+TheBloke/Llama-2-7b-Chat-AWQ
+Dloring1/tiiuae-falcon-1b-gptq-4bit
+khalidsaifullaah/lca7
+khalidsaifullaah/lca13
+sunitha98/t5-base-keyphrase-gen
+sanali209/my_awesome_gpt_clm-model
+gpk99/my_awesome_opus_books_model
+iampedroalz/llama-2-7b-small-spanish-chat
+open-web-math/codellama_7b_instruct_2e-4lr_step650
+GozdeA/Llama-2-7b-chat-finetune2
+flytech/Ruckus-7b-ALPHA
+supermomo668/llama-2-7b-miniguanaco
+open-web-math/codellama_7b_instruct_2e-4lr_step900
+open-web-math/codellama_7b_instruct_3e-4lr_step650
+open-web-math/codellama_7b_instruct_3e-4lr_step900
+TheBloke/Llama-2-7B-AWQ
+TheBloke/Llama-2-13B-AWQ
+TheBloke/CodeLlama-13B-Python-AWQ
+TheBloke/CodeLlama-13B-Instruct-AWQ
+TheBloke/CodeLlama-13B-AWQ
+TheBloke/Llama-2-13B-chat-AWQ
+TheBloke/Llama-2-70B-AWQ
+TheBloke/Llama-2-70B-chat-AWQ
+TheBloke/Luban-13B-AWQ
+TheBloke/CodeLlama-34B-Instruct-AWQ
+TheBloke/CodeLlama-34B-AWQ
+RioYokotaLab/13B-fold7-play
+TheBloke/Marcoroni-13B-AWQ
+TheBloke/CodeLlama-7B-AWQ
+TheBloke/CodeLlama-7B-Instruct-AWQ
+TheBloke/CodeLlama-34B-Python-AWQ
+hyonbokan/BGP-LLaMA-13b-1
+TheBloke/Marcoroni-70B-AWQ
+TheBloke/CodeLlama-7B-Python-AWQ
+TheBloke/Marcoroni-7b-AWQ
+TheBloke/WizardCoder-Python-7B-V1.0-AWQ
+TheBloke/WizardCoder-Python-34B-V1.0-AWQ
+TheBloke/WizardCoder-Python-13B-V1.0-AWQ
+TheBloke/WizardLM-13B-V1.2-AWQ
+aoyuqc/pupu-bmg
+TheBloke/WizardMath-7B-V1.0-AWQ
+TheBloke/Camel-Platypus2-13B-AWQ
+TheBloke/WizardMath-13B-V1.0-AWQ
+TheBloke/Camel-Platypus2-70B-AWQ
+TheBloke/Platypus2-13B-AWQ
+TheBloke/WizardLM-70B-V1.0-AWQ
+mamachang/llama2-70b-2
+TheBloke/WizardMath-70B-V1.0-AWQ
+TheBloke/Platypus2-70B-Instruct-AWQ
+TheBloke/Stable-Platypus2-13B-AWQ
+TheBloke/Platypus2-70B-AWQ
+TheBloke/Carl-Llama-2-13B-AWQ
+TheBloke/qCammel-13-AWQ
+abhayesian/pythia-1.4-reversed
+TheBloke/qCammel-70-x-AWQ
+TheBloke/Airoboros-L2-13B-2_1-YaRN-64K-AWQ
+TheBloke/Airoboros-c34B-2.1-AWQ
+Nagase-Kotono/Nagase_Kotono-koAlpaca-12.8B-0.1v
+Sandeep8021/my_awesome_billsum_model
+TheBloke/Airoboros-c34B-2.2-AWQ
+amirabdullah19852020/pythia-410m_sentiment_reward
+TheBloke/Airoboros-L2-13B-2.1-AWQ
+bluetree99/nabo-finetune1
+TheBloke/Airoboros-L2-13B-2.2-AWQ
+TheBloke/airoboros-l2-13b-gpt4-2.0-AWQ
+TheBloke/airoboros-l2-13b-gpt4-m2.0-AWQ
+TheBloke/Airoboros-L2-70B-2.1-AWQ
+TheBloke/Airoboros-L2-70B-2.1-Creative-AWQ
+TheBloke/airoboros-l2-70B-GPT4-2.0-AWQ
+TheBloke/Airoboros-L2-70b-2.2-AWQ
+TheBloke/Airoboros-L2-7B-2.1-AWQ
+TheBloke/Airoboros-L2-7B-2.2-AWQ
+wentingzhao/natural-dialogues-20230910-assistant-2048-step13200
+TheBloke/Airoboros-L2-70B-GPT4-m2.0-AWQ
+TheBloke/Spicyboros-13B-2.2-AWQ
+saikumar144/my_awesome_opus_books_model
+tyzhu/squad_id_train_10_eval_10_t5-base
+TheBloke/Spicyboros-70B-2.2-AWQ
+wentingzhao/natural-dialogues-20230910-assistant-2048-step8400
+Lazycuber/L2-7b-Base-Guanaco-Uncensored
+TheBloke/Spicyboros-7B-2.2-AWQ
+wentingzhao/natural-dialogues-20230910-assistant-2048-step9600
+TheBloke/Spicyboros-c34b-2.2-AWQ
+wentingzhao/natural-dialogues-20230910-assistant-2048-step10800
+sauce1337/BerrySauce-L2-13b-exl2
+wentingzhao/natural-dialogues-20230910-assistant-2048-step12000
+will-hoppe/Llama-2-7b-chat-finetune
+grandua/coach
+TheBloke/Dolphin-Llama2-7B-AWQ
+TheBloke/Samantha-1.1-70B-AWQ
+TheBloke/Samantha-1.11-13B-AWQ
+nguyenthanhdo/vhac_model
+TheBloke/WizardLM-1.0-Uncensored-CodeLlama-34B-AWQ
+TheBloke/Samantha-1.11-CodeLlama-34B-AWQ
+TheBloke/Samantha-1.11-70B-AWQ
+TheBloke/WizardLM-1.0-Uncensored-Llama2-13B-AWQ
+TheBloke/vicuna-13B-v1.5-16K-AWQ
+TheBloke/Chronos-70B-v2-AWQ
+TheBloke/vicuna-13B-v1.5-AWQ
+pembelajarff/movie_review
+OpenBuddy/openbuddy-openllama-7b-v12-bf16
+TheBloke/vicuna-7B-v1.5-16K-AWQ
+TheBloke/vicuna-7B-v1.5-AWQ
+TheBloke/Vigogne-2-7B-Chat-AWQ
+TheBloke/Vigogne-2-13B-Instruct-AWQ
+TheBloke/Vigogne-2-7B-Instruct-AWQ
+TheBloke/Magpie-13B-AWQ
+Jaehun/hardy-disco-14-Ep.3
+TheBloke/Llama-2-13B-Chat-Dutch-AWQ
+TheBloke/Genz-70b-AWQ
+TheBloke/13B-Legerdemain-L2-AWQ
+TheBloke/13B-Thorns-L2-AWQ
+TheBloke/Chronorctypus-Limarobormes-13b-AWQ
+TheBloke/CodeFuse-CodeLlama-34B-AWQ
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim16_epoch2
+TheBloke/Hermes-LLongMA-2-13B-8K-AWQ
+TheBloke/Hermes-LLongMA-2-7B-8K-AWQ
+TheBloke/LLongMA-2-7B-AWQ
+nchen909/codellama-7b-sft-v1.3
+Ravi07bec/qlora-alpaca-13b
+TheBloke/CodeUp-Alpha-13B-HF-AWQ
+TheBloke/Llama-2-70B-Orca-200k-AWQ
+TheBloke/CodeUp-Llama-2-13B-Chat-HF-AWQ
+TheBloke/CalliopeDS-L2-13B-AWQ
+TheBloke/Chronohermes-Grad-L2-13B-AWQ
+tyzhu/squad_baseline_train_10_eval_10_t5-base
+TheBloke/llama-2-13B-chat-limarp-v2-merged-AWQ
+TheBloke/Nous-Hermes-Llama-2-7B-AWQ
+TheBloke/Nous-Hermes-Llama2-AWQ
+starmpcc/Asclepius-Llama2-7B
+TheBloke/ORCA_LLaMA_70B_QLoRA-AWQ
+chansurgeplus/open_llama_3b_v2_sft_hh_rlhf_100k
+chansurgeplus/open_llama_3b_v2_dpo_hh_rlhf_100k
+TheBloke/Nous-Hermes-Llama2-70B-AWQ
+TheBloke/Redmond-Puffin-13B-AWQ
+TheBloke/Nous-Puffin-70B-AWQ
+TheBloke/llama-2-13B-German-Assistant-v2-AWQ
+Ismaelvillanuevamiranda/llama-2-7b-colorectal-extract
+aspctu/starcoder-16b-gptq-8bit
+TheBloke/Llama-2-13B-German-Assistant-v4-AWQ
+leeseeun/gpt-neox-pretrain
+TheBloke/Guanaco-13B-Uncensored-AWQ
+aspctu/starcoder-7b-gptq-8bit
+hwangsaeyeon/gpt-neox-pretrain
+TheBloke/Guanaco-7B-Uncensored-AWQ
+TheBloke/llama2_7b_chat_uncensored-AWQ
+wstock04/shiddeatorBotV1
+TheBloke/MythoLogic-Mini-7B-AWQ
+TheBloke/MythoLogic-L2-13B-AWQ
+nchen909/codellama-7b-chinese-sft-v1
+TheBloke/MythoMax-L2-13B-AWQ
+TheBloke/MythoMix-L2-13B-AWQ
+TheBloke/Spring-Dragon-AWQ
+TheBloke/Tulpar-7B-v0-AWQ
+TheBloke/Athena-v1-AWQ
+TheBloke/LoKuS-13B-AWQ
+TheBloke/Llama-2-70B-OASST-1-200-AWQ
+TheBloke/Airochronos-L2-13B-AWQ
+TheBloke/llama2_70b_chat_uncensored-AWQ
+TheBloke/Airolima-Chronos-Grad-L2-13B-AWQ
+TheBloke/Chronoboros-Grad-L2-13B-AWQ
+TheBloke/Chronolima-Airo-Grad-L2-13B-AWQ
+NTharun/flan-t5-large-chat_lora
+TheBloke/OpenOrca_Stx-AWQ
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim16_epoch4
+TheBloke/orca_mini_v3_13B-AWQ
+TheBloke/model_007-70B-AWQ
+TheBloke/orca_mini_v3_70B-AWQ
+TheBloke/orca_mini_v3_7B-AWQ
+TheBloke/Mythalion-13B-AWQ
+TheBloke/Pygmalion-2-13B-AWQ
+TheBloke/Pygmalion-2-7B-AWQ
+TheBloke/Synthia-13B-AWQ
+Yukang/Llama-2-13b-chat-longlora-32k-sft
+TheBloke/GodziLLa2-70B-AWQ
+TheBloke/Synthia-34B-v1.2-AWQ
+TheBloke/Synthia-70B-v1.1-AWQ
+TheBloke/Synthia-70B-v1.2-AWQ
+TheBloke/Synthia-70B-AWQ
+Thireus/WizardLM-70B-V1.0-HF-5.0bpw-h8-exl2
+Thireus/WizardLM-70B-V1.0-HF-4.0bpw-h8-exl2
+TheBloke/Synthia-70B-v1.2b-AWQ
+TheBloke/Synthia-7B-AWQ
+TheBloke/llama-2-13B-Guanaco-QLoRA-AWQ
+TheBloke/llama-2-7B-Guanaco-QLoRA-AWQ
+TheBloke/llama-2-70b-Guanaco-QLoRA-AWQ
+strumber/letsModObjectMultipleQuestionDataset
+gangkongkong/llama-2-7b-gangkk-25p
+TheBloke/Llama-2-Coder-7B-AWQ
+TheBloke/llama2-22B-daydreamer-v2-AWQ
+TheBloke/Llama2-22B-Daydreamer-v3-AWQ
+TheBloke/Yarn-Llama-2-13B-128K-AWQ
+TheBloke/Yarn-Llama-2-13B-64K-AWQ
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim16_epoch6
+TheBloke/Yarn-Llama-2-7B-128K-AWQ
+p208p2002/llama-traditional-chinese-120M
+TheBloke/Yarn-Llama-2-7B-64K-AWQ
+TheBloke/Kimiko-13B-AWQ
+TheBloke/Kimiko-v2-13B-AWQ
+TheBloke/Llama-2-13B-LoRA-Assemble-AWQ
+TheBloke/Kimiko-7B-AWQ
+speechlessai/speechless-codellama-airoboros-orca-platypus-13b
+TheBloke/Llama-2-7B-LoRA-Assemble-AWQ
+TheBloke/LlongOrca-7B-16K-AWQ
+TheBloke/Llama-2-70B-LoRA-Assemble-v2-AWQ
+tyzhu/squad_v2_1000_0.80_id_t5-large
+TheBloke/OpenOrca-Platypus2-13B-AWQ
+research-dump/t5-large_hoax_timestamp_classifier_v1
+TheBloke/OpenOrcaxOpenChat-Preview2-13B-AWQ
+TheBloke/CodeLlama-13B-oasst-sft-v10-AWQ
+jenspt/merged_model
+desarrolloasesoreslocales/news-classification-18-llama-2-7b
+TheBloke/Llama2-13B-MegaCode2-OASST-AWQ
+TheBloke/fiction.live-Kimiko-V2-70B-AWQ
+TheBloke/Llama2-70B-OASST-SFT-v10-AWQ
+TheBloke/OpenBuddy-Llama2-13B-v11.1-AWQ
+hmxiong/merged_vicuna_13b_v0
+TheBloke/openchat_v3.2_super-AWQ
+TheBloke/OpenBuddy-Llama2-70b-v10.1-AWQ
+TheBloke/OpenAssistant-Llama2-13B-Orca-8K-3319-AWQ
+TheBloke/Lemur-70B-Chat-v1-AWQ
+TheBloke/Llama-2-PeanutButter_v19_R8-7B-AWQ
+TheBloke/Phind-CodeLlama-34B-Python-v1-AWQ
+TheBloke/Phind-CodeLlama-34B-v1-AWQ
+GAIR/GAIRMath-Abel-13b
+TheBloke/Phind-CodeLlama-34B-v2-AWQ
+TheBloke/Llama2-Chat-AYT-13B-AWQ
+tyzhu/squad_baseline_train_10_eval_10_t5-large
+research-dump/t5-large_hoax_def_classifier_v1
+dinhhung1508/Llama-2-7b-chat-finetune
+TheBloke/Sheep-Duck-Llama-2-70B-AWQ
+saraKH/distilgpt2-finetuned-wikitext2
+TheBloke/LosslessMegaCoder-Llama2-13B-Mini-AWQ
+TheBloke/LosslessMegaCoder-Llama2-7B-Mini-AWQ
+israelNwokedi/Llama2_Finetuned_SEO_Instruction_Set
+TheBloke/Pygmalion-2-13B-SuperCOT-weighed-AWQ
+tyzhu/squad_baseline_train_10_eval_10_flan-t5-large
+aarnow/mt5-small-finetuned-amazon-en-es
+TheBloke/Pygmalion-2-13B-SuperCOT-AWQ
+TheBloke/Pygmalion-2-13B-SuperCOT2-AWQ
+alayaran/bodo-t5-base
+TheBloke/Euryale-Inverted-L2-70B-AWQ
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim32_epoch2
+TheBloke/JanniesBasedLigma-L2-13B-AWQ
+TheBloke/Euryale-L2-70B-AWQ
+TheBloke/Mythical-Destroyer-L2-13B-AWQ
+TheBloke/Mythical-Destroyer-V2-L2-13B-AWQ
+TheBloke/Stheno-Inverted-L2-13B-AWQ
+TheBloke/Stheno-L2-13B-AWQ
+TheBloke/AppleSauce-L2-13B-AWQ
+TheBloke/BerrySauce-L2-13B-AWQ
+Mahmoud22/quantized-finetuining-GPTQ
+TheBloke/StableBeluga-13B-AWQ
+TheBloke/StableBeluga-7B-AWQ
+TheBloke/MythoMax-Kimiko-Mix-AWQ
+TheBloke/Luna-AI-Llama2-Uncensored-AWQ
+TheBloke/StableBeluga2-70B-AWQ
+TheBloke/ChatAYT-Lora-Assamble-Marcoroni-AWQ
+sess1/Llama-2-7b-chat-finetunetest5
+TheBloke/Luban-Marcoroni-13B-v3-AWQ
+TheBloke/Chronos-Beluga-v2-13B-AWQ
+TheBloke/Huginn-13B-AWQ
+TheBloke/Huginn-13B-v4.5-AWQ
+TheBloke/Huginn-13B-v4-AWQ
+TheBloke/Huginn-v3-13B-AWQ
+TheBloke/Llama-2-7B-32K-Instruct-AWQ
+TheBloke/TigerBot-70B-Chat-AWQ
+TheBloke/llama2-7b-chat-codeCherryPop-qLoRA-AWQ
+TinyPixel/elm-test
+TheBloke/AlpacaCielo-13B-AWQ
+TheBloke/AlpacaCielo2-7B-8K-AWQ
+TheBloke/EverythingLM-13B-16K-AWQ
+TheBloke/EverythingLM-13b-V2-16K-AWQ
+TheBloke/PuddleJumper-13B-AWQ
+PoungPoung/test_lora
+danlou/safespace-7b-gguf
+TheBloke/MLewd-L2-Chat-13B-AWQ
+TheBloke/MLewdBoros-L2-13B-AWQ
+afnna/salty-Llama-2-13b-hf-10epochs
+TheBloke/MythoMax-L2-Kimiko-v2-13B-AWQ
+NursNurs/T5ForReverseDictionary_fine-tuned
+TheBloke/Nous-Hermes-13B-Code-AWQ
+TheBloke/ReMM-SLERP-L2-13B-AWQ
+TheBloke/ReMM-v2-L2-13B-AWQ
+TheBloke/ReMM-v2.1-L2-13B-AWQ
+TheBloke/UndiMix-v1-13B-AWQ
+TheBloke/UndiMix-v2-13B-AWQ
+TheBloke/Unholy-v1-10l-13B-AWQ
+TheBloke/Unholy-v1-12L-13B-AWQ
+natankatz/codellama2
+TheBloke/Uni-TianYan-70B-AWQ
+TheBloke/Speechless-Llama2-13B-AWQ
+TheBloke/Speechless-Llama2-Hermes-Orca-Platypus-WizardLM-13B-AWQ
+TheBloke/Trurl-2-13B-AWQ
+TheBloke/Upstage-Llama-2-70B-instruct-v2-AWQ
+TheBloke/Trurl-2-7B-AWQ
+TheBloke/Firefly-Llama2-13B-v1.2-AWQ
+TheBloke/YuLan-Chat-2-13B-AWQ
+TheBloke/HermesLimaRP-L2-7B-AWQ
+TheBloke/Kuchiki-1.1-L2-7B-AWQ
+TheBloke/Kuchiki-L2-7B-AWQ
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim32_epoch4
+TheBloke/Zarablend-L2-7B-AWQ
+TinyPixel/elm
+TheBloke/Zarablend-MX-L2-7B-AWQ
+TheBloke/Zarafusionex-1.1-L2-7B-AWQ
+TheBloke/Chinese-Alpaca-2-7B-AWQ
+TheBloke/Chinese-Alpaca-2-13B-AWQ
+Thireus/WizardLM-70B-V1.0-BF16
+TheBloke/Chinese-Llama-2-7B-AWQ
+TheBloke/Chinese-Llama-2-13B-AWQ
+TheBloke/huginnv1.2-AWQ
+vwxyzjn/testyes2
+starmpcc/Asclepius-Llama2-13B
+TheBloke/AlpacaCielo-13B-GGUF
+a2ran/FingerFriend-t5-base-v1
+vwxyzjn/testyes4
+jbrinkw/my_awesome_billsum_model
+alexue4/text-normalization-ru-new
+KaraKaraWitch/MythaKiCOTlion-v2
+flytech/Ruckus-7b-v17
+aao331/airoboros-2.2-70B-2.6bpw-h6-exl2
+winglian/Llama-2-3b-hf
+Splend1dchan/byt5lephone_g2p_v1-1024-NMSQA
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim32_epoch6
+AnatolyBelov/my_t5_base_en_ru_wiki_test
+vwxyzjn/train_policy_accelerate-None-seed1
+Undi95/MM-ReMM-L2-20B
+Trelis/Llama-2-13b-chat-hf-touch-rugby-rules
+vwxyzjn/train_policy_accelerate__None__seed1__1695136188
+silvacarl/Llama-2-7b-chat-finetune
+winglian/llama-2-4b
+indiejoseph/mt5-translation-zh-yue
+wanderer2k1/T5-KPI
+schnabear/Llama-2-7b-chat-hf-FinalFantasyDialogue-AdamW32
+GozdeA/Llama-2-7b-chat-finetune-test
+mathiasgz/llama2-psychobot-v2
+skytree/smoothquant-models
+RadarSISA/Llama-2-7b-chat-finetune_22ep
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim64_epoch2
+malhajar/Platypus2-70B-instruct-turkish-gptq
+khoantap/normal-human
+TheBloke/airoboros-l2-13B-gpt4-1.4.1-AWQ
+TheBloke/airoboros-l2-7b-gpt4-1.4.1-AWQ
+TheBloke/airoboros-l2-7B-gpt4-2.0-AWQ
+TheBloke/airoboros-l2-7B-gpt4-m2.0-AWQ
+TheBloke/airoboros-l2-70B-gpt4-1.4.1-AWQ
+Undi95/MLewd-ReMM-L2-Chat-20B-Inverted-b4.1-h6-exl2
+jtatman/codeparrot-ds
+tyzhu/squad_wrong_id_train_10_eval_10_flan-t5-large
+antphb/pretrain-vit5-large
+tyzhu/squad_no_id_train_10_eval_10_flan-t5-large
+mrbelleza/my_awesome_opus_books_model
+OnurSahh/question_answering_uber
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r4-q_k_v_o
+GozdeA/Llama-2-7b-chat-finetune-GAtest
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim64_epoch4
+ajcdp/CM
+BigSalmon/InformalToFormalLincoln114Paraphrase
+AtheerAlgherairy/llama-2-7b-chat-dst_JSON_Prompt_fullTrain
+MindNetML/llama-2-7b-hf-personal
+anatal/stack-llama-2
+jwixel/pet-insurance-objections
+hails/34b-roundtrip
+ajcdp/sample
+jondurbin/airoboros-c34b-2.2.1
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim64_epoch6
+TheBloke/13B-BlueMethod-GGUF
+aiseeker/my_awesome_gpt2_clm-model
+ameemazainab/Llama-2-7b-chat-finetune
+PocketDoc/Dans-RetroRodeo-13b
+jaustin23/vz-flan-t5-large
+TheBloke/13B-BlueMethod-AWQ
+TheBloke/tulu-13B-GGUF
+StarkOsae/starcoder-1b-finetuned-codecontests
+TheBloke/tulu-13B-AWQ
+TheBloke/13B-Ouroboros-GGUF
+TheBloke/13B-Ouroboros-AWQ
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r4-gate_up_down
+TheBloke/13B-Chimera-GGUF
+TheBloke/13B-Chimera-AWQ
+TheBloke/13B-HyperMantis-GGUF
+TheBloke/13B-HyperMantis-AWQ
+TheBloke/chronos-13B-GGUF
+TheBloke/chronos-13B-AWQ
+TheBloke/30B-Epsilon-GGUF
+TheBloke/30B-Epsilon-AWQ
+jbrophy123/falcon-7b-instruct-story-gen
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim128_epoch2
+TheBloke/30B-Lazarus-GGUF
+TheBloke/30B-Lazarus-AWQ
+BEE-spoke-data/TinyLlama-1.1bee
+TheBloke/chronos-33b-GGUF
+TheBloke/chronos-33b-AWQ
+TheBloke/MythoBoros-13B-GGUF
+TheBloke/MythoBoros-13B-AWQ
+TheBloke/MythoLogic-13B-GGUF
+TheBloke/MythoLogic-13B-AWQ
+vgaraujov/t5-base-spanish
+alphageek/llama-2-7b-oasst-guanaco
+TheBloke/based-13b-AWQ
+TheBloke/based-13b-GGUF
+TheBloke/based-7B-GGUF
+TheBloke/based-7B-AWQ
+TheBloke/based-30B-AWQ
+TheBloke/based-30B-GGUF
+TheBloke/Dolphin-Llama-13B-AWQ
+TheBloke/Dolphin-Llama-13B-GGUF
+TheBloke/Wizard-Vicuna-13B-Uncensored-GGUF
+TheBloke/Wizard-Vicuna-13B-Uncensored-AWQ
+TheBloke/Wizard-Vicuna-30B-Uncensored-GGUF
+TheBloke/Wizard-Vicuna-30B-Uncensored-AWQ
+dakwei/llama-2-7b-miniguanaco
+TheBloke/Uncensored-Frank-7B-AWQ
+TheBloke/Uncensored-Frank-7B-GPTQ
+TheBloke/WizardLM-13B-Uncensored-GGUF
+TheBloke/Wizard-Vicuna-7B-Uncensored-AWQ
+TheBloke/WizardLM-13B-Uncensored-AWQ
+TheBloke/Wizard-Vicuna-7B-Uncensored-GGUF
+TheBloke/WizardLM-13B-V1.0-Uncensored-GGUF
+TheBloke/WizardLM-13B-V1.0-Uncensored-AWQ
+TheBloke/Uncensored-Frank-7B-GGUF
+TheBloke/WizardLM-30B-uncensored-AWQ
+TheBloke/WizardLM-30B-uncensored-GGUF
+garrachonr/Gogelphile-movies-large
+TheBloke/WizardLM-7B-uncensored-GGUF
+TheBloke/WizardLM-7B-uncensored-AWQ
+TheBloke/WizardLM-33B-V1.0-Uncensored-GGUF
+TheBloke/WizardLM-33B-V1.0-Uncensored-AWQ
+TheBloke/Uncensored-Frank-13b-GGUF
+TheBloke/WizardLM-7B-V1.0-Uncensored-GGUF
+TheBloke/WizardLM-7B-V1.0-Uncensored-AWQ
+garrachonr/Godelphile-movies-base
+TheBloke/guanaco-13B-GGUF
+TheBloke/SuperPlatty-30B-GGUF
+TheBloke/SuperPlatty-30B-AWQ
+TheBloke/guanaco-33B-GGUF
+TheBloke/guanaco-33B-AWQ
+TheBloke/guanaco-65B-AWQ
+TheBloke/guanaco-65B-GGUF
+TheBloke/Uncensored-Frank-13b-AWQ
+TheBloke/Uncensored-Frank-13b-GPTQ
+TheBloke/guanaco-7B-GGUF
+TheBloke/guanaco-7B-AWQ
+TheBloke/Uncensored-Frank-33b-GGUF
+hyonbokan/BGP-LLaMA-13b-2-30k
+Datavore/Llama-2-7b-chat-finetune
+TheBloke/upstage-llama-30b-instruct-2048-AWQ
+TheBloke/upstage-llama-30b-instruct-2048-GGUF
+TheBloke/Upstage-Llama1-65B-Instruct-GGUF
+TheBloke/Upstage-Llama1-65B-Instruct-AWQ
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim128_epoch4
+TheBloke/Uncensored-Frank-33b-AWQ
+TheBloke/Uncensored-Frank-33b-GPTQ
+TheBloke/WizardLM-13B-1.0-AWQ
+TheBloke/WizardLM-13B-1.0-GGUF
+mncai/Llama2-7B-Blend-3rd_floor_dedup-AiHub-Active_epoch2
+TheBloke/WizardLM-13B-V1.1-GGUF
+TheBloke/WizardLM-13B-V1.1-AWQ
+TheBloke/FashionGPT-70B-V1.1-GGUF
+TheBloke/WizardLM-30B-GGUF
+TheBloke/wizardLM-7B-GGUF
+TheBloke/Manticore-13B-AWQ
+TheBloke/minotaur-13B-fixed-GGUF
+TheBloke/Manticore-13B-GGUF
+TheBloke/minotaur-13B-fixed-AWQ
+flytech/Ruckus-13B-v20
+NousResearch/Nous-Capybara-7B
+TheBloke/wizard-mega-13B-AWQ
+TheBloke/wizard-mega-13B-GGUF
+TheBloke/minotaur-13B-AWQ
+TheBloke/llama-13b-supercot-AWQ
+TheBloke/llama-13b-supercot-GGUF
+TheBloke/chronos-hermes-13B-AWQ
+TheBloke/chronos-hermes-13B-GGUF
+tyzhu/squad_id_train_10_eval_10_squad_v2_1000_0.50_id_t5-large
+TheBloke/chronos-wizardlm-uc-scot-st-13B-GGUF
+TheBloke/chronos-wizardlm-uc-scot-st-13B-AWQ
+tyzhu/squad_id_train_10_eval_10_t5-large
+TheBloke/CAMEL-13B-Combined-Data-AWQ
+TheBloke/CAMEL-13B-Combined-Data-GGUF
+TheBloke/stable-vicuna-13B-GGUF
+TheBloke/CAMEL-13B-Role-Playing-Data-GGUF
+TheBloke/CAMEL-13B-Role-Playing-Data-AWQ
+TheBloke/CAMEL-33B-Combined-Data-AWQ
+TheBloke/fin-llama-33B-GGUF
+TheBloke/fin-llama-33B-AWQ
+TheBloke/CAMEL-33B-Combined-Data-GGUF
+TheBloke/Karen_theEditor_13B-AWQ
+TheBloke/Karen_theEditor_13B-GGUF
+TheBloke/gorilla-7B-GGUF
+TheBloke/gorilla-7B-AWQ
+TheBloke/llama-30b-supercot-AWQ
+TheBloke/llama-30b-supercot-GGUF
+TheBloke/Chronoboros-33B-GGUF
+TheBloke/Chronoboros-33B-AWQ
+TheBloke/wizard-vicuna-13B-GGUF
+TheBloke/airochronos-33B-AWQ
+TheBloke/wizard-vicuna-13B-AWQ
+TheBloke/airochronos-33B-GGUF
+TheBloke/Vicuna-13B-CoT-GGUF
+TheBloke/Vicuna-13B-CoT-AWQ
+TheBloke/Vicuna-7B-CoT-AWQ
+TheBloke/Vicuna-7B-CoT-GGUF
+hellonico/llama-2-7b-miniguanaco
+TheBloke/FashionGPT-70B-V1.1-GPTQ
+TheBloke/FashionGPT-70B-V1.1-AWQ
+tyzhu/squad_id_train_10_eval_10_flan-t5-large
+jypppp/llama_2_7b_manual_final_epoch20
+tyzhu/squad_wrong_id_train_10_eval_10_squad_v2_1000_0.50_id_t5-large
+TheBloke/LLaMA-13b-AWQ
+TheBloke/LLaMA-13b-GGUF
+TheBloke/medalpaca-13B-GGUF
+TheBloke/medalpaca-13B-AWQ
+TheBloke/GPlatty-30B-GGUF
+TheBloke/GPlatty-30B-AWQ
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r8-q_k_v_o
+TheBloke/Platypus-30B-GGUF
+TheBloke/Platypus-30B-AWQ
+TheBloke/LLaMA-30b-GGUF
+TheBloke/LLaMA-30b-AWQ
+TheBloke/LLaMA-7b-GGUF
+TheBloke/LLaMA-7b-AWQ
+TheBloke/WizardLM-Uncensored-SuperCOT-StoryTelling-30B-AWQ
+TheBloke/WizardLM-Uncensored-SuperCOT-StoryTelling-30B-GGUF
+TheBloke/ARIA-70B-V2-GGUF
+TheBloke/VicUnlocked-30B-LoRA-AWQ
+TheBloke/VicUnlocked-30B-LoRA-GGUF
+TheBloke/hippogriff-30b-chat-AWQ
+TheBloke/LLaMA-65B-GGUF
+TheBloke/hippogriff-30b-chat-GGUF
+TheBloke/LLaMA-65B-AWQ
+TheBloke/manticore-13b-chat-pyg-GGUF
+TheBloke/manticore-13b-chat-pyg-AWQ
+mgoin/mpt-7b-chat-50pruned-quant
+mgoin/mpt-7b-chat-quant
+TheBloke/tulu-30B-AWQ
+TheBloke/tulu-30B-GGUF
+TheBloke/tulu-7B-GGUF
+TheBloke/tulu-7B-AWQ
+harshitaskh/math_llama
+Icaruas/code_lawma
+dwang-LI/gpt2_rot
+petern48/llama-2-7b-meditation-300-samples
+TabbyML/WizardCoder-1B
+TabbyML/WizardCoder-3B
+TabbyML/WizardCoder-15B
+Konic/mt5-small-finetuned-amazon-en-es
+Shikily/7b_fs
+filipealmeida/open-llama-7b-v2-open-instruct-sharded
+jtatman/nyt87_07
+luffycodes/higgs-llama-vicuna-ep25-70b
+mani1kumar/llama2_7b_chat_hf_ft_sustain_final
+DavidLanz/Llama-2-13b-chat-traditional-chinese-qlora
+khoantap/sokrates-the-philosopher
+wangtianle/codellama-sql-7b
+NeliHateva/Llama-2-7b-chat-hf-sdred-conll-fine-tuned
+GokhanAI/1.3b_opt_v2
+chansurgeplus/open_llama_3b_v2_sft_sachith_surge_llamini_lm_826k
+kyzor/llama-2-7b-miniguanaco
+mncai/Llama2-7B-Blend-3rd_floor_dedup-AiHub-Active_epoch4
+jypppp/manual_gpt2_final_train_prefix
+KnutJaegersberg/deacon-13b
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r8-gate_up_down
+gangkongkong/llama-2-7b-gangkk-all
+Jayicebear/mt5-small-finetuned-amazon-en-es
+Gayathri142214002/t5_Question_Generation_2
+jtatman/headlines
+eqhylxx/gsm8k-50-ckpt
+amentaga/llama-7b-Dolffia-instruct
+eqhylxx/gsm8k-teacher-50-ckpt
+eqhylxx/gsm8k-student-50-ckpt
+Shishir1807/llama2-7b-M8
+dodoma/autotrain-summarize-t5-dori-90343144268
+nutkung1/Mitr
+ArpitaAeries/my_awesome_opus_books_model
+mncai/Llama2-7B-Blend-3rd_floor_dedup-AiHub-Active_epoch6
+PY007/ByteLlama-320M-preview
+Qbeast/memeaiai
+Boqianshen/llama-2-7b-miniguanaco
+mathiasgz/llama2-psychobot-v3
+RuterNorway/Llama-2-7b-chat-norwegian
+pankaj-munde/eli5-clm-model
+desarrolloasesoreslocales/llama2-fine-tuned-dolly-15k
+ash-23-g4/gpt2-warmup-toxic0.3-split-1.0-epochs-1
+ash-23-g4/gpt2-warmup-toxic0.1-split-1.0-epochs-1
+casperhansen/tinyllama-1b-awq-gemv
+ash-23-g4/gpt2-warmup-toxic0.5-split-1.0-epochs-1
+shitalpdhakne/llama-2-7b-python
+paymanshus/llama2-lora-sft4-mptparams-merged
+lenbrocki/Serena13bQ
+sebastiantrbl/distilgpt2-finetuned-wikitext2
+tvganesh/test_trainer1
+acalatrava/TinyLlama-1.1B-dolly
+TheBloke/ARIA-70B-V2-GPTQ
+TheBloke/ARIA-70B-V2-AWQ
+RJuro/llama-2-7b-chuk-test
+AL49/llama-2-7b-PrelimINPUTJSON-0
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r16-q_k_v_o
+OpenBuddy/openbuddy-falcon-180b-v12-preview0
+ash-23-g4/gpt2-warmup-toxic0.3-split-1.0-epochs-5
+casperhansen/starcoderbase-1b-awq
+omi2991/llama-2-7b-miniguanaco
+acalatrava/TinyLlama-1.1b
+Michael0025/code-panda-13b-python
+hilariooliveira/codeparrot-ds
+tyzhu/squad_v2_1000_0.50_id_flan-t5-xl
+Stef1397/Code-Llama-7b
+TheBloke/Falcon-180B-Chat-AWQ
+faresfawzi/t5-small_pretrained_5_epochs
+ash-23-g4/gpt2-warmup-toxic0.3-split-1.0-epochs-10
+Ghadi8/news-classification-18-llama-2-7b
+nutkung1/Mitr_Phol
+maxxrichard/llama-2-7b-sports_plans
+dinhhung1508/Llama-2-7b-chat-base
+jbrinkw/fp1.1
+mesolitica/constituency-parsing-nanot5-small-malaysian-cased
+mesolitica/constituency-parsing-nanot5-base-malaysian-cased
+tuankg1028/nghiem_model_20_9
+herzlixh/DialoGPTs_HarryFromHogwarts
+Crazi/bnd
+wangqi777/tinystories_zh
+AIDC-ai-business/Marcoroni-70B-v1
+ardanila/vectorai1
+Xagler/llama-2-7b-xagler
+angie-chen55/af-sft10k
+mesolitica/llama-600m-hf-32768-fpf
+bedus-creation/eng-limbu-t5-manual-001
+Erht/t5-small-squadv2
+usvsnsp/pythia-6.9b-ppo
+ash-23-g4/gpt2-warmup-toxic0.5-split-1.0-epochs-10
+maibinh/Fine_tuining_llama2
+alayaran/bodo-t5-base-news-headline-ft
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r16-gate_up_down
+jondurbin/airoboros-l2-70b-2.2.1
+bedus-creation/eng-limbu-t5-manual-002
+delitante-coder/llama2-7b-merged
+Jackoon/JSON-expert-huy-Llama-13b
+shareAI/CodeLlama-13b-English-Chat
+flytech/Ruckus-13b-v20e10
+tnash6/llama-2-7b-miniguanaco
+AWfaw/ai-hdlcoder
+jondurbin/airoboros-l2-7b-2.2.1
+bedus-creation/eng-limbu-t5-large-all-002
+Undi95/MM-ReMM-L2-20B-b4.1-h6-exl2
+KnutJaegersberg/deacon-13b-awq
+fliou2/llama-2-chat-ft-3-epochs-1k-regr-test-removed-new-prompt-v2
+alexalbala/test2
+jondurbin/airoboros-l2-13b-2.2.1
+tanvirsrbd1/flan-t5-base-srbd
+ophycare/llama-2-7b-chat-ophycare-3-icliniq
+flytech/Ruckus-13B-v20e9
+jtlin/llama-2-7b-guanaco-dolly-mini
+xkianteb/imdb_adam_expert
+flytech/Ruckus-13B-v20e8
+Divya0908/llama2-rollsroyce
+TheBloke/StellarX-4B-V0.2-GPTQ
+rpi-tom/llama-2-7b-miniguanaco
+TheBloke/Xwin-LM-13B-V0.1-GGUF
+TheBloke/Xwin-LM-13B-V0.1-GPTQ
+TheBloke/Xwin-LM-13B-V0.1-AWQ
+tgsc/teste-ult5-base
+kanishka/smolm-autoreg-bpe-seed_111
+aswin1906/llama-2-7b-arxiv
+kanishka/smolm-autoreg-bpe-seed_222
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r4-q_k_v_o
+TheBloke/MAmmoTH-Coder-34B-AWQ
+TheBloke/MAmmoTH-Coder-34B-GPTQ
+TheBloke/MAmmoTH-Coder-34B-GGUF
+kanishka/smolm-autoreg-bpe-seed_333
+TheBloke/MAmmoTH-70B-GGUF
+kanishka/smolm-autoreg-bpe-seed_444
+kanishka/smolm-autoreg-bpe-seed_555
+kanishka/smolm-autoreg-bpe-seed_666
+kanishka/smolm-autoreg-bpe-seed_777
+TheBloke/MAmmoTH-70B-AWQ
+TheBloke/MAmmoTH-70B-GPTQ
+kanishka/smolm-autoreg-bpe-seed_888
+kanishka/smolm-autoreg-bpe-seed_999
+nirsd/llama-2-7b-guanaco-dolly-mini
+BigSalmon/InformalToFormalLincoln115Paraphrase
+hyonbokan/BGP-LLaMA-13b-3-30k-cutoff-max-2048
+kanishka/smolm-autoreg-bpe-seed_1709
+maximuslee07/llama-2-7b-rockwell-1.4k
+jbochi/madlad400-3b-mt
+Spacetimetravel/autotrain-financial-conversation-goals-90496144312
+aswin1906/llama-2-7b-ag-news
+kuotient/llama-2-ko-70b-GPTQ
+Rosi-si/my_awesome_gec
+bedus-creation/eng-limbu-t5-base-all-001
+Spacetimetravel/autotrain-financial-conversation_financial-summary-90517144315
+amirabdullah19852020/pythia-70m_utility_reward
+wentingzhao/natural-dialogues-20230910-assistant-4096-epoch3
+aman-mehra/gpt2-medium-finetune-squad-ep-0.35-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-14
+hihisu1231/0921_MBTI
+skytree/naive-w8a8-opt-125m
+totally-not-an-llm/PuddleJumper-13b-V2
+rahulsm27/LLAMA
+Thireus/WizardLM-70B-V1.0-BF16-4.0bpw-h6-exl2
+Thireus/WizardLM-70B-V1.0-BF16-5.0bpw-h6-exl2
+aman-mehra/gpt2-medium-finetune-squad-ep-0.41-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-15
+hihisu1231/mbti_230921_2
+yzhuang/autotree_llama_10_tt_12l_local_7d
+gangkongkong/llama-2-7b-gangkk-all-lr2e5
+amirabdullah19852020/pythia-160m_utility_reward
+Emm9625/10M
+boimbukanbaim/codeparrot-ds
+FreedomIntelligence/AceGPT-13B-chat
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r4-gate_up_down
+hihisu1231/mbti_230921_3
+aman-mehra/gpt2-medium-finetune-squad-ep-0.48-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-16
+Mahmoud22/autotrainLLM2
+taewhan/k2t-2_keywords
+eunyounglee/GPT-NeoX-1.3B-2GB-Eng
+aman-mehra/gpt2-medium-finetune-squad-ep-0.55-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-17
+h4lo/my_awesome_billsum_model_0921
+Crazi/bnd_5k_warm_steps
+Tostino/Inkbot-13b-4k
+Spacetimetravel/autotrain-financial-conversation_financial-summary-t5-90557144324
+UnstableLlama/Xwin-LM-7B-V0.1-8bpw-exl2
+FreedomIntelligence/AceGPT-7B-chat
+h4lo/my_awesome_eli5_clm-model-text
+Konic/codeparrot-ds
+aman-mehra/gpt2-medium-finetune-squad-ep-0.63-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-18
+jeffhwang/llama-2-7b-guanaco-dolly-mini
+agonh/TinyLlama-1.1B
+siddjha/Llama-2-7b-chat-sid
+pipizhao/Pandalyst_13B_v1.0
+omi2991/llama2-finetune-custom
+DavidLanz/Llama-2-7b-chat-traditional-chinese-qlora
+TheBloke/Inkbot-13B-4k-GPTQ
+TheBloke/Inkbot-13B-4k-AWQ
+TheBloke/Inkbot-13B-4k-GGUF
+hihisu1231/mbti_230921_4
+aman-mehra/gpt2-medium-finetune-squad-ep-0.7-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-19
+mncai/Llama2-7B-Active_3rd-floor-LoRA-dim128_epoch6
+TheBloke/Xwin-LM-7B-V0.1-GGUF
+sebastiantrbl/test-DialoGPT-finetune
+thiru1/distilgpt2-finetuned-wikitext2
+lapups/llama-2-7b-evo_v3
+TheBloke/Xwin-LM-70B-V0.1-GGUF
+ophycare/llama-2-7b-chat-ophycare-3-icliniq-1
+Ketak-ZoomRx/llama2-7b-M6
+TheBloke/Xwin-LM-7B-V0.1-AWQ
+TheBloke/Xwin-LM-7B-V0.1-GPTQ
+antphb/pretrain-gpt2-large
+meta-math/MetaMath-7B-V1.0
+JcKosmos74/my_awesome_billsum_model
+TheBloke/Xwin-LM-70B-V0.1-GPTQ
+TheBloke/Xwin-LM-70B-V0.1-AWQ
+nminhptnk/llama-2-7b-minh
+LovelyTony/llama-2-7b-kfs
+Cartinoe5930/llama-2-13B-GPTQ
+Ketak-ZoomRx/llama2-7b-M7
+Bhuvaneshwari/merged_model_13b_simple_21_09
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-4e-06-wd-1e-05-glb_sd-1-data_sd-0
+jmbilbao25/falcon-7b-instruct-sharded-finetuned
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-6e-06-wd-1e-05-glb_sd-1-data_sd-0
+hihisu1231/mbti_230921_5
+stacknexus/311fontana
+Ashkalon/gpt2-wikitext2
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-6e-06-wd-0.001-glb_sd-1-data_sd-0
+acalatrava/TinyLlama-1.1B-orca-gpt4
+Shishir1807/llama2-7b-M8_v2
+Tejasw1/votum-13b-v1
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-6e-05-wd-0.0001-glb_sd-1-data_sd-0
+cgato/Buddy-7b-v0.2
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r8-q_k_v_o
+tvganesh/philosophy_model
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-8e-05-wd-0.001-glb_sd-1-data_sd-0
+lmz/candle-quantized-t5
+Crazi/bnd_5e-4_insteadOf_1e-5
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-4e-05-wd-1e-05-glb_sd-1-data_sd-0
+winglian/basilisk-4b
+RadarSISA/Llama-2-7b-base_25ep
+Shishir1807/llama2-7b-M9
+ShastriPranav/my-awesome-model
+Lazycuber/L2-7b-Base-Guanaco-Vicuna
+duwuonline/my-ielts
+ciaranmacseoin/llama-2-7b-sent
+JcKosmos74/mt5-small-finetuned-amazon-en-fr
+hihisu1231/mbti_230921_6
+Captluke/Llama-2-7b-chat-wiki-v3
+YaHi/sft13b
+YaHi/dpo13b
+Yukang/Llama-2-70b-chat-longlora-32k
+Yukang/Llama-2-70b-chat-longlora-32k-sft
+abdoelsayed/llama-7b-v1-Receipt-Key-Extraction
+udaizin/t5-base-long-livedoor-news-corpus
+duwuonline/my-upgrade-sentences
+msy127/opt-350m-aihubqa-130-dpo-merged
+aman-mehra/gpt2-medium-finetune-squad-ep-1.1-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-10
+aman-mehra/gpt2-medium-finetune-squad-ep-1.3-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-11
+aman-mehra/gpt2-medium-finetune-squad-ep-1.5-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-12
+aman-mehra/gpt2-medium-finetune-squad-ep-1.7-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-13
+Panchovix/Marcoroni-70B-v1-safetensors
+aman-mehra/gpt2-medium-finetune-squad-ep-1.9-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-14
+tuankg1028/nghiem_model_21_9
+ritvikshandilya/llama-2-7b-meditext
+Sao10K/Chat-Stheno-L2-13B
+hwattenberger/llama-2-7b-miniguanaco
+yanyanstar/virus-ds
+durdana/Wizard7b
+aprlc/llama-2-7b-miniguanaco
+panflet/llama-cv-tuned-13b
+suzii/pretrain-gpt2-large
+woo2/Llama-2-7b-chat-finetune
+Sudhu2004/Llama2-7b
+Jackoon/JSON-expert-huy_2-Llama-13b
+infCapital/llama2-7b-chat-hf
+kla-20/qa-flant5
+uffergist/DialoGPT-small-cummy
+amirabdullah19852020/pythia-410m_utility_reward
+LTC-AI-Labs/Guanaco-Vicuna-7B-L2
+Sao10K/Stheno-Mega-False-49B-L2
+mghiasvandm/MPA-TASD-rest15-base
+VishalCh/test-one
+R136a1/MythoMax-L2-13B-exl2
+TheBlokeAI/jackfram_llama-68m-GPTQ
+akulagrawal/Llama-2-13b-chat-hf-pecan-0920
+Rosi-si/py_gec_mT5
+kaitchup/OPT-1.3B-RLHF-DSChatLoRA
+Captluke/Llama-2-7b-chat-wiki-v4
+silvacarl/llama-7-int4-dolly
+alkahestry/swordfish-exprmt
+922-CA/monika-l2-7b-v0.9a
+Monkeydddd/meh-l
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r8-gate_up_down
+Carlo203040/prova-del-modello-standard2
+Monkeydddd/ANAT-lora
+profoz/t5-aligned-summaries
+abdoelsayed/llama-7b-v2-Receipt-Key-Extraction
+FreedomIntelligence/AceGPT-7b-chat-GPTQ
+ash-23-g4/gpt2-warmup-toxic0.7-split-1.0-epochs-5
+ash-23-g4/gpt2-warmup-toxic0.8-split-1.0-epochs-5
+ash-23-g4/gpt2-warmup-toxic0.9-split-1.0-epochs-5
+ash-23-g4/gpt2-warmup-toxic0.7-split-1.0-epochs-10
+DayiTokat/gpt2-bliss-finetuned60
+syzymon/long_llama_code_7b
+Logeswaransr/T5_MineAI_Prototype
+dantelarrauri/Neuuni-2-7b-MiniAssistant
+petern48/gpt2-meditation-no-special-tokens
+AtAndDev/TinyDoctor3b
+aquinovo/llama-2-7b-miniguanaco
+aswin1906/gpt2-medium-wiki
+mgoin/open_llama_3b_v2-ONNX
+drewparo/llama-2-7b-llama-swift-gpt_4_db-2-epoach-set
+Defetya/jumoreski
+ash-23-g4/gpt2-warmup-toxic0.9-split-1.0-epochs-10
+marcus2000/none
+drewparo/llama-1-7b-llama-swift-gpt_4_db-2-epoach-set
+jbrophy123/llama2-7B-short-story-gen-v2
+Undi95/ZettaPi-13B
+Mahmoud22/llama-7B-chat-gptq
+xivin/llama-2-7b-miniguanaco
+TheBloke/Buddy-7B-v0.2-AWQ
+TheBloke/Buddy-7B-v0.2-GPTQ
+TheBloke/Airoboros-L2-70b-2.2.1-GPTQ
+TheBloke/Airoboros-L2-70b-2.2.1-GGUF
+TheBloke/Airoboros-L2-70b-2.2.1-AWQ
+Undi95/ReML-v2.2-L2-13B
+Undi95/ReMM-v2.2-L2-13B
+Jaehun/driven-lake-3-Ep.1
+nuevamc/llama-2-7b-nuevamc
+Yeyito/Tammy-13B
+Rosi-si/py_gec_mT5_v2
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r16-q_k_v_o
+wasertech/assistant-llama2-7b-merge-bf16
+caraboy/Julio-Cortazar
+HoangCuongNguyen/Flan-T5-finetuned-cti2
+Laks25/ayurvedic_llama_1
+vikram-n/llama2_7b_finetuned_dialogsum
+anhnv125/llama-op-v15
+drewparo/codegen25-7b-gpt4-task-3000-steps-set
+Rosi-si/gec_mT5
+vikram-n/llama2_7b_GPTQ
+nuevamc/llama-2-7b-chat-nuevamc
+Duxiaoman-DI/XuanYuan-70B
+meta-math/MetaMath-13B-V1.0
+nithinkumar/llama-2-7b-miniguanaco
+meta-math/MetaMath-70B-V1.0
+Sudhu2004/Llama-2-7b-chat-hf
+kla-20/Flan-t5-qa-model
+suzii/pretrain-gpt2-large-1
+yzhuang/autotree_llama_10_tt_12l_local_22d
+Vasanth/deci-finetuned-alpaca-cleaned
+jeffhwang/llama-2-7b-chat-nuevamc-finetuned
+wstock04/shiddeatorBotV2.5
+maibinh/Ft_llama2_chat
+wstock04/shiddeatorBotV3.0
+Shishir1807/llama2-7b-M10
+TokenBender/UnnaturalCodellama_P
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r16-gate_up_down
+Defetya/sharded-mgpt
+Cartinoe5930/orca_mini_v3-13b-GPTQ
+Apptware/Medical_chatbot_qna
+suzii/pretrain-gpt2-large-2
+Apptware/Market_chatbot_qna
+Shishir1807/llama2-7b-M11
+gangkongkong/llama-2-7b-gangkk-all-lr2e5-epoch3
+ArmelR/doremi-280m-opt
+sachith-surge/open-llama-v2-lamini-orca-evol-qlora-checkpoint-merged
+wstock04/shiddeatorBotDUMB
+taewhan/k2t-5keywords
+hieupham14022003/llama2_my_try
+lenbrocki/Serena13bv2Q
+rayho/DialoGPT-small-Adrian
+eunyounglee/GPT-NeoX-1.3B-1GB-Eng
+Shishir1807/llama2-7b-M12
+Tejasw1/votum-13b-v1-gptq
+Rohitdileep/eng2sans
+Enno-Ai/ennodata-13b-8bit-sft-15epoch
+openbmb/UltraLM-13b-v2.0
+openbmb/UltraRM-13b
+openbmb/UltraCM-13b
+Centaur31/gpt2-fp16-onnx
+AppsDelivered/NousResearch_Llama-2-7b-hf-JIRA-SITC
+stacknexus/311fontana_13b
+mncai/SGPT-5.8B-bc-epoch5
+sachith-surge/open-llama-v2-lamini-orca-evol-qlora-checkpoint-merged-q8
+quantumaikr/plankton-pjsg-100M
+alipak/Llama-2-7b-chat-mental_health-10
+Droidfanat/llama-2-7b-custom-russian-q4
+aloobun/llama2-7b-guanaco
+josedanielaromi/distilgpt2-finetuned-wikitext2
+TinyPixel/testmodel-3
+newsmediabias/UnBIAS-LLama2-Debiaser-Chat
+quantumaikr/plankton-100M-pjsg-inst
+ldos/text_shortening_model_v51
+Thireus/WizardLM-70B-V1.0-FP32-4.0bpw-h6-exl2
+Thireus/WizardLM-70B-V1.0-FP32-5.0bpw-h6-exl2
+Daya7624/Llama-2-7b-chat-hf_Tuned_Webmd_v0
+Luciya/llama-2-7b-nuv-intent-big-oos
+ldos/text_shortening_model_v52
+mohitsha/opt-125m-smooth-quant
+chi2024/mt5-base-multi-label-en-iiib-02c
+chi2024/mt5-base-binary-cs-iiia
+chi2024/mt5-base-multi-label-cs-iiib
+palmer0/llama2-fine-tuned-dolly-15k
+chi2024/mt5-base-multi-label-all-cs-iv
+zhengr/llama-2-7b-miniguanaco
+chi2024/mt5-base-multi-label-cs-iiib-02c
+chi2024/mt5-base-binary-en-iiia-02c
+chi2024/mt5-base-binary-cs-iiia-02c
+kadarm/merged
+AppsDelivered/daryl149_llama-2-7b-chat-hf-JIRA-SITC
+Tony068/Test1
+umm-maybe/Skip-NoClip-StarCoder-1B
+lukaskellerstein/llama-2-7b-lukas
+research-dump/t5-base_hoax_def_classifier_v2
+Defetya/jumoreski-clean
+YOZ1/22
+Komposter43/saiga2_70b_lora-AWQ
+Komposter43/saiga2_70b_lora-GPTQ
+ElixIA/Market-YAML-COMPLETION-root
+seank0602/qwizard-v1
+Coconuty/FairyTale002
+Undi95/MXLewd-L2-20B
+ashu000999/medbot
+GozdeA/llama-2-7b-fineTunedTest1
+schnabear/Llama-2-7b-chat-hf-FinalFantasyDialogue-AdamW8
+alienverarslan/llama-2-7B-32K-instruct-7209-web-articles-fine-tuned
+swang19/mt5-small-finetuned-amazon-en-es
+TitanML/opt-125m-base-4bit-AWQ
+UnstableLlama/Xwin-LM-7B-V0.1-4bpw-exl2
+asaha-cdcp/flan-t5-base-samsum
+tatoy/Llama-2-7b-chat-hf-fine-tuned
+pierreguillou/llama-2-7b-hf-text2image-prompts-Liege
+catweld/llama-2-7b-translate
+UnstableLlama/Xwin-LM-13B-V0.1-5bpw-exl2
+sachith-surge/open-llama-v2-lamini-orca-evol-guanaco-qlora-checkpoint-merged
+drewparo/starcoderbase-7b-swift-3000-steps-set
+tahvili/Llama-2-7b-chat-icube
+jmoney54378256438905/jondurbin_airoboros-c34b-2.2.1-4.65bpw
+anonuseranonuser/tutorbot-spock-phys
+hiteshganjoo/llama-2-7b-miniguanaco
+UnstableLlama/Xwin-LM-13B-V0.1-4.65bpw-exl2
+UnstableLlama/Xwin-LM-13B-V0.1-4bpw-exl2
+Panchovix/Marcoroni-70B-v1-4.65bpw-h6-exl2
+NoIdeaLand/test-4k-fn
+jwixel/pet-insurance-objections-2
+nullcodex/redpajama-incite-chat-3b-mini-guanaco
+Medissa/llama-2-7b-finetuned
+chargoddard/storytime-13b
+jmoney54378256438905/jondurbin_airoboros-c34b-2.2.1-5.25bpw
+Undi95/MXLewdMini-L2-13B
+TheBloke/MLewd-ReMM-L2-Chat-20B-GPTQ
+TheBloke/MLewd-ReMM-L2-Chat-20B-GGUF
+TheBloke/MLewd-ReMM-L2-Chat-20B-AWQ
+TheBloke/MLewd-ReMM-L2-Chat-20B-Inverted-AWQ
+TheBloke/MLewd-ReMM-L2-Chat-20B-Inverted-GPTQ
+TheBloke/MLewd-ReMM-L2-Chat-20B-Inverted-GGUF
+TheBloke/ALMA-7B-Pretrain-GPTQ
+TheBloke/ALMA-7B-Pretrain-AWQ
+TheBloke/ALMA-7B-Pretrain-GGUF
+TheBloke/ALMA-13B-Pretrain-GGUF
+TheBloke/ALMA-13B-Pretrain-AWQ
+TheBloke/ALMA-13B-Pretrain-GPTQ
+akjindal53244/Llama-2-7b-hf-gptq-4bit
+totally-not-an-llm/EverythingLM-13b-V3-16k
+euclaise/falcon_1b_stage3_2
+nisten/glaive-coder-7b-q4f16_2-mlc
+texasdave2/t5-small-finetuned-xsum
+anhnv125/llama-op-v16
+almaghrabima/NER-7-llama-2-7b
+HowAreYouToday/KoT5-summarization
+tomdeore/nonymus-llm
+baebee/Alphaca-1B
+texasdave2/flan-t5-base-samsum
+bk2000/bkllama2
+TigerResearch/tigerbot-13b-chat
+lukeleeai/t5-base_c2_dense_2_c2_dense_2
+PY007/ByteLlama-230M-preview
+jorgebraniff/name_fine_tuned_model
+aao331/airoboros-2.2.1-70B-4.0bpw-h6-exl2
+WGNW/llama-2-7b-ko-auto-gptq
+ai-sherpa/llama-7b-23Sep23
+almaghrabima/NER-TQ-llama-2-7b
+imdatta0/llama2-13b-2dataFT
+jrglqs/llama_2_7b_anjay
+BaleChen/checkpoint-400_merged
+BaleChen/checkpoint-500_merged
+ccore/Llama-2-8k-2m-rethink
+mesolitica/llama-2b-hf-32768-fpf
+Iftesha/Flan-T5-finetuned-Samantha
+mesolitica/emotion-analysis-nanot5-base-malaysian-cased
+boomerchan/Kiwi-7b
+turboderp/Llama2-70B-exl2
+amir22010/PyABSA_Hospital_English_allenai_tk-instruct-base-def-pos_FinedTuned_Model
+sebastiantrbl/DialoGPT-finetuned-daily-dialog
+mesolitica/emotion-analysis-nanot5-small-malaysian-cased
+ura-hcmut/ura-llama-7b-r64
+barisaydin/fastchat-t5-3b
+faresfawzi/t5-small_full_data_epoch_6
+alexrodpas/T5-XSum-base
+mayur7garg/gpt2-large-ssg
+TemporalGames/opt-1.3b-lambada_rmt_ms7_bptt7_sl2028_mt10_lTrue_LORA_merged_final
+ldos/text_shortening_model_v53
+ivt1993/gen-outline-7b-low-mem
+lukeleeai/t5-base_c2_dense_2_half
+lukeleeai/t5-base_c2_mare_ar1_ex8_half_2Lrouter
+penguinman73/codeparrot-model
+YeungNLP/firefly-llama2-13b-chat
+ivt1993/chinese-base-13b-low-mem
+Thangnv/my_t5
+Moses25/MosesLM-13B-chat
+IkariDev/Athena-v2
+stevenbowler/MedChatBotAdapted
+badokorach/flan-t5-small-qa
+chloecchng/Llama-2-7b-chat-hf-fine-tuned
+jmoney54378256438905/jondurbin_airoboros-c34b-2.2.1-3.75bpw
+Frisson/grwyz
+jypppp/manual_gpt2_final_prefix_0924
+Pclanglais/Brahe
+infCapital/llama2-7b-chat
+Frisson/arhn
+lukeleeai/t5-base_moe_ex16
+LTC-AI-Labs/L2-7b-Base-WVG-Uncensored
+mesolitica/ner-nanot5-small-malaysian-cased
+AutisMaxima/address-standardization-indonesia
+Kushala/falconmerged
+mesolitica/ner-nanot5-base-malaysian-cased
+lisamb/customer_complaint-18-llama-2-chat-7b_fine_tune_train_v09
+TheBloke/airoboros-c34b-2.2.1-GGUF
+TheBloke/airoboros-c34b-2.2.1-GPTQ
+TheBloke/airoboros-c34b-2.2.1-AWQ
+Monkeydddd/Luf-6000
+lukeleeai/t5-base_c2_mare_ar1_ex16_half
+faresfawzi/t5-small_full_data_epoch_9
+jwixel/pet-insurance-with-qa
+KrasniyDoshik/afafa
+schnabear/DialoGPT-small-FinalFantasyDialogue
+Luigi712/ermenegildo-castrovillari-model
+kyujinpy/CoT-llama-2k-7b
+migtissera/Synthia-13B-v1.2
+wanderer2k1/T5-QA
+schnabear/DialoGPT-medium-FinalFantasyDialogue
+PocketDoc/Dans-MysteryModel-13b
+sd99/llama-2-7b-miniguanaco
+Nagharjun17/zoningLlama2
+IchiRoe/DialoGPT-medium-argen
+rjarpa/ms-4maps_alpha-ds
+AzureBlack/Athena-v2-6.0bit-exl2
+TheBloke/airoboros-l2-13B-2.2.1-GPTQ
+TheBloke/airoboros-l2-13B-2.2.1-GGUF
+TheBloke/EverythingLM-13B-V3-16K-GGUF
+TheBloke/EverythingLM-13B-V3-16K-AWQ
+TheBloke/EverythingLM-13B-V3-16K-GPTQ
+robgonsalves/llama-2-13b-deep-haiku
+TheBloke/airoboros-l2-13B-2.2.1-AWQ
+lisamb/customer_complaint-18-llama-2-chat-7b_fine_tune_train_v09_new
+TheBloke/airoboros-l2-7B-2.2.1-GGUF
+TheBloke/airoboros-l2-7B-2.2.1-AWQ
+TheBloke/airoboros-l2-7B-2.2.1-GPTQ
+TheBloke/MAmmoTH-13B-GPTQ
+TheBloke/MAmmoTH-13B-AWQ
+TheBloke/MAmmoTH-13B-GGUF
+rjarpa/ms-4maps_alpha-ds-full
+drewparo/starcoderbase-7b-8b
+TokenBender/Dumbest_model_I_made
+TheBloke/MAmmoTH-7B-GPTQ
+TheBloke/MAmmoTH-7B-GGUF
+TheBloke/MAmmoTH-7B-AWQ
+rjarpa/ms-4maps_alpha-ds-newtoken
+TheBloke/Athena-v2-GPTQ
+TheBloke/Athena-v2-AWQ
+TheBloke/Athena-v2-GGUF
+Panchovix/FashionGPT-70B-V1.1-safetensors
+TheBloke/PuddleJumper-13B-V2-GGUF
+TheBloke/PuddleJumper-13B-V2-AWQ
+TheBloke/PuddleJumper-13B-V2-GPTQ
+TheBloke/MXLewd-L2-20B-GGUF
+TheBloke/MXLewd-L2-20B-AWQ
+TheBloke/MXLewd-L2-20B-GPTQ
+ritvikshandilya/llama-2-7b-medtext2
+TheBloke/storytime-13B-GGUF
+TheBloke/storytime-13B-AWQ
+TheBloke/storytime-13B-GPTQ
+TheBloke/MXLewdMini-L2-13B-GGUF
+TheBloke/MXLewdMini-L2-13B-AWQ
+TheBloke/MXLewdMini-L2-13B-GPTQ
+TheBloke/MetaMath-13B-V1.0-AWQ
+TheBloke/MetaMath-13B-V1.0-GGUF
+TheBloke/MetaMath-13B-V1.0-GPTQ
+MostafaAbbas/llama-2-7b-MostafaAbbas
+TheBloke/MAmmoTH-Coder-13B-GGUF
+TheBloke/MAmmoTH-Coder-13B-GPTQ
+TheBloke/MAmmoTH-Coder-13B-AWQ
+TheBloke/MetaMath-70B-V1.0-AWQ
+TheBloke/MetaMath-70B-V1.0-GGUF
+TheBloke/MetaMath-70B-V1.0-GPTQ
+UrbanJoe/llama2-true-llama-master
+petern48/llama-2-7b-chat-meditation-100-samples
+nullcodex/RedPajama-INCITE-Chat-3B-v1-wikidoc
+subabi/DialoGPT-medium-subabicord
+TheBloke/MetaMath-7B-V1.0-AWQ
+TheBloke/MetaMath-7B-V1.0-GPTQ
+TheBloke/MetaMath-7B-V1.0-GGUF
+TinyPixel/testmodel-4
+TheBloke/Synthia-13B-v1.2-AWQ
+TheBloke/Synthia-13B-v1.2-GGUF
+TheBloke/Synthia-13B-v1.2-GPTQ
+lukeleeai/t5-base_baseline
+p1atdev/weblab-10b-instruction-sft-8bit
+TheBloke/Synthia-7B-v1.2-AWQ
+TheBloke/Synthia-7B-v1.2-GGUF
+TheBloke/Synthia-7B-v1.2-GPTQ
+TheBloke/openbuddy-coder-34b-v11-bf16-AWQ
+TheBloke/openbuddy-coder-34b-v11-bf16-GGUF
+TheBloke/openbuddy-coder-34b-v11-bf16-GPTQ
+Envoid/Cybil-13B
+profoz/odsc-sawyer-supervised-instruction
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-07-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+tanvirsrbd1/flan-t5-large-v1
+ElixIA/Market-JSON-COMPLETION-D1
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+lukeleeai/t5-base_c2_mare_ar1_ex8_half_from_ft_dense
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+lukeleeai/t5-base_c2_mare_ar1_ex4_half_from_ft_dense
+yzhuang/autotree_llama_10_vit_12l_local_22d
+schnabear/Llama-2-7b-hf-FinalFantasyDialogue-AdamW8
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+aleph65/J7B-exl2-8b
+open-web-math/codellama_7b_metamathqa_40k
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.001-glb_sd-1-data_sd-0-fx_head
+Locutusque/gpt2-conversational-retrain
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.001-glb_sd-1-data_sd-0-fx_head
+schnabear/Llama-2-7b-hf-FinalFantasyDialogue-AdamW32
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.001-glb_sd-1-data_sd-0-fx_head
+lukeleeai/t5-base_moe_ex8
+lukeleeai/t5-base_moe_ex8_half_from_ft_dense
+open-web-math/llama2_7b_metamathqa_40k
+aazer/my_awesome_billsum_model
+alkahestry/wizard-rp-v1.1
+wilzh40/svgpt-merged
+aleph65/J13B-exl2-8b
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-0.01-glb_sd-1-data_sd-0-fx_head
+mychen76/en-quote-fine-tuned
+lukeleeai/t5-base_c2_mare_ar1_ex8_half_from_ft_dense_normalization
+Logeswaransr/AI_Chaperone
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-0.01-glb_sd-1-data_sd-0-fx_head
+penguinman73/codeparrot-model-small
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r4-q_k_v_o_gate_up_down
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.01-glb_sd-1-data_sd-0-fx_head
+jypppp/llama_2_7b_manual_prefix_final_0924
+wei123602/Llama-2-13b-FINETUNE4_TEST2
+lukeleeai/t5-base_c2_mare_ar1_ex8_half_from_ft_dense_with_sort
+lukeleeai/t5-base_moe_ex16_half_from_ft_dense_with_sort
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-1e-05-glb_sd-1-data_sd-0-fx_head
+anhnv125/llama-op-v14.1
+WGNW/llama-2-7b-ko-auto-gptq-full
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-05-wd-1e-05-glb_sd-1-data_sd-0-fx_head
+wasertech/assistant-llama2-7b-chat-fp16
+lukeleeai/t5-base_c2_mare_ar1_ex8_half_from_ft_dense_with_sort_noise
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-0.0002-wd-1e-05-glb_sd-1-data_sd-0-fx_head
+Alexle/T5-small-en-fr
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-4e-06-wd-1e-05-glb_sd-1-data_sd-0-fx_head
+TheBloke/openbuddy-llama2-34b-v11.1-bf16-AWQ
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-6e-06-wd-1e-05-glb_sd-1-data_sd-0-fx_head
+TheBloke/openbuddy-llama2-34b-v11.1-bf16-GPTQ
+TheBloke/openbuddy-llama2-34b-v11.1-bf16-GGUF
+CortexFoundation/netuid11-bittensor-alpha-13b
+CobraMamba/mamba-gpt-7b
+trientp/vit5_base_qa
+max-zhang/workshop_model
+faresfawzi/t5-small-without-answers
+vineetsharma/databricks-dolly-15k-pythia-70m-deduped
+siddharthjadhav6565/VedaGPT
+lukeleeai/t5-base_c2_mare_ar1_ex8_half_from_ft_dense_with_sort_noise_scaler
+IlyaGusev/rolemax_d10_m3
+TigerResearch/tigerbot-70b-chat
+jeffrey-fong/invoker-13b
+ahmadsajid1989/llama-2-7b-bongo
+faresfawzi/t5-small-with-answers
+SeyedAli/English-to-Persian-Translation-mT5-V1
+ArtORias1/lyrics_generator
+lukeleeai/t5-base_mare_ar1_ex15_half_from_ft_scaler
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r8-q_k_v_o_gate_up_down
+AzureBlack/MLewdBoros-LRPSGPT-2Char-13B-8bit-exl2
+Ansoi/birdstruct2
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-6e-06-wd-0.001-glb_sd-1-data_sd-0-fx_head
+lukeleeai/t5-base_dense2
+RadarSISA/Llama-2-7b-chat-finetune_50ep
+faresfawzi/t5-base_with_answers_3_epochs
+EndMO/movie-llama-2-7b-chat
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-6e-05-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+lordgrim18/llama2-elevate-story-3
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-8e-05-wd-0.001-glb_sd-1-data_sd-0-fx_head
+generAItive/tyler30b-qlora-9.24-2-qlora-2merged-cp108
+RadarSISA/train_val_1ep
+IlyaGusev/rolecuna_d11_m3
+42MARU/sitebunny-13b
+SidharthanRajendran/gpt2-gptq
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-4e-05-wd-1e-05-glb_sd-1-data_sd-0-fx_head
+BaleChen/checkpoint-1300_merged
+BaleChen/checkpoint-800_merged
+Daya7624/Llama-2-7b-chat-hf_Tuned_Webmd
+jmoney54378256438905/CodeLlama-13b-Instruct-4.65bpw
+JNewber/test
+Sanrove/gpt2-GPTQ-4b
+ArturoLC/PsychobotMerged
+SatoruDano/llama-2-7b-finetuned_v1
+DangFutures/Wizard_run
+hy-phen/llama-2-7b-chat-hf-instruct-math
+Pclanglais/Epstein
+Undi95/Amethyst-13B
+simlamkr1/output
+lukeleeai/t5-base_mare_ar1_ex7_half_from_ft_scaler_per_expert
+vineetsharma/databricks-dolly-15k-pythia-70m-deduped-v1
+acalatrava/TinyLlama-1.1B-squad_v2
+Yuhthe/ner-vit5-base-phoner
+achang/F7b
+CHIH-HUNG/llama-2-13b-FINETUNE3_3.3w-r16-q_k_v_o_gate_up_down
+marblyso/DialoGPT-medium-collin
+cujisha/t5-small-finetuned-xsum
+Undi95/U-Amethyst-20B
+harsh99/Codellama-7b-Instruct-hf-product-categorization
+RadarSISA/train_val_100ep
+thevyasamit/t5-fine-tuned-with-yake-keywords
+thebadsektor/Llama-2-7b-chat-finetune
+cmu-mlsp/vicuna-13b-v1.5-chatgpt3-first_last
+yutaizhou/mt5-small-finetuned-amazon-en-es
+cmu-mlsp/guanaco-13b-chatgpt3-first_last
+krthk/llama-2-7b-miniguanaco
+cmu-mlsp/vicuna-7b-v1.5-claud-first_last
+cmu-mlsp/guanaco-7b-claude-first_last
+cmu-mlsp/vicuna-13b-v1.5-claude-first_last
+cmu-mlsp/guanaco-13b-claude-first_last
+winglian/photo-classifier
+cmu-mlsp/vicuna-7b-v1.5-chatgpt4-first_last
+cmu-mlsp/guanaco-7b-chatgpt4-first_last
+baconStrips/Falcon7bLLMNewTwo
+rjarpa/ms-4maps_alpha-ds-newtoken2
+cmu-mlsp/vicuna-13b-v1.5-chatgpt4-first_last
+cmu-mlsp/guanaco-13b-chatgpt4-first_last
+brendonduncan/llama-2-7b-apk-features-ft
+khoantap/terminator-v4
+boomerchan/Magdump-13b
+Medissa/llama-2-7b-finetuned-epoch3
+DenisPashkov/TheBloke_Llama-2-13B-Chat-fp16-nda
+PulsarAI/MythoMax-L2-LoRA-Assemble-13B
+DriveMyScream/Grammatical_Error_Correction
+dima806/flan-t5-small-with-ppo
+wanglab/d2p_llama7_ft_bs32_10e_lr2e4
+thrunlab/t5-base_cola
+wanglab/p2d_llama7_ft_bs32_10e_lr2e4
+hxstar/codeparrot-small
+xzyao/openllama-3b-chat
+DriveMyScream/News_Summarization_Model_hf
+Johnstone8810/llama-2-7b-miniguanaco
+indiejoseph/cantonese-llama-2-7b
+abdgrt/Tinyllama-2-1b-miniguanaco
+faresfawzi/t5-base_without_answers
+KaiNylund/t5-60M-lm-wmt-2012_to_2016
+faresfawzi/t5-base_with_answers
+marcus2000/timelist_cointegrated_multi_task
+kennethge123/imdb-t5-small
+hyonbokan/BGP-LLaMA-13b-2iter-40k-cutoff-max-2048
+brendonduncan/llama-2-7b-apk-features-ft-2
+Nagharjun17/zoningLlama2-GPTQ
+FPHam/PlotBot_13B-GPTQ-V2
+Panchovix/Xwin-LM-70B-V0.1-safetensors
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r4-q_k_v_o_gate_up_down
+UrbanJoe/llama2-true-llama-master-ultimate
+kennethge123/imdb-t5-base
+poisson-fish/Marcoroni-70B-v1-AWQ
+kunal-cogniant/finetuned-Llama-2-13b-hf
+vineetsharma/databricks-dolly-15k-pythia-410m-deduped
+vinhtran2611/opt-125m-gptq-4bit
+chitanda/llama2.13b.wudao.sft.combine.legal.v1.0.seq2k.w16.adamw.NA100.0921.ds
+cmu-mlsp/guanaco-7b-claude-first_last-global_limited
+cmu-mlsp/vicuna-7b-v1.5-claude-first_last-global_limited
+cmu-mlsp/vicuna-7b-v1.5-chatgpt3-first_last-global
+cmu-mlsp/guanaco-7b-chatgpt3-first_last-global
+cmu-mlsp/guanaco-7b-claude-first_last-global
+cmu-mlsp/vicuna-7b-v1.5-chatgpt4-first_last-global_limited
+cmu-mlsp/guanaco-7b-chatgpt4-first_last-global_limited
+HoangCuongNguyen/falcon-rw-1b-cti-finetuned
+cmu-mlsp/vicuna-7b-v1.5-claude-first_last-global
+Locutusque/gpt2-large-conversational-retrain
+cmu-mlsp/vicuna-7b-v1.5-chatgpt3-first_last-global_limited
+cmu-mlsp/guanaco-7b-chatgpt3-first_last-global_limited
+cmu-mlsp/vicuna-13b-v1.5-chatgpt3-first_last-global
+cmu-mlsp/guanaco-13b-chatgpt3-first_last-global
+ChandlerU11/t5_fine_2.0
+cmu-mlsp/guanaco-13b-claude-first_last-global_limited
+shazinho10/Rayn_llama_2
+ARahul2003/opt-125M-4bit-gptq
+panflet/llama-cv-tuned-7b
+karshPrime/flan-t5-small-samsum
+cmu-mlsp/vicuna-13b-v1.5-claude-first_last-global_limited
+gxxxz/Llama-2-7b-chat-finetune
+petern48/gpt2-meditation
+epec254/mpt-7b-rag
+vineetsharma/dialogsum-flan-t5-base
+davidkim205/komt-llama2-13b-v1
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r8-q_k_v_o_gate_up_down
+tyzhu/squad_for_gpt_train_1000_100_gpt2
+perlthoughts/Llama-2-3b-hf
+vineetsharma/dialogsum-flan-t5-small
+arved/llama-2-7b-custom
+hihisu1231/230925_1
+marcus2000/timelist_cointegrated_paraphraser
+lukeleeai/t5-base_cola_dense_epochs5
+palmer0/llama2-fine-tuned-medical
+gangkongkong/llama-2-7b-gangkk-10p-prompt-cosine-grcc1-lr2e5-epoch3
+GreenBitAI/LLaMA-2-70B-2bit-groupsize8
+GreenBitAI/LLaMA-30B-2bit-groupsize8
+jrglqs/llama_2_7b_nonchat
+mmnga/Xwin-LM-7B-GPTQ-calib-ja-2k
+MiNeves-TensorOps/opt-125m-gptq-4bit
+MiNeves-TensorOps/opt-125m-gptq-3bit
+Aharneish/gpt2-spiritual-qa
+mmnga/Xwin-LM-7B-AWQ-calib-ja-100k
+danlou/safespace-1.0-7b
+hihisu1231/mbti_230925_2
+chansurgeplus/open-llama-v2-all-sft-guanaco-dpo-checkpoint
+Shishir1807/M7_Medalpaca
+Domwerr/llama-2-7b-dom
+mychen76/receipt-ocr2json_merged
+josedanielaromi/llama-2-7b-miniguanaco20080318
+Luciya/llama-2-7b-nuv-intent-big
+vineetsharma/pythia-70m-deduped-databricks-dolly-15k-v1
+bobbybelajar/llama2_ampun_dah
+Guilherme34/Jenniferv2-gptq4bit
+cmu-mlsp/guanaco-13b-chatgpt4-first_last-global
+bitadin/bullet_point_checkpoint
+victor/CodeLlama-34b-Instruct-hf
+selinerdem/my_awesome_qa_model
+Ketak-ZoomRx/M7_Alpaca
+selinerdem/pythia-70-m-finetuned
+amazingvince/llama2_xs_233m_GQA-llama-1028-interleaved-deduped-v1-tb-interleaved-deduped-1028-0919
+wokan/gpt2-wikitext2
+bedus-creation/t5-small-dataset-i-lim-to-eng
+bedus-creation/t5-small-dataset-i-lim-to-eng-003
+pleisto/yuren-13b-chatml
+lisamb/customer_complaint-18-llama-2-chat-7b_fine_tune_train_v08_llama2promptstyle
+Vishal24/pfm-intent-fine-tuned
+kennethge123/imdb-gpt2
+CHIH-HUNG/llama-2-13b-FINETUNE4_3.8w-r16-q_k_v_o_gate_up_down
+Cosinoosoida/translation_0
+Thangnv/t5
+bedus-creation/mBart-small-dataset-ii-lim-to-eng-002
+SatoruDano/llama-2-13b-chat-hf-finetuned_v1
+redutskaya/Olya-la
+Cosinoosoida/translation_1
+Cosinoosoida/translation_2
+JNewber/my-str-lora
+hdeldar/llama-2-7b-persian-text-1k-2G
+mghiasvandm/TS-ISA
+Pacoch/valdigpt-0-1-2
+lukeleeai/t5-base_cola_
+sriram100/Llama-2-7b-chat-finetune
+TheBloke/vicuna-33B-AWQ
+TheBloke/vicuna-33B-GGUF
+SeyedAli/Persian-to-English-Translation-mT5-V1
+Panchovix/Euryale-L2-70B-safetensors
+perfectlybaked/flant5-dolly-QnA-prompt
+catweld/llama-2-7b-translate_v3
+israelNwokedi/meta_Llama2_Finetuned_SEO_Instruction_Set_V2
+Sao10K/Medusa-1.2-L2-7B
+eqhylxx/sharp_finetune
+manishiitg/llama-2-13b-aditi-chat-70k-awq
+manishiitg/llama-2-7b-aditi-chat-gpt4
+Kooten/MXLewd-L2-20B-6bpw-h8-exl2
+ani03anwar/decilm-finetuned-bpmn
+abdgrt/Tinyllama-miniguanaco_instruct_121
+Dawan/llama-2-7b-miniguanaco
+abeiler/goatOrig-QLORA
+cmu-mlsp/vicuna-7b-v1.5-claude-first_last_embed
+magnifi/llama2-chat-new-ontology-7-epoch-v1
+ikariauko/test
+abdgrt/Tinyllama-miniguanaco_instruct_121v2
+cmu-mlsp/vicuna-7b-v1.5-claude-first_last
+reciprocate/rm_beluga-7b_hh-full
+cmu-mlsp/vicuna-7b-v1.5-claude-first_last-2
+anuragrawal/flan-t5-base-YT-transcript-sum
+casperhansen/vicuna-7b-v1.5-awq-smoothquant
+nitwof/saiga2_7b_lora
+Kooten/MLewd-ReMM-L2-Chat-20B-6bpw-exl2
+aleph65/J70B-exl2-5b
+Globaly/globaly-1-llama2-13b-OpenOrca-v0.1
+bedus-creation/mBart-small-dataset-i-eng-lim
+AtAndDev/ShortKingv0.1
+weomedia/WEOBlogModel-SM
+dipxsy/jl
+yuansiwe/MJ-prompts-2
+bedus-creation/mBart-small-dataset-i-eng-lim-001
+bedus-creation/mBart-small-dataset-ii-eng-lim
+testerhubhai/krnedo
+sahil2801/small-codellama
+arthurmluz/ptt5-wikilingua-davint
+josem7/SQL-SURI-13B-v0.1
+john97843/llama-2-7b-miniguanaco
+Sao10K/Zephyrus-L1-33B
+Sao10K/Stheno-1.8-L2-13B
+open-web-math/pile-sample_1b_v1.3
+open-web-math/proof-pile-v1_1b_v1.3
+ldos/text_shortening_model_v55
+garipovroma/gpt_2_shakespeare_finetuned-1
+jmoney54378256438905/jondurbin_airoboros-l2-13b-2.2.1-4.65bpw
+Hadnet/llama-2-chat-7b-hf-olavo-articles-17k
+Kooten/MLewd-ReMM-L2-Chat-20B-3bpw-exl2
+IlyaGusev/rolecuna_d12_m3
+DavidLanz/Llama-2-7b-chat-traditional-chinese-qlora-merged
+nick-1234/llama-2-7b-miniguanaco
+joyfine/llama-2-7b-miniguanaco
+bedus-creation/mBart-small-dataset-ii-eng-lim-002
+Undi95/Emerald-13B
+hihisu1231/mbti_230925_3
+lukeleeai/t5-base_qnli_
+mychen76/receipt-ocr2jsonexpv2_mergedexpv2
+flytech/Ruckus-13b-X
+b14hr2z/Taiwan-LLaMa-v1.0-GGUF
+cmu-mlsp/guanaco-7b-chatgpt4-first_last-global
+cmu-mlsp/vicuna-7b-v1.5-chatgpt4-first_last-global
+cmu-mlsp/vicuna-13b-v1.5-chatgpt4-first_last-global
+cmu-mlsp/guanaco-13b-claude-first_last-global
+TigerResearch/tigerbot-70b-chat-4bit-exl2
+cmu-mlsp/vicuna-13b-v1.5-claude-first_last-global
+cmu-mlsp/vicuna-13b-v1.5-chatgpt4-first_last-global_limited
+cmu-mlsp/guanaco-13b-chatgpt4-first_last-global_limited
+Arrivedercis/llama-2-7b-finreport-new
+lowem1/t5_ocr
+tyzhu/squad_title_train_10_eval_10_flan-t5-large
+lowem1/t5_nlp_aug-small
+RadarSISA/13b_train_val_100ep
+mesolitica/malaysian-llama2-7b-32k-instructions
+lukeleeai/t5-base_sst2_
+lukeleeai/t5-base_sst2_dense_epochs5
+Adun/openthaigpt-1.0.0-7b-chat-beta-gptq-4bit
+mrhubo/llama-2-7b-miniguanaco
+lukeleeai/t5-base_qnli_dense_epochs5
+marcus2000/Timelist_small_GPT_from_sber
+tyzhu/squad_title_v3_train_10_eval_10_flan-t5-large
+shrenikb/heteagg_llama3369.218048
+frankminors123/Chinese-CodeLlama-7B-PT
+shrenikb/heteagg_llama4988.284928
+shrenikb/heteagg_llama6607.351808
+tyzhu/squad_no_title_v3_train_10_eval_10_flan-t5-large
+unoooo/llama-7b-hf
+Aharneish/gpt-2-spiritual-qa-test
+tyzhu/squad_baseline_v3_train_10_eval_10_flan-t5-large
+lowem1/t5_ocr_aug-small
+sartmis1/codellama-springboot-quarkus-v1
+mesolitica/malaysian-llama2-13b-32k-instructions
+tyzhu/squad_context_v3_train_10_eval_10_flan-t5-large
+tyzhu/squad_wrong_title_v3_train_10_eval_10_flan-t5-large
+kubernetes-bad/CharGen-v1-l2-13b
+dpml/vicuna_mt_gen2_1350s
+tyzhu/squad_baseline_v3_train_30_eval_10_flan-t5-large
+tyzhu/squad_no_title_v3_train_30_eval_10_flan-t5-large
+gangkongkong/llama-2-ko-7b-gangkk-20p-prompt-cosine-grcc1-lr2e5-epoch3
+tyzhu/squad_title_v3_train_30_eval_10_flan-t5-large
+manishiitg/llama-2-7b-aditi-chat-gpt4-awq
+mmnga/ELYZA-japanese-Llama-2-7b-fast-instruct-GPTQ-calib-ja-2k
+mmnga/ELYZA-japanese-Llama-2-7b-fast-instruct-AWQ-calib-ja-100k
+tyzhu/squad_context_v3_train_30_eval_10_flan-t5-large
+tyzhu/squad_wrong_title_v3_train_30_eval_10_flan-t5-large
+manishiitg/llama-2-7b-aditi-chat-gpt4-GPTQ
+ldos/text_shortening_model_v56
+LTC-AI-Labs/L2-7b-Base-test-WVG
+TinyPixel/LT-1
+deepanshu30699/wizard-python-financial_2
+tyzhu/squad_baseline_v4_train_30_eval_10_flan-t5-large
+garipovroma/gpt_2_shakespeare_finetuned-2-400
+tyzhu/squad_title_v4_train_30_eval_10_flan-t5-large
+tyzhu/squad_no_title_v4_train_30_eval_10_flan-t5-large
+Rageshhf/falcon_final_merged
+Kooten/U-Amethyst-20B-6bpw-h8-exl2
+poisson-fish/Phind-CodeLlama-34B-v2-AWQ
+tyzhu/squad_context_v4_train_30_eval_10_flan-t5-large
+ArnaudHureaux/Llama-2-70b-chat-hf-miniguanaco
+tyzhu/squad_no_title_strict_v4_train_30_eval_10_flan-t5-large
+tyzhu/squad_wrong_title_v4_train_30_eval_10_flan-t5-large
+AppsDelivered/testq
+tyzhu/squad_title_v4_train_30_eval_10_flan-t5-xl
+arved/codellama2-finetuned-codex-fin
+Ankur464221/flan-t5-small-finetuned-transcripts
+sauravsinghpaliwal/codellama2
+imi1/Synthia-70B-v1.2-2.30bpw-h6-exl2
+NimrahJabbin/Llama-2-7b-chat-finetune_sample_data_nimrah
+Kooten/U-Amethyst-20B-3bpw-exl2
+tyzhu/squad_no_title_v4_train_30_eval_10_flan-t5-xl
+chrisyuan45/TempLlama-7b-chat
+kms7530/paust-t5-small-hatespeach
+tyzhu/squad_baseline_v4_train_30_eval_10_flan-t5-xl
+traeval/tesla500-classification-18-llama-2-7b
+woo2/Llama-2-7b-chat-finetune_bank
+mindchain/META-LLAMA-Llama-2-7B-HF_AWQ
+Monkeydddd/luf-10000
+Divya0908/llama2-7b-rollsroyce-sharded-instruct
+mrhubo/llama-2-7b-custom
+legacy107/adapter-flan-t5-large-bottleneck-adapter-covidqa
+Cris-AV/Llama-prueba
+xavierbarbier/flan-t5-small-ameli_qa_1k
+pollux83/llama-2-7b-chat-hf-instruct-medical-assistance
+tyzhu/squad_baseline_v4_train_10_eval_10_flan-t5-large
+traeval/tesla1500_llama2_7b-2-7b
+kzaho/FindSUM-train_roo_segment_0_input_2_1000
+aleph65/J70B-exl2-5bit-wiki
+Michelvh/peft-flan-t5-mc-question-generation-eduqg
+BAH-ML-ASC/MPT-30B-Instruct
+Taewhoo/llama2-databricks
+Akram98/flan-t5-small-finetuned-Xsum
+imone/LLaMA2_7B_with_EOT_token
+tyzhu/squad_context_v4_train_10_eval_10_flan-t5-large
+qianyu88/mt5-small-finetuned-amazon-en-es
+neoneye/llama-2-7b-simonsolver
+InxiteOut/bloom560m
+Undi95/SynthiAthena-v2
+Mintrz/Loobe-1
+lowem1/t5_tsdae_aug-small
+tyzhu/squad_title_v4_train_10_eval_10_flan-t5-large
+flytech/Ruckus-7b-c2
+JvManger/llama-2-13b-german-pharma1
+woo2/Llama-2-7b-chat-finetune_bank2
+kartiksharma/flan-t5-large_8bit
+flytech/Ruckus-7b-c3
+hdeldar/llama-2-7b-persian-text-1k-1
+edivet92/edivet_telebot
+lukeleeai/t5-base_boolq_dense_epochs5
+flytech/Ruckus-13b-c1
+IAteSpaghettiForLunch/DialoGPT-medium-GLADoS
+IAteSpaghettiForLunch/GLADoSBOT
+tyzhu/squad_wrong_title_v4_train_10_eval_10_flan-t5-large
+ccore/opt-350m-open-data-understanding
+lukeleeai/t5-base_boolq_
+lukeleeai/t5-base_multirc_dense_epochs5
+MerziaAdamjee/OPT-IML-finetuned-gsm-hard
+josem7/Schema-link-SURI-13B-v0.1
+tyzhu/squad_no_title_v4_train_10_eval_10_flan-t5-large
+testing244/t5_recommendation_sports_equipment_english
+Undi95/MLewd-Chat-v2-13B
+klyang/MentaLLaMA-chat-7B
+InxiteOut/bloom560m_8bit
+tyzhu/squad_no_title_strict_v4_train_10_eval_10_flan-t5-large
+lukeleeai/t5-base_multirc_
+IkariDev/Athena-v3
+flytech/Ruckus-13b-Y
+SadhanaS/t5-small-finetuned-xsum
+chakochen/mt5-finetuned-amazon-en-es
+LemTenku/s
+Asap7772/sft-review-model-20230926-205452
+Asap7772/sft-review-model-20230926-211138
+Asap7772/sft-review-model-20230926-211317
+Undi95/MLewd-v2.4-13B
+Frisson/LLZmRG
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+ldos/text_shortening_model_v57
+Fredbeijixiong/llama-2-7b-chat-obqa-v1
+kanishka/smolm-autoreg-bpe-babylm-1e-3
+BrunoGR/EmotionalBot_LLaMA2
+cmu-mlsp/guanaco-7B-HF-claude-atk2-first_last
+ldos/text_shortening_model_v58
+ldos/text_shortening_model_v59
+AzureBlack/U-Amethyst-20B-5bit-exl2
+cmu-mlsp/guanaco-7B-HF-gpt4-atk2-first_last
+cmu-mlsp/vicuna-7b-v1.5-gpt4-atk2-first_last
+cmu-mlsp/vicuna-7b-v1.5-claude-atk2-first_last
+IlyaGusev/salieri_d13_m3
+Asap7772/sft-review-model-20230926-230123
+maximuslee07/llama-2-7b-rockwell-final
+Asap7772/sft-review-model-20230926-232421
+Asap7772/sft-review-model-20230926-232443
+AlekseyKorshuk/mythical-wizard-rp
+omidvaramin/Ht5-small
+foobar8675/llama-2-7b-sentiment-classifier
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-1-fx_head
+Mintrz/Loobe-2
+Undi95/Emerhyst-20B
+YULU-BIKE/LLAMA_YULU
+yozozaya/test-duplicator-with-new-repo
+aman-mehra/gpt2-medium-finetune-squad-ep-1.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-2-fx_head
+bri25yu-temp/codellama_api_v2_instruct_argcot_zeroshot_sept13_34B_longFTHyperparams_BS128
+Nikolai5592/DialoGPT-Medium-RickBot
+arasan01/ELYZA-japanese-Llama-2-7b-fast-instruct-coreml-tokenizer
+bri25yu-temp/codellama_api_v2_instruct_argcot_zeroshot_sept13_34B_longFTHyperparams_BS64
+W1lson/test
+aman-mehra/gpt2-medium-finetune-squad-ep-5.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+Abe13/juniper-certificate-Xwin-LM-7B-V0.1
+aman-mehra/gpt2-medium-finetune-squad-ep-6.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-1-fx_head
+aman-mehra/gpt2-medium-finetune-squad-ep-7.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-2-fx_head
+SebastianMoncaleano/cammel_model_context_to_json
+aman-mehra/gpt2-medium-finetune-squad-ep-8.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-3-fx_head
+tyzhu/squad_wrong_title_v4_train_30_eval_10_flan-t5-xl
+aman-mehra/gpt2-medium-finetune-squad-ep-9.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-4-fx_head
+aman-mehra/gpt2-medium-finetune-squad-ep-10.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-5-fx_head
+SebastianMoncaleano/cammel_model_v2
+aman-mehra/gpt2-medium-finetune-squad-ep-11.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-6-fx_head
+flytech/Ruckus-13b-AX
+aman-mehra/gpt2-medium-finetune-squad-ep-12.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-7-fx_head
+aman-mehra/gpt2-medium-finetune-squad-ep-13.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-8-fx_head
+aman-mehra/gpt2-medium-finetune-squad-ep-4.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-9-fx_head
+tyzhu/squad_wrong_title_v4_train_10_eval_10_flan-t5-xl
+posicube/Llama-chat-AY-13B
+aman-mehra/gpt2-medium-finetune-squad-ep-3.0-lr-3e-07-wd-0.0001-glb_sd-1-data_sd-10-fx_head
+cmu-mlsp/vicuna-13b-v1.5-gpt4-atk2-first_last
+cmu-mlsp/guanaco-13B-HF-gpt4-atk2-first_last
+kunal-cogniant/finetuned-Llama-2-7b-chat-hf
+StarkOsae/starcoder-7b-finetuned-codecontests
+bakmeon/llama-2-7b-blueist2
+codefuse-ai/CodeFuse-CodeLlama-34B-4bits
+IDEA-CCNL/Ziya-Coding-34B-v1.0
+lukeleeai/t5-base_sst2_mare_ar1_ex15
+Dizzykong/my_cool_model
+tyzhu/squad_no_title_v4_train_10_eval_10_flan-t5-xl
+ArchitKohli/Llama-2-7b-chat-hf-fine-tuned
+naul/gpt2-vietnamese
+MichaelVeser/codellama-finetuned-logs
+Priyanhsu/DialoGPT-small-Doctert-Bot
+rishabluthra/llama-2-7b-miniguanaco
+frankminors123/Chinese-CodeLlama-7B-SFT
+RahaMohebbi/simoolation
+tyzhu/squad_baseline_v4_train_10_eval_10_flan-t5-xl
+Gayathri142214002/t5_Question_Generation_3
+TigerResearch/tigerbot-13b-chat-4bit-exl2
+yzhuang/autotree_llama_10_vit_12l_local_7d
+eqhylxx/sharp_10
+eqhylxx/sharp_30
+aman-mehra/gpt2-medium-finetune-squad-ep-5.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+eqhylxx/sharp_50
+eqhylxx/sharp_70
+fez2022/my_awesome_billsum_model
+castorini/rank_vicuna_7b_v1_fp16
+aman-mehra/gpt2-medium-finetune-squad-ep-6.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-1-fx_head
+castorini/rank_vicuna_7b_v1_noda
+castorini/rank_vicuna_7b_v1_noda_fp16
+ezeroz/llama2-7b-IBK
+aman-mehra/gpt2-medium-finetune-squad-ep-7.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-2-fx_head
+aman-mehra/gpt2-medium-finetune-squad-ep-8.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-3-fx_head
+GabSo/santacoder-finetuned-robot2
+aman-mehra/gpt2-medium-finetune-squad-ep-9.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-4-fx_head
+ArchitKohli/Llama-2-7b-chat-hf-fine-tuned-on-constitution
+aman-mehra/gpt2-medium-finetune-squad-ep-10.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-5-fx_head
+aman-mehra/gpt2-medium-finetune-squad-ep-11.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-6-fx_head
+nailiamirzakhmedova/alpaca-7b
+klyang/MentaLLaMA-chat-13B
+castorini/rank_vicuna_7b_v1
+dpml/vicuna_mt_gen2_160s
+dpml/vicuna_mt_gen2_320s
+dpml/vicuna_mt_gen2_480s
+NeliHateva/Llama-2-7b-chat-hf-events-stage1-fine-tuned-sdred
+technoari/llama-2-7b-miniguanaco
+aman-mehra/gpt2-medium-finetune-squad-ep-12.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-7-fx_head
+imdatta0/llama2-13b-ft2
+AK-12/llama-2-geeta-fine-tune
+aman-mehra/gpt2-medium-finetune-squad-ep-13.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-8-fx_head
+aman-mehra/gpt2-medium-finetune-squad-ep-4.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-9-fx_head
+nlewins/t5-small-finetuned-en-to-ro
+kavin23/qa_gpt2
+tyzhu/squad_context_v4_train_10_eval_10_flan-t5-xl
+aman-mehra/gpt2-medium-finetune-squad-ep-3.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-10-fx_head
+infCapital/llama2-7b-chatvi
+TokenBender/RoboBobo
+TheBloke/law-LLM-GGUF
+TheBloke/law-LLM-AWQ
+TheBloke/law-LLM-GPTQ
+taewhan/k2t-silsil
+IlyaGusev/salieri_d13_m4
+Rintron/LosslessMegaQuakeC-llama2-7b-mini
+Manoj21k/flan-T5-finetuned-Samsum
+ldos/text_shortening_model_v61
+chiranjeevraja/bloom560m_8bit
+ldos/text_shortening_model_v62
+imdatta0/llama2-13b-wizardLM-orca-5modules
+TheBloke/sqlcoder-GPTQ
+R136a1/Synthia-13B-v1.2-EXL2
+mayank1307/llama-2-7b-miniguanaco
+Tianlin668/MentalT5
+franco-rojas/gpt2-finetuned-test1
+wei123602/Llama-2-13b-FINETUNE4_compare8k2
+Tianlin668/MentalBART
+ldos/text_shortening_model_v63
+IlyaGusev/salieri_d13_m5
+Rageshhf/llama_finetune_merged
+mncai/Llama2-7B-guanaco-1k
+Luciya/llama-2-7b-nuv-intent-1
+maibinh/llama2_fine_tuning_minimized
+Natet/mt5-small-finetuned-amazon-en-es
+Ammad1Ali/Alex-Test-GPT-1
+mncai/Llama2-7B-guanaco-dolphin-500
+kittn/mistral-7B-v0.1-hf
+phospho-app/mistral_7b_V0.1
+YanaS/llama-2-7b-langchain-chat-GGUF
+imishikasoni/Llama-2-7b-Finetuned
+Luciya/llama-2-7b-nuv-intent-2
+TheBloke/U-Amethyst-20B-GGUF
+TheBloke/U-Amethyst-20B-AWQ
+TheBloke/U-Amethyst-20B-GPTQ
+franco-rojas/gpt2-finetuned-test2
+MichaelVeser/codellama-finetuned-logs-codealpaca
+pminervini/mistral-7B-v0.1
+ArpitaAeries/my_awesome_billsum_model
+Luciya/llama-2-7b-nuv-intent-3
+ccore/opt-1.3b-open-data-understanding
+CWKSC/opt-125m-gptq-4bits
+Shishir1807/M1_Medalpaca
+Vaibhav9401/toxic_mt5_test
+nlewins/mt5-small-finetuned-ceb-to-en
+NeliHateva/Llama-2-7b-chat-hf-events-fine-tuned-sdred
+notaphoenix/argument-transfer-liberal_l0.2_median
+notaphoenix/argument-transfer-liberal_l0.5_median
+notaphoenix/argument-transfer-conservative_l0.2_median
+notaphoenix/argument-transfer-conservative_l0.5_median
+minhbui/viettel_v3
+duxprajapati/ad_copy_model
+jojo0217/ChatSKKU5.8B
+chakochen/mt5-destination-inference
+minhbui/viettel_v3_merged
+eatingChen8059/llama2-finetune-docQA
+khointn/sft_opt
+pepe4235/recruitment-384
+MerziaAdamjee/OPT-IML-finetuned-sql
+nguyenlephucvinh2011/llama-2-7b-chat-hf_HaKhanhPhuong
+rexionmars/llama-2-7b-evaluator
+josem7/SQL-SURI-13B-v0.1-GPTQ
+Abhishek412/llama-2-8bit
+SaffalPoosh/system_design_expert
+Undi95/Emerhyst-13B
+LTC-AI-Labs/L2-7b-Hermes-WVG-Test
+atorsvn/TinyLlama-1.1B-Chat-v0.1-gptq-4bit
+generAItive/tyler30b-qlora-9.27-3merged
+team-lucid/t5-v1_1-large-ko
+wizzl0r/scryptonaut-codellama-instruct-13b-lora64
+Jairnetojp/hate-classification-llama-2-7b
+firelzrd/Xwin-LM-70B-V0.1-fp16-safetensors
+cmu-mlsp/guanaco-7B-HF-gpt3.5-first_last-global_limited
+cmu-mlsp/vicuna-7b-v1.5-gpt3.5-first_last-global_limited
+jeffrey-fong/invoker-13b-GPTQ
+usvsnsp/pythia-2.8b-ppo
+cmu-mlsp/vicuna-13b-v1.5-gpt3.5-first_last-global_limited
+cmu-mlsp/guanaco-13B-HF-gpt3.5-first_last-global_limited
+lowem1/t5_med_ocr_aug-small
+TheBloke/Marcoroni-70B-v1-AWQ
+TheBloke/Marcoroni-70B-v1-GGUF
+TheBloke/Marcoroni-70B-v1-GPTQ
+vagmi/squeal
+lowem1/t5_med_tsdae_aug-small
+lowem1/t5_med_nlp_aug-small
+wizzl0r/scryptonaut-codellama-instruct-13b-alpaca-lora64
+sartmis1/starcoder-springboot-quarkus-v1
+ydshieh/debug_falcon
+harpreetsahota/DeciLM-6B-hf-open-instruct-v1-blog-post
+Riiid/sheep-duck-llama-2-70b-v1.1
+dasnil500/end-to-end-am
+TheBloke/Athena-v3-GPTQ
+TheBloke/Athena-v3-AWQ
+TheBloke/Athena-v3-GGUF
+wizzl0r/scryptonaut-codellama-instruct-13b-alpacamod-lora64
+yujiepan/falcon-tiny-random
+IlyaGusev/salieri_d10_m6
+alif-munim/llama2_guanaco
+42MARU/polyglot-ko-12.8b-instruct
+TheBloke/openbuddy-openllama-7B-v12-bf16-GPTQ
+TheBloke/openbuddy-openllama-7B-v12-bf16-GGUF
+TheBloke/openbuddy-openllama-7B-v12-bf16-AWQ
+tyzhu/squad_rare_v4_train_30_eval_10_flan-t5-xl
+lmonsalve/Contitucion-15_lemm_tilde_interseccion
+aman-mehra/gpt2-medium-finetune-squad-ep-0.1-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-0-fx_head
+notaphoenix/argument-transfer-liberal_l0.2
+KuroganeNiello/medium-NebBot
+Vrushali/Agrigpt
+notaphoenix/argument-transfer-liberal_l0.5
+siddanshchawla/Llama-2-7b-chat-finetune_inference
+aman-mehra/gpt2-medium-finetune-squad-ep-0.2-lr-2e-06-wd-0.0001-glb_sd-1-data_sd-7-fx_head
+FPHam/Jackson_The_Formalizer_13b_GPTQ
+TheBlake/Llama-2-7b
+gwlms/t5-efficient-base-dewiki-v1-germeval14
+notaphoenix/argument-transfer-conservative_l0.2
+notaphoenix/argument-transfer-conservative_l0.5
+cmu-mlsp/guanaco-7B-HF-gpt3.5-atk2-first_last
+cmu-mlsp/vicuna-7b-v1.5-gpt3.5-atk2-first_last
+vjeronymo2/monot5-3b-msmarco-10k-half
+ryanyard/llama-2-7b-miniguanaco
+luozhuanggary/vicuna-7b-v1.5-sft-math-merged
+Globaly/globaly-1-llama2-13b-OpenOrca-v0.2
+cmu-mlsp/guanaco-13B-HF-gpt3.5-first_last-global
+research-dump/t5-base_hoax_timestamp_classifier_v1
+wtang06/mpt-125m-c4
+PocketDoc/Dans-MysteryModel-13b-exl2-6.0bpw
+Asap7772/sft-review-model-20230927-215151
+Asap7772/sft-review-model-20230927-220132
+Asap7772/sft-review-model-20230927-220131
+Mintrz/Loobe-3
+badokorach/flan-t5-small-qa-9
+nick-1234/llama-2-7b-finetuned-for-news_comments_generation
+lajosd/llama-2-7b-miniguanaco
+aman-mehra/gpt2-medium-finetune-squad-ep-2.0-lr-3e-06-wd-0.0001-glb_sd-1-data_sd-500-fx_head
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/common_utils.py
new file mode 100644
index 00000000..99477d1a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/common_utils.py
@@ -0,0 +1,19 @@
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class InfinityError(BaseLLMException):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url="https://github.com/michaelfeil/infinity"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ status_code=status_code,
+ message=message,
+ request=self.request,
+ response=self.response,
+ ) # Call the base class constructor with the parameters it needs
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/handler.py
new file mode 100644
index 00000000..5b8a2c0c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/handler.py
@@ -0,0 +1,5 @@
+"""
+Infinity Rerank - uses `llm_http_handler.py` to make httpx requests
+
+Request/Response transformation is handled in `transformation.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/transformation.py
new file mode 100644
index 00000000..1e7234ab
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/transformation.py
@@ -0,0 +1,116 @@
+"""
+Transformation logic from Cohere's /v1/rerank format to Infinity's `/v1/rerank` format.
+
+Why separate file? Make it easy to see how transformation works
+"""
+
+import uuid
+from typing import List, Optional
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.llms.cohere.rerank.transformation import CohereRerankConfig
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.rerank import (
+ RerankBilledUnits,
+ RerankResponse,
+ RerankResponseDocument,
+ RerankResponseMeta,
+ RerankResponseResult,
+ RerankTokens,
+)
+
+from .common_utils import InfinityError
+
+
+class InfinityRerankConfig(CohereRerankConfig):
+ def get_complete_url(self, api_base: Optional[str], model: str) -> str:
+ if api_base is None:
+ raise ValueError("api_base is required for Infinity rerank")
+ # Remove trailing slashes and ensure clean base URL
+ api_base = api_base.rstrip("/")
+ if not api_base.endswith("/rerank"):
+ api_base = f"{api_base}/rerank"
+ return api_base
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ ) -> dict:
+ if api_key is None:
+ api_key = (
+ get_secret_str("INFINITY_API_KEY")
+ or get_secret_str("INFINITY_API_KEY")
+ or litellm.infinity_key
+ )
+
+ default_headers = {
+ "Authorization": f"bearer {api_key}",
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+
+ # If 'Authorization' is provided in headers, it overrides the default.
+ if "Authorization" in headers:
+ default_headers["Authorization"] = headers["Authorization"]
+
+ # Merge other headers, overriding any default ones except Authorization
+ return {**default_headers, **headers}
+
+ def transform_rerank_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: RerankResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ request_data: dict = {},
+ optional_params: dict = {},
+ litellm_params: dict = {},
+ ) -> RerankResponse:
+ """
+ Transform Infinity rerank response
+
+ No transformation required, Infinity follows Cohere API response format
+ """
+ try:
+ raw_response_json = raw_response.json()
+ except Exception:
+ raise InfinityError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+
+ _billed_units = RerankBilledUnits(**raw_response_json.get("usage", {}))
+ _tokens = RerankTokens(
+ input_tokens=raw_response_json.get("usage", {}).get("prompt_tokens", 0),
+ output_tokens=(
+ raw_response_json.get("usage", {}).get("total_tokens", 0)
+ - raw_response_json.get("usage", {}).get("prompt_tokens", 0)
+ ),
+ )
+ rerank_meta = RerankResponseMeta(billed_units=_billed_units, tokens=_tokens)
+
+ cohere_results: List[RerankResponseResult] = []
+ if raw_response_json.get("results"):
+ for result in raw_response_json.get("results"):
+ _rerank_response = RerankResponseResult(
+ index=result.get("index"),
+ relevance_score=result.get("relevance_score"),
+ )
+ if result.get("document"):
+ _rerank_response["document"] = RerankResponseDocument(
+ text=result.get("document")
+ )
+ cohere_results.append(_rerank_response)
+ if cohere_results is None:
+ raise ValueError(f"No results found in the response={raw_response_json}")
+
+ return RerankResponse(
+ id=raw_response_json.get("id") or str(uuid.uuid4()),
+ results=cohere_results,
+ meta=rerank_meta,
+ ) # Return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/embedding/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/embedding/transformation.py
new file mode 100644
index 00000000..5263be90
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/embedding/transformation.py
@@ -0,0 +1,78 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to Jina AI's `/v1/embeddings` format.
+
+Why separate file? Make it easy to see how transformation works
+
+Docs - https://jina.ai/embeddings/
+"""
+
+import types
+from typing import List, Optional, Tuple
+
+from litellm import LlmProviders
+from litellm.secret_managers.main import get_secret_str
+
+
+class JinaAIEmbeddingConfig:
+ """
+ Reference: https://jina.ai/embeddings/
+ """
+
+ def __init__(
+ self,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self) -> List[str]:
+ return ["dimensions"]
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict
+ ) -> dict:
+ if "dimensions" in non_default_params:
+ optional_params["dimensions"] = non_default_params["dimensions"]
+ return optional_params
+
+ def _get_openai_compatible_provider_info(
+ self,
+ api_base: Optional[str],
+ api_key: Optional[str],
+ ) -> Tuple[str, Optional[str], Optional[str]]:
+ """
+ Returns:
+ Tuple[str, Optional[str], Optional[str]]:
+ - custom_llm_provider: str
+ - api_base: str
+ - dynamic_api_key: str
+ """
+ api_base = (
+ api_base or get_secret_str("JINA_AI_API_BASE") or "https://api.jina.ai/v1"
+ ) # type: ignore
+ dynamic_api_key = api_key or (
+ get_secret_str("JINA_AI_API_KEY")
+ or get_secret_str("JINA_AI_API_KEY")
+ or get_secret_str("JINA_AI_API_KEY")
+ or get_secret_str("JINA_AI_TOKEN")
+ )
+ return LlmProviders.JINA_AI.value, api_base, dynamic_api_key
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/handler.py
new file mode 100644
index 00000000..94076da4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/handler.py
@@ -0,0 +1,3 @@
+"""
+HTTP calling migrated to `llm_http_handler.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/transformation.py
new file mode 100644
index 00000000..8d0a9b14
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/transformation.py
@@ -0,0 +1,143 @@
+"""
+Transformation logic from Cohere's /v1/rerank format to Jina AI's `/v1/rerank` format.
+
+Why separate file? Make it easy to see how transformation works
+
+Docs - https://jina.ai/reranker
+"""
+
+import uuid
+from typing import Any, Dict, List, Optional, Tuple, Union
+
+from httpx import URL, Response
+
+from litellm.llms.base_llm.chat.transformation import LiteLLMLoggingObj
+from litellm.llms.base_llm.rerank.transformation import BaseRerankConfig
+from litellm.types.rerank import (
+ OptionalRerankParams,
+ RerankBilledUnits,
+ RerankResponse,
+ RerankResponseMeta,
+ RerankTokens,
+)
+from litellm.types.utils import ModelInfo
+
+
+class JinaAIRerankConfig(BaseRerankConfig):
+ def get_supported_cohere_rerank_params(self, model: str) -> list:
+ return [
+ "query",
+ "top_n",
+ "documents",
+ "return_documents",
+ ]
+
+ def map_cohere_rerank_params(
+ self,
+ non_default_params: dict,
+ model: str,
+ drop_params: bool,
+ query: str,
+ documents: List[Union[str, Dict[str, Any]]],
+ custom_llm_provider: Optional[str] = None,
+ top_n: Optional[int] = None,
+ rank_fields: Optional[List[str]] = None,
+ return_documents: Optional[bool] = True,
+ max_chunks_per_doc: Optional[int] = None,
+ max_tokens_per_doc: Optional[int] = None,
+ ) -> OptionalRerankParams:
+ optional_params = {}
+ supported_params = self.get_supported_cohere_rerank_params(model)
+ for k, v in non_default_params.items():
+ if k in supported_params:
+ optional_params[k] = v
+ return OptionalRerankParams(
+ **optional_params,
+ )
+
+ def get_complete_url(self, api_base: Optional[str], model: str) -> str:
+ base_path = "/v1/rerank"
+
+ if api_base is None:
+ return "https://api.jina.ai/v1/rerank"
+ base = URL(api_base)
+ # Reconstruct URL with cleaned path
+ cleaned_base = str(base.copy_with(path=base_path))
+
+ return cleaned_base
+
+ def transform_rerank_request(
+ self, model: str, optional_rerank_params: OptionalRerankParams, headers: Dict
+ ) -> Dict:
+ return {"model": model, **optional_rerank_params}
+
+ def transform_rerank_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: RerankResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ request_data: Dict = {},
+ optional_params: Dict = {},
+ litellm_params: Dict = {},
+ ) -> RerankResponse:
+ if raw_response.status_code != 200:
+ raise Exception(raw_response.text)
+
+ logging_obj.post_call(original_response=raw_response.text)
+
+ _json_response = raw_response.json()
+
+ _billed_units = RerankBilledUnits(**_json_response.get("usage", {}))
+ _tokens = RerankTokens(**_json_response.get("usage", {}))
+ rerank_meta = RerankResponseMeta(billed_units=_billed_units, tokens=_tokens)
+
+ _results: Optional[List[dict]] = _json_response.get("results")
+
+ if _results is None:
+ raise ValueError(f"No results found in the response={_json_response}")
+
+ return RerankResponse(
+ id=_json_response.get("id") or str(uuid.uuid4()),
+ results=_results, # type: ignore
+ meta=rerank_meta,
+ ) # Return response
+
+ def validate_environment(
+ self, headers: Dict, model: str, api_key: Optional[str] = None
+ ) -> Dict:
+ if api_key is None:
+ raise ValueError(
+ "api_key is required. Set via `api_key` parameter or `JINA_API_KEY` environment variable."
+ )
+ return {
+ "accept": "application/json",
+ "content-type": "application/json",
+ "authorization": f"Bearer {api_key}",
+ }
+
+ def calculate_rerank_cost(
+ self,
+ model: str,
+ custom_llm_provider: Optional[str] = None,
+ billed_units: Optional[RerankBilledUnits] = None,
+ model_info: Optional[ModelInfo] = None,
+ ) -> Tuple[float, float]:
+ """
+ Jina AI reranker is priced at $0.000000018 per token.
+ """
+ if (
+ model_info is None
+ or "input_cost_per_token" not in model_info
+ or model_info["input_cost_per_token"] is None
+ or billed_units is None
+ ):
+ return 0.0, 0.0
+
+ total_tokens = billed_units.get("total_tokens")
+ if total_tokens is None:
+ return 0.0, 0.0
+
+ input_cost = model_info["input_cost_per_token"] * total_tokens
+ return input_cost, 0.0
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/litellm_proxy/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/litellm_proxy/chat/transformation.py
new file mode 100644
index 00000000..dadd921a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/litellm_proxy/chat/transformation.py
@@ -0,0 +1,33 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to VLLM's `/v1/chat/completions`
+"""
+
+from typing import List, Optional, Tuple
+
+from litellm.secret_managers.main import get_secret_str
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class LiteLLMProxyChatConfig(OpenAIGPTConfig):
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = api_base or get_secret_str("LITELLM_PROXY_API_BASE") # type: ignore
+ dynamic_api_key = api_key or get_secret_str("LITELLM_PROXY_API_KEY")
+ return api_base, dynamic_api_key
+
+ def get_models(
+ self, api_key: Optional[str] = None, api_base: Optional[str] = None
+ ) -> List[str]:
+ api_base, api_key = self._get_openai_compatible_provider_info(api_base, api_key)
+ if api_base is None:
+ raise ValueError(
+ "api_base not set for LiteLLM Proxy route. Set in env via `LITELLM_PROXY_API_BASE`"
+ )
+ models = super().get_models(api_key=api_key, api_base=api_base)
+ return [f"litellm_proxy/{model}" for model in models]
+
+ @staticmethod
+ def get_api_key(api_key: Optional[str] = None) -> Optional[str]:
+ return api_key or get_secret_str("LITELLM_PROXY_API_KEY")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/lm_studio/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/lm_studio/chat/transformation.py
new file mode 100644
index 00000000..147e8e92
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/lm_studio/chat/transformation.py
@@ -0,0 +1,20 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to LM Studio's `/chat/completions`
+"""
+
+from typing import Optional, Tuple
+
+from litellm.secret_managers.main import get_secret_str
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class LMStudioChatConfig(OpenAIGPTConfig):
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = api_base or get_secret_str("LM_STUDIO_API_BASE") # type: ignore
+ dynamic_api_key = (
+ api_key or get_secret_str("LM_STUDIO_API_KEY") or " "
+ ) # vllm does not require an api key
+ return api_base, dynamic_api_key
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/lm_studio/embed/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/lm_studio/embed/transformation.py
new file mode 100644
index 00000000..1285550c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/lm_studio/embed/transformation.py
@@ -0,0 +1,50 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to LM Studio's `/v1/embeddings` format.
+
+Why separate file? Make it easy to see how transformation works
+
+Docs - https://lmstudio.ai/docs/basics/server
+"""
+
+import types
+from typing import List
+
+
+class LmStudioEmbeddingConfig:
+ """
+ Reference: https://lmstudio.ai/docs/basics/server
+ """
+
+ def __init__(
+ self,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self) -> List[str]:
+ return []
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict
+ ) -> dict:
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/maritalk.py b/.venv/lib/python3.12/site-packages/litellm/llms/maritalk.py
new file mode 100644
index 00000000..5f2b8d71
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/maritalk.py
@@ -0,0 +1,66 @@
+from typing import List, Optional, Union
+
+from httpx._models import Headers
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class MaritalkError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[dict, Headers]] = None,
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
+
+
+class MaritalkConfig(OpenAIGPTConfig):
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[float] = None,
+ presence_penalty: Optional[float] = None,
+ top_p: Optional[float] = None,
+ top_k: Optional[int] = None,
+ temperature: Optional[float] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ stop: Optional[List[str]] = None,
+ stream: Optional[bool] = None,
+ stream_options: Optional[dict] = None,
+ tools: Optional[List[dict]] = None,
+ tool_choice: Optional[Union[str, dict]] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return [
+ "frequency_penalty",
+ "presence_penalty",
+ "top_p",
+ "top_k",
+ "temperature",
+ "max_tokens",
+ "n",
+ "stop",
+ "stream",
+ "stream_options",
+ "tools",
+ "tool_choice",
+ ]
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return MaritalkError(
+ status_code=status_code, message=error_message, headers=headers
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/mistral/chat.py b/.venv/lib/python3.12/site-packages/litellm/llms/mistral/chat.py
new file mode 100644
index 00000000..fc454038
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/mistral/chat.py
@@ -0,0 +1,5 @@
+"""
+Calls handled in openai/
+
+as mistral is an openai-compatible endpoint.
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/mistral/embedding.py b/.venv/lib/python3.12/site-packages/litellm/llms/mistral/embedding.py
new file mode 100644
index 00000000..fc454038
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/mistral/embedding.py
@@ -0,0 +1,5 @@
+"""
+Calls handled in openai/
+
+as mistral is an openai-compatible endpoint.
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/mistral/mistral_chat_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/mistral/mistral_chat_transformation.py
new file mode 100644
index 00000000..3e7a97c9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/mistral/mistral_chat_transformation.py
@@ -0,0 +1,212 @@
+"""
+Transformation logic from OpenAI /v1/chat/completion format to Mistral's /chat/completion format.
+
+Why separate file? Make it easy to see how transformation works
+
+Docs - https://docs.mistral.ai/api/
+"""
+
+from typing import List, Literal, Optional, Tuple, Union
+
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ handle_messages_with_content_list_to_str_conversion,
+ strip_none_values_from_message,
+)
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.mistral import MistralToolCallMessage
+from litellm.types.llms.openai import AllMessageValues
+
+
+class MistralConfig(OpenAIGPTConfig):
+ """
+ Reference: https://docs.mistral.ai/api/
+
+ The class `MistralConfig` provides configuration for the Mistral's Chat API interface. Below are the parameters:
+
+ - `temperature` (number or null): Defines the sampling temperature to use, varying between 0 and 2. API Default - 0.7.
+
+ - `top_p` (number or null): An alternative to sampling with temperature, used for nucleus sampling. API Default - 1.
+
+ - `max_tokens` (integer or null): This optional parameter helps to set the maximum number of tokens to generate in the chat completion. API Default - null.
+
+ - `tools` (list or null): A list of available tools for the model. Use this to specify functions for which the model can generate JSON inputs.
+
+ - `tool_choice` (string - 'auto'/'any'/'none' or null): Specifies if/how functions are called. If set to none the model won't call a function and will generate a message instead. If set to auto the model can choose to either generate a message or call a function. If set to any the model is forced to call a function. Default - 'auto'.
+
+ - `stop` (string or array of strings): Stop generation if this token is detected. Or if one of these tokens is detected when providing an array
+
+ - `random_seed` (integer or null): The seed to use for random sampling. If set, different calls will generate deterministic results.
+
+ - `safe_prompt` (boolean): Whether to inject a safety prompt before all conversations. API Default - 'false'.
+
+ - `response_format` (object or null): An object specifying the format that the model must output. Setting to { "type": "json_object" } enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message.
+ """
+
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ max_tokens: Optional[int] = None
+ tools: Optional[list] = None
+ tool_choice: Optional[Literal["auto", "any", "none"]] = None
+ random_seed: Optional[int] = None
+ safe_prompt: Optional[bool] = None
+ response_format: Optional[dict] = None
+ stop: Optional[Union[str, list]] = None
+
+ def __init__(
+ self,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ max_tokens: Optional[int] = None,
+ tools: Optional[list] = None,
+ tool_choice: Optional[Literal["auto", "any", "none"]] = None,
+ random_seed: Optional[int] = None,
+ safe_prompt: Optional[bool] = None,
+ response_format: Optional[dict] = None,
+ stop: Optional[Union[str, list]] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return [
+ "stream",
+ "temperature",
+ "top_p",
+ "max_tokens",
+ "tools",
+ "tool_choice",
+ "seed",
+ "stop",
+ "response_format",
+ ]
+
+ def _map_tool_choice(self, tool_choice: str) -> str:
+ if tool_choice == "auto" or tool_choice == "none":
+ return tool_choice
+ elif tool_choice == "required":
+ return "any"
+ else: # openai 'tool_choice' object param not supported by Mistral API
+ return "any"
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "max_tokens":
+ optional_params["max_tokens"] = value
+ if param == "tools":
+ optional_params["tools"] = value
+ if param == "stream" and value is True:
+ optional_params["stream"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "stop":
+ optional_params["stop"] = value
+ if param == "tool_choice" and isinstance(value, str):
+ optional_params["tool_choice"] = self._map_tool_choice(
+ tool_choice=value
+ )
+ if param == "seed":
+ optional_params["extra_body"] = {"random_seed": value}
+ if param == "response_format":
+ optional_params["response_format"] = value
+ return optional_params
+
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ # mistral is openai compatible, we just need to set this to custom_openai and have the api_base be https://api.mistral.ai
+ api_base = (
+ api_base
+ or get_secret_str("MISTRAL_AZURE_API_BASE") # for Azure AI Mistral
+ or "https://api.mistral.ai/v1"
+ ) # type: ignore
+
+ # if api_base does not end with /v1 we add it
+ if api_base is not None and not api_base.endswith(
+ "/v1"
+ ): # Mistral always needs a /v1 at the end
+ api_base = api_base + "/v1"
+ dynamic_api_key = (
+ api_key
+ or get_secret_str("MISTRAL_AZURE_API_KEY") # for Azure AI Mistral
+ or get_secret_str("MISTRAL_API_KEY")
+ )
+ return api_base, dynamic_api_key
+
+ def _transform_messages(
+ self, messages: List[AllMessageValues], model: str
+ ) -> List[AllMessageValues]:
+ """
+ - handles scenario where content is list and not string
+ - content list is just text, and no images
+ - if image passed in, then just return as is (user-intended)
+ - if `name` is passed, then drop it for mistral API: https://github.com/BerriAI/litellm/issues/6696
+
+ Motivation: mistral api doesn't support content as a list
+ """
+ ## 1. If 'image_url' in content, then return as is
+ for m in messages:
+ _content_block = m.get("content")
+ if _content_block and isinstance(_content_block, list):
+ for c in _content_block:
+ if c.get("type") == "image_url":
+ return messages
+
+ ## 2. If content is list, then convert to string
+ messages = handle_messages_with_content_list_to_str_conversion(messages)
+
+ ## 3. Handle name in message
+ new_messages: List[AllMessageValues] = []
+ for m in messages:
+ m = MistralConfig._handle_name_in_message(m)
+ m = MistralConfig._handle_tool_call_message(m)
+ m = strip_none_values_from_message(m) # prevents 'extra_forbidden' error
+ new_messages.append(m)
+
+ return new_messages
+
+ @classmethod
+ def _handle_name_in_message(cls, message: AllMessageValues) -> AllMessageValues:
+ """
+ Mistral API only supports `name` in tool messages
+
+ If role == tool, then we keep `name`
+ Otherwise, we drop `name`
+ """
+ _name = message.get("name") # type: ignore
+ if _name is not None and message["role"] != "tool":
+ message.pop("name", None) # type: ignore
+
+ return message
+
+ @classmethod
+ def _handle_tool_call_message(cls, message: AllMessageValues) -> AllMessageValues:
+ """
+ Mistral API only supports tool_calls in Messages in `MistralToolCallMessage` spec
+ """
+ _tool_calls = message.get("tool_calls")
+ mistral_tool_calls: List[MistralToolCallMessage] = []
+ if _tool_calls is not None and isinstance(_tool_calls, list):
+ for _tool in _tool_calls:
+ _tool_call_message = MistralToolCallMessage(
+ id=_tool.get("id"),
+ type="function",
+ function=_tool.get("function"), # type: ignore
+ )
+ mistral_tool_calls.append(_tool_call_message)
+ message["tool_calls"] = mistral_tool_calls # type: ignore
+ return message
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/mistral/mistral_embedding_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/mistral/mistral_embedding_transformation.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/mistral/mistral_embedding_transformation.py
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/chat/handler.py
new file mode 100644
index 00000000..b0abdda5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/chat/handler.py
@@ -0,0 +1,130 @@
+import json
+from typing import Callable, Optional, Union
+
+import litellm
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+)
+from litellm.utils import ModelResponse
+
+from .transformation import NLPCloudConfig
+
+nlp_config = NLPCloudConfig()
+
+
+def completion(
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ litellm_params: dict,
+ logger_fn=None,
+ default_max_tokens_to_sample=None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ headers={},
+):
+ headers = nlp_config.validate_environment(
+ api_key=api_key,
+ headers=headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ )
+
+ ## Load Config
+ config = litellm.NLPCloudConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > togetherai_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ completion_url_fragment_1 = api_base
+ completion_url_fragment_2 = "/generation"
+ model = model
+
+ completion_url = completion_url_fragment_1 + model + completion_url_fragment_2
+ data = nlp_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=None,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "headers": headers,
+ "api_base": completion_url,
+ },
+ )
+ ## COMPLETION CALL
+ if client is None or not isinstance(client, HTTPHandler):
+ client = _get_httpx_client()
+
+ response = client.post(
+ completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ stream=optional_params["stream"] if "stream" in optional_params else False,
+ )
+ if "stream" in optional_params and optional_params["stream"] is True:
+ return clean_and_iterate_chunks(response)
+ else:
+ return nlp_config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ )
+
+
+# def clean_and_iterate_chunks(response):
+# def process_chunk(chunk):
+# print(f"received chunk: {chunk}")
+# cleaned_chunk = chunk.decode("utf-8")
+# # Perform further processing based on your needs
+# return cleaned_chunk
+
+
+# for line in response.iter_lines():
+# if line:
+# yield process_chunk(line)
+def clean_and_iterate_chunks(response):
+ buffer = b""
+
+ for chunk in response.iter_content(chunk_size=1024):
+ if not chunk:
+ break
+
+ buffer += chunk
+ while b"\x00" in buffer:
+ buffer = buffer.replace(b"\x00", b"")
+ yield buffer.decode("utf-8")
+ buffer = b""
+
+ # No more data expected, yield any remaining data in the buffer
+ if buffer:
+ yield buffer.decode("utf-8")
+
+
+def embedding():
+ # logic for parsing in - calling - parsing out model embedding calls
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/chat/transformation.py
new file mode 100644
index 00000000..b7967249
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/chat/transformation.py
@@ -0,0 +1,227 @@
+import json
+import time
+from typing import TYPE_CHECKING, Any, List, Optional, Union
+
+import httpx
+
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ convert_content_list_to_str,
+)
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.openai import AllMessageValues
+from litellm.utils import ModelResponse, Usage
+
+from ..common_utils import NLPCloudError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+
+ LoggingClass = LiteLLMLoggingObj
+else:
+ LoggingClass = Any
+
+
+class NLPCloudConfig(BaseConfig):
+ """
+ Reference: https://docs.nlpcloud.com/#generation
+
+ - `max_length` (int): Optional. The maximum number of tokens that the generated text should contain.
+
+ - `length_no_input` (boolean): Optional. Whether `min_length` and `max_length` should not include the length of the input text.
+
+ - `end_sequence` (string): Optional. A specific token that should be the end of the generated sequence.
+
+ - `remove_end_sequence` (boolean): Optional. Whether to remove the `end_sequence` string from the result.
+
+ - `remove_input` (boolean): Optional. Whether to remove the input text from the result.
+
+ - `bad_words` (list of strings): Optional. List of tokens that are not allowed to be generated.
+
+ - `temperature` (float): Optional. Temperature sampling. It modulates the next token probabilities.
+
+ - `top_p` (float): Optional. Top P sampling. Below 1, only the most probable tokens with probabilities that add up to top_p or higher are kept for generation.
+
+ - `top_k` (int): Optional. Top K sampling. The number of highest probability vocabulary tokens to keep for top k filtering.
+
+ - `repetition_penalty` (float): Optional. Prevents the same word from being repeated too many times.
+
+ - `num_beams` (int): Optional. Number of beams for beam search.
+
+ - `num_return_sequences` (int): Optional. The number of independently computed returned sequences.
+ """
+
+ max_length: Optional[int] = None
+ length_no_input: Optional[bool] = None
+ end_sequence: Optional[str] = None
+ remove_end_sequence: Optional[bool] = None
+ remove_input: Optional[bool] = None
+ bad_words: Optional[list] = None
+ temperature: Optional[float] = None
+ top_p: Optional[float] = None
+ top_k: Optional[int] = None
+ repetition_penalty: Optional[float] = None
+ num_beams: Optional[int] = None
+ num_return_sequences: Optional[int] = None
+
+ def __init__(
+ self,
+ max_length: Optional[int] = None,
+ length_no_input: Optional[bool] = None,
+ end_sequence: Optional[str] = None,
+ remove_end_sequence: Optional[bool] = None,
+ remove_input: Optional[bool] = None,
+ bad_words: Optional[list] = None,
+ temperature: Optional[float] = None,
+ top_p: Optional[float] = None,
+ top_k: Optional[int] = None,
+ repetition_penalty: Optional[float] = None,
+ num_beams: Optional[int] = None,
+ num_return_sequences: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ headers = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+ if api_key:
+ headers["Authorization"] = f"Token {api_key}"
+ return headers
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return [
+ "max_tokens",
+ "stream",
+ "temperature",
+ "top_p",
+ "presence_penalty",
+ "frequency_penalty",
+ "n",
+ "stop",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "max_tokens":
+ optional_params["max_length"] = value
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "presence_penalty":
+ optional_params["presence_penalty"] = value
+ if param == "frequency_penalty":
+ optional_params["frequency_penalty"] = value
+ if param == "n":
+ optional_params["num_return_sequences"] = value
+ if param == "stop":
+ optional_params["stop_sequences"] = value
+ return optional_params
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return NLPCloudError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ text = " ".join(convert_content_list_to_str(message) for message in messages)
+
+ data = {
+ "text": text,
+ **optional_params,
+ }
+
+ return data
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LoggingClass,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ ## LOGGING
+ logging_obj.post_call(
+ input=None,
+ api_key=api_key,
+ original_response=raw_response.text,
+ additional_args={"complete_input_dict": request_data},
+ )
+
+ ## RESPONSE OBJECT
+ try:
+ completion_response = raw_response.json()
+ except Exception:
+ raise NLPCloudError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+ if "error" in completion_response:
+ raise NLPCloudError(
+ message=completion_response["error"],
+ status_code=raw_response.status_code,
+ )
+ else:
+ try:
+ if len(completion_response["generated_text"]) > 0:
+ model_response.choices[0].message.content = ( # type: ignore
+ completion_response["generated_text"]
+ )
+ except Exception:
+ raise NLPCloudError(
+ message=json.dumps(completion_response),
+ status_code=raw_response.status_code,
+ )
+
+ ## CALCULATING USAGE - baseten charges on time, not tokens - have some mapping of cost here.
+ prompt_tokens = completion_response["nb_input_tokens"]
+ completion_tokens = completion_response["nb_generated_tokens"]
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/common_utils.py
new file mode 100644
index 00000000..232f56c9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/nlp_cloud/common_utils.py
@@ -0,0 +1,15 @@
+from typing import Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class NLPCloudError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[dict, httpx.Headers]] = None,
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/nvidia_nim/chat.py b/.venv/lib/python3.12/site-packages/litellm/llms/nvidia_nim/chat.py
new file mode 100644
index 00000000..eedac6e3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/nvidia_nim/chat.py
@@ -0,0 +1,134 @@
+"""
+Nvidia NIM endpoint: https://docs.api.nvidia.com/nim/reference/databricks-dbrx-instruct-infer
+
+This is OpenAI compatible
+
+This file only contains param mapping logic
+
+API calling is done using the OpenAI SDK with an api_base
+"""
+
+from typing import Optional, Union
+
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class NvidiaNimConfig(OpenAIGPTConfig):
+ """
+ Reference: https://docs.api.nvidia.com/nim/reference/databricks-dbrx-instruct-infer
+
+ The class `NvidiaNimConfig` provides configuration for the Nvidia NIM's Chat Completions API interface. Below are the parameters:
+ """
+
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ frequency_penalty: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ max_tokens: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+
+ def __init__(
+ self,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ frequency_penalty: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ max_tokens: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ Get the supported OpenAI params for the given model
+
+
+ Updated on July 5th, 2024 - based on https://docs.api.nvidia.com/nim/reference
+ """
+ if model in [
+ "google/recurrentgemma-2b",
+ "google/gemma-2-27b-it",
+ "google/gemma-2-9b-it",
+ "gemma-2-9b-it",
+ ]:
+ return ["stream", "temperature", "top_p", "max_tokens", "stop", "seed"]
+ elif model == "nvidia/nemotron-4-340b-instruct":
+ return [
+ "stream",
+ "temperature",
+ "top_p",
+ "max_tokens",
+ "max_completion_tokens",
+ ]
+ elif model == "nvidia/nemotron-4-340b-reward":
+ return [
+ "stream",
+ ]
+ elif model in ["google/codegemma-1.1-7b"]:
+ # most params - but no 'seed' :(
+ return [
+ "stream",
+ "temperature",
+ "top_p",
+ "frequency_penalty",
+ "presence_penalty",
+ "max_tokens",
+ "max_completion_tokens",
+ "stop",
+ ]
+ else:
+ # DEFAULT Case - The vast majority of Nvidia NIM Models lie here
+ # "upstage/solar-10.7b-instruct",
+ # "snowflake/arctic",
+ # "seallms/seallm-7b-v2.5",
+ # "nvidia/llama3-chatqa-1.5-8b",
+ # "nvidia/llama3-chatqa-1.5-70b",
+ # "mistralai/mistral-large",
+ # "mistralai/mixtral-8x22b-instruct-v0.1",
+ # "mistralai/mixtral-8x7b-instruct-v0.1",
+ # "mistralai/mistral-7b-instruct-v0.3",
+ # "mistralai/mistral-7b-instruct-v0.2",
+ # "mistralai/codestral-22b-instruct-v0.1",
+ # "microsoft/phi-3-small-8k-instruct",
+ # "microsoft/phi-3-small-128k-instruct",
+ # "microsoft/phi-3-mini-4k-instruct",
+ # "microsoft/phi-3-mini-128k-instruct",
+ # "microsoft/phi-3-medium-4k-instruct",
+ # "microsoft/phi-3-medium-128k-instruct",
+ # "meta/llama3-70b-instruct",
+ # "meta/llama3-8b-instruct",
+ # "meta/llama2-70b",
+ # "meta/codellama-70b",
+ return [
+ "stream",
+ "temperature",
+ "top_p",
+ "frequency_penalty",
+ "presence_penalty",
+ "max_tokens",
+ "max_completion_tokens",
+ "stop",
+ "seed",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ supported_openai_params = self.get_supported_openai_params(model=model)
+ for param, value in non_default_params.items():
+ if param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ elif param in supported_openai_params:
+ optional_params[param] = value
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/nvidia_nim/embed.py b/.venv/lib/python3.12/site-packages/litellm/llms/nvidia_nim/embed.py
new file mode 100644
index 00000000..24c6cc34
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/nvidia_nim/embed.py
@@ -0,0 +1,82 @@
+"""
+Nvidia NIM embeddings endpoint: https://docs.api.nvidia.com/nim/reference/nvidia-nv-embedqa-e5-v5-infer
+
+This is OpenAI compatible
+
+This file only contains param mapping logic
+
+API calling is done using the OpenAI SDK with an api_base
+"""
+
+import types
+from typing import Optional
+
+
+class NvidiaNimEmbeddingConfig:
+ """
+ Reference: https://docs.api.nvidia.com/nim/reference/nvidia-nv-embedqa-e5-v5-infer
+ """
+
+ # OpenAI params
+ encoding_format: Optional[str] = None
+ user: Optional[str] = None
+
+ # Nvidia NIM params
+ input_type: Optional[str] = None
+ truncate: Optional[str] = None
+
+ def __init__(
+ self,
+ encoding_format: Optional[str] = None,
+ user: Optional[str] = None,
+ input_type: Optional[str] = None,
+ truncate: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(
+ self,
+ ):
+ return ["encoding_format", "user", "dimensions"]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ kwargs: Optional[dict] = None,
+ ):
+ if "extra_body" not in optional_params:
+ optional_params["extra_body"] = {}
+ for k, v in non_default_params.items():
+ if k == "input_type":
+ optional_params["extra_body"].update({"input_type": v})
+ elif k == "truncate":
+ optional_params["extra_body"].update({"truncate": v})
+ else:
+ optional_params[k] = v
+
+ if kwargs is not None:
+ # pass kwargs in extra_body
+ optional_params["extra_body"].update(kwargs)
+ return optional_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py
new file mode 100644
index 00000000..5cf21395
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/ollama/common_utils.py
@@ -0,0 +1,45 @@
+from typing import Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class OllamaError(BaseLLMException):
+ def __init__(
+ self, status_code: int, message: str, headers: Union[dict, httpx.Headers]
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
+
+
+def _convert_image(image):
+ """
+ Convert image to base64 encoded image if not already in base64 format
+
+ If image is already in base64 format AND is a jpeg/png, return it
+
+ If image is not JPEG/PNG, convert it to JPEG base64 format
+ """
+ import base64
+ import io
+
+ try:
+ from PIL import Image
+ except Exception:
+ raise Exception(
+ "ollama image conversion failed please run `pip install Pillow`"
+ )
+
+ orig = image
+ if image.startswith("data:"):
+ image = image.split(",")[-1]
+ try:
+ image_data = Image.open(io.BytesIO(base64.b64decode(image)))
+ if image_data.format in ["JPEG", "PNG"]:
+ return image
+ except Exception:
+ return orig
+ jpeg_image = io.BytesIO()
+ image_data.convert("RGB").save(jpeg_image, "JPEG")
+ jpeg_image.seek(0)
+ return base64.b64encode(jpeg_image.getvalue()).decode("utf-8")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/handler.py
new file mode 100644
index 00000000..208a9d81
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/handler.py
@@ -0,0 +1,102 @@
+"""
+Ollama /chat/completion calls handled in llm_http_handler.py
+
+[TODO]: migrate embeddings to a base handler as well.
+"""
+
+import asyncio
+from typing import Any, Dict, List
+
+import litellm
+from litellm.types.utils import EmbeddingResponse
+
+# ollama wants plain base64 jpeg/png files as images. strip any leading dataURI
+# and convert to jpeg if necessary.
+
+
+async def ollama_aembeddings(
+ api_base: str,
+ model: str,
+ prompts: List[str],
+ model_response: EmbeddingResponse,
+ optional_params: dict,
+ logging_obj: Any,
+ encoding: Any,
+):
+ if api_base.endswith("/api/embed"):
+ url = api_base
+ else:
+ url = f"{api_base}/api/embed"
+
+ ## Load Config
+ config = litellm.OllamaConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > cohere_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ data: Dict[str, Any] = {"model": model, "input": prompts}
+ special_optional_params = ["truncate", "options", "keep_alive"]
+
+ for k, v in optional_params.items():
+ if k in special_optional_params:
+ data[k] = v
+ else:
+ # Ensure "options" is a dictionary before updating it
+ data.setdefault("options", {})
+ if isinstance(data["options"], dict):
+ data["options"].update({k: v})
+ total_input_tokens = 0
+ output_data = []
+
+ response = await litellm.module_level_aclient.post(url=url, json=data)
+
+ response_json = response.json()
+
+ embeddings: List[List[float]] = response_json["embeddings"]
+ for idx, emb in enumerate(embeddings):
+ output_data.append({"object": "embedding", "index": idx, "embedding": emb})
+
+ input_tokens = response_json.get("prompt_eval_count") or len(
+ encoding.encode("".join(prompt for prompt in prompts))
+ )
+ total_input_tokens += input_tokens
+
+ model_response.object = "list"
+ model_response.data = output_data
+ model_response.model = "ollama/" + model
+ setattr(
+ model_response,
+ "usage",
+ litellm.Usage(
+ prompt_tokens=total_input_tokens,
+ completion_tokens=total_input_tokens,
+ total_tokens=total_input_tokens,
+ prompt_tokens_details=None,
+ completion_tokens_details=None,
+ ),
+ )
+ return model_response
+
+
+def ollama_embeddings(
+ api_base: str,
+ model: str,
+ prompts: list,
+ optional_params: dict,
+ model_response: EmbeddingResponse,
+ logging_obj: Any,
+ encoding=None,
+):
+ return asyncio.run(
+ ollama_aembeddings(
+ api_base=api_base,
+ model=model,
+ prompts=prompts,
+ model_response=model_response,
+ optional_params=optional_params,
+ logging_obj=logging_obj,
+ encoding=encoding,
+ )
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/transformation.py
new file mode 100644
index 00000000..b4db95cf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/transformation.py
@@ -0,0 +1,441 @@
+import json
+import time
+import uuid
+from typing import TYPE_CHECKING, Any, AsyncIterator, Iterator, List, Optional, Union
+
+from httpx._models import Headers, Response
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ get_str_from_messages,
+)
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ convert_to_ollama_image,
+ custom_prompt,
+ ollama_pt,
+)
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues, ChatCompletionUsageBlock
+from litellm.types.utils import (
+ GenericStreamingChunk,
+ ModelInfoBase,
+ ModelResponse,
+ ProviderField,
+)
+
+from ..common_utils import OllamaError, _convert_image
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class OllamaConfig(BaseConfig):
+ """
+ Reference: https://github.com/ollama/ollama/blob/main/docs/api.md#parameters
+
+ The class `OllamaConfig` provides the configuration for the Ollama's API interface. Below are the parameters:
+
+ - `mirostat` (int): Enable Mirostat sampling for controlling perplexity. Default is 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0. Example usage: mirostat 0
+
+ - `mirostat_eta` (float): Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. Default: 0.1. Example usage: mirostat_eta 0.1
+
+ - `mirostat_tau` (float): Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. Default: 5.0. Example usage: mirostat_tau 5.0
+
+ - `num_ctx` (int): Sets the size of the context window used to generate the next token. Default: 2048. Example usage: num_ctx 4096
+
+ - `num_gqa` (int): The number of GQA groups in the transformer layer. Required for some models, for example it is 8 for llama2:70b. Example usage: num_gqa 1
+
+ - `num_gpu` (int): The number of layers to send to the GPU(s). On macOS it defaults to 1 to enable metal support, 0 to disable. Example usage: num_gpu 0
+
+ - `num_thread` (int): Sets the number of threads to use during computation. By default, Ollama will detect this for optimal performance. It is recommended to set this value to the number of physical CPU cores your system has (as opposed to the logical number of cores). Example usage: num_thread 8
+
+ - `repeat_last_n` (int): Sets how far back for the model to look back to prevent repetition. Default: 64, 0 = disabled, -1 = num_ctx. Example usage: repeat_last_n 64
+
+ - `repeat_penalty` (float): Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. Default: 1.1. Example usage: repeat_penalty 1.1
+
+ - `temperature` (float): The temperature of the model. Increasing the temperature will make the model answer more creatively. Default: 0.8. Example usage: temperature 0.7
+
+ - `seed` (int): Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. Example usage: seed 42
+
+ - `stop` (string[]): Sets the stop sequences to use. Example usage: stop "AI assistant:"
+
+ - `tfs_z` (float): Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. Default: 1. Example usage: tfs_z 1
+
+ - `num_predict` (int): Maximum number of tokens to predict when generating text. Default: 128, -1 = infinite generation, -2 = fill context. Example usage: num_predict 42
+
+ - `top_k` (int): Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. Default: 40. Example usage: top_k 40
+
+ - `top_p` (float): Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. Default: 0.9. Example usage: top_p 0.9
+
+ - `system` (string): system prompt for model (overrides what is defined in the Modelfile)
+
+ - `template` (string): the full prompt or prompt template (overrides what is defined in the Modelfile)
+ """
+
+ mirostat: Optional[int] = None
+ mirostat_eta: Optional[float] = None
+ mirostat_tau: Optional[float] = None
+ num_ctx: Optional[int] = None
+ num_gqa: Optional[int] = None
+ num_gpu: Optional[int] = None
+ num_thread: Optional[int] = None
+ repeat_last_n: Optional[int] = None
+ repeat_penalty: Optional[float] = None
+ temperature: Optional[float] = None
+ seed: Optional[int] = None
+ stop: Optional[list] = (
+ None # stop is a list based on this - https://github.com/ollama/ollama/pull/442
+ )
+ tfs_z: Optional[float] = None
+ num_predict: Optional[int] = None
+ top_k: Optional[int] = None
+ top_p: Optional[float] = None
+ system: Optional[str] = None
+ template: Optional[str] = None
+
+ def __init__(
+ self,
+ mirostat: Optional[int] = None,
+ mirostat_eta: Optional[float] = None,
+ mirostat_tau: Optional[float] = None,
+ num_ctx: Optional[int] = None,
+ num_gqa: Optional[int] = None,
+ num_gpu: Optional[int] = None,
+ num_thread: Optional[int] = None,
+ repeat_last_n: Optional[int] = None,
+ repeat_penalty: Optional[float] = None,
+ temperature: Optional[float] = None,
+ seed: Optional[int] = None,
+ stop: Optional[list] = None,
+ tfs_z: Optional[float] = None,
+ num_predict: Optional[int] = None,
+ top_k: Optional[int] = None,
+ top_p: Optional[float] = None,
+ system: Optional[str] = None,
+ template: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_required_params(self) -> List[ProviderField]:
+ """For a given provider, return it's required fields with a description"""
+ return [
+ ProviderField(
+ field_name="base_url",
+ field_type="string",
+ field_description="Your Ollama API Base",
+ field_value="http://10.10.11.249:11434",
+ )
+ ]
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "max_tokens",
+ "stream",
+ "top_p",
+ "temperature",
+ "seed",
+ "frequency_penalty",
+ "stop",
+ "response_format",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "max_tokens":
+ optional_params["num_predict"] = value
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "seed":
+ optional_params["seed"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "frequency_penalty":
+ optional_params["repeat_penalty"] = value
+ if param == "stop":
+ optional_params["stop"] = value
+ if param == "response_format" and isinstance(value, dict):
+ if value["type"] == "json_object":
+ optional_params["format"] = "json"
+
+ return optional_params
+
+ def _supports_function_calling(self, ollama_model_info: dict) -> bool:
+ """
+ Check if the 'template' field in the ollama_model_info contains a 'tools' or 'function' key.
+ """
+ _template: str = str(ollama_model_info.get("template", "") or "")
+ return "tools" in _template.lower()
+
+ def _get_max_tokens(self, ollama_model_info: dict) -> Optional[int]:
+ _model_info: dict = ollama_model_info.get("model_info", {})
+
+ for k, v in _model_info.items():
+ if "context_length" in k:
+ return v
+ return None
+
+ def get_model_info(self, model: str) -> ModelInfoBase:
+ """
+ curl http://localhost:11434/api/show -d '{
+ "name": "mistral"
+ }'
+ """
+ if model.startswith("ollama/") or model.startswith("ollama_chat/"):
+ model = model.split("/", 1)[1]
+ api_base = get_secret_str("OLLAMA_API_BASE") or "http://localhost:11434"
+
+ try:
+ response = litellm.module_level_client.post(
+ url=f"{api_base}/api/show",
+ json={"name": model},
+ )
+ except Exception as e:
+ raise Exception(
+ f"OllamaError: Error getting model info for {model}. Set Ollama API Base via `OLLAMA_API_BASE` environment variable. Error: {e}"
+ )
+
+ model_info = response.json()
+
+ _max_tokens: Optional[int] = self._get_max_tokens(model_info)
+
+ return ModelInfoBase(
+ key=model,
+ litellm_provider="ollama",
+ mode="chat",
+ supports_function_calling=self._supports_function_calling(model_info),
+ input_cost_per_token=0.0,
+ output_cost_per_token=0.0,
+ max_tokens=_max_tokens,
+ max_input_tokens=_max_tokens,
+ max_output_tokens=_max_tokens,
+ )
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return OllamaError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: str,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ response_json = raw_response.json()
+ ## RESPONSE OBJECT
+ model_response.choices[0].finish_reason = "stop"
+ if request_data.get("format", "") == "json":
+ function_call = json.loads(response_json["response"])
+ message = litellm.Message(
+ content=None,
+ tool_calls=[
+ {
+ "id": f"call_{str(uuid.uuid4())}",
+ "function": {
+ "name": function_call["name"],
+ "arguments": json.dumps(function_call["arguments"]),
+ },
+ "type": "function",
+ }
+ ],
+ )
+ model_response.choices[0].message = message # type: ignore
+ model_response.choices[0].finish_reason = "tool_calls"
+ else:
+ model_response.choices[0].message.content = response_json["response"] # type: ignore
+ model_response.created = int(time.time())
+ model_response.model = "ollama/" + model
+ _prompt = request_data.get("prompt", "")
+ prompt_tokens = response_json.get(
+ "prompt_eval_count", len(encoding.encode(_prompt, disallowed_special=())) # type: ignore
+ )
+ completion_tokens = response_json.get(
+ "eval_count", len(response_json.get("message", dict()).get("content", ""))
+ )
+ setattr(
+ model_response,
+ "usage",
+ litellm.Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ ),
+ )
+ return model_response
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ custom_prompt_dict = (
+ litellm_params.get("custom_prompt_dict") or litellm.custom_prompt_dict
+ )
+
+ text_completion_request = litellm_params.get("text_completion")
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ ollama_prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details["initial_prompt_value"],
+ final_prompt_value=model_prompt_details["final_prompt_value"],
+ messages=messages,
+ )
+ elif text_completion_request: # handle `/completions` requests
+ ollama_prompt = get_str_from_messages(messages=messages)
+ else: # handle `/chat/completions` requests
+ modified_prompt = ollama_pt(model=model, messages=messages)
+ if isinstance(modified_prompt, dict):
+ ollama_prompt, images = (
+ modified_prompt["prompt"],
+ modified_prompt["images"],
+ )
+ optional_params["images"] = images
+ else:
+ ollama_prompt = modified_prompt
+ stream = optional_params.pop("stream", False)
+ format = optional_params.pop("format", None)
+ images = optional_params.pop("images", None)
+ data = {
+ "model": model,
+ "prompt": ollama_prompt,
+ "options": optional_params,
+ "stream": stream,
+ }
+
+ if format is not None:
+ data["format"] = format
+ if images is not None:
+ data["images"] = [
+ _convert_image(convert_to_ollama_image(image)) for image in images
+ ]
+
+ return data
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return headers
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ OPTIONAL
+
+ Get the complete url for the request
+
+ Some providers need `model` in `api_base`
+ """
+ if api_base is None:
+ api_base = "http://localhost:11434"
+ if api_base.endswith("/api/generate"):
+ url = api_base
+ else:
+ url = f"{api_base}/api/generate"
+
+ return url
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ):
+ return OllamaTextCompletionResponseIterator(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+
+class OllamaTextCompletionResponseIterator(BaseModelResponseIterator):
+ def _handle_string_chunk(self, str_line: str) -> GenericStreamingChunk:
+ return self.chunk_parser(json.loads(str_line))
+
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ if "error" in chunk:
+ raise Exception(f"Ollama Error - {chunk}")
+
+ text = ""
+ is_finished = False
+ finish_reason = None
+ if chunk["done"] is True:
+ text = ""
+ is_finished = True
+ finish_reason = "stop"
+ prompt_eval_count: Optional[int] = chunk.get("prompt_eval_count", None)
+ eval_count: Optional[int] = chunk.get("eval_count", None)
+
+ usage: Optional[ChatCompletionUsageBlock] = None
+ if prompt_eval_count is not None and eval_count is not None:
+ usage = ChatCompletionUsageBlock(
+ prompt_tokens=prompt_eval_count,
+ completion_tokens=eval_count,
+ total_tokens=prompt_eval_count + eval_count,
+ )
+ return GenericStreamingChunk(
+ text=text,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=usage,
+ )
+ elif chunk["response"]:
+ text = chunk["response"]
+ return GenericStreamingChunk(
+ text=text,
+ is_finished=is_finished,
+ finish_reason="stop",
+ usage=None,
+ )
+ else:
+ raise Exception(f"Unable to parse ollama chunk - {chunk}")
+ except Exception as e:
+ raise e
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/ollama_chat.py b/.venv/lib/python3.12/site-packages/litellm/llms/ollama_chat.py
new file mode 100644
index 00000000..6f421680
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/ollama_chat.py
@@ -0,0 +1,607 @@
+import json
+import time
+import uuid
+from typing import Any, List, Optional, Union
+
+import aiohttp
+import httpx
+from pydantic import BaseModel
+
+import litellm
+from litellm import verbose_logger
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+from litellm.types.llms.ollama import OllamaToolCall, OllamaToolCallFunction
+from litellm.types.llms.openai import ChatCompletionAssistantToolCall
+from litellm.types.utils import ModelResponse, StreamingChoices
+
+
+class OllamaError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(method="POST", url="http://localhost:11434")
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class OllamaChatConfig(OpenAIGPTConfig):
+ """
+ Reference: https://github.com/ollama/ollama/blob/main/docs/api.md#parameters
+
+ The class `OllamaConfig` provides the configuration for the Ollama's API interface. Below are the parameters:
+
+ - `mirostat` (int): Enable Mirostat sampling for controlling perplexity. Default is 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0. Example usage: mirostat 0
+
+ - `mirostat_eta` (float): Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. Default: 0.1. Example usage: mirostat_eta 0.1
+
+ - `mirostat_tau` (float): Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. Default: 5.0. Example usage: mirostat_tau 5.0
+
+ - `num_ctx` (int): Sets the size of the context window used to generate the next token. Default: 2048. Example usage: num_ctx 4096
+
+ - `num_gqa` (int): The number of GQA groups in the transformer layer. Required for some models, for example it is 8 for llama2:70b. Example usage: num_gqa 1
+
+ - `num_gpu` (int): The number of layers to send to the GPU(s). On macOS it defaults to 1 to enable metal support, 0 to disable. Example usage: num_gpu 0
+
+ - `num_thread` (int): Sets the number of threads to use during computation. By default, Ollama will detect this for optimal performance. It is recommended to set this value to the number of physical CPU cores your system has (as opposed to the logical number of cores). Example usage: num_thread 8
+
+ - `repeat_last_n` (int): Sets how far back for the model to look back to prevent repetition. Default: 64, 0 = disabled, -1 = num_ctx. Example usage: repeat_last_n 64
+
+ - `repeat_penalty` (float): Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. Default: 1.1. Example usage: repeat_penalty 1.1
+
+ - `temperature` (float): The temperature of the model. Increasing the temperature will make the model answer more creatively. Default: 0.8. Example usage: temperature 0.7
+
+ - `seed` (int): Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. Example usage: seed 42
+
+ - `stop` (string[]): Sets the stop sequences to use. Example usage: stop "AI assistant:"
+
+ - `tfs_z` (float): Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. Default: 1. Example usage: tfs_z 1
+
+ - `num_predict` (int): Maximum number of tokens to predict when generating text. Default: 128, -1 = infinite generation, -2 = fill context. Example usage: num_predict 42
+
+ - `top_k` (int): Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. Default: 40. Example usage: top_k 40
+
+ - `top_p` (float): Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. Default: 0.9. Example usage: top_p 0.9
+
+ - `system` (string): system prompt for model (overrides what is defined in the Modelfile)
+
+ - `template` (string): the full prompt or prompt template (overrides what is defined in the Modelfile)
+ """
+
+ mirostat: Optional[int] = None
+ mirostat_eta: Optional[float] = None
+ mirostat_tau: Optional[float] = None
+ num_ctx: Optional[int] = None
+ num_gqa: Optional[int] = None
+ num_thread: Optional[int] = None
+ repeat_last_n: Optional[int] = None
+ repeat_penalty: Optional[float] = None
+ seed: Optional[int] = None
+ tfs_z: Optional[float] = None
+ num_predict: Optional[int] = None
+ top_k: Optional[int] = None
+ system: Optional[str] = None
+ template: Optional[str] = None
+
+ def __init__(
+ self,
+ mirostat: Optional[int] = None,
+ mirostat_eta: Optional[float] = None,
+ mirostat_tau: Optional[float] = None,
+ num_ctx: Optional[int] = None,
+ num_gqa: Optional[int] = None,
+ num_thread: Optional[int] = None,
+ repeat_last_n: Optional[int] = None,
+ repeat_penalty: Optional[float] = None,
+ temperature: Optional[float] = None,
+ seed: Optional[int] = None,
+ stop: Optional[list] = None,
+ tfs_z: Optional[float] = None,
+ num_predict: Optional[int] = None,
+ top_k: Optional[int] = None,
+ top_p: Optional[float] = None,
+ system: Optional[str] = None,
+ template: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "max_tokens",
+ "max_completion_tokens",
+ "stream",
+ "top_p",
+ "temperature",
+ "seed",
+ "frequency_penalty",
+ "stop",
+ "tools",
+ "tool_choice",
+ "functions",
+ "response_format",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "max_tokens" or param == "max_completion_tokens":
+ optional_params["num_predict"] = value
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "seed":
+ optional_params["seed"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "frequency_penalty":
+ optional_params["repeat_penalty"] = value
+ if param == "stop":
+ optional_params["stop"] = value
+ if param == "response_format" and value["type"] == "json_object":
+ optional_params["format"] = "json"
+ if param == "response_format" and value["type"] == "json_schema":
+ optional_params["format"] = value["json_schema"]["schema"]
+ ### FUNCTION CALLING LOGIC ###
+ if param == "tools":
+ # ollama actually supports json output
+ ## CHECK IF MODEL SUPPORTS TOOL CALLING ##
+ try:
+ model_info = litellm.get_model_info(
+ model=model, custom_llm_provider="ollama"
+ )
+ if model_info.get("supports_function_calling") is True:
+ optional_params["tools"] = value
+ else:
+ raise Exception
+ except Exception:
+ optional_params["format"] = "json"
+ litellm.add_function_to_prompt = (
+ True # so that main.py adds the function call to the prompt
+ )
+ optional_params["functions_unsupported_model"] = value
+
+ if len(optional_params["functions_unsupported_model"]) == 1:
+ optional_params["function_name"] = optional_params[
+ "functions_unsupported_model"
+ ][0]["function"]["name"]
+
+ if param == "functions":
+ # ollama actually supports json output
+ optional_params["format"] = "json"
+ litellm.add_function_to_prompt = (
+ True # so that main.py adds the function call to the prompt
+ )
+ optional_params["functions_unsupported_model"] = non_default_params.get(
+ "functions"
+ )
+ non_default_params.pop("tool_choice", None) # causes ollama requests to hang
+ non_default_params.pop("functions", None) # causes ollama requests to hang
+ return optional_params
+
+
+# ollama implementation
+def get_ollama_response( # noqa: PLR0915
+ model_response: ModelResponse,
+ messages: list,
+ optional_params: dict,
+ model: str,
+ logging_obj: Any,
+ api_base="http://localhost:11434",
+ api_key: Optional[str] = None,
+ acompletion: bool = False,
+ encoding=None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+):
+ if api_base.endswith("/api/chat"):
+ url = api_base
+ else:
+ url = f"{api_base}/api/chat"
+
+ ## Load Config
+ config = litellm.OllamaChatConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > cohere_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ stream = optional_params.pop("stream", False)
+ format = optional_params.pop("format", None)
+ keep_alive = optional_params.pop("keep_alive", None)
+ function_name = optional_params.pop("function_name", None)
+ tools = optional_params.pop("tools", None)
+
+ new_messages = []
+ for m in messages:
+ if isinstance(
+ m, BaseModel
+ ): # avoid message serialization issues - https://github.com/BerriAI/litellm/issues/5319
+ m = m.model_dump(exclude_none=True)
+ if m.get("tool_calls") is not None and isinstance(m["tool_calls"], list):
+ new_tools: List[OllamaToolCall] = []
+ for tool in m["tool_calls"]:
+ typed_tool = ChatCompletionAssistantToolCall(**tool) # type: ignore
+ if typed_tool["type"] == "function":
+ arguments = {}
+ if "arguments" in typed_tool["function"]:
+ arguments = json.loads(typed_tool["function"]["arguments"])
+ ollama_tool_call = OllamaToolCall(
+ function=OllamaToolCallFunction(
+ name=typed_tool["function"].get("name") or "",
+ arguments=arguments,
+ )
+ )
+ new_tools.append(ollama_tool_call)
+ m["tool_calls"] = new_tools
+ new_messages.append(m)
+
+ data = {
+ "model": model,
+ "messages": new_messages,
+ "options": optional_params,
+ "stream": stream,
+ }
+ if format is not None:
+ data["format"] = format
+ if tools is not None:
+ data["tools"] = tools
+ if keep_alive is not None:
+ data["keep_alive"] = keep_alive
+ ## LOGGING
+ logging_obj.pre_call(
+ input=None,
+ api_key=None,
+ additional_args={
+ "api_base": url,
+ "complete_input_dict": data,
+ "headers": {},
+ "acompletion": acompletion,
+ },
+ )
+ if acompletion is True:
+ if stream is True:
+ response = ollama_async_streaming(
+ url=url,
+ api_key=api_key,
+ data=data,
+ model_response=model_response,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ )
+ else:
+ response = ollama_acompletion(
+ url=url,
+ api_key=api_key,
+ data=data,
+ model_response=model_response,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ function_name=function_name,
+ )
+ return response
+ elif stream is True:
+ return ollama_completion_stream(
+ url=url, api_key=api_key, data=data, logging_obj=logging_obj
+ )
+
+ headers: Optional[dict] = None
+ if api_key is not None:
+ headers = {"Authorization": "Bearer {}".format(api_key)}
+
+ sync_client = litellm.module_level_client
+ if client is not None and isinstance(client, HTTPHandler):
+ sync_client = client
+ response = sync_client.post(
+ url=url,
+ json=data,
+ headers=headers,
+ )
+ if response.status_code != 200:
+ raise OllamaError(status_code=response.status_code, message=response.text)
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=response.text,
+ additional_args={
+ "headers": None,
+ "api_base": api_base,
+ },
+ )
+
+ response_json = response.json()
+
+ ## RESPONSE OBJECT
+ model_response.choices[0].finish_reason = "stop"
+ if data.get("format", "") == "json" and function_name is not None:
+ function_call = json.loads(response_json["message"]["content"])
+ message = litellm.Message(
+ content=None,
+ tool_calls=[
+ {
+ "id": f"call_{str(uuid.uuid4())}",
+ "function": {
+ "name": function_call.get("name", function_name),
+ "arguments": json.dumps(
+ function_call.get("arguments", function_call)
+ ),
+ },
+ "type": "function",
+ }
+ ],
+ )
+ model_response.choices[0].message = message # type: ignore
+ model_response.choices[0].finish_reason = "tool_calls"
+ else:
+ _message = litellm.Message(**response_json["message"])
+ model_response.choices[0].message = _message # type: ignore
+ model_response.created = int(time.time())
+ model_response.model = "ollama_chat/" + model
+ prompt_tokens = response_json.get("prompt_eval_count", litellm.token_counter(messages=messages)) # type: ignore
+ completion_tokens = response_json.get(
+ "eval_count", litellm.token_counter(text=response_json["message"]["content"])
+ )
+ setattr(
+ model_response,
+ "usage",
+ litellm.Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ ),
+ )
+ return model_response
+
+
+def ollama_completion_stream(url, api_key, data, logging_obj):
+ _request = {
+ "url": f"{url}",
+ "json": data,
+ "method": "POST",
+ "timeout": litellm.request_timeout,
+ "follow_redirects": True,
+ }
+ if api_key is not None:
+ _request["headers"] = {"Authorization": "Bearer {}".format(api_key)}
+ with httpx.stream(**_request) as response:
+ try:
+ if response.status_code != 200:
+ raise OllamaError(
+ status_code=response.status_code, message=response.iter_lines()
+ )
+
+ streamwrapper = litellm.CustomStreamWrapper(
+ completion_stream=response.iter_lines(),
+ model=data["model"],
+ custom_llm_provider="ollama_chat",
+ logging_obj=logging_obj,
+ )
+
+ # If format is JSON, this was a function call
+ # Gather all chunks and return the function call as one delta to simplify parsing
+ if data.get("format", "") == "json":
+ content_chunks = []
+ for chunk in streamwrapper:
+ chunk_choice = chunk.choices[0]
+ if (
+ isinstance(chunk_choice, StreamingChoices)
+ and hasattr(chunk_choice, "delta")
+ and hasattr(chunk_choice.delta, "content")
+ ):
+ content_chunks.append(chunk_choice.delta.content)
+ response_content = "".join(content_chunks)
+
+ function_call = json.loads(response_content)
+ delta = litellm.utils.Delta(
+ content=None,
+ tool_calls=[
+ {
+ "id": f"call_{str(uuid.uuid4())}",
+ "function": {
+ "name": function_call["name"],
+ "arguments": json.dumps(function_call["arguments"]),
+ },
+ "type": "function",
+ }
+ ],
+ )
+ model_response = content_chunks[0]
+ model_response.choices[0].delta = delta # type: ignore
+ model_response.choices[0].finish_reason = "tool_calls"
+ yield model_response
+ else:
+ for transformed_chunk in streamwrapper:
+ yield transformed_chunk
+ except Exception as e:
+ raise e
+
+
+async def ollama_async_streaming(
+ url, api_key, data, model_response, encoding, logging_obj
+):
+ try:
+ _async_http_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.OLLAMA
+ )
+ client = _async_http_client.client
+ _request = {
+ "url": f"{url}",
+ "json": data,
+ "method": "POST",
+ "timeout": litellm.request_timeout,
+ }
+ if api_key is not None:
+ _request["headers"] = {"Authorization": "Bearer {}".format(api_key)}
+ async with client.stream(**_request) as response:
+ if response.status_code != 200:
+ raise OllamaError(
+ status_code=response.status_code, message=response.text
+ )
+
+ streamwrapper = litellm.CustomStreamWrapper(
+ completion_stream=response.aiter_lines(),
+ model=data["model"],
+ custom_llm_provider="ollama_chat",
+ logging_obj=logging_obj,
+ )
+
+ # If format is JSON, this was a function call
+ # Gather all chunks and return the function call as one delta to simplify parsing
+ if data.get("format", "") == "json":
+ first_chunk = await anext(streamwrapper) # noqa F821
+ chunk_choice = first_chunk.choices[0]
+ if (
+ isinstance(chunk_choice, StreamingChoices)
+ and hasattr(chunk_choice, "delta")
+ and hasattr(chunk_choice.delta, "content")
+ ):
+ first_chunk_content = chunk_choice.delta.content or ""
+ else:
+ first_chunk_content = ""
+
+ content_chunks = []
+ async for chunk in streamwrapper:
+ chunk_choice = chunk.choices[0]
+ if (
+ isinstance(chunk_choice, StreamingChoices)
+ and hasattr(chunk_choice, "delta")
+ and hasattr(chunk_choice.delta, "content")
+ ):
+ content_chunks.append(chunk_choice.delta.content)
+ response_content = first_chunk_content + "".join(content_chunks)
+
+ function_call = json.loads(response_content)
+ delta = litellm.utils.Delta(
+ content=None,
+ tool_calls=[
+ {
+ "id": f"call_{str(uuid.uuid4())}",
+ "function": {
+ "name": function_call.get(
+ "name", function_call.get("function", None)
+ ),
+ "arguments": json.dumps(function_call["arguments"]),
+ },
+ "type": "function",
+ }
+ ],
+ )
+ model_response = first_chunk
+ model_response.choices[0].delta = delta # type: ignore
+ model_response.choices[0].finish_reason = "tool_calls"
+ yield model_response
+ else:
+ async for transformed_chunk in streamwrapper:
+ yield transformed_chunk
+ except Exception as e:
+ verbose_logger.exception(
+ "LiteLLM.ollama(): Exception occured - {}".format(str(e))
+ )
+ raise e
+
+
+async def ollama_acompletion(
+ url,
+ api_key: Optional[str],
+ data,
+ model_response: litellm.ModelResponse,
+ encoding,
+ logging_obj,
+ function_name,
+):
+ data["stream"] = False
+ try:
+ timeout = aiohttp.ClientTimeout(total=litellm.request_timeout) # 10 minutes
+ async with aiohttp.ClientSession(timeout=timeout) as session:
+ _request = {
+ "url": f"{url}",
+ "json": data,
+ }
+ if api_key is not None:
+ _request["headers"] = {"Authorization": "Bearer {}".format(api_key)}
+ resp = await session.post(**_request)
+
+ if resp.status != 200:
+ text = await resp.text()
+ raise OllamaError(status_code=resp.status, message=text)
+
+ response_json = await resp.json()
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=data,
+ api_key="",
+ original_response=response_json,
+ additional_args={
+ "headers": None,
+ "api_base": url,
+ },
+ )
+
+ ## RESPONSE OBJECT
+ model_response.choices[0].finish_reason = "stop"
+
+ if data.get("format", "") == "json" and function_name is not None:
+ function_call = json.loads(response_json["message"]["content"])
+ message = litellm.Message(
+ content=None,
+ tool_calls=[
+ {
+ "id": f"call_{str(uuid.uuid4())}",
+ "function": {
+ "name": function_call.get("name", function_name),
+ "arguments": json.dumps(
+ function_call.get("arguments", function_call)
+ ),
+ },
+ "type": "function",
+ }
+ ],
+ )
+ model_response.choices[0].message = message # type: ignore
+ model_response.choices[0].finish_reason = "tool_calls"
+ else:
+ _message = litellm.Message(**response_json["message"])
+ model_response.choices[0].message = _message # type: ignore
+
+ model_response.created = int(time.time())
+ model_response.model = "ollama_chat/" + data["model"]
+ prompt_tokens = response_json.get("prompt_eval_count", litellm.token_counter(messages=data["messages"])) # type: ignore
+ completion_tokens = response_json.get(
+ "eval_count",
+ litellm.token_counter(
+ text=response_json["message"]["content"], count_response_tokens=True
+ ),
+ )
+ setattr(
+ model_response,
+ "usage",
+ litellm.Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ ),
+ )
+ return model_response
+ except Exception as e:
+ raise e # don't use verbose_logger.exception, if exception is raised
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/oobabooga.py b/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/oobabooga.py
new file mode 100644
index 00000000..8829d223
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/oobabooga.py
@@ -0,0 +1,158 @@
+import json
+from typing import Any, Callable, Optional
+
+import litellm
+from litellm.llms.custom_httpx.http_handler import _get_httpx_client
+from litellm.utils import EmbeddingResponse, ModelResponse, Usage
+
+from ..common_utils import OobaboogaError
+from .transformation import OobaboogaConfig
+
+oobabooga_config = OobaboogaConfig()
+
+
+def completion(
+ model: str,
+ messages: list,
+ api_base: Optional[str],
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ optional_params: dict,
+ litellm_params: dict,
+ custom_prompt_dict={},
+ logger_fn=None,
+ default_max_tokens_to_sample=None,
+):
+ headers = oobabooga_config.validate_environment(
+ api_key=api_key,
+ headers={},
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ )
+ if "https" in model:
+ completion_url = model
+ elif api_base:
+ completion_url = api_base
+ else:
+ raise OobaboogaError(
+ status_code=404,
+ message="API Base not set. Set one via completion(..,api_base='your-api-url')",
+ )
+ model = model
+
+ completion_url = completion_url + "/v1/chat/completions"
+ data = oobabooga_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ ## LOGGING
+
+ logging_obj.pre_call(
+ input=messages,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ )
+ ## COMPLETION CALL
+ client = _get_httpx_client()
+ response = client.post(
+ completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ stream=optional_params["stream"] if "stream" in optional_params else False,
+ )
+ if "stream" in optional_params and optional_params["stream"] is True:
+ return response.iter_lines()
+ else:
+ return oobabooga_config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ )
+
+
+def embedding(
+ model: str,
+ input: list,
+ model_response: EmbeddingResponse,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ logging_obj: Any,
+ optional_params: dict,
+ encoding=None,
+):
+ # Create completion URL
+ if "https" in model:
+ embeddings_url = model
+ elif api_base:
+ embeddings_url = f"{api_base}/v1/embeddings"
+ else:
+ raise OobaboogaError(
+ status_code=404,
+ message="API Base not set. Set one via completion(..,api_base='your-api-url')",
+ )
+
+ # Prepare request data
+ data = {"input": input}
+ if optional_params:
+ data.update(optional_params)
+
+ # Logging before API call
+ if logging_obj:
+ logging_obj.pre_call(
+ input=input, api_key=api_key, additional_args={"complete_input_dict": data}
+ )
+
+ # Send POST request
+ headers = oobabooga_config.validate_environment(
+ api_key=api_key,
+ headers={},
+ model=model,
+ messages=[],
+ optional_params=optional_params,
+ )
+ response = litellm.module_level_client.post(
+ embeddings_url, headers=headers, json=data
+ )
+ completion_response = response.json()
+
+ # Check for errors in response
+ if "error" in completion_response:
+ raise OobaboogaError(
+ message=completion_response["error"],
+ status_code=completion_response.get("status_code", 500),
+ )
+
+ # Process response data
+ model_response.data = [
+ {
+ "embedding": completion_response["data"][0]["embedding"],
+ "index": 0,
+ "object": "embedding",
+ }
+ ]
+
+ num_tokens = len(completion_response["data"][0]["embedding"])
+ # Adding metadata to response
+ setattr(
+ model_response,
+ "usage",
+ Usage(prompt_tokens=num_tokens, total_tokens=num_tokens),
+ )
+ model_response.object = "list"
+ model_response.model = model
+
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/transformation.py
new file mode 100644
index 00000000..6fd56f93
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/transformation.py
@@ -0,0 +1,100 @@
+import time
+from typing import TYPE_CHECKING, Any, List, Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse, Usage
+
+from ..common_utils import OobaboogaError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+
+ LoggingClass = LiteLLMLoggingObj
+else:
+ LoggingClass = Any
+
+
+class OobaboogaConfig(OpenAIGPTConfig):
+ def get_error_class(
+ self,
+ error_message: str,
+ status_code: int,
+ headers: Optional[Union[dict, httpx.Headers]] = None,
+ ) -> BaseLLMException:
+ return OobaboogaError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LoggingClass,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=raw_response.text,
+ additional_args={"complete_input_dict": request_data},
+ )
+
+ ## RESPONSE OBJECT
+ try:
+ completion_response = raw_response.json()
+ except Exception:
+ raise OobaboogaError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+ if "error" in completion_response:
+ raise OobaboogaError(
+ message=completion_response["error"],
+ status_code=raw_response.status_code,
+ )
+ else:
+ try:
+ model_response.choices[0].message.content = completion_response["choices"][0]["message"]["content"] # type: ignore
+ except Exception as e:
+ raise OobaboogaError(
+ message=str(e),
+ status_code=raw_response.status_code,
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=completion_response["usage"]["prompt_tokens"],
+ completion_tokens=completion_response["usage"]["completion_tokens"],
+ total_tokens=completion_response["usage"]["total_tokens"],
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ headers = {
+ "accept": "application/json",
+ "content-type": "application/json",
+ }
+ if api_key is not None:
+ headers["Authorization"] = f"Token {api_key}"
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/common_utils.py
new file mode 100644
index 00000000..82f8cda9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/oobabooga/common_utils.py
@@ -0,0 +1,15 @@
+from typing import Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class OobaboogaError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[dict, httpx.Headers]] = None,
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/gpt_audio_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/gpt_audio_transformation.py
new file mode 100644
index 00000000..581ffea2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/gpt_audio_transformation.py
@@ -0,0 +1,48 @@
+"""
+Support for GPT-4o audio Family
+
+OpenAI Doc: https://platform.openai.com/docs/guides/audio/quickstart?audio-generation-quickstart-example=audio-in&lang=python
+"""
+
+import litellm
+
+from .gpt_transformation import OpenAIGPTConfig
+
+
+class OpenAIGPTAudioConfig(OpenAIGPTConfig):
+ """
+ Reference: https://platform.openai.com/docs/guides/audio
+ """
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ Get the supported OpenAI params for the `gpt-audio` models
+
+ """
+
+ all_openai_params = super().get_supported_openai_params(model=model)
+ audio_specific_params = ["audio"]
+ return all_openai_params + audio_specific_params
+
+ def is_model_gpt_audio_model(self, model: str) -> bool:
+ if model in litellm.open_ai_chat_completion_models and "audio" in model:
+ return True
+ return False
+
+ def _map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ return super()._map_openai_params(
+ non_default_params=non_default_params,
+ optional_params=optional_params,
+ model=model,
+ drop_params=drop_params,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/gpt_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/gpt_transformation.py
new file mode 100644
index 00000000..c765f979
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/gpt_transformation.py
@@ -0,0 +1,405 @@
+"""
+Support for gpt model family
+"""
+
+from typing import (
+ TYPE_CHECKING,
+ Any,
+ AsyncIterator,
+ Iterator,
+ List,
+ Optional,
+ Union,
+ cast,
+)
+
+import httpx
+
+import litellm
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.llms.base_llm.base_utils import BaseLLMModelInfo
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ ChatCompletionImageObject,
+ ChatCompletionImageUrlObject,
+)
+from litellm.types.utils import ModelResponse, ModelResponseStream
+from litellm.utils import convert_to_model_response_object
+
+from ..common_utils import OpenAIError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class OpenAIGPTConfig(BaseLLMModelInfo, BaseConfig):
+ """
+ Reference: https://platform.openai.com/docs/api-reference/chat/create
+
+ The class `OpenAIConfig` provides configuration for the OpenAI's Chat API interface. Below are the parameters:
+
+ - `frequency_penalty` (number or null): Defaults to 0. Allows a value between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, thereby minimizing repetition.
+
+ - `function_call` (string or object): This optional parameter controls how the model calls functions.
+
+ - `functions` (array): An optional parameter. It is a list of functions for which the model may generate JSON inputs.
+
+ - `logit_bias` (map): This optional parameter modifies the likelihood of specified tokens appearing in the completion.
+
+ - `max_tokens` (integer or null): This optional parameter helps to set the maximum number of tokens to generate in the chat completion.
+
+ - `n` (integer or null): This optional parameter helps to set how many chat completion choices to generate for each input message.
+
+ - `presence_penalty` (number or null): Defaults to 0. It penalizes new tokens based on if they appear in the text so far, hence increasing the model's likelihood to talk about new topics.
+
+ - `stop` (string / array / null): Specifies up to 4 sequences where the API will stop generating further tokens.
+
+ - `temperature` (number or null): Defines the sampling temperature to use, varying between 0 and 2.
+
+ - `top_p` (number or null): An alternative to sampling with temperature, used for nucleus sampling.
+ """
+
+ frequency_penalty: Optional[int] = None
+ function_call: Optional[Union[str, dict]] = None
+ functions: Optional[list] = None
+ logit_bias: Optional[dict] = None
+ max_tokens: Optional[int] = None
+ n: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ response_format: Optional[dict] = None
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[int] = None,
+ function_call: Optional[Union[str, dict]] = None,
+ functions: Optional[list] = None,
+ logit_bias: Optional[dict] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ response_format: Optional[dict] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ base_params = [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "top_logprobs",
+ "max_tokens",
+ "max_completion_tokens",
+ "modalities",
+ "prediction",
+ "n",
+ "presence_penalty",
+ "seed",
+ "stop",
+ "stream",
+ "stream_options",
+ "temperature",
+ "top_p",
+ "tools",
+ "tool_choice",
+ "function_call",
+ "functions",
+ "max_retries",
+ "extra_headers",
+ "parallel_tool_calls",
+ "audio",
+ ] # works across all models
+
+ model_specific_params = []
+ if (
+ model != "gpt-3.5-turbo-16k" and model != "gpt-4"
+ ): # gpt-4 does not support 'response_format'
+ model_specific_params.append("response_format")
+
+ if (
+ model in litellm.open_ai_chat_completion_models
+ ) or model in litellm.open_ai_text_completion_models:
+ model_specific_params.append(
+ "user"
+ ) # user is not a param supported by all openai-compatible endpoints - e.g. azure ai
+ return base_params + model_specific_params
+
+ def _map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ """
+ If any supported_openai_params are in non_default_params, add them to optional_params, so they are use in API call
+
+ Args:
+ non_default_params (dict): Non-default parameters to filter.
+ optional_params (dict): Optional parameters to update.
+ model (str): Model name for parameter support check.
+
+ Returns:
+ dict: Updated optional_params with supported non-default parameters.
+ """
+ supported_openai_params = self.get_supported_openai_params(model)
+ for param, value in non_default_params.items():
+ if param in supported_openai_params:
+ optional_params[param] = value
+ return optional_params
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ return self._map_openai_params(
+ non_default_params=non_default_params,
+ optional_params=optional_params,
+ model=model,
+ drop_params=drop_params,
+ )
+
+ def _transform_messages(
+ self, messages: List[AllMessageValues], model: str
+ ) -> List[AllMessageValues]:
+ """OpenAI no longer supports image_url as a string, so we need to convert it to a dict"""
+ for message in messages:
+ message_content = message.get("content")
+ if message_content and isinstance(message_content, list):
+ for content_item in message_content:
+ if content_item.get("type") == "image_url":
+ content_item = cast(ChatCompletionImageObject, content_item)
+ if isinstance(content_item["image_url"], str):
+ content_item["image_url"] = {
+ "url": content_item["image_url"],
+ }
+ elif isinstance(content_item["image_url"], dict):
+ litellm_specific_params = {"format"}
+ new_image_url_obj = ChatCompletionImageUrlObject(
+ **{ # type: ignore
+ k: v
+ for k, v in content_item["image_url"].items()
+ if k not in litellm_specific_params
+ }
+ )
+ content_item["image_url"] = new_image_url_obj
+ return messages
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ """
+ Transform the overall request to be sent to the API.
+
+ Returns:
+ dict: The transformed request. Sent as the body of the API call.
+ """
+ messages = self._transform_messages(messages=messages, model=model)
+ return {
+ "model": model,
+ "messages": messages,
+ **optional_params,
+ }
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ """
+ Transform the response from the API.
+
+ Returns:
+ dict: The transformed response.
+ """
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=raw_response.text,
+ additional_args={"complete_input_dict": request_data},
+ )
+
+ ## RESPONSE OBJECT
+ try:
+ completion_response = raw_response.json()
+ except Exception as e:
+ response_headers = getattr(raw_response, "headers", None)
+ raise OpenAIError(
+ message="Unable to get json response - {}, Original Response: {}".format(
+ str(e), raw_response.text
+ ),
+ status_code=raw_response.status_code,
+ headers=response_headers,
+ )
+ raw_response_headers = dict(raw_response.headers)
+ final_response_obj = convert_to_model_response_object(
+ response_object=completion_response,
+ model_response_object=model_response,
+ hidden_params={"headers": raw_response_headers},
+ _response_headers=raw_response_headers,
+ )
+
+ return cast(ModelResponse, final_response_obj)
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return OpenAIError(
+ status_code=status_code,
+ message=error_message,
+ headers=cast(httpx.Headers, headers),
+ )
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ Get the complete URL for the API call.
+
+ Returns:
+ str: The complete URL for the API call.
+ """
+ if api_base is None:
+ api_base = "https://api.openai.com"
+ endpoint = "chat/completions"
+
+ # Remove trailing slash from api_base if present
+ api_base = api_base.rstrip("/")
+
+ # Check if endpoint is already in the api_base
+ if endpoint in api_base:
+ return api_base
+
+ return f"{api_base}/{endpoint}"
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ if api_key is not None:
+ headers["Authorization"] = f"Bearer {api_key}"
+
+ # Ensure Content-Type is set to application/json
+ if "content-type" not in headers and "Content-Type" not in headers:
+ headers["Content-Type"] = "application/json"
+
+ return headers
+
+ def get_models(
+ self, api_key: Optional[str] = None, api_base: Optional[str] = None
+ ) -> List[str]:
+ """
+ Calls OpenAI's `/v1/models` endpoint and returns the list of models.
+ """
+
+ if api_base is None:
+ api_base = "https://api.openai.com"
+ if api_key is None:
+ api_key = get_secret_str("OPENAI_API_KEY")
+
+ response = litellm.module_level_client.get(
+ url=f"{api_base}/v1/models",
+ headers={"Authorization": f"Bearer {api_key}"},
+ )
+
+ if response.status_code != 200:
+ raise Exception(f"Failed to get models: {response.text}")
+
+ models = response.json()["data"]
+ return [model["id"] for model in models]
+
+ @staticmethod
+ def get_api_key(api_key: Optional[str] = None) -> Optional[str]:
+ return (
+ api_key
+ or litellm.api_key
+ or litellm.openai_key
+ or get_secret_str("OPENAI_API_KEY")
+ )
+
+ @staticmethod
+ def get_api_base(api_base: Optional[str] = None) -> Optional[str]:
+ return (
+ api_base
+ or litellm.api_base
+ or get_secret_str("OPENAI_API_BASE")
+ or "https://api.openai.com/v1"
+ )
+
+ @staticmethod
+ def get_base_model(model: str) -> str:
+ return model
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ) -> Any:
+ return OpenAIChatCompletionStreamingHandler(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+
+class OpenAIChatCompletionStreamingHandler(BaseModelResponseIterator):
+
+ def chunk_parser(self, chunk: dict) -> ModelResponseStream:
+ try:
+ return ModelResponseStream(
+ id=chunk["id"],
+ object="chat.completion.chunk",
+ created=chunk["created"],
+ model=chunk["model"],
+ choices=chunk["choices"],
+ )
+ except Exception as e:
+ raise e
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/o_series_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/o_series_handler.py
new file mode 100644
index 00000000..d141498c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/o_series_handler.py
@@ -0,0 +1,3 @@
+"""
+LLM Calling done in `openai/openai.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/o_series_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/o_series_transformation.py
new file mode 100644
index 00000000..b2ffda6e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/chat/o_series_transformation.py
@@ -0,0 +1,156 @@
+"""
+Support for o1/o3 model family
+
+https://platform.openai.com/docs/guides/reasoning
+
+Translations handled by LiteLLM:
+- modalities: image => drop param (if user opts in to dropping param)
+- role: system ==> translate to role 'user'
+- streaming => faked by LiteLLM
+- Tools, response_format => drop param (if user opts in to dropping param)
+- Logprobs => drop param (if user opts in to dropping param)
+"""
+
+from typing import List, Optional
+
+import litellm
+from litellm import verbose_logger
+from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
+from litellm.types.llms.openai import AllMessageValues, ChatCompletionUserMessage
+from litellm.utils import (
+ supports_function_calling,
+ supports_parallel_function_calling,
+ supports_response_schema,
+ supports_system_messages,
+)
+
+from .gpt_transformation import OpenAIGPTConfig
+
+
+class OpenAIOSeriesConfig(OpenAIGPTConfig):
+ """
+ Reference: https://platform.openai.com/docs/guides/reasoning
+ """
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def translate_developer_role_to_system_role(
+ self, messages: List[AllMessageValues]
+ ) -> List[AllMessageValues]:
+ """
+ O-series models support `developer` role.
+ """
+ return messages
+
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ Get the supported OpenAI params for the given model
+
+ """
+
+ all_openai_params = super().get_supported_openai_params(model=model)
+ non_supported_params = [
+ "logprobs",
+ "top_p",
+ "presence_penalty",
+ "frequency_penalty",
+ "top_logprobs",
+ ]
+
+ o_series_only_param = ["reasoning_effort"]
+
+ all_openai_params.extend(o_series_only_param)
+
+ try:
+ model, custom_llm_provider, api_base, api_key = get_llm_provider(
+ model=model
+ )
+ except Exception:
+ verbose_logger.debug(
+ f"Unable to infer model provider for model={model}, defaulting to openai for o1 supported param check"
+ )
+ custom_llm_provider = "openai"
+
+ _supports_function_calling = supports_function_calling(
+ model, custom_llm_provider
+ )
+ _supports_response_schema = supports_response_schema(model, custom_llm_provider)
+ _supports_parallel_tool_calls = supports_parallel_function_calling(
+ model, custom_llm_provider
+ )
+
+ if not _supports_function_calling:
+ non_supported_params.append("tools")
+ non_supported_params.append("tool_choice")
+ non_supported_params.append("function_call")
+ non_supported_params.append("functions")
+
+ if not _supports_parallel_tool_calls:
+ non_supported_params.append("parallel_tool_calls")
+
+ if not _supports_response_schema:
+ non_supported_params.append("response_format")
+
+ return [
+ param for param in all_openai_params if param not in non_supported_params
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ):
+ if "max_tokens" in non_default_params:
+ optional_params["max_completion_tokens"] = non_default_params.pop(
+ "max_tokens"
+ )
+ if "temperature" in non_default_params:
+ temperature_value: Optional[float] = non_default_params.pop("temperature")
+ if temperature_value is not None:
+ if temperature_value == 1:
+ optional_params["temperature"] = temperature_value
+ else:
+ ## UNSUPPORTED TOOL CHOICE VALUE
+ if litellm.drop_params is True or drop_params is True:
+ pass
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="O-series models don't support temperature={}. Only temperature=1 is supported. To drop unsupported openai params from the call, set `litellm.drop_params = True`".format(
+ temperature_value
+ ),
+ status_code=400,
+ )
+
+ return super()._map_openai_params(
+ non_default_params, optional_params, model, drop_params
+ )
+
+ def is_model_o_series_model(self, model: str) -> bool:
+ if model in litellm.open_ai_chat_completion_models and (
+ "o1" in model or "o3" in model
+ ):
+ return True
+ return False
+
+ def _transform_messages(
+ self, messages: List[AllMessageValues], model: str
+ ) -> List[AllMessageValues]:
+ """
+ Handles limitations of O-1 model family.
+ - modalities: image => drop param (if user opts in to dropping param)
+ - role: system ==> translate to role 'user'
+ """
+ _supports_system_messages = supports_system_messages(model, "openai")
+ for i, message in enumerate(messages):
+ if message["role"] == "system" and not _supports_system_messages:
+ new_message = ChatCompletionUserMessage(
+ content=message["content"], role="user"
+ )
+ messages[i] = new_message # Replace the old message with the new one
+
+ messages = super()._transform_messages(messages, model)
+ return messages
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/common_utils.py
new file mode 100644
index 00000000..55da16d6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/common_utils.py
@@ -0,0 +1,208 @@
+"""
+Common helpers / utils across al OpenAI endpoints
+"""
+
+import hashlib
+import json
+from typing import Any, Dict, List, Literal, Optional, Union
+
+import httpx
+import openai
+from openai import AsyncAzureOpenAI, AsyncOpenAI, AzureOpenAI, OpenAI
+
+import litellm
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.llms.custom_httpx.http_handler import _DEFAULT_TTL_FOR_HTTPX_CLIENTS
+
+
+class OpenAIError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ request: Optional[httpx.Request] = None,
+ response: Optional[httpx.Response] = None,
+ headers: Optional[Union[dict, httpx.Headers]] = None,
+ body: Optional[dict] = None,
+ ):
+ self.status_code = status_code
+ self.message = message
+ self.headers = headers
+ if request:
+ self.request = request
+ else:
+ self.request = httpx.Request(method="POST", url="https://api.openai.com/v1")
+ if response:
+ self.response = response
+ else:
+ self.response = httpx.Response(
+ status_code=status_code, request=self.request
+ )
+ super().__init__(
+ status_code=status_code,
+ message=self.message,
+ headers=self.headers,
+ request=self.request,
+ response=self.response,
+ body=body,
+ )
+
+
+####### Error Handling Utils for OpenAI API #######################
+###################################################################
+def drop_params_from_unprocessable_entity_error(
+ e: Union[openai.UnprocessableEntityError, httpx.HTTPStatusError],
+ data: Dict[str, Any],
+) -> Dict[str, Any]:
+ """
+ Helper function to read OpenAI UnprocessableEntityError and drop the params that raised an error from the error message.
+
+ Args:
+ e (UnprocessableEntityError): The UnprocessableEntityError exception
+ data (Dict[str, Any]): The original data dictionary containing all parameters
+
+ Returns:
+ Dict[str, Any]: A new dictionary with invalid parameters removed
+ """
+ invalid_params: List[str] = []
+ if isinstance(e, httpx.HTTPStatusError):
+ error_json = e.response.json()
+ error_message = error_json.get("error", {})
+ error_body = error_message
+ else:
+ error_body = e.body
+ if (
+ error_body is not None
+ and isinstance(error_body, dict)
+ and error_body.get("message")
+ ):
+ message = error_body.get("message", {})
+ if isinstance(message, str):
+ try:
+ message = json.loads(message)
+ except json.JSONDecodeError:
+ message = {"detail": message}
+ detail = message.get("detail")
+
+ if isinstance(detail, List) and len(detail) > 0 and isinstance(detail[0], dict):
+ for error_dict in detail:
+ if (
+ error_dict.get("loc")
+ and isinstance(error_dict.get("loc"), list)
+ and len(error_dict.get("loc")) == 2
+ ):
+ invalid_params.append(error_dict["loc"][1])
+
+ new_data = {k: v for k, v in data.items() if k not in invalid_params}
+
+ return new_data
+
+
+class BaseOpenAILLM:
+ """
+ Base class for OpenAI LLMs for getting their httpx clients and SSL verification settings
+ """
+
+ @staticmethod
+ def get_cached_openai_client(
+ client_initialization_params: dict, client_type: Literal["openai", "azure"]
+ ) -> Optional[Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]]:
+ """Retrieves the OpenAI client from the in-memory cache based on the client initialization parameters"""
+ _cache_key = BaseOpenAILLM.get_openai_client_cache_key(
+ client_initialization_params=client_initialization_params,
+ client_type=client_type,
+ )
+ _cached_client = litellm.in_memory_llm_clients_cache.get_cache(_cache_key)
+ return _cached_client
+
+ @staticmethod
+ def set_cached_openai_client(
+ openai_client: Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI],
+ client_type: Literal["openai", "azure"],
+ client_initialization_params: dict,
+ ):
+ """Stores the OpenAI client in the in-memory cache for _DEFAULT_TTL_FOR_HTTPX_CLIENTS SECONDS"""
+ _cache_key = BaseOpenAILLM.get_openai_client_cache_key(
+ client_initialization_params=client_initialization_params,
+ client_type=client_type,
+ )
+ litellm.in_memory_llm_clients_cache.set_cache(
+ key=_cache_key,
+ value=openai_client,
+ ttl=_DEFAULT_TTL_FOR_HTTPX_CLIENTS,
+ )
+
+ @staticmethod
+ def get_openai_client_cache_key(
+ client_initialization_params: dict, client_type: Literal["openai", "azure"]
+ ) -> str:
+ """Creates a cache key for the OpenAI client based on the client initialization parameters"""
+ hashed_api_key = None
+ if client_initialization_params.get("api_key") is not None:
+ hash_object = hashlib.sha256(
+ client_initialization_params.get("api_key", "").encode()
+ )
+ # Hexadecimal representation of the hash
+ hashed_api_key = hash_object.hexdigest()
+
+ # Create a more readable cache key using a list of key-value pairs
+ key_parts = [
+ f"hashed_api_key={hashed_api_key}",
+ f"is_async={client_initialization_params.get('is_async')}",
+ ]
+
+ LITELLM_CLIENT_SPECIFIC_PARAMS = [
+ "timeout",
+ "max_retries",
+ "organization",
+ "api_base",
+ ]
+ openai_client_fields = (
+ BaseOpenAILLM.get_openai_client_initialization_param_fields(
+ client_type=client_type
+ )
+ + LITELLM_CLIENT_SPECIFIC_PARAMS
+ )
+
+ for param in openai_client_fields:
+ key_parts.append(f"{param}={client_initialization_params.get(param)}")
+
+ _cache_key = ",".join(key_parts)
+ return _cache_key
+
+ @staticmethod
+ def get_openai_client_initialization_param_fields(
+ client_type: Literal["openai", "azure"]
+ ) -> List[str]:
+ """Returns a list of fields that are used to initialize the OpenAI client"""
+ import inspect
+
+ from openai import AzureOpenAI, OpenAI
+
+ if client_type == "openai":
+ signature = inspect.signature(OpenAI.__init__)
+ else:
+ signature = inspect.signature(AzureOpenAI.__init__)
+
+ # Extract parameter names, excluding 'self'
+ param_names = [param for param in signature.parameters if param != "self"]
+ return param_names
+
+ @staticmethod
+ def _get_async_http_client() -> Optional[httpx.AsyncClient]:
+ if litellm.aclient_session is not None:
+ return litellm.aclient_session
+
+ return httpx.AsyncClient(
+ limits=httpx.Limits(max_connections=1000, max_keepalive_connections=100),
+ verify=litellm.ssl_verify,
+ )
+
+ @staticmethod
+ def _get_sync_http_client() -> Optional[httpx.Client]:
+ if litellm.client_session is not None:
+ return litellm.client_session
+ return httpx.Client(
+ limits=httpx.Limits(max_connections=1000, max_keepalive_connections=100),
+ verify=litellm.ssl_verify,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/handler.py
new file mode 100644
index 00000000..2e60f55b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/handler.py
@@ -0,0 +1,319 @@
+import json
+from typing import Callable, List, Optional, Union
+
+from openai import AsyncOpenAI, OpenAI
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.litellm_core_utils.streaming_handler import CustomStreamWrapper
+from litellm.llms.base import BaseLLM
+from litellm.types.llms.openai import AllMessageValues, OpenAITextCompletionUserMessage
+from litellm.types.utils import LlmProviders, ModelResponse, TextCompletionResponse
+from litellm.utils import ProviderConfigManager
+
+from ..common_utils import OpenAIError
+from .transformation import OpenAITextCompletionConfig
+
+
+class OpenAITextCompletion(BaseLLM):
+ openai_text_completion_global_config = OpenAITextCompletionConfig()
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def validate_environment(self, api_key):
+ headers = {
+ "content-type": "application/json",
+ }
+ if api_key:
+ headers["Authorization"] = f"Bearer {api_key}"
+ return headers
+
+ def completion(
+ self,
+ model_response: ModelResponse,
+ api_key: str,
+ model: str,
+ messages: Union[List[AllMessageValues], List[OpenAITextCompletionUserMessage]],
+ timeout: float,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ print_verbose: Optional[Callable] = None,
+ api_base: Optional[str] = None,
+ acompletion: bool = False,
+ litellm_params=None,
+ logger_fn=None,
+ client=None,
+ organization: Optional[str] = None,
+ headers: Optional[dict] = None,
+ ):
+ try:
+ if headers is None:
+ headers = self.validate_environment(api_key=api_key)
+ if model is None or messages is None:
+ raise OpenAIError(status_code=422, message="Missing model or messages")
+
+ # don't send max retries to the api, if set
+
+ provider_config = ProviderConfigManager.get_provider_text_completion_config(
+ model=model,
+ provider=LlmProviders(custom_llm_provider),
+ )
+
+ data = provider_config.transform_text_completion_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ headers=headers,
+ )
+ max_retries = data.pop("max_retries", 2)
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key=api_key,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ "complete_input_dict": data,
+ },
+ )
+ if acompletion is True:
+ if optional_params.get("stream", False):
+ return self.async_streaming(
+ logging_obj=logging_obj,
+ api_base=api_base,
+ api_key=api_key,
+ data=data,
+ headers=headers,
+ model_response=model_response,
+ model=model,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ organization=organization,
+ )
+ else:
+ return self.acompletion(api_base=api_base, data=data, headers=headers, model_response=model_response, api_key=api_key, logging_obj=logging_obj, model=model, timeout=timeout, max_retries=max_retries, organization=organization, client=client) # type: ignore
+ elif optional_params.get("stream", False):
+ return self.streaming(
+ logging_obj=logging_obj,
+ api_base=api_base,
+ api_key=api_key,
+ data=data,
+ headers=headers,
+ model_response=model_response,
+ model=model,
+ timeout=timeout,
+ max_retries=max_retries, # type: ignore
+ client=client,
+ organization=organization,
+ )
+ else:
+ if client is None:
+ openai_client = OpenAI(
+ api_key=api_key,
+ base_url=api_base,
+ http_client=litellm.client_session,
+ timeout=timeout,
+ max_retries=max_retries, # type: ignore
+ organization=organization,
+ )
+ else:
+ openai_client = client
+
+ raw_response = openai_client.completions.with_raw_response.create(**data) # type: ignore
+ response = raw_response.parse()
+ response_json = response.model_dump()
+
+ ## LOGGING
+ logging_obj.post_call(
+ api_key=api_key,
+ original_response=response_json,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ },
+ )
+
+ ## RESPONSE OBJECT
+ return TextCompletionResponse(**response_json)
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
+
+ async def acompletion(
+ self,
+ logging_obj,
+ api_base: str,
+ data: dict,
+ headers: dict,
+ model_response: ModelResponse,
+ api_key: str,
+ model: str,
+ timeout: float,
+ max_retries: int,
+ organization: Optional[str] = None,
+ client=None,
+ ):
+ try:
+ if client is None:
+ openai_aclient = AsyncOpenAI(
+ api_key=api_key,
+ base_url=api_base,
+ http_client=litellm.aclient_session,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ )
+ else:
+ openai_aclient = client
+
+ raw_response = await openai_aclient.completions.with_raw_response.create(
+ **data
+ )
+ response = raw_response.parse()
+ response_json = response.model_dump()
+
+ ## LOGGING
+ logging_obj.post_call(
+ api_key=api_key,
+ original_response=response,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ },
+ )
+ ## RESPONSE OBJECT
+ response_obj = TextCompletionResponse(**response_json)
+ response_obj._hidden_params.original_response = json.dumps(response_json)
+ return response_obj
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
+
+ def streaming(
+ self,
+ logging_obj,
+ api_key: str,
+ data: dict,
+ headers: dict,
+ model_response: ModelResponse,
+ model: str,
+ timeout: float,
+ api_base: Optional[str] = None,
+ max_retries=None,
+ client=None,
+ organization=None,
+ ):
+
+ if client is None:
+ openai_client = OpenAI(
+ api_key=api_key,
+ base_url=api_base,
+ http_client=litellm.client_session,
+ timeout=timeout,
+ max_retries=max_retries, # type: ignore
+ organization=organization,
+ )
+ else:
+ openai_client = client
+
+ try:
+ raw_response = openai_client.completions.with_raw_response.create(**data)
+ response = raw_response.parse()
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="text-completion-openai",
+ logging_obj=logging_obj,
+ stream_options=data.get("stream_options", None),
+ )
+
+ try:
+ for chunk in streamwrapper:
+ yield chunk
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
+
+ async def async_streaming(
+ self,
+ logging_obj,
+ api_key: str,
+ data: dict,
+ headers: dict,
+ model_response: ModelResponse,
+ model: str,
+ timeout: float,
+ max_retries: int,
+ api_base: Optional[str] = None,
+ client=None,
+ organization=None,
+ ):
+ if client is None:
+ openai_client = AsyncOpenAI(
+ api_key=api_key,
+ base_url=api_base,
+ http_client=litellm.aclient_session,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ )
+ else:
+ openai_client = client
+
+ raw_response = await openai_client.completions.with_raw_response.create(**data)
+ response = raw_response.parse()
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="text-completion-openai",
+ logging_obj=logging_obj,
+ stream_options=data.get("stream_options", None),
+ )
+
+ try:
+ async for transformed_chunk in streamwrapper:
+ yield transformed_chunk
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/transformation.py
new file mode 100644
index 00000000..1aef72d3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/transformation.py
@@ -0,0 +1,158 @@
+"""
+Support for gpt model family
+"""
+
+from typing import List, Optional, Union
+
+from litellm.llms.base_llm.completion.transformation import BaseTextCompletionConfig
+from litellm.types.llms.openai import AllMessageValues, OpenAITextCompletionUserMessage
+from litellm.types.utils import Choices, Message, ModelResponse, TextCompletionResponse
+
+from ..chat.gpt_transformation import OpenAIGPTConfig
+from .utils import _transform_prompt
+
+
+class OpenAITextCompletionConfig(BaseTextCompletionConfig, OpenAIGPTConfig):
+ """
+ Reference: https://platform.openai.com/docs/api-reference/completions/create
+
+ The class `OpenAITextCompletionConfig` provides configuration for the OpenAI's text completion API interface. Below are the parameters:
+
+ - `best_of` (integer or null): This optional parameter generates server-side completions and returns the one with the highest log probability per token.
+
+ - `echo` (boolean or null): This optional parameter will echo back the prompt in addition to the completion.
+
+ - `frequency_penalty` (number or null): Defaults to 0. It is a numbers from -2.0 to 2.0, where positive values decrease the model's likelihood to repeat the same line.
+
+ - `logit_bias` (map): This optional parameter modifies the likelihood of specified tokens appearing in the completion.
+
+ - `logprobs` (integer or null): This optional parameter includes the log probabilities on the most likely tokens as well as the chosen tokens.
+
+ - `max_tokens` (integer or null): This optional parameter sets the maximum number of tokens to generate in the completion.
+
+ - `n` (integer or null): This optional parameter sets how many completions to generate for each prompt.
+
+ - `presence_penalty` (number or null): Defaults to 0 and can be between -2.0 and 2.0. Positive values increase the model's likelihood to talk about new topics.
+
+ - `stop` (string / array / null): Specifies up to 4 sequences where the API will stop generating further tokens.
+
+ - `suffix` (string or null): Defines the suffix that comes after a completion of inserted text.
+
+ - `temperature` (number or null): This optional parameter defines the sampling temperature to use.
+
+ - `top_p` (number or null): An alternative to sampling with temperature, used for nucleus sampling.
+ """
+
+ best_of: Optional[int] = None
+ echo: Optional[bool] = None
+ frequency_penalty: Optional[int] = None
+ logit_bias: Optional[dict] = None
+ logprobs: Optional[int] = None
+ max_tokens: Optional[int] = None
+ n: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ suffix: Optional[str] = None
+
+ def __init__(
+ self,
+ best_of: Optional[int] = None,
+ echo: Optional[bool] = None,
+ frequency_penalty: Optional[int] = None,
+ logit_bias: Optional[dict] = None,
+ logprobs: Optional[int] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ suffix: Optional[str] = None,
+ temperature: Optional[float] = None,
+ top_p: Optional[float] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def convert_to_chat_model_response_object(
+ self,
+ response_object: Optional[TextCompletionResponse] = None,
+ model_response_object: Optional[ModelResponse] = None,
+ ):
+ try:
+ ## RESPONSE OBJECT
+ if response_object is None or model_response_object is None:
+ raise ValueError("Error in response object format")
+ choice_list = []
+ for idx, choice in enumerate(response_object["choices"]):
+ message = Message(
+ content=choice["text"],
+ role="assistant",
+ )
+ choice = Choices(
+ finish_reason=choice["finish_reason"],
+ index=idx,
+ message=message,
+ logprobs=choice.get("logprobs", None),
+ )
+ choice_list.append(choice)
+ model_response_object.choices = choice_list
+
+ if "usage" in response_object:
+ setattr(model_response_object, "usage", response_object["usage"])
+
+ if "id" in response_object:
+ model_response_object.id = response_object["id"]
+
+ if "model" in response_object:
+ model_response_object.model = response_object["model"]
+
+ model_response_object._hidden_params["original_response"] = (
+ response_object # track original response, if users make a litellm.text_completion() request, we can return the original response
+ )
+ return model_response_object
+ except Exception as e:
+ raise e
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return [
+ "functions",
+ "function_call",
+ "temperature",
+ "top_p",
+ "n",
+ "stream",
+ "stream_options",
+ "stop",
+ "max_tokens",
+ "presence_penalty",
+ "frequency_penalty",
+ "logit_bias",
+ "user",
+ "response_format",
+ "seed",
+ "tools",
+ "tool_choice",
+ "max_retries",
+ "logprobs",
+ "top_logprobs",
+ "extra_headers",
+ ]
+
+ def transform_text_completion_request(
+ self,
+ model: str,
+ messages: Union[List[AllMessageValues], List[OpenAITextCompletionUserMessage]],
+ optional_params: dict,
+ headers: dict,
+ ) -> dict:
+ prompt = _transform_prompt(messages)
+ return {
+ "model": model,
+ "prompt": prompt,
+ **optional_params,
+ }
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/utils.py
new file mode 100644
index 00000000..8b3efb4c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/completion/utils.py
@@ -0,0 +1,50 @@
+from typing import List, Union, cast
+
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ convert_content_list_to_str,
+)
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ AllPromptValues,
+ OpenAITextCompletionUserMessage,
+)
+
+
+def is_tokens_or_list_of_tokens(value: List):
+ # Check if it's a list of integers (tokens)
+ if isinstance(value, list) and all(isinstance(item, int) for item in value):
+ return True
+ # Check if it's a list of lists of integers (list of tokens)
+ if isinstance(value, list) and all(
+ isinstance(item, list) and all(isinstance(i, int) for i in item)
+ for item in value
+ ):
+ return True
+ return False
+
+
+def _transform_prompt(
+ messages: Union[List[AllMessageValues], List[OpenAITextCompletionUserMessage]],
+) -> AllPromptValues:
+ if len(messages) == 1: # base case
+ message_content = messages[0].get("content")
+ if (
+ message_content
+ and isinstance(message_content, list)
+ and is_tokens_or_list_of_tokens(message_content)
+ ):
+ openai_prompt: AllPromptValues = cast(AllPromptValues, message_content)
+ else:
+ openai_prompt = ""
+ content = convert_content_list_to_str(cast(AllMessageValues, messages[0]))
+ openai_prompt += content
+ else:
+ prompt_str_list: List[str] = []
+ for m in messages:
+ try: # expect list of int/list of list of int to be a 1 message array only.
+ content = convert_content_list_to_str(cast(AllMessageValues, m))
+ prompt_str_list.append(content)
+ except Exception as e:
+ raise e
+ openai_prompt = prompt_str_list
+ return openai_prompt
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/cost_calculation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/cost_calculation.py
new file mode 100644
index 00000000..0c26fd74
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/cost_calculation.py
@@ -0,0 +1,120 @@
+"""
+Helper util for handling openai-specific cost calculation
+- e.g.: prompt caching
+"""
+
+from typing import Literal, Optional, Tuple
+
+from litellm._logging import verbose_logger
+from litellm.types.utils import CallTypes, Usage
+from litellm.utils import get_model_info
+
+
+def cost_router(call_type: CallTypes) -> Literal["cost_per_token", "cost_per_second"]:
+ if call_type == CallTypes.atranscription or call_type == CallTypes.transcription:
+ return "cost_per_second"
+ else:
+ return "cost_per_token"
+
+
+def cost_per_token(model: str, usage: Usage) -> Tuple[float, float]:
+ """
+ Calculates the cost per token for a given model, prompt tokens, and completion tokens.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - usage: LiteLLM Usage block, containing anthropic caching information
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+ """
+ ## GET MODEL INFO
+ model_info = get_model_info(model=model, custom_llm_provider="openai")
+ ## CALCULATE INPUT COST
+ ### Non-cached text tokens
+ non_cached_text_tokens = usage.prompt_tokens
+ cached_tokens: Optional[int] = None
+ if usage.prompt_tokens_details and usage.prompt_tokens_details.cached_tokens:
+ cached_tokens = usage.prompt_tokens_details.cached_tokens
+ non_cached_text_tokens = non_cached_text_tokens - cached_tokens
+ prompt_cost: float = non_cached_text_tokens * model_info["input_cost_per_token"]
+ ## Prompt Caching cost calculation
+ if model_info.get("cache_read_input_token_cost") is not None and cached_tokens:
+ # Note: We read ._cache_read_input_tokens from the Usage - since cost_calculator.py standardizes the cache read tokens on usage._cache_read_input_tokens
+ prompt_cost += cached_tokens * (
+ model_info.get("cache_read_input_token_cost", 0) or 0
+ )
+
+ _audio_tokens: Optional[int] = (
+ usage.prompt_tokens_details.audio_tokens
+ if usage.prompt_tokens_details is not None
+ else None
+ )
+ _audio_cost_per_token: Optional[float] = model_info.get(
+ "input_cost_per_audio_token"
+ )
+ if _audio_tokens is not None and _audio_cost_per_token is not None:
+ audio_cost: float = _audio_tokens * _audio_cost_per_token
+ prompt_cost += audio_cost
+
+ ## CALCULATE OUTPUT COST
+ completion_cost: float = (
+ usage["completion_tokens"] * model_info["output_cost_per_token"]
+ )
+ _output_cost_per_audio_token: Optional[float] = model_info.get(
+ "output_cost_per_audio_token"
+ )
+ _output_audio_tokens: Optional[int] = (
+ usage.completion_tokens_details.audio_tokens
+ if usage.completion_tokens_details is not None
+ else None
+ )
+ if _output_cost_per_audio_token is not None and _output_audio_tokens is not None:
+ audio_cost = _output_audio_tokens * _output_cost_per_audio_token
+ completion_cost += audio_cost
+
+ return prompt_cost, completion_cost
+
+
+def cost_per_second(
+ model: str, custom_llm_provider: Optional[str], duration: float = 0.0
+) -> Tuple[float, float]:
+ """
+ Calculates the cost per second for a given model, prompt tokens, and completion tokens.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - custom_llm_provider: str, the custom llm provider
+ - duration: float, the duration of the response in seconds
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+ """
+ ## GET MODEL INFO
+ model_info = get_model_info(
+ model=model, custom_llm_provider=custom_llm_provider or "openai"
+ )
+ prompt_cost = 0.0
+ completion_cost = 0.0
+ ## Speech / Audio cost calculation
+ if (
+ "output_cost_per_second" in model_info
+ and model_info["output_cost_per_second"] is not None
+ ):
+ verbose_logger.debug(
+ f"For model={model} - output_cost_per_second: {model_info.get('output_cost_per_second')}; duration: {duration}"
+ )
+ ## COST PER SECOND ##
+ completion_cost = model_info["output_cost_per_second"] * duration
+ elif (
+ "input_cost_per_second" in model_info
+ and model_info["input_cost_per_second"] is not None
+ ):
+ verbose_logger.debug(
+ f"For model={model} - input_cost_per_second: {model_info.get('input_cost_per_second')}; duration: {duration}"
+ )
+ ## COST PER SECOND ##
+ prompt_cost = model_info["input_cost_per_second"] * duration
+ completion_cost = 0.0
+
+ return prompt_cost, completion_cost
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/fine_tuning/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/fine_tuning/handler.py
new file mode 100644
index 00000000..97b237c7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/fine_tuning/handler.py
@@ -0,0 +1,282 @@
+from typing import Any, Coroutine, Optional, Union
+
+import httpx
+from openai import AsyncAzureOpenAI, AsyncOpenAI, AzureOpenAI, OpenAI
+from openai.types.fine_tuning import FineTuningJob
+
+from litellm._logging import verbose_logger
+
+
+class OpenAIFineTuningAPI:
+ """
+ OpenAI methods to support for batches
+ """
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def get_openai_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = None,
+ _is_async: bool = False,
+ api_version: Optional[str] = None,
+ litellm_params: Optional[dict] = None,
+ ) -> Optional[
+ Union[
+ OpenAI,
+ AsyncOpenAI,
+ AzureOpenAI,
+ AsyncAzureOpenAI,
+ ]
+ ]:
+ received_args = locals()
+ openai_client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = None
+ if client is None:
+ data = {}
+ for k, v in received_args.items():
+ if k == "self" or k == "client" or k == "_is_async":
+ pass
+ elif k == "api_base" and v is not None:
+ data["base_url"] = v
+ elif v is not None:
+ data[k] = v
+ if _is_async is True:
+ openai_client = AsyncOpenAI(**data)
+ else:
+ openai_client = OpenAI(**data) # type: ignore
+ else:
+ openai_client = client
+
+ return openai_client
+
+ async def acreate_fine_tuning_job(
+ self,
+ create_fine_tuning_job_data: dict,
+ openai_client: Union[AsyncOpenAI, AsyncAzureOpenAI],
+ ) -> FineTuningJob:
+ response = await openai_client.fine_tuning.jobs.create(
+ **create_fine_tuning_job_data
+ )
+ return response
+
+ def create_fine_tuning_job(
+ self,
+ _is_async: bool,
+ create_fine_tuning_job_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = None,
+ ) -> Union[FineTuningJob, Coroutine[Any, Any, FineTuningJob]]:
+ openai_client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ api_version=api_version,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, (AsyncOpenAI, AsyncAzureOpenAI)):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.acreate_fine_tuning_job( # type: ignore
+ create_fine_tuning_job_data=create_fine_tuning_job_data,
+ openai_client=openai_client,
+ )
+ verbose_logger.debug(
+ "creating fine tuning job, args= %s", create_fine_tuning_job_data
+ )
+ response = openai_client.fine_tuning.jobs.create(**create_fine_tuning_job_data)
+ return response
+
+ async def acancel_fine_tuning_job(
+ self,
+ fine_tuning_job_id: str,
+ openai_client: Union[AsyncOpenAI, AsyncAzureOpenAI],
+ ) -> FineTuningJob:
+ response = await openai_client.fine_tuning.jobs.cancel(
+ fine_tuning_job_id=fine_tuning_job_id
+ )
+ return response
+
+ def cancel_fine_tuning_job(
+ self,
+ _is_async: bool,
+ fine_tuning_job_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = None,
+ ):
+ openai_client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ api_version=api_version,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, (AsyncOpenAI, AsyncAzureOpenAI)):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.acancel_fine_tuning_job( # type: ignore
+ fine_tuning_job_id=fine_tuning_job_id,
+ openai_client=openai_client,
+ )
+ verbose_logger.debug("canceling fine tuning job, args= %s", fine_tuning_job_id)
+ response = openai_client.fine_tuning.jobs.cancel(
+ fine_tuning_job_id=fine_tuning_job_id
+ )
+ return response
+
+ async def alist_fine_tuning_jobs(
+ self,
+ openai_client: Union[AsyncOpenAI, AsyncAzureOpenAI],
+ after: Optional[str] = None,
+ limit: Optional[int] = None,
+ ):
+ response = await openai_client.fine_tuning.jobs.list(after=after, limit=limit) # type: ignore
+ return response
+
+ def list_fine_tuning_jobs(
+ self,
+ _is_async: bool,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = None,
+ after: Optional[str] = None,
+ limit: Optional[int] = None,
+ ):
+ openai_client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ api_version=api_version,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, (AsyncOpenAI, AsyncAzureOpenAI)):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.alist_fine_tuning_jobs( # type: ignore
+ after=after,
+ limit=limit,
+ openai_client=openai_client,
+ )
+ verbose_logger.debug("list fine tuning job, after= %s, limit= %s", after, limit)
+ response = openai_client.fine_tuning.jobs.list(after=after, limit=limit) # type: ignore
+ return response
+
+ async def aretrieve_fine_tuning_job(
+ self,
+ fine_tuning_job_id: str,
+ openai_client: Union[AsyncOpenAI, AsyncAzureOpenAI],
+ ) -> FineTuningJob:
+ response = await openai_client.fine_tuning.jobs.retrieve(
+ fine_tuning_job_id=fine_tuning_job_id
+ )
+ return response
+
+ def retrieve_fine_tuning_job(
+ self,
+ _is_async: bool,
+ fine_tuning_job_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ api_version: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = None,
+ ):
+ openai_client: Optional[
+ Union[OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI]
+ ] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ api_version=api_version,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.aretrieve_fine_tuning_job( # type: ignore
+ fine_tuning_job_id=fine_tuning_job_id,
+ openai_client=openai_client,
+ )
+ verbose_logger.debug("retrieving fine tuning job, id= %s", fine_tuning_job_id)
+ response = openai_client.fine_tuning.jobs.retrieve(
+ fine_tuning_job_id=fine_tuning_job_id
+ )
+ return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/handler.py
new file mode 100644
index 00000000..f738115a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/handler.py
@@ -0,0 +1,244 @@
+"""
+OpenAI Image Variations Handler
+"""
+
+from typing import Callable, Optional
+
+import httpx
+from openai import AsyncOpenAI, OpenAI
+
+import litellm
+from litellm.types.utils import FileTypes, ImageResponse, LlmProviders
+from litellm.utils import ProviderConfigManager
+
+from ...base_llm.image_variations.transformation import BaseImageVariationConfig
+from ...custom_httpx.llm_http_handler import LiteLLMLoggingObj
+from ..common_utils import OpenAIError
+
+
+class OpenAIImageVariationsHandler:
+ def get_sync_client(
+ self,
+ client: Optional[OpenAI],
+ init_client_params: dict,
+ ):
+ if client is None:
+ openai_client = OpenAI(
+ **init_client_params,
+ )
+ else:
+ openai_client = client
+ return openai_client
+
+ def get_async_client(
+ self, client: Optional[AsyncOpenAI], init_client_params: dict
+ ) -> AsyncOpenAI:
+ if client is None:
+ openai_client = AsyncOpenAI(
+ **init_client_params,
+ )
+ else:
+ openai_client = client
+ return openai_client
+
+ async def async_image_variations(
+ self,
+ api_key: str,
+ api_base: str,
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ data: dict,
+ headers: dict,
+ model: Optional[str],
+ timeout: float,
+ max_retries: int,
+ logging_obj: LiteLLMLoggingObj,
+ model_response: ImageResponse,
+ optional_params: dict,
+ litellm_params: dict,
+ image: FileTypes,
+ provider_config: BaseImageVariationConfig,
+ ) -> ImageResponse:
+ try:
+ init_client_params = {
+ "api_key": api_key,
+ "base_url": api_base,
+ "http_client": litellm.client_session,
+ "timeout": timeout,
+ "max_retries": max_retries, # type: ignore
+ "organization": organization,
+ }
+
+ client = self.get_async_client(
+ client=client, init_client_params=init_client_params
+ )
+
+ raw_response = await client.images.with_raw_response.create_variation(**data) # type: ignore
+ response = raw_response.parse()
+ response_json = response.model_dump()
+
+ ## LOGGING
+ logging_obj.post_call(
+ api_key=api_key,
+ original_response=response_json,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ },
+ )
+
+ ## RESPONSE OBJECT
+ return provider_config.transform_response_image_variation(
+ model=model,
+ model_response=ImageResponse(**response_json),
+ raw_response=httpx.Response(
+ status_code=200,
+ request=httpx.Request(
+ method="GET", url="https://litellm.ai"
+ ), # mock request object
+ ),
+ logging_obj=logging_obj,
+ request_data=data,
+ image=image,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=None,
+ api_key=api_key,
+ )
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
+
+ def image_variations(
+ self,
+ model_response: ImageResponse,
+ api_key: str,
+ api_base: str,
+ model: Optional[str],
+ image: FileTypes,
+ timeout: float,
+ custom_llm_provider: str,
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ litellm_params: dict,
+ print_verbose: Optional[Callable] = None,
+ logger_fn=None,
+ client=None,
+ organization: Optional[str] = None,
+ headers: Optional[dict] = None,
+ ) -> ImageResponse:
+ try:
+ provider_config = ProviderConfigManager.get_provider_image_variation_config(
+ model=model or "", # openai defaults to dall-e-2
+ provider=LlmProviders.OPENAI,
+ )
+
+ if provider_config is None:
+ raise ValueError(
+ f"image variation provider not found: {custom_llm_provider}."
+ )
+
+ max_retries = optional_params.pop("max_retries", 2)
+
+ data = provider_config.transform_request_image_variation(
+ model=model,
+ image=image,
+ optional_params=optional_params,
+ headers=headers or {},
+ )
+ json_data = data.get("data")
+ if not json_data:
+ raise ValueError(
+ f"data field is required, for openai image variations. Got={data}"
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input="",
+ api_key=api_key,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ "complete_input_dict": data,
+ },
+ )
+ if litellm_params.get("async_call", False):
+ return self.async_image_variations(
+ api_base=api_base,
+ data=json_data,
+ headers=headers or {},
+ model_response=model_response,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ model=model,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ provider_config=provider_config,
+ image=image,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ ) # type: ignore
+
+ init_client_params = {
+ "api_key": api_key,
+ "base_url": api_base,
+ "http_client": litellm.client_session,
+ "timeout": timeout,
+ "max_retries": max_retries, # type: ignore
+ "organization": organization,
+ }
+
+ client = self.get_sync_client(
+ client=client, init_client_params=init_client_params
+ )
+
+ raw_response = client.images.with_raw_response.create_variation(**json_data) # type: ignore
+ response = raw_response.parse()
+ response_json = response.model_dump()
+
+ ## LOGGING
+ logging_obj.post_call(
+ api_key=api_key,
+ original_response=response_json,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ },
+ )
+
+ ## RESPONSE OBJECT
+ return provider_config.transform_response_image_variation(
+ model=model,
+ model_response=ImageResponse(**response_json),
+ raw_response=httpx.Response(
+ status_code=200,
+ request=httpx.Request(
+ method="GET", url="https://litellm.ai"
+ ), # mock request object
+ ),
+ logging_obj=logging_obj,
+ request_data=json_data,
+ image=image,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=None,
+ api_key=api_key,
+ )
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/transformation.py
new file mode 100644
index 00000000..96d1a302
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/image_variations/transformation.py
@@ -0,0 +1,82 @@
+from typing import Any, List, Optional, Union
+
+from aiohttp import ClientResponse
+from httpx import Headers, Response
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.llms.base_llm.image_variations.transformation import LiteLLMLoggingObj
+from litellm.types.llms.openai import OpenAIImageVariationOptionalParams
+from litellm.types.utils import FileTypes, HttpHandlerRequestFields, ImageResponse
+
+from ...base_llm.image_variations.transformation import BaseImageVariationConfig
+from ..common_utils import OpenAIError
+
+
+class OpenAIImageVariationConfig(BaseImageVariationConfig):
+ def get_supported_openai_params(
+ self, model: str
+ ) -> List[OpenAIImageVariationOptionalParams]:
+ return ["n", "size", "response_format", "user"]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ optional_params.update(non_default_params)
+ return optional_params
+
+ def transform_request_image_variation(
+ self,
+ model: Optional[str],
+ image: FileTypes,
+ optional_params: dict,
+ headers: dict,
+ ) -> HttpHandlerRequestFields:
+ return {
+ "data": {
+ "image": image,
+ **optional_params,
+ }
+ }
+
+ async def async_transform_response_image_variation(
+ self,
+ model: Optional[str],
+ raw_response: ClientResponse,
+ model_response: ImageResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ image: FileTypes,
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ ) -> ImageResponse:
+ return model_response
+
+ def transform_response_image_variation(
+ self,
+ model: Optional[str],
+ raw_response: Response,
+ model_response: ImageResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ image: FileTypes,
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ ) -> ImageResponse:
+ return model_response
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return OpenAIError(
+ status_code=status_code,
+ message=error_message,
+ headers=headers,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/openai.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/openai.py
new file mode 100644
index 00000000..deb70b48
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/openai.py
@@ -0,0 +1,2870 @@
+import time
+import types
+from typing import (
+ Any,
+ AsyncIterator,
+ Callable,
+ Coroutine,
+ Iterable,
+ Iterator,
+ List,
+ Literal,
+ Optional,
+ Union,
+ cast,
+)
+from urllib.parse import urlparse
+
+import httpx
+import openai
+from openai import AsyncOpenAI, OpenAI
+from openai.types.beta.assistant_deleted import AssistantDeleted
+from openai.types.file_deleted import FileDeleted
+from pydantic import BaseModel
+from typing_extensions import overload
+
+import litellm
+from litellm import LlmProviders
+from litellm._logging import verbose_logger
+from litellm.constants import DEFAULT_MAX_RETRIES
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.litellm_core_utils.logging_utils import track_llm_api_timing
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.llms.bedrock.chat.invoke_handler import MockResponseIterator
+from litellm.types.utils import (
+ EmbeddingResponse,
+ ImageResponse,
+ LiteLLMBatch,
+ ModelResponse,
+ ModelResponseStream,
+)
+from litellm.utils import (
+ CustomStreamWrapper,
+ ProviderConfigManager,
+ convert_to_model_response_object,
+)
+
+from ...types.llms.openai import *
+from ..base import BaseLLM
+from .chat.o_series_transformation import OpenAIOSeriesConfig
+from .common_utils import (
+ BaseOpenAILLM,
+ OpenAIError,
+ drop_params_from_unprocessable_entity_error,
+)
+
+openaiOSeriesConfig = OpenAIOSeriesConfig()
+
+
+class MistralEmbeddingConfig:
+ """
+ Reference: https://docs.mistral.ai/api/#operation/createEmbedding
+ """
+
+ def __init__(
+ self,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self):
+ return [
+ "encoding_format",
+ ]
+
+ def map_openai_params(self, non_default_params: dict, optional_params: dict):
+ for param, value in non_default_params.items():
+ if param == "encoding_format":
+ optional_params["encoding_format"] = value
+ return optional_params
+
+
+class OpenAIConfig(BaseConfig):
+ """
+ Reference: https://platform.openai.com/docs/api-reference/chat/create
+
+ The class `OpenAIConfig` provides configuration for the OpenAI's Chat API interface. Below are the parameters:
+
+ - `frequency_penalty` (number or null): Defaults to 0. Allows a value between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, thereby minimizing repetition.
+
+ - `function_call` (string or object): This optional parameter controls how the model calls functions.
+
+ - `functions` (array): An optional parameter. It is a list of functions for which the model may generate JSON inputs.
+
+ - `logit_bias` (map): This optional parameter modifies the likelihood of specified tokens appearing in the completion.
+
+ - `max_tokens` (integer or null): This optional parameter helps to set the maximum number of tokens to generate in the chat completion. OpenAI has now deprecated in favor of max_completion_tokens, and is not compatible with o1 series models.
+
+ - `max_completion_tokens` (integer or null): An upper bound for the number of tokens that can be generated for a completion, including visible output tokens and reasoning tokens.
+
+ - `n` (integer or null): This optional parameter helps to set how many chat completion choices to generate for each input message.
+
+ - `presence_penalty` (number or null): Defaults to 0. It penalizes new tokens based on if they appear in the text so far, hence increasing the model's likelihood to talk about new topics.
+
+ - `stop` (string / array / null): Specifies up to 4 sequences where the API will stop generating further tokens.
+
+ - `temperature` (number or null): Defines the sampling temperature to use, varying between 0 and 2.
+
+ - `top_p` (number or null): An alternative to sampling with temperature, used for nucleus sampling.
+ """
+
+ frequency_penalty: Optional[int] = None
+ function_call: Optional[Union[str, dict]] = None
+ functions: Optional[list] = None
+ logit_bias: Optional[dict] = None
+ max_completion_tokens: Optional[int] = None
+ max_tokens: Optional[int] = None
+ n: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ response_format: Optional[dict] = None
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[int] = None,
+ function_call: Optional[Union[str, dict]] = None,
+ functions: Optional[list] = None,
+ logit_bias: Optional[dict] = None,
+ max_completion_tokens: Optional[int] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ response_format: Optional[dict] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ This function returns the list
+ of supported openai parameters for a given OpenAI Model
+
+ - If O1 model, returns O1 supported params
+ - If gpt-audio model, returns gpt-audio supported params
+ - Else, returns gpt supported params
+
+ Args:
+ model (str): OpenAI model
+
+ Returns:
+ list: List of supported openai parameters
+ """
+ if openaiOSeriesConfig.is_model_o_series_model(model=model):
+ return openaiOSeriesConfig.get_supported_openai_params(model=model)
+ elif litellm.openAIGPTAudioConfig.is_model_gpt_audio_model(model=model):
+ return litellm.openAIGPTAudioConfig.get_supported_openai_params(model=model)
+ else:
+ return litellm.openAIGPTConfig.get_supported_openai_params(model=model)
+
+ def _map_openai_params(
+ self, non_default_params: dict, optional_params: dict, model: str
+ ) -> dict:
+ supported_openai_params = self.get_supported_openai_params(model)
+ for param, value in non_default_params.items():
+ if param in supported_openai_params:
+ optional_params[param] = value
+ return optional_params
+
+ def _transform_messages(
+ self, messages: List[AllMessageValues], model: str
+ ) -> List[AllMessageValues]:
+ return messages
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ """ """
+ if openaiOSeriesConfig.is_model_o_series_model(model=model):
+ return openaiOSeriesConfig.map_openai_params(
+ non_default_params=non_default_params,
+ optional_params=optional_params,
+ model=model,
+ drop_params=drop_params,
+ )
+ elif litellm.openAIGPTAudioConfig.is_model_gpt_audio_model(model=model):
+ return litellm.openAIGPTAudioConfig.map_openai_params(
+ non_default_params=non_default_params,
+ optional_params=optional_params,
+ model=model,
+ drop_params=drop_params,
+ )
+
+ return litellm.openAIGPTConfig.map_openai_params(
+ non_default_params=non_default_params,
+ optional_params=optional_params,
+ model=model,
+ drop_params=drop_params,
+ )
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return OpenAIError(
+ status_code=status_code,
+ message=error_message,
+ headers=headers,
+ )
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ messages = self._transform_messages(messages=messages, model=model)
+ return {"model": model, "messages": messages, **optional_params}
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+
+ logging_obj.post_call(original_response=raw_response.text)
+ logging_obj.model_call_details["response_headers"] = raw_response.headers
+ final_response_obj = cast(
+ ModelResponse,
+ convert_to_model_response_object(
+ response_object=raw_response.json(),
+ model_response_object=model_response,
+ hidden_params={"headers": raw_response.headers},
+ _response_headers=dict(raw_response.headers),
+ ),
+ )
+
+ return final_response_obj
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return {
+ "Authorization": f"Bearer {api_key}",
+ **headers,
+ }
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ) -> Any:
+ return OpenAIChatCompletionResponseIterator(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+
+class OpenAIChatCompletionResponseIterator(BaseModelResponseIterator):
+ def chunk_parser(self, chunk: dict) -> ModelResponseStream:
+ """
+ {'choices': [{'delta': {'content': '', 'role': 'assistant'}, 'finish_reason': None, 'index': 0, 'logprobs': None}], 'created': 1735763082, 'id': 'a83a2b0fbfaf4aab9c2c93cb8ba346d7', 'model': 'mistral-large', 'object': 'chat.completion.chunk'}
+ """
+ try:
+ return ModelResponseStream(**chunk)
+ except Exception as e:
+ raise e
+
+
+class OpenAIChatCompletion(BaseLLM, BaseOpenAILLM):
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def _set_dynamic_params_on_client(
+ self,
+ client: Union[OpenAI, AsyncOpenAI],
+ organization: Optional[str] = None,
+ max_retries: Optional[int] = None,
+ ):
+ if organization is not None:
+ client.organization = organization
+ if max_retries is not None:
+ client.max_retries = max_retries
+
+ def _get_openai_client(
+ self,
+ is_async: bool,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ api_version: Optional[str] = None,
+ timeout: Union[float, httpx.Timeout] = httpx.Timeout(None),
+ max_retries: Optional[int] = DEFAULT_MAX_RETRIES,
+ organization: Optional[str] = None,
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ ) -> Optional[Union[OpenAI, AsyncOpenAI]]:
+ client_initialization_params: Dict = locals()
+ if client is None:
+ if not isinstance(max_retries, int):
+ raise OpenAIError(
+ status_code=422,
+ message="max retries must be an int. Passed in value: {}".format(
+ max_retries
+ ),
+ )
+ cached_client = self.get_cached_openai_client(
+ client_initialization_params=client_initialization_params,
+ client_type="openai",
+ )
+
+ if cached_client:
+ if isinstance(cached_client, OpenAI) or isinstance(
+ cached_client, AsyncOpenAI
+ ):
+ return cached_client
+ if is_async:
+ _new_client: Union[OpenAI, AsyncOpenAI] = AsyncOpenAI(
+ api_key=api_key,
+ base_url=api_base,
+ http_client=OpenAIChatCompletion._get_async_http_client(),
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ )
+ else:
+ _new_client = OpenAI(
+ api_key=api_key,
+ base_url=api_base,
+ http_client=OpenAIChatCompletion._get_sync_http_client(),
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ )
+
+ ## SAVE CACHE KEY
+ self.set_cached_openai_client(
+ openai_client=_new_client,
+ client_initialization_params=client_initialization_params,
+ client_type="openai",
+ )
+ return _new_client
+
+ else:
+ self._set_dynamic_params_on_client(
+ client=client,
+ organization=organization,
+ max_retries=max_retries,
+ )
+ return client
+
+ @track_llm_api_timing()
+ async def make_openai_chat_completion_request(
+ self,
+ openai_aclient: AsyncOpenAI,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ logging_obj: LiteLLMLoggingObj,
+ ) -> Tuple[dict, BaseModel]:
+ """
+ Helper to:
+ - call chat.completions.create.with_raw_response when litellm.return_response_headers is True
+ - call chat.completions.create by default
+ """
+ start_time = time.time()
+ try:
+ raw_response = (
+ await openai_aclient.chat.completions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ )
+ end_time = time.time()
+
+ if hasattr(raw_response, "headers"):
+ headers = dict(raw_response.headers)
+ else:
+ headers = {}
+ response = raw_response.parse()
+ return headers, response
+ except openai.APITimeoutError as e:
+ end_time = time.time()
+ time_delta = round(end_time - start_time, 2)
+ e.message += f" - timeout value={timeout}, time taken={time_delta} seconds"
+ raise e
+ except Exception as e:
+ raise e
+
+ @track_llm_api_timing()
+ def make_sync_openai_chat_completion_request(
+ self,
+ openai_client: OpenAI,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ logging_obj: LiteLLMLoggingObj,
+ ) -> Tuple[dict, BaseModel]:
+ """
+ Helper to:
+ - call chat.completions.create.with_raw_response when litellm.return_response_headers is True
+ - call chat.completions.create by default
+ """
+ raw_response = None
+ try:
+ raw_response = openai_client.chat.completions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+
+ if hasattr(raw_response, "headers"):
+ headers = dict(raw_response.headers)
+ else:
+ headers = {}
+ response = raw_response.parse()
+ return headers, response
+ except Exception as e:
+ if raw_response is not None:
+ raise Exception(
+ "error - {}, Received response - {}, Type of response - {}".format(
+ e, raw_response, type(raw_response)
+ )
+ )
+ else:
+ raise e
+
+ def mock_streaming(
+ self,
+ response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ model: str,
+ stream_options: Optional[dict] = None,
+ ) -> CustomStreamWrapper:
+ completion_stream = MockResponseIterator(model_response=response)
+ streaming_response = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="openai",
+ logging_obj=logging_obj,
+ stream_options=stream_options,
+ )
+
+ return streaming_response
+
+ def completion( # type: ignore # noqa: PLR0915
+ self,
+ model_response: ModelResponse,
+ timeout: Union[float, httpx.Timeout],
+ optional_params: dict,
+ litellm_params: dict,
+ logging_obj: Any,
+ model: Optional[str] = None,
+ messages: Optional[list] = None,
+ print_verbose: Optional[Callable] = None,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ api_version: Optional[str] = None,
+ dynamic_params: Optional[bool] = None,
+ azure_ad_token: Optional[str] = None,
+ acompletion: bool = False,
+ logger_fn=None,
+ headers: Optional[dict] = None,
+ custom_prompt_dict: dict = {},
+ client=None,
+ organization: Optional[str] = None,
+ custom_llm_provider: Optional[str] = None,
+ drop_params: Optional[bool] = None,
+ ):
+
+ super().completion()
+ try:
+ fake_stream: bool = False
+ inference_params = optional_params.copy()
+ stream_options: Optional[dict] = inference_params.pop(
+ "stream_options", None
+ )
+ stream: Optional[bool] = inference_params.pop("stream", False)
+ provider_config: Optional[BaseConfig] = None
+
+ if custom_llm_provider is not None and model is not None:
+ provider_config = ProviderConfigManager.get_provider_chat_config(
+ model=model, provider=LlmProviders(custom_llm_provider)
+ )
+
+ if provider_config:
+ fake_stream = provider_config.should_fake_stream(
+ model=model, custom_llm_provider=custom_llm_provider, stream=stream
+ )
+
+ if headers:
+ inference_params["extra_headers"] = headers
+ if model is None or messages is None:
+ raise OpenAIError(status_code=422, message="Missing model or messages")
+
+ if not isinstance(timeout, float) and not isinstance(
+ timeout, httpx.Timeout
+ ):
+ raise OpenAIError(
+ status_code=422,
+ message="Timeout needs to be a float or httpx.Timeout",
+ )
+
+ if custom_llm_provider is not None and custom_llm_provider != "openai":
+ model_response.model = f"{custom_llm_provider}/{model}"
+
+ for _ in range(
+ 2
+ ): # if call fails due to alternating messages, retry with reformatted message
+
+ if provider_config is not None:
+ data = provider_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=inference_params,
+ litellm_params=litellm_params,
+ headers=headers or {},
+ )
+ else:
+ data = OpenAIConfig().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=inference_params,
+ litellm_params=litellm_params,
+ headers=headers or {},
+ )
+ try:
+ max_retries = data.pop("max_retries", 2)
+ if acompletion is True:
+ if stream is True and fake_stream is False:
+ return self.async_streaming(
+ logging_obj=logging_obj,
+ headers=headers,
+ data=data,
+ model=model,
+ api_base=api_base,
+ api_key=api_key,
+ api_version=api_version,
+ timeout=timeout,
+ client=client,
+ max_retries=max_retries,
+ organization=organization,
+ drop_params=drop_params,
+ stream_options=stream_options,
+ )
+ else:
+ return self.acompletion(
+ data=data,
+ headers=headers,
+ model=model,
+ logging_obj=logging_obj,
+ model_response=model_response,
+ api_base=api_base,
+ api_key=api_key,
+ api_version=api_version,
+ timeout=timeout,
+ client=client,
+ max_retries=max_retries,
+ organization=organization,
+ drop_params=drop_params,
+ fake_stream=fake_stream,
+ )
+ elif stream is True and fake_stream is False:
+ return self.streaming(
+ logging_obj=logging_obj,
+ headers=headers,
+ data=data,
+ model=model,
+ api_base=api_base,
+ api_key=api_key,
+ api_version=api_version,
+ timeout=timeout,
+ client=client,
+ max_retries=max_retries,
+ organization=organization,
+ stream_options=stream_options,
+ )
+ else:
+ if not isinstance(max_retries, int):
+ raise OpenAIError(
+ status_code=422, message="max retries must be an int"
+ )
+ openai_client: OpenAI = self._get_openai_client( # type: ignore
+ is_async=False,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key=openai_client.api_key,
+ additional_args={
+ "headers": headers,
+ "api_base": openai_client._base_url._uri_reference,
+ "acompletion": acompletion,
+ "complete_input_dict": data,
+ },
+ )
+
+ headers, response = (
+ self.make_sync_openai_chat_completion_request(
+ openai_client=openai_client,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ )
+ )
+
+ logging_obj.model_call_details["response_headers"] = headers
+ stringified_response = response.model_dump()
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=stringified_response,
+ additional_args={"complete_input_dict": data},
+ )
+
+ final_response_obj = convert_to_model_response_object(
+ response_object=stringified_response,
+ model_response_object=model_response,
+ _response_headers=headers,
+ )
+ if fake_stream is True:
+ return self.mock_streaming(
+ response=cast(ModelResponse, final_response_obj),
+ logging_obj=logging_obj,
+ model=model,
+ stream_options=stream_options,
+ )
+
+ return final_response_obj
+ except openai.UnprocessableEntityError as e:
+ ## check if body contains unprocessable params - related issue https://github.com/BerriAI/litellm/issues/4800
+ if litellm.drop_params is True or drop_params is True:
+ inference_params = drop_params_from_unprocessable_entity_error(
+ e, inference_params
+ )
+ else:
+ raise e
+ # e.message
+ except Exception as e:
+ if print_verbose is not None:
+ print_verbose(f"openai.py: Received openai error - {str(e)}")
+ if (
+ "Conversation roles must alternate user/assistant" in str(e)
+ or "user and assistant roles should be alternating" in str(e)
+ ) and messages is not None:
+ if print_verbose is not None:
+ print_verbose("openai.py: REFORMATS THE MESSAGE!")
+ # reformat messages to ensure user/assistant are alternating, if there's either 2 consecutive 'user' messages or 2 consecutive 'assistant' message, add a blank 'user' or 'assistant' message to ensure compatibility
+ new_messages = []
+ for i in range(len(messages) - 1): # type: ignore
+ new_messages.append(messages[i])
+ if messages[i]["role"] == messages[i + 1]["role"]:
+ if messages[i]["role"] == "user":
+ new_messages.append(
+ {"role": "assistant", "content": ""}
+ )
+ else:
+ new_messages.append({"role": "user", "content": ""})
+ new_messages.append(messages[-1])
+ messages = new_messages
+ elif (
+ "Last message must have role `user`" in str(e)
+ ) and messages is not None:
+ new_messages = messages
+ new_messages.append({"role": "user", "content": ""})
+ messages = new_messages
+ elif "unknown field: parameter index is not a valid field" in str(
+ e
+ ):
+ litellm.remove_index_from_tool_calls(messages=messages)
+ else:
+ raise e
+ except OpenAIError as e:
+ raise e
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ error_body = getattr(e, "body", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code,
+ message=error_text,
+ headers=error_headers,
+ body=error_body,
+ )
+
+ async def acompletion(
+ self,
+ data: dict,
+ model: str,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ timeout: Union[float, httpx.Timeout],
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ api_version: Optional[str] = None,
+ organization: Optional[str] = None,
+ client=None,
+ max_retries=None,
+ headers=None,
+ drop_params: Optional[bool] = None,
+ stream_options: Optional[dict] = None,
+ fake_stream: bool = False,
+ ):
+ response = None
+ for _ in range(
+ 2
+ ): # if call fails due to alternating messages, retry with reformatted message
+
+ try:
+ openai_aclient: AsyncOpenAI = self._get_openai_client( # type: ignore
+ is_async=True,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["messages"],
+ api_key=openai_aclient.api_key,
+ additional_args={
+ "headers": {
+ "Authorization": f"Bearer {openai_aclient.api_key}"
+ },
+ "api_base": openai_aclient._base_url._uri_reference,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+
+ headers, response = await self.make_openai_chat_completion_request(
+ openai_aclient=openai_aclient,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ )
+ stringified_response = response.model_dump()
+
+ logging_obj.post_call(
+ input=data["messages"],
+ api_key=api_key,
+ original_response=stringified_response,
+ additional_args={"complete_input_dict": data},
+ )
+ logging_obj.model_call_details["response_headers"] = headers
+ final_response_obj = convert_to_model_response_object(
+ response_object=stringified_response,
+ model_response_object=model_response,
+ hidden_params={"headers": headers},
+ _response_headers=headers,
+ )
+
+ if fake_stream is True:
+ return self.mock_streaming(
+ response=cast(ModelResponse, final_response_obj),
+ logging_obj=logging_obj,
+ model=model,
+ stream_options=stream_options,
+ )
+
+ return final_response_obj
+ except openai.UnprocessableEntityError as e:
+ ## check if body contains unprocessable params - related issue https://github.com/BerriAI/litellm/issues/4800
+ if litellm.drop_params is True or drop_params is True:
+ data = drop_params_from_unprocessable_entity_error(e, data)
+ else:
+ raise e
+ # e.message
+ except Exception as e:
+ exception_response = getattr(e, "response", None)
+ status_code = getattr(e, "status_code", 500)
+ exception_body = getattr(e, "body", None)
+ error_headers = getattr(e, "headers", None)
+ if error_headers is None and exception_response:
+ error_headers = getattr(exception_response, "headers", None)
+ message = getattr(e, "message", str(e))
+
+ raise OpenAIError(
+ status_code=status_code,
+ message=message,
+ headers=error_headers,
+ body=exception_body,
+ )
+
+ def streaming(
+ self,
+ logging_obj,
+ timeout: Union[float, httpx.Timeout],
+ data: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ api_version: Optional[str] = None,
+ organization: Optional[str] = None,
+ client=None,
+ max_retries=None,
+ headers=None,
+ stream_options: Optional[dict] = None,
+ ):
+ data["stream"] = True
+ data.update(
+ self.get_stream_options(stream_options=stream_options, api_base=api_base)
+ )
+
+ openai_client: OpenAI = self._get_openai_client( # type: ignore
+ is_async=False,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["messages"],
+ api_key=api_key,
+ additional_args={
+ "headers": {"Authorization": f"Bearer {openai_client.api_key}"},
+ "api_base": openai_client._base_url._uri_reference,
+ "acompletion": False,
+ "complete_input_dict": data,
+ },
+ )
+ headers, response = self.make_sync_openai_chat_completion_request(
+ openai_client=openai_client,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ )
+
+ logging_obj.model_call_details["response_headers"] = headers
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="openai",
+ logging_obj=logging_obj,
+ stream_options=data.get("stream_options", None),
+ _response_headers=headers,
+ )
+ return streamwrapper
+
+ async def async_streaming(
+ self,
+ timeout: Union[float, httpx.Timeout],
+ data: dict,
+ model: str,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ api_version: Optional[str] = None,
+ organization: Optional[str] = None,
+ client=None,
+ max_retries=None,
+ headers=None,
+ drop_params: Optional[bool] = None,
+ stream_options: Optional[dict] = None,
+ ):
+ response = None
+ data["stream"] = True
+ data.update(
+ self.get_stream_options(stream_options=stream_options, api_base=api_base)
+ )
+ for _ in range(2):
+ try:
+ openai_aclient: AsyncOpenAI = self._get_openai_client( # type: ignore
+ is_async=True,
+ api_key=api_key,
+ api_base=api_base,
+ api_version=api_version,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input=data["messages"],
+ api_key=api_key,
+ additional_args={
+ "headers": headers,
+ "api_base": api_base,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+
+ headers, response = await self.make_openai_chat_completion_request(
+ openai_aclient=openai_aclient,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ )
+ logging_obj.model_call_details["response_headers"] = headers
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="openai",
+ logging_obj=logging_obj,
+ stream_options=data.get("stream_options", None),
+ _response_headers=headers,
+ )
+ return streamwrapper
+ except openai.UnprocessableEntityError as e:
+ ## check if body contains unprocessable params - related issue https://github.com/BerriAI/litellm/issues/4800
+ if litellm.drop_params is True or drop_params is True:
+ data = drop_params_from_unprocessable_entity_error(e, data)
+ else:
+ raise e
+ except (
+ Exception
+ ) as e: # need to exception handle here. async exceptions don't get caught in sync functions.
+
+ if isinstance(e, OpenAIError):
+ raise e
+
+ error_headers = getattr(e, "headers", None)
+ status_code = getattr(e, "status_code", 500)
+ error_response = getattr(e, "response", None)
+ exception_body = getattr(e, "body", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ if response is not None and hasattr(response, "text"):
+ raise OpenAIError(
+ status_code=status_code,
+ message=f"{str(e)}\n\nOriginal Response: {response.text}", # type: ignore
+ headers=error_headers,
+ body=exception_body,
+ )
+ else:
+ if type(e).__name__ == "ReadTimeout":
+ raise OpenAIError(
+ status_code=408,
+ message=f"{type(e).__name__}",
+ headers=error_headers,
+ body=exception_body,
+ )
+ elif hasattr(e, "status_code"):
+ raise OpenAIError(
+ status_code=getattr(e, "status_code", 500),
+ message=str(e),
+ headers=error_headers,
+ body=exception_body,
+ )
+ else:
+ raise OpenAIError(
+ status_code=500,
+ message=f"{str(e)}",
+ headers=error_headers,
+ body=exception_body,
+ )
+
+ def get_stream_options(
+ self, stream_options: Optional[dict], api_base: Optional[str]
+ ) -> dict:
+ """
+ Pass `stream_options` to the data dict for OpenAI requests
+ """
+ if stream_options is not None:
+ return {"stream_options": stream_options}
+ else:
+ # by default litellm will include usage for openai endpoints
+ if api_base is None or urlparse(api_base).hostname == "api.openai.com":
+ return {"stream_options": {"include_usage": True}}
+ return {}
+
+ # Embedding
+ @track_llm_api_timing()
+ async def make_openai_embedding_request(
+ self,
+ openai_aclient: AsyncOpenAI,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ logging_obj: LiteLLMLoggingObj,
+ ):
+ """
+ Helper to:
+ - call embeddings.create.with_raw_response when litellm.return_response_headers is True
+ - call embeddings.create by default
+ """
+ try:
+ raw_response = await openai_aclient.embeddings.with_raw_response.create(
+ **data, timeout=timeout
+ ) # type: ignore
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+ return headers, response
+ except Exception as e:
+ raise e
+
+ @track_llm_api_timing()
+ def make_sync_openai_embedding_request(
+ self,
+ openai_client: OpenAI,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ logging_obj: LiteLLMLoggingObj,
+ ):
+ """
+ Helper to:
+ - call embeddings.create.with_raw_response when litellm.return_response_headers is True
+ - call embeddings.create by default
+ """
+ try:
+ raw_response = openai_client.embeddings.with_raw_response.create(
+ **data, timeout=timeout
+ ) # type: ignore
+
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+ return headers, response
+ except Exception as e:
+ raise e
+
+ async def aembedding(
+ self,
+ input: list,
+ data: dict,
+ model_response: EmbeddingResponse,
+ timeout: float,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ client: Optional[AsyncOpenAI] = None,
+ max_retries=None,
+ ):
+ try:
+ openai_aclient: AsyncOpenAI = self._get_openai_client( # type: ignore
+ is_async=True,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ )
+ headers, response = await self.make_openai_embedding_request(
+ openai_aclient=openai_aclient,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ )
+ logging_obj.model_call_details["response_headers"] = headers
+ stringified_response = response.model_dump()
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=stringified_response,
+ )
+ returned_response: EmbeddingResponse = convert_to_model_response_object(
+ response_object=stringified_response,
+ model_response_object=model_response,
+ response_type="embedding",
+ _response_headers=headers,
+ ) # type: ignore
+ return returned_response
+ except OpenAIError as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ raise e
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
+
+ def embedding( # type: ignore
+ self,
+ model: str,
+ input: list,
+ timeout: float,
+ logging_obj,
+ model_response: EmbeddingResponse,
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ client=None,
+ aembedding=None,
+ max_retries: Optional[int] = None,
+ ) -> EmbeddingResponse:
+ super().embedding()
+ try:
+ model = model
+ data = {"model": model, "input": input, **optional_params}
+ max_retries = max_retries or litellm.DEFAULT_MAX_RETRIES
+ if not isinstance(max_retries, int):
+ raise OpenAIError(status_code=422, message="max retries must be an int")
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data, "api_base": api_base},
+ )
+
+ if aembedding is True:
+ return self.aembedding( # type: ignore
+ data=data,
+ input=input,
+ logging_obj=logging_obj,
+ model_response=model_response,
+ api_base=api_base,
+ api_key=api_key,
+ timeout=timeout,
+ client=client,
+ max_retries=max_retries,
+ )
+
+ openai_client: OpenAI = self._get_openai_client( # type: ignore
+ is_async=False,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ )
+
+ ## embedding CALL
+ headers: Optional[Dict] = None
+ headers, sync_embedding_response = self.make_sync_openai_embedding_request(
+ openai_client=openai_client,
+ data=data,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ ) # type: ignore
+
+ ## LOGGING
+ logging_obj.model_call_details["response_headers"] = headers
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=sync_embedding_response,
+ )
+ response: EmbeddingResponse = convert_to_model_response_object(
+ response_object=sync_embedding_response.model_dump(),
+ model_response_object=model_response,
+ _response_headers=headers,
+ response_type="embedding",
+ ) # type: ignore
+ return response
+ except OpenAIError as e:
+ raise e
+ except Exception as e:
+ status_code = getattr(e, "status_code", 500)
+ error_headers = getattr(e, "headers", None)
+ error_text = getattr(e, "text", str(e))
+ error_response = getattr(e, "response", None)
+ if error_headers is None and error_response:
+ error_headers = getattr(error_response, "headers", None)
+ raise OpenAIError(
+ status_code=status_code, message=error_text, headers=error_headers
+ )
+
+ async def aimage_generation(
+ self,
+ prompt: str,
+ data: dict,
+ model_response: ModelResponse,
+ timeout: float,
+ logging_obj: Any,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ client=None,
+ max_retries=None,
+ ):
+ response = None
+ try:
+
+ openai_aclient = self._get_openai_client(
+ is_async=True,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ )
+
+ response = await openai_aclient.images.generate(**data, timeout=timeout) # type: ignore
+ stringified_response = response.model_dump()
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=stringified_response,
+ )
+ return convert_to_model_response_object(response_object=stringified_response, model_response_object=model_response, response_type="image_generation") # type: ignore
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ original_response=str(e),
+ )
+ raise e
+
+ def image_generation(
+ self,
+ model: Optional[str],
+ prompt: str,
+ timeout: float,
+ optional_params: dict,
+ logging_obj: Any,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ model_response: Optional[ImageResponse] = None,
+ client=None,
+ aimg_generation=None,
+ ) -> ImageResponse:
+ data = {}
+ try:
+ model = model
+ data = {"model": model, "prompt": prompt, **optional_params}
+ max_retries = data.pop("max_retries", 2)
+ if not isinstance(max_retries, int):
+ raise OpenAIError(status_code=422, message="max retries must be an int")
+
+ if aimg_generation is True:
+ return self.aimage_generation(data=data, prompt=prompt, logging_obj=logging_obj, model_response=model_response, api_base=api_base, api_key=api_key, timeout=timeout, client=client, max_retries=max_retries) # type: ignore
+
+ openai_client: OpenAI = self._get_openai_client( # type: ignore
+ is_async=False,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=openai_client.api_key,
+ additional_args={
+ "headers": {"Authorization": f"Bearer {openai_client.api_key}"},
+ "api_base": openai_client._base_url._uri_reference,
+ "acompletion": True,
+ "complete_input_dict": data,
+ },
+ )
+
+ ## COMPLETION CALL
+ _response = openai_client.images.generate(**data, timeout=timeout) # type: ignore
+
+ response = _response.model_dump()
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=response,
+ )
+ return convert_to_model_response_object(response_object=response, model_response_object=model_response, response_type="image_generation") # type: ignore
+ except OpenAIError as e:
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ raise e
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=str(e),
+ )
+ if hasattr(e, "status_code"):
+ raise OpenAIError(
+ status_code=getattr(e, "status_code", 500), message=str(e)
+ )
+ else:
+ raise OpenAIError(status_code=500, message=str(e))
+
+ def audio_speech(
+ self,
+ model: str,
+ input: str,
+ voice: str,
+ optional_params: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ organization: Optional[str],
+ project: Optional[str],
+ max_retries: int,
+ timeout: Union[float, httpx.Timeout],
+ aspeech: Optional[bool] = None,
+ client=None,
+ ) -> HttpxBinaryResponseContent:
+
+ if aspeech is not None and aspeech is True:
+ return self.async_audio_speech(
+ model=model,
+ input=input,
+ voice=voice,
+ optional_params=optional_params,
+ api_key=api_key,
+ api_base=api_base,
+ organization=organization,
+ project=project,
+ max_retries=max_retries,
+ timeout=timeout,
+ client=client,
+ ) # type: ignore
+
+ openai_client = self._get_openai_client(
+ is_async=False,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ )
+
+ response = cast(OpenAI, openai_client).audio.speech.create(
+ model=model,
+ voice=voice, # type: ignore
+ input=input,
+ **optional_params,
+ )
+ return HttpxBinaryResponseContent(response=response.response)
+
+ async def async_audio_speech(
+ self,
+ model: str,
+ input: str,
+ voice: str,
+ optional_params: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ organization: Optional[str],
+ project: Optional[str],
+ max_retries: int,
+ timeout: Union[float, httpx.Timeout],
+ client=None,
+ ) -> HttpxBinaryResponseContent:
+
+ openai_client = cast(
+ AsyncOpenAI,
+ self._get_openai_client(
+ is_async=True,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ ),
+ )
+
+ response = await openai_client.audio.speech.create(
+ model=model,
+ voice=voice, # type: ignore
+ input=input,
+ **optional_params,
+ )
+
+ return HttpxBinaryResponseContent(response=response.response)
+
+
+class OpenAIFilesAPI(BaseLLM):
+ """
+ OpenAI methods to support for batches
+ - create_file()
+ - retrieve_file()
+ - list_files()
+ - delete_file()
+ - file_content()
+ - update_file()
+ """
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def get_openai_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ _is_async: bool = False,
+ ) -> Optional[Union[OpenAI, AsyncOpenAI]]:
+ received_args = locals()
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = None
+ if client is None:
+ data = {}
+ for k, v in received_args.items():
+ if k == "self" or k == "client" or k == "_is_async":
+ pass
+ elif k == "api_base" and v is not None:
+ data["base_url"] = v
+ elif v is not None:
+ data[k] = v
+ if _is_async is True:
+ openai_client = AsyncOpenAI(**data)
+ else:
+ openai_client = OpenAI(**data) # type: ignore
+ else:
+ openai_client = client
+
+ return openai_client
+
+ async def acreate_file(
+ self,
+ create_file_data: CreateFileRequest,
+ openai_client: AsyncOpenAI,
+ ) -> FileObject:
+ response = await openai_client.files.create(**create_file_data)
+ return response
+
+ def create_file(
+ self,
+ _is_async: bool,
+ create_file_data: CreateFileRequest,
+ api_base: str,
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ ) -> Union[FileObject, Coroutine[Any, Any, FileObject]]:
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.acreate_file( # type: ignore
+ create_file_data=create_file_data, openai_client=openai_client
+ )
+ response = openai_client.files.create(**create_file_data)
+ return response
+
+ async def afile_content(
+ self,
+ file_content_request: FileContentRequest,
+ openai_client: AsyncOpenAI,
+ ) -> HttpxBinaryResponseContent:
+ response = await openai_client.files.content(**file_content_request)
+ return HttpxBinaryResponseContent(response=response.response)
+
+ def file_content(
+ self,
+ _is_async: bool,
+ file_content_request: FileContentRequest,
+ api_base: str,
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ ) -> Union[
+ HttpxBinaryResponseContent, Coroutine[Any, Any, HttpxBinaryResponseContent]
+ ]:
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.afile_content( # type: ignore
+ file_content_request=file_content_request,
+ openai_client=openai_client,
+ )
+ response = cast(OpenAI, openai_client).files.content(**file_content_request)
+
+ return HttpxBinaryResponseContent(response=response.response)
+
+ async def aretrieve_file(
+ self,
+ file_id: str,
+ openai_client: AsyncOpenAI,
+ ) -> FileObject:
+ response = await openai_client.files.retrieve(file_id=file_id)
+ return response
+
+ def retrieve_file(
+ self,
+ _is_async: bool,
+ file_id: str,
+ api_base: str,
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ ):
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.aretrieve_file( # type: ignore
+ file_id=file_id,
+ openai_client=openai_client,
+ )
+ response = openai_client.files.retrieve(file_id=file_id)
+
+ return response
+
+ async def adelete_file(
+ self,
+ file_id: str,
+ openai_client: AsyncOpenAI,
+ ) -> FileDeleted:
+ response = await openai_client.files.delete(file_id=file_id)
+ return response
+
+ def delete_file(
+ self,
+ _is_async: bool,
+ file_id: str,
+ api_base: str,
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ ):
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.adelete_file( # type: ignore
+ file_id=file_id,
+ openai_client=openai_client,
+ )
+ response = openai_client.files.delete(file_id=file_id)
+
+ return response
+
+ async def alist_files(
+ self,
+ openai_client: AsyncOpenAI,
+ purpose: Optional[str] = None,
+ ):
+ if isinstance(purpose, str):
+ response = await openai_client.files.list(purpose=purpose)
+ else:
+ response = await openai_client.files.list()
+ return response
+
+ def list_files(
+ self,
+ _is_async: bool,
+ api_base: str,
+ api_key: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ purpose: Optional[str] = None,
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ ):
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.alist_files( # type: ignore
+ purpose=purpose,
+ openai_client=openai_client,
+ )
+
+ if isinstance(purpose, str):
+ response = openai_client.files.list(purpose=purpose)
+ else:
+ response = openai_client.files.list()
+
+ return response
+
+
+class OpenAIBatchesAPI(BaseLLM):
+ """
+ OpenAI methods to support for batches
+ - create_batch()
+ - retrieve_batch()
+ - cancel_batch()
+ - list_batch()
+ """
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def get_openai_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ _is_async: bool = False,
+ ) -> Optional[Union[OpenAI, AsyncOpenAI]]:
+ received_args = locals()
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = None
+ if client is None:
+ data = {}
+ for k, v in received_args.items():
+ if k == "self" or k == "client" or k == "_is_async":
+ pass
+ elif k == "api_base" and v is not None:
+ data["base_url"] = v
+ elif v is not None:
+ data[k] = v
+ if _is_async is True:
+ openai_client = AsyncOpenAI(**data)
+ else:
+ openai_client = OpenAI(**data) # type: ignore
+ else:
+ openai_client = client
+
+ return openai_client
+
+ async def acreate_batch(
+ self,
+ create_batch_data: CreateBatchRequest,
+ openai_client: AsyncOpenAI,
+ ) -> LiteLLMBatch:
+ response = await openai_client.batches.create(**create_batch_data)
+ return LiteLLMBatch(**response.model_dump())
+
+ def create_batch(
+ self,
+ _is_async: bool,
+ create_batch_data: CreateBatchRequest,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[Union[OpenAI, AsyncOpenAI]] = None,
+ ) -> Union[LiteLLMBatch, Coroutine[Any, Any, LiteLLMBatch]]:
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.acreate_batch( # type: ignore
+ create_batch_data=create_batch_data, openai_client=openai_client
+ )
+ response = cast(OpenAI, openai_client).batches.create(**create_batch_data)
+
+ return LiteLLMBatch(**response.model_dump())
+
+ async def aretrieve_batch(
+ self,
+ retrieve_batch_data: RetrieveBatchRequest,
+ openai_client: AsyncOpenAI,
+ ) -> LiteLLMBatch:
+ verbose_logger.debug("retrieving batch, args= %s", retrieve_batch_data)
+ response = await openai_client.batches.retrieve(**retrieve_batch_data)
+ return LiteLLMBatch(**response.model_dump())
+
+ def retrieve_batch(
+ self,
+ _is_async: bool,
+ retrieve_batch_data: RetrieveBatchRequest,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[OpenAI] = None,
+ ):
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.aretrieve_batch( # type: ignore
+ retrieve_batch_data=retrieve_batch_data, openai_client=openai_client
+ )
+ response = cast(OpenAI, openai_client).batches.retrieve(**retrieve_batch_data)
+ return LiteLLMBatch(**response.model_dump())
+
+ async def acancel_batch(
+ self,
+ cancel_batch_data: CancelBatchRequest,
+ openai_client: AsyncOpenAI,
+ ) -> Batch:
+ verbose_logger.debug("async cancelling batch, args= %s", cancel_batch_data)
+ response = await openai_client.batches.cancel(**cancel_batch_data)
+ return response
+
+ def cancel_batch(
+ self,
+ _is_async: bool,
+ cancel_batch_data: CancelBatchRequest,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[OpenAI] = None,
+ ):
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.acancel_batch( # type: ignore
+ cancel_batch_data=cancel_batch_data, openai_client=openai_client
+ )
+
+ response = openai_client.batches.cancel(**cancel_batch_data)
+ return response
+
+ async def alist_batches(
+ self,
+ openai_client: AsyncOpenAI,
+ after: Optional[str] = None,
+ limit: Optional[int] = None,
+ ):
+ verbose_logger.debug("listing batches, after= %s, limit= %s", after, limit)
+ response = await openai_client.batches.list(after=after, limit=limit) # type: ignore
+ return response
+
+ def list_batches(
+ self,
+ _is_async: bool,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ after: Optional[str] = None,
+ limit: Optional[int] = None,
+ client: Optional[OpenAI] = None,
+ ):
+ openai_client: Optional[Union[OpenAI, AsyncOpenAI]] = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ _is_async=_is_async,
+ )
+ if openai_client is None:
+ raise ValueError(
+ "OpenAI client is not initialized. Make sure api_key is passed or OPENAI_API_KEY is set in the environment."
+ )
+
+ if _is_async is True:
+ if not isinstance(openai_client, AsyncOpenAI):
+ raise ValueError(
+ "OpenAI client is not an instance of AsyncOpenAI. Make sure you passed an AsyncOpenAI client."
+ )
+ return self.alist_batches( # type: ignore
+ openai_client=openai_client, after=after, limit=limit
+ )
+ response = openai_client.batches.list(after=after, limit=limit) # type: ignore
+ return response
+
+
+class OpenAIAssistantsAPI(BaseLLM):
+ def __init__(self) -> None:
+ super().__init__()
+
+ def get_openai_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[OpenAI] = None,
+ ) -> OpenAI:
+ received_args = locals()
+ if client is None:
+ data = {}
+ for k, v in received_args.items():
+ if k == "self" or k == "client":
+ pass
+ elif k == "api_base" and v is not None:
+ data["base_url"] = v
+ elif v is not None:
+ data[k] = v
+ openai_client = OpenAI(**data) # type: ignore
+ else:
+ openai_client = client
+
+ return openai_client
+
+ def async_get_openai_client(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI] = None,
+ ) -> AsyncOpenAI:
+ received_args = locals()
+ if client is None:
+ data = {}
+ for k, v in received_args.items():
+ if k == "self" or k == "client":
+ pass
+ elif k == "api_base" and v is not None:
+ data["base_url"] = v
+ elif v is not None:
+ data[k] = v
+ openai_client = AsyncOpenAI(**data) # type: ignore
+ else:
+ openai_client = client
+
+ return openai_client
+
+ ### ASSISTANTS ###
+
+ async def async_get_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ order: Optional[str] = "desc",
+ limit: Optional[int] = 20,
+ before: Optional[str] = None,
+ after: Optional[str] = None,
+ ) -> AsyncCursorPage[Assistant]:
+ openai_client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ request_params = {
+ "order": order,
+ "limit": limit,
+ }
+ if before:
+ request_params["before"] = before
+ if after:
+ request_params["after"] = after
+
+ response = await openai_client.beta.assistants.list(**request_params) # type: ignore
+
+ return response
+
+ # fmt: off
+
+ @overload
+ def get_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ aget_assistants: Literal[True],
+ ) -> Coroutine[None, None, AsyncCursorPage[Assistant]]:
+ ...
+
+ @overload
+ def get_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[OpenAI],
+ aget_assistants: Optional[Literal[False]],
+ ) -> SyncCursorPage[Assistant]:
+ ...
+
+ # fmt: on
+
+ def get_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client=None,
+ aget_assistants=None,
+ order: Optional[str] = "desc",
+ limit: Optional[int] = 20,
+ before: Optional[str] = None,
+ after: Optional[str] = None,
+ ):
+ if aget_assistants is not None and aget_assistants is True:
+ return self.async_get_assistants(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ openai_client = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ request_params = {
+ "order": order,
+ "limit": limit,
+ }
+
+ if before:
+ request_params["before"] = before
+ if after:
+ request_params["after"] = after
+
+ response = openai_client.beta.assistants.list(**request_params) # type: ignore
+
+ return response
+
+ # Create Assistant
+ async def async_create_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ create_assistant_data: dict,
+ ) -> Assistant:
+ openai_client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = await openai_client.beta.assistants.create(**create_assistant_data)
+
+ return response
+
+ def create_assistants(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ create_assistant_data: dict,
+ client=None,
+ async_create_assistants=None,
+ ):
+ if async_create_assistants is not None and async_create_assistants is True:
+ return self.async_create_assistants(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ create_assistant_data=create_assistant_data,
+ )
+ openai_client = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = openai_client.beta.assistants.create(**create_assistant_data)
+ return response
+
+ # Delete Assistant
+ async def async_delete_assistant(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ assistant_id: str,
+ ) -> AssistantDeleted:
+ openai_client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = await openai_client.beta.assistants.delete(assistant_id=assistant_id)
+
+ return response
+
+ def delete_assistant(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ assistant_id: str,
+ client=None,
+ async_delete_assistants=None,
+ ):
+ if async_delete_assistants is not None and async_delete_assistants is True:
+ return self.async_delete_assistant(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ assistant_id=assistant_id,
+ )
+ openai_client = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = openai_client.beta.assistants.delete(assistant_id=assistant_id)
+ return response
+
+ ### MESSAGES ###
+
+ async def a_add_message(
+ self,
+ thread_id: str,
+ message_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI] = None,
+ ) -> OpenAIMessage:
+ openai_client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ thread_message: OpenAIMessage = await openai_client.beta.threads.messages.create( # type: ignore
+ thread_id, **message_data # type: ignore
+ )
+
+ response_obj: Optional[OpenAIMessage] = None
+ if getattr(thread_message, "status", None) is None:
+ thread_message.status = "completed"
+ response_obj = OpenAIMessage(**thread_message.dict())
+ else:
+ response_obj = OpenAIMessage(**thread_message.dict())
+ return response_obj
+
+ # fmt: off
+
+ @overload
+ def add_message(
+ self,
+ thread_id: str,
+ message_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ a_add_message: Literal[True],
+ ) -> Coroutine[None, None, OpenAIMessage]:
+ ...
+
+ @overload
+ def add_message(
+ self,
+ thread_id: str,
+ message_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[OpenAI],
+ a_add_message: Optional[Literal[False]],
+ ) -> OpenAIMessage:
+ ...
+
+ # fmt: on
+
+ def add_message(
+ self,
+ thread_id: str,
+ message_data: dict,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client=None,
+ a_add_message: Optional[bool] = None,
+ ):
+ if a_add_message is not None and a_add_message is True:
+ return self.a_add_message(
+ thread_id=thread_id,
+ message_data=message_data,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ openai_client = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ thread_message: OpenAIMessage = openai_client.beta.threads.messages.create( # type: ignore
+ thread_id, **message_data # type: ignore
+ )
+
+ response_obj: Optional[OpenAIMessage] = None
+ if getattr(thread_message, "status", None) is None:
+ thread_message.status = "completed"
+ response_obj = OpenAIMessage(**thread_message.dict())
+ else:
+ response_obj = OpenAIMessage(**thread_message.dict())
+ return response_obj
+
+ async def async_get_messages(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI] = None,
+ ) -> AsyncCursorPage[OpenAIMessage]:
+ openai_client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = await openai_client.beta.threads.messages.list(thread_id=thread_id)
+
+ return response
+
+ # fmt: off
+
+ @overload
+ def get_messages(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ aget_messages: Literal[True],
+ ) -> Coroutine[None, None, AsyncCursorPage[OpenAIMessage]]:
+ ...
+
+ @overload
+ def get_messages(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[OpenAI],
+ aget_messages: Optional[Literal[False]],
+ ) -> SyncCursorPage[OpenAIMessage]:
+ ...
+
+ # fmt: on
+
+ def get_messages(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client=None,
+ aget_messages=None,
+ ):
+ if aget_messages is not None and aget_messages is True:
+ return self.async_get_messages(
+ thread_id=thread_id,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ openai_client = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = openai_client.beta.threads.messages.list(thread_id=thread_id)
+
+ return response
+
+ ### THREADS ###
+
+ async def async_create_thread(
+ self,
+ metadata: Optional[dict],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ messages: Optional[Iterable[OpenAICreateThreadParamsMessage]],
+ ) -> Thread:
+ openai_client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ data = {}
+ if messages is not None:
+ data["messages"] = messages # type: ignore
+ if metadata is not None:
+ data["metadata"] = metadata # type: ignore
+
+ message_thread = await openai_client.beta.threads.create(**data) # type: ignore
+
+ return Thread(**message_thread.dict())
+
+ # fmt: off
+
+ @overload
+ def create_thread(
+ self,
+ metadata: Optional[dict],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ messages: Optional[Iterable[OpenAICreateThreadParamsMessage]],
+ client: Optional[AsyncOpenAI],
+ acreate_thread: Literal[True],
+ ) -> Coroutine[None, None, Thread]:
+ ...
+
+ @overload
+ def create_thread(
+ self,
+ metadata: Optional[dict],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ messages: Optional[Iterable[OpenAICreateThreadParamsMessage]],
+ client: Optional[OpenAI],
+ acreate_thread: Optional[Literal[False]],
+ ) -> Thread:
+ ...
+
+ # fmt: on
+
+ def create_thread(
+ self,
+ metadata: Optional[dict],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ messages: Optional[Iterable[OpenAICreateThreadParamsMessage]],
+ client=None,
+ acreate_thread=None,
+ ):
+ """
+ Here's an example:
+ ```
+ from litellm.llms.openai.openai import OpenAIAssistantsAPI, MessageData
+
+ # create thread
+ message: MessageData = {"role": "user", "content": "Hey, how's it going?"}
+ openai_api.create_thread(messages=[message])
+ ```
+ """
+ if acreate_thread is not None and acreate_thread is True:
+ return self.async_create_thread(
+ metadata=metadata,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ messages=messages,
+ )
+ openai_client = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ data = {}
+ if messages is not None:
+ data["messages"] = messages # type: ignore
+ if metadata is not None:
+ data["metadata"] = metadata # type: ignore
+
+ message_thread = openai_client.beta.threads.create(**data) # type: ignore
+
+ return Thread(**message_thread.dict())
+
+ async def async_get_thread(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ ) -> Thread:
+ openai_client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = await openai_client.beta.threads.retrieve(thread_id=thread_id)
+
+ return Thread(**response.dict())
+
+ # fmt: off
+
+ @overload
+ def get_thread(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ aget_thread: Literal[True],
+ ) -> Coroutine[None, None, Thread]:
+ ...
+
+ @overload
+ def get_thread(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[OpenAI],
+ aget_thread: Optional[Literal[False]],
+ ) -> Thread:
+ ...
+
+ # fmt: on
+
+ def get_thread(
+ self,
+ thread_id: str,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client=None,
+ aget_thread=None,
+ ):
+ if aget_thread is not None and aget_thread is True:
+ return self.async_get_thread(
+ thread_id=thread_id,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ openai_client = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = openai_client.beta.threads.retrieve(thread_id=thread_id)
+
+ return Thread(**response.dict())
+
+ def delete_thread(self):
+ pass
+
+ ### RUNS ###
+
+ async def arun_thread(
+ self,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ stream: Optional[bool],
+ tools: Optional[Iterable[AssistantToolParam]],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client: Optional[AsyncOpenAI],
+ ) -> Run:
+ openai_client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ response = await openai_client.beta.threads.runs.create_and_poll( # type: ignore
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata,
+ model=model,
+ tools=tools,
+ )
+
+ return response
+
+ def async_run_thread_stream(
+ self,
+ client: AsyncOpenAI,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ tools: Optional[Iterable[AssistantToolParam]],
+ event_handler: Optional[AssistantEventHandler],
+ ) -> AsyncAssistantStreamManager[AsyncAssistantEventHandler]:
+ data: Dict[str, Any] = {
+ "thread_id": thread_id,
+ "assistant_id": assistant_id,
+ "additional_instructions": additional_instructions,
+ "instructions": instructions,
+ "metadata": metadata,
+ "model": model,
+ "tools": tools,
+ }
+ if event_handler is not None:
+ data["event_handler"] = event_handler
+ return client.beta.threads.runs.stream(**data) # type: ignore
+
+ def run_thread_stream(
+ self,
+ client: OpenAI,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ tools: Optional[Iterable[AssistantToolParam]],
+ event_handler: Optional[AssistantEventHandler],
+ ) -> AssistantStreamManager[AssistantEventHandler]:
+ data: Dict[str, Any] = {
+ "thread_id": thread_id,
+ "assistant_id": assistant_id,
+ "additional_instructions": additional_instructions,
+ "instructions": instructions,
+ "metadata": metadata,
+ "model": model,
+ "tools": tools,
+ }
+ if event_handler is not None:
+ data["event_handler"] = event_handler
+ return client.beta.threads.runs.stream(**data) # type: ignore
+
+ # fmt: off
+
+ @overload
+ def run_thread(
+ self,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ stream: Optional[bool],
+ tools: Optional[Iterable[AssistantToolParam]],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client,
+ arun_thread: Literal[True],
+ event_handler: Optional[AssistantEventHandler],
+ ) -> Coroutine[None, None, Run]:
+ ...
+
+ @overload
+ def run_thread(
+ self,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ stream: Optional[bool],
+ tools: Optional[Iterable[AssistantToolParam]],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client,
+ arun_thread: Optional[Literal[False]],
+ event_handler: Optional[AssistantEventHandler],
+ ) -> Run:
+ ...
+
+ # fmt: on
+
+ def run_thread(
+ self,
+ thread_id: str,
+ assistant_id: str,
+ additional_instructions: Optional[str],
+ instructions: Optional[str],
+ metadata: Optional[Dict],
+ model: Optional[str],
+ stream: Optional[bool],
+ tools: Optional[Iterable[AssistantToolParam]],
+ api_key: Optional[str],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ organization: Optional[str],
+ client=None,
+ arun_thread=None,
+ event_handler: Optional[AssistantEventHandler] = None,
+ ):
+ if arun_thread is not None and arun_thread is True:
+ if stream is not None and stream is True:
+ _client = self.async_get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ return self.async_run_thread_stream(
+ client=_client,
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata,
+ model=model,
+ tools=tools,
+ event_handler=event_handler,
+ )
+ return self.arun_thread(
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata,
+ model=model,
+ stream=stream,
+ tools=tools,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+ openai_client = self.get_openai_client(
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ organization=organization,
+ client=client,
+ )
+
+ if stream is not None and stream is True:
+ return self.run_thread_stream(
+ client=openai_client,
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata,
+ model=model,
+ tools=tools,
+ event_handler=event_handler,
+ )
+
+ response = openai_client.beta.threads.runs.create_and_poll( # type: ignore
+ thread_id=thread_id,
+ assistant_id=assistant_id,
+ additional_instructions=additional_instructions,
+ instructions=instructions,
+ metadata=metadata,
+ model=model,
+ tools=tools,
+ )
+
+ return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/realtime/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/realtime/handler.py
new file mode 100644
index 00000000..83398ad1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/realtime/handler.py
@@ -0,0 +1,73 @@
+"""
+This file contains the calling Azure OpenAI's `/openai/realtime` endpoint.
+
+This requires websockets, and is currently only supported on LiteLLM Proxy.
+"""
+
+from typing import Any, Optional
+
+from ....litellm_core_utils.litellm_logging import Logging as LiteLLMLogging
+from ....litellm_core_utils.realtime_streaming import RealTimeStreaming
+from ..openai import OpenAIChatCompletion
+
+
+class OpenAIRealtime(OpenAIChatCompletion):
+ def _construct_url(self, api_base: str, model: str) -> str:
+ """
+ Example output:
+ "BACKEND_WS_URL = "wss://localhost:8080/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01"";
+ """
+ api_base = api_base.replace("https://", "wss://")
+ api_base = api_base.replace("http://", "ws://")
+ return f"{api_base}/v1/realtime?model={model}"
+
+ async def async_realtime(
+ self,
+ model: str,
+ websocket: Any,
+ logging_obj: LiteLLMLogging,
+ api_base: Optional[str] = None,
+ api_key: Optional[str] = None,
+ client: Optional[Any] = None,
+ timeout: Optional[float] = None,
+ ):
+ import websockets
+
+ if api_base is None:
+ raise ValueError("api_base is required for Azure OpenAI calls")
+ if api_key is None:
+ raise ValueError("api_key is required for Azure OpenAI calls")
+
+ url = self._construct_url(api_base, model)
+
+ try:
+ async with websockets.connect( # type: ignore
+ url,
+ extra_headers={
+ "Authorization": f"Bearer {api_key}", # type: ignore
+ "OpenAI-Beta": "realtime=v1",
+ },
+ ) as backend_ws:
+ realtime_streaming = RealTimeStreaming(
+ websocket, backend_ws, logging_obj
+ )
+ await realtime_streaming.bidirectional_forward()
+
+ except websockets.exceptions.InvalidStatusCode as e: # type: ignore
+ await websocket.close(code=e.status_code, reason=str(e))
+ except Exception as e:
+ try:
+ await websocket.close(
+ code=1011, reason=f"Internal server error: {str(e)}"
+ )
+ except RuntimeError as close_error:
+ if "already completed" in str(close_error) or "websocket.close" in str(
+ close_error
+ ):
+ # The WebSocket is already closed or the response is completed, so we can ignore this error
+ pass
+ else:
+ # If it's a different RuntimeError, we might want to log it or handle it differently
+ raise Exception(
+ f"Unexpected error while closing WebSocket: {close_error}"
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/responses/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/responses/transformation.py
new file mode 100644
index 00000000..e062c0c9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/responses/transformation.py
@@ -0,0 +1,216 @@
+from typing import TYPE_CHECKING, Any, Dict, Optional, Union, cast
+
+import httpx
+
+import litellm
+from litellm._logging import verbose_logger
+from litellm.llms.base_llm.responses.transformation import BaseResponsesAPIConfig
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import *
+from litellm.types.router import GenericLiteLLMParams
+
+from ..common_utils import OpenAIError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class OpenAIResponsesAPIConfig(BaseResponsesAPIConfig):
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ All OpenAI Responses API params are supported
+ """
+ return [
+ "input",
+ "model",
+ "include",
+ "instructions",
+ "max_output_tokens",
+ "metadata",
+ "parallel_tool_calls",
+ "previous_response_id",
+ "reasoning",
+ "store",
+ "stream",
+ "temperature",
+ "text",
+ "tool_choice",
+ "tools",
+ "top_p",
+ "truncation",
+ "user",
+ "extra_headers",
+ "extra_query",
+ "extra_body",
+ "timeout",
+ ]
+
+ def map_openai_params(
+ self,
+ response_api_optional_params: ResponsesAPIOptionalRequestParams,
+ model: str,
+ drop_params: bool,
+ ) -> Dict:
+ """No mapping applied since inputs are in OpenAI spec already"""
+ return dict(response_api_optional_params)
+
+ def transform_responses_api_request(
+ self,
+ model: str,
+ input: Union[str, ResponseInputParam],
+ response_api_optional_request_params: Dict,
+ litellm_params: GenericLiteLLMParams,
+ headers: dict,
+ ) -> Dict:
+ """No transform applied since inputs are in OpenAI spec already"""
+ return dict(
+ ResponsesAPIRequestParams(
+ model=model, input=input, **response_api_optional_request_params
+ )
+ )
+
+ def transform_response_api_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ logging_obj: LiteLLMLoggingObj,
+ ) -> ResponsesAPIResponse:
+ """No transform applied since outputs are in OpenAI spec already"""
+ try:
+ raw_response_json = raw_response.json()
+ except Exception:
+ raise OpenAIError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+ return ResponsesAPIResponse(**raw_response_json)
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ api_key: Optional[str] = None,
+ ) -> dict:
+ api_key = (
+ api_key
+ or litellm.api_key
+ or litellm.openai_key
+ or get_secret_str("OPENAI_API_KEY")
+ )
+ headers.update(
+ {
+ "Authorization": f"Bearer {api_key}",
+ }
+ )
+ return headers
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ Get the endpoint for OpenAI responses API
+ """
+ api_base = (
+ api_base
+ or litellm.api_base
+ or get_secret_str("OPENAI_API_BASE")
+ or "https://api.openai.com/v1"
+ )
+
+ # Remove trailing slashes
+ api_base = api_base.rstrip("/")
+
+ return f"{api_base}/responses"
+
+ def transform_streaming_response(
+ self,
+ model: str,
+ parsed_chunk: dict,
+ logging_obj: LiteLLMLoggingObj,
+ ) -> ResponsesAPIStreamingResponse:
+ """
+ Transform a parsed streaming response chunk into a ResponsesAPIStreamingResponse
+ """
+ # Convert the dictionary to a properly typed ResponsesAPIStreamingResponse
+ verbose_logger.debug("Raw OpenAI Chunk=%s", parsed_chunk)
+ event_type = str(parsed_chunk.get("type"))
+ event_pydantic_model = OpenAIResponsesAPIConfig.get_event_model_class(
+ event_type=event_type
+ )
+ return event_pydantic_model(**parsed_chunk)
+
+ @staticmethod
+ def get_event_model_class(event_type: str) -> Any:
+ """
+ Returns the appropriate event model class based on the event type.
+
+ Args:
+ event_type (str): The type of event from the response chunk
+
+ Returns:
+ Any: The corresponding event model class
+
+ Raises:
+ ValueError: If the event type is unknown
+ """
+ event_models = {
+ ResponsesAPIStreamEvents.RESPONSE_CREATED: ResponseCreatedEvent,
+ ResponsesAPIStreamEvents.RESPONSE_IN_PROGRESS: ResponseInProgressEvent,
+ ResponsesAPIStreamEvents.RESPONSE_COMPLETED: ResponseCompletedEvent,
+ ResponsesAPIStreamEvents.RESPONSE_FAILED: ResponseFailedEvent,
+ ResponsesAPIStreamEvents.RESPONSE_INCOMPLETE: ResponseIncompleteEvent,
+ ResponsesAPIStreamEvents.OUTPUT_ITEM_ADDED: OutputItemAddedEvent,
+ ResponsesAPIStreamEvents.OUTPUT_ITEM_DONE: OutputItemDoneEvent,
+ ResponsesAPIStreamEvents.CONTENT_PART_ADDED: ContentPartAddedEvent,
+ ResponsesAPIStreamEvents.CONTENT_PART_DONE: ContentPartDoneEvent,
+ ResponsesAPIStreamEvents.OUTPUT_TEXT_DELTA: OutputTextDeltaEvent,
+ ResponsesAPIStreamEvents.OUTPUT_TEXT_ANNOTATION_ADDED: OutputTextAnnotationAddedEvent,
+ ResponsesAPIStreamEvents.OUTPUT_TEXT_DONE: OutputTextDoneEvent,
+ ResponsesAPIStreamEvents.REFUSAL_DELTA: RefusalDeltaEvent,
+ ResponsesAPIStreamEvents.REFUSAL_DONE: RefusalDoneEvent,
+ ResponsesAPIStreamEvents.FUNCTION_CALL_ARGUMENTS_DELTA: FunctionCallArgumentsDeltaEvent,
+ ResponsesAPIStreamEvents.FUNCTION_CALL_ARGUMENTS_DONE: FunctionCallArgumentsDoneEvent,
+ ResponsesAPIStreamEvents.FILE_SEARCH_CALL_IN_PROGRESS: FileSearchCallInProgressEvent,
+ ResponsesAPIStreamEvents.FILE_SEARCH_CALL_SEARCHING: FileSearchCallSearchingEvent,
+ ResponsesAPIStreamEvents.FILE_SEARCH_CALL_COMPLETED: FileSearchCallCompletedEvent,
+ ResponsesAPIStreamEvents.WEB_SEARCH_CALL_IN_PROGRESS: WebSearchCallInProgressEvent,
+ ResponsesAPIStreamEvents.WEB_SEARCH_CALL_SEARCHING: WebSearchCallSearchingEvent,
+ ResponsesAPIStreamEvents.WEB_SEARCH_CALL_COMPLETED: WebSearchCallCompletedEvent,
+ ResponsesAPIStreamEvents.ERROR: ErrorEvent,
+ }
+
+ model_class = event_models.get(cast(ResponsesAPIStreamEvents, event_type))
+ if not model_class:
+ raise ValueError(f"Unknown event type: {event_type}")
+
+ return model_class
+
+ def should_fake_stream(
+ self,
+ model: Optional[str],
+ stream: Optional[bool],
+ custom_llm_provider: Optional[str] = None,
+ ) -> bool:
+ if stream is not True:
+ return False
+ if model is not None:
+ try:
+ if (
+ litellm.utils.supports_native_streaming(
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ )
+ is False
+ ):
+ return True
+ except Exception as e:
+ verbose_logger.debug(
+ f"Error getting model info in OpenAIResponsesAPIConfig: {e}"
+ )
+ return False
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai/transcriptions/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai/transcriptions/handler.py
new file mode 100644
index 00000000..d9dd3c12
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai/transcriptions/handler.py
@@ -0,0 +1,210 @@
+from typing import Optional, Union
+
+import httpx
+from openai import AsyncOpenAI, OpenAI
+from pydantic import BaseModel
+
+import litellm
+from litellm.litellm_core_utils.audio_utils.utils import get_audio_file_name
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.types.utils import FileTypes
+from litellm.utils import (
+ TranscriptionResponse,
+ convert_to_model_response_object,
+ extract_duration_from_srt_or_vtt,
+)
+
+from ..openai import OpenAIChatCompletion
+
+
+class OpenAIAudioTranscription(OpenAIChatCompletion):
+ # Audio Transcriptions
+ async def make_openai_audio_transcriptions_request(
+ self,
+ openai_aclient: AsyncOpenAI,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ ):
+ """
+ Helper to:
+ - call openai_aclient.audio.transcriptions.with_raw_response when litellm.return_response_headers is True
+ - call openai_aclient.audio.transcriptions.create by default
+ """
+ try:
+ raw_response = (
+ await openai_aclient.audio.transcriptions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ ) # type: ignore
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+
+ return headers, response
+ except Exception as e:
+ raise e
+
+ def make_sync_openai_audio_transcriptions_request(
+ self,
+ openai_client: OpenAI,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ ):
+ """
+ Helper to:
+ - call openai_aclient.audio.transcriptions.with_raw_response when litellm.return_response_headers is True
+ - call openai_aclient.audio.transcriptions.create by default
+ """
+ try:
+ if litellm.return_response_headers is True:
+ raw_response = (
+ openai_client.audio.transcriptions.with_raw_response.create(
+ **data, timeout=timeout
+ )
+ ) # type: ignore
+ headers = dict(raw_response.headers)
+ response = raw_response.parse()
+ return headers, response
+ else:
+ response = openai_client.audio.transcriptions.create(**data, timeout=timeout) # type: ignore
+ return None, response
+ except Exception as e:
+ raise e
+
+ def audio_transcriptions(
+ self,
+ model: str,
+ audio_file: FileTypes,
+ optional_params: dict,
+ model_response: TranscriptionResponse,
+ timeout: float,
+ max_retries: int,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ client=None,
+ atranscription: bool = False,
+ ) -> TranscriptionResponse:
+ data = {"model": model, "file": audio_file, **optional_params}
+
+ if "response_format" not in data or (
+ data["response_format"] == "text" or data["response_format"] == "json"
+ ):
+ data["response_format"] = (
+ "verbose_json" # ensures 'duration' is received - used for cost calculation
+ )
+
+ if atranscription is True:
+ return self.async_audio_transcriptions( # type: ignore
+ audio_file=audio_file,
+ data=data,
+ model_response=model_response,
+ timeout=timeout,
+ api_key=api_key,
+ api_base=api_base,
+ client=client,
+ max_retries=max_retries,
+ logging_obj=logging_obj,
+ )
+
+ openai_client: OpenAI = self._get_openai_client( # type: ignore
+ is_async=False,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=None,
+ api_key=openai_client.api_key,
+ additional_args={
+ "api_base": openai_client._base_url._uri_reference,
+ "atranscription": True,
+ "complete_input_dict": data,
+ },
+ )
+ _, response = self.make_sync_openai_audio_transcriptions_request(
+ openai_client=openai_client,
+ data=data,
+ timeout=timeout,
+ )
+
+ if isinstance(response, BaseModel):
+ stringified_response = response.model_dump()
+ else:
+ stringified_response = TranscriptionResponse(text=response).model_dump()
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=get_audio_file_name(audio_file),
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=stringified_response,
+ )
+ hidden_params = {"model": "whisper-1", "custom_llm_provider": "openai"}
+ final_response: TranscriptionResponse = convert_to_model_response_object(response_object=stringified_response, model_response_object=model_response, hidden_params=hidden_params, response_type="audio_transcription") # type: ignore
+ return final_response
+
+ async def async_audio_transcriptions(
+ self,
+ audio_file: FileTypes,
+ data: dict,
+ model_response: TranscriptionResponse,
+ timeout: float,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ client=None,
+ max_retries=None,
+ ):
+ try:
+ openai_aclient: AsyncOpenAI = self._get_openai_client( # type: ignore
+ is_async=True,
+ api_key=api_key,
+ api_base=api_base,
+ timeout=timeout,
+ max_retries=max_retries,
+ client=client,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=None,
+ api_key=openai_aclient.api_key,
+ additional_args={
+ "api_base": openai_aclient._base_url._uri_reference,
+ "atranscription": True,
+ "complete_input_dict": data,
+ },
+ )
+ headers, response = await self.make_openai_audio_transcriptions_request(
+ openai_aclient=openai_aclient,
+ data=data,
+ timeout=timeout,
+ )
+ logging_obj.model_call_details["response_headers"] = headers
+ if isinstance(response, BaseModel):
+ stringified_response = response.model_dump()
+ else:
+ duration = extract_duration_from_srt_or_vtt(response)
+ stringified_response = TranscriptionResponse(text=response).model_dump()
+ stringified_response["duration"] = duration
+ ## LOGGING
+ logging_obj.post_call(
+ input=get_audio_file_name(audio_file),
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=stringified_response,
+ )
+ hidden_params = {"model": "whisper-1", "custom_llm_provider": "openai"}
+ return convert_to_model_response_object(response_object=stringified_response, model_response_object=model_response, hidden_params=hidden_params, response_type="audio_transcription") # type: ignore
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ original_response=str(e),
+ )
+ raise e
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/chat/handler.py
new file mode 100644
index 00000000..821fc9b7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/chat/handler.py
@@ -0,0 +1,403 @@
+"""
+OpenAI-like chat completion handler
+
+For handling OpenAI-like chat completions, like IBM WatsonX, etc.
+"""
+
+import json
+from typing import Any, Callable, Optional, Union
+
+import httpx
+
+import litellm
+from litellm import LlmProviders
+from litellm.llms.bedrock.chat.invoke_handler import MockResponseIterator
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
+from litellm.llms.databricks.streaming_utils import ModelResponseIterator
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+from litellm.llms.openai.openai import OpenAIConfig
+from litellm.types.utils import CustomStreamingDecoder, ModelResponse
+from litellm.utils import CustomStreamWrapper, ProviderConfigManager
+
+from ..common_utils import OpenAILikeBase, OpenAILikeError
+from .transformation import OpenAILikeChatConfig
+
+
+async def make_call(
+ client: Optional[AsyncHTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+ streaming_decoder: Optional[CustomStreamingDecoder] = None,
+ fake_stream: bool = False,
+):
+ if client is None:
+ client = litellm.module_level_aclient
+
+ response = await client.post(
+ api_base, headers=headers, data=data, stream=not fake_stream
+ )
+
+ if streaming_decoder is not None:
+ completion_stream: Any = streaming_decoder.aiter_bytes(
+ response.aiter_bytes(chunk_size=1024)
+ )
+ elif fake_stream:
+ model_response = ModelResponse(**response.json())
+ completion_stream = MockResponseIterator(model_response=model_response)
+ else:
+ completion_stream = ModelResponseIterator(
+ streaming_response=response.aiter_lines(), sync_stream=False
+ )
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=completion_stream, # Pass the completion stream for logging
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+
+
+def make_sync_call(
+ client: Optional[HTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+ streaming_decoder: Optional[CustomStreamingDecoder] = None,
+ fake_stream: bool = False,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+):
+ if client is None:
+ client = litellm.module_level_client # Create a new client if none provided
+
+ response = client.post(
+ api_base, headers=headers, data=data, stream=not fake_stream, timeout=timeout
+ )
+
+ if response.status_code != 200:
+ raise OpenAILikeError(status_code=response.status_code, message=response.read())
+
+ if streaming_decoder is not None:
+ completion_stream = streaming_decoder.iter_bytes(
+ response.iter_bytes(chunk_size=1024)
+ )
+ elif fake_stream:
+ model_response = ModelResponse(**response.json())
+ completion_stream = MockResponseIterator(model_response=model_response)
+ else:
+ completion_stream = ModelResponseIterator(
+ streaming_response=response.iter_lines(), sync_stream=True
+ )
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+
+
+class OpenAILikeChatHandler(OpenAILikeBase):
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ async def acompletion_stream_function(
+ self,
+ model: str,
+ messages: list,
+ custom_llm_provider: str,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ stream,
+ data: dict,
+ optional_params=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ client: Optional[AsyncHTTPHandler] = None,
+ streaming_decoder: Optional[CustomStreamingDecoder] = None,
+ fake_stream: bool = False,
+ ) -> CustomStreamWrapper:
+ data["stream"] = True
+ completion_stream = await make_call(
+ client=client,
+ api_base=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ streaming_decoder=streaming_decoder,
+ )
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ logging_obj=logging_obj,
+ )
+
+ return streamwrapper
+
+ async def acompletion_function(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ custom_llm_provider: str,
+ print_verbose: Callable,
+ client: Optional[AsyncHTTPHandler],
+ encoding,
+ api_key,
+ logging_obj,
+ stream,
+ data: dict,
+ base_model: Optional[str],
+ optional_params: dict,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ json_mode: bool = False,
+ ) -> ModelResponse:
+ if timeout is None:
+ timeout = httpx.Timeout(timeout=600.0, connect=5.0)
+
+ if client is None:
+ client = litellm.module_level_aclient
+
+ try:
+ response = await client.post(
+ api_base, headers=headers, data=json.dumps(data), timeout=timeout
+ )
+ response.raise_for_status()
+ except httpx.HTTPStatusError as e:
+ raise OpenAILikeError(
+ status_code=e.response.status_code,
+ message=e.response.text,
+ )
+ except httpx.TimeoutException:
+ raise OpenAILikeError(status_code=408, message="Timeout error occurred.")
+ except Exception as e:
+ raise OpenAILikeError(status_code=500, message=str(e))
+
+ return OpenAILikeChatConfig._transform_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=stream,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ api_key=api_key,
+ data=data,
+ messages=messages,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ json_mode=json_mode,
+ custom_llm_provider=custom_llm_provider,
+ base_model=base_model,
+ )
+
+ def completion(
+ self,
+ *,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_llm_provider: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key: Optional[str],
+ logging_obj,
+ optional_params: dict,
+ acompletion=None,
+ litellm_params: dict = {},
+ logger_fn=None,
+ headers: Optional[dict] = None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ custom_endpoint: Optional[bool] = None,
+ streaming_decoder: Optional[
+ CustomStreamingDecoder
+ ] = None, # if openai-compatible api needs custom stream decoder - e.g. sagemaker
+ fake_stream: bool = False,
+ ):
+ custom_endpoint = custom_endpoint or optional_params.pop(
+ "custom_endpoint", None
+ )
+ base_model: Optional[str] = optional_params.pop("base_model", None)
+ api_base, headers = self._validate_environment(
+ api_base=api_base,
+ api_key=api_key,
+ endpoint_type="chat_completions",
+ custom_endpoint=custom_endpoint,
+ headers=headers,
+ )
+
+ stream: bool = optional_params.pop("stream", None) or False
+ extra_body = optional_params.pop("extra_body", {})
+ json_mode = optional_params.pop("json_mode", None)
+ optional_params.pop("max_retries", None)
+ if not fake_stream:
+ optional_params["stream"] = stream
+
+ if messages is not None and custom_llm_provider is not None:
+ provider_config = ProviderConfigManager.get_provider_chat_config(
+ model=model, provider=LlmProviders(custom_llm_provider)
+ )
+ if isinstance(provider_config, OpenAIGPTConfig) or isinstance(
+ provider_config, OpenAIConfig
+ ):
+ messages = provider_config._transform_messages(
+ messages=messages, model=model
+ )
+
+ data = {
+ "model": model,
+ "messages": messages,
+ **optional_params,
+ **extra_body,
+ }
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+ if acompletion is True:
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ client = None
+ if (
+ stream is True
+ ): # if function call - fake the streaming (need complete blocks for output parsing in openai format)
+ data["stream"] = stream
+ return self.acompletion_stream_function(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=api_base,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=stream,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ client=client,
+ custom_llm_provider=custom_llm_provider,
+ streaming_decoder=streaming_decoder,
+ fake_stream=fake_stream,
+ )
+ else:
+ return self.acompletion_function(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=api_base,
+ custom_prompt_dict=custom_prompt_dict,
+ custom_llm_provider=custom_llm_provider,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=stream,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ base_model=base_model,
+ client=client,
+ json_mode=json_mode,
+ )
+ else:
+ ## COMPLETION CALL
+ if stream is True:
+ completion_stream = make_sync_call(
+ client=(
+ client
+ if client is not None and isinstance(client, HTTPHandler)
+ else None
+ ),
+ api_base=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ streaming_decoder=streaming_decoder,
+ fake_stream=fake_stream,
+ timeout=timeout,
+ )
+ # completion_stream.__iter__()
+ return CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ logging_obj=logging_obj,
+ )
+ else:
+ if client is None or not isinstance(client, HTTPHandler):
+ client = HTTPHandler(timeout=timeout) # type: ignore
+ try:
+ response = client.post(
+ url=api_base, headers=headers, data=json.dumps(data)
+ )
+ response.raise_for_status()
+
+ except httpx.HTTPStatusError as e:
+ raise OpenAILikeError(
+ status_code=e.response.status_code,
+ message=e.response.text,
+ )
+ except httpx.TimeoutException:
+ raise OpenAILikeError(
+ status_code=408, message="Timeout error occurred."
+ )
+ except Exception as e:
+ raise OpenAILikeError(status_code=500, message=str(e))
+ return OpenAILikeChatConfig._transform_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=stream,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ api_key=api_key,
+ data=data,
+ messages=messages,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ json_mode=json_mode,
+ custom_llm_provider=custom_llm_provider,
+ base_model=base_model,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/chat/transformation.py
new file mode 100644
index 00000000..37cfabda
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/chat/transformation.py
@@ -0,0 +1,126 @@
+"""
+OpenAI-like chat completion transformation
+"""
+
+from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Union
+
+import httpx
+
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import ChatCompletionAssistantMessage
+from litellm.types.utils import ModelResponse
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class OpenAILikeChatConfig(OpenAIGPTConfig):
+ def _get_openai_compatible_provider_info(
+ self,
+ api_base: Optional[str],
+ api_key: Optional[str],
+ model: Optional[str] = None,
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = api_base or get_secret_str("OPENAI_LIKE_API_BASE") # type: ignore
+ dynamic_api_key = (
+ api_key or get_secret_str("OPENAI_LIKE_API_KEY") or ""
+ ) # vllm does not require an api key
+ return api_base, dynamic_api_key
+
+ @staticmethod
+ def _convert_tool_response_to_message(
+ message: ChatCompletionAssistantMessage, json_mode: bool
+ ) -> ChatCompletionAssistantMessage:
+ """
+ if json_mode is true, convert the returned tool call response to a content with json str
+
+ e.g. input:
+
+ {"role": "assistant", "tool_calls": [{"id": "call_5ms4", "type": "function", "function": {"name": "json_tool_call", "arguments": "{\"key\": \"question\", \"value\": \"What is the capital of France?\"}"}}]}
+
+ output:
+
+ {"role": "assistant", "content": "{\"key\": \"question\", \"value\": \"What is the capital of France?\"}"}
+ """
+ if not json_mode:
+ return message
+
+ _tool_calls = message.get("tool_calls")
+
+ if _tool_calls is None or len(_tool_calls) != 1:
+ return message
+
+ message["content"] = _tool_calls[0]["function"].get("arguments") or ""
+ message["tool_calls"] = None
+
+ return message
+
+ @staticmethod
+ def _transform_response(
+ model: str,
+ response: httpx.Response,
+ model_response: ModelResponse,
+ stream: bool,
+ logging_obj: LiteLLMLoggingObj,
+ optional_params: dict,
+ api_key: Optional[str],
+ data: Union[dict, str],
+ messages: List,
+ print_verbose,
+ encoding,
+ json_mode: bool,
+ custom_llm_provider: str,
+ base_model: Optional[str],
+ ) -> ModelResponse:
+ response_json = response.json()
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=response_json,
+ additional_args={"complete_input_dict": data},
+ )
+
+ if json_mode:
+ for choice in response_json["choices"]:
+ message = OpenAILikeChatConfig._convert_tool_response_to_message(
+ choice.get("message"), json_mode
+ )
+ choice["message"] = message
+
+ returned_response = ModelResponse(**response_json)
+
+ returned_response.model = (
+ custom_llm_provider + "/" + (returned_response.model or "")
+ )
+
+ if base_model is not None:
+ returned_response._hidden_params["model"] = base_model
+ return returned_response
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ replace_max_completion_tokens_with_max_tokens: bool = True,
+ ) -> dict:
+ mapped_params = super().map_openai_params(
+ non_default_params, optional_params, model, drop_params
+ )
+ if (
+ "max_completion_tokens" in non_default_params
+ and replace_max_completion_tokens_with_max_tokens
+ ):
+ mapped_params["max_tokens"] = non_default_params[
+ "max_completion_tokens"
+ ] # most openai-compatible providers support 'max_tokens' not 'max_completion_tokens'
+ mapped_params.pop("max_completion_tokens", None)
+
+ return mapped_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/common_utils.py
new file mode 100644
index 00000000..116277b6
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/common_utils.py
@@ -0,0 +1,56 @@
+from typing import Literal, Optional, Tuple
+
+import httpx
+
+
+class OpenAILikeError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(method="POST", url="https://www.litellm.ai")
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class OpenAILikeBase:
+ def __init__(self, **kwargs):
+ pass
+
+ def _validate_environment(
+ self,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ endpoint_type: Literal["chat_completions", "embeddings"],
+ headers: Optional[dict],
+ custom_endpoint: Optional[bool],
+ ) -> Tuple[str, dict]:
+ if api_key is None and headers is None:
+ raise OpenAILikeError(
+ status_code=400,
+ message="Missing API Key - A call is being made to LLM Provider but no key is set either in the environment variables ({LLM_PROVIDER}_API_KEY) or via params",
+ )
+
+ if api_base is None:
+ raise OpenAILikeError(
+ status_code=400,
+ message="Missing API Base - A call is being made to LLM Provider but no api base is set either in the environment variables ({LLM_PROVIDER}_API_KEY) or via params",
+ )
+
+ if headers is None:
+ headers = {
+ "Content-Type": "application/json",
+ }
+
+ if (
+ api_key is not None and "Authorization" not in headers
+ ): # [TODO] remove 'validate_environment' from OpenAI base. should use llm providers config for this only.
+ headers.update({"Authorization": "Bearer {}".format(api_key)})
+
+ if not custom_endpoint:
+ if endpoint_type == "chat_completions":
+ api_base = "{}/chat/completions".format(api_base)
+ elif endpoint_type == "embeddings":
+ api_base = "{}/embeddings".format(api_base)
+ return api_base, headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/embedding/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/embedding/handler.py
new file mode 100644
index 00000000..95a4aa85
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/embedding/handler.py
@@ -0,0 +1,153 @@
+# What is this?
+## Handler file for OpenAI-like endpoints.
+## Allows jina ai embedding calls - which don't allow 'encoding_format' in payload.
+
+import json
+from typing import Optional
+
+import httpx
+
+import litellm
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.utils import EmbeddingResponse
+
+from ..common_utils import OpenAILikeBase, OpenAILikeError
+
+
+class OpenAILikeEmbeddingHandler(OpenAILikeBase):
+ def __init__(self, **kwargs):
+ pass
+
+ async def aembedding(
+ self,
+ input: list,
+ data: dict,
+ model_response: EmbeddingResponse,
+ timeout: float,
+ api_key: str,
+ api_base: str,
+ logging_obj,
+ headers: dict,
+ client=None,
+ ) -> EmbeddingResponse:
+ response = None
+ try:
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ async_client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.OPENAI,
+ params={"timeout": timeout},
+ )
+ else:
+ async_client = client
+ try:
+ response = await async_client.post(
+ api_base,
+ headers=headers,
+ data=json.dumps(data),
+ ) # type: ignore
+
+ response.raise_for_status()
+
+ response_json = response.json()
+ except httpx.HTTPStatusError as e:
+ raise OpenAILikeError(
+ status_code=e.response.status_code,
+ message=e.response.text if e.response else str(e),
+ )
+ except httpx.TimeoutException:
+ raise OpenAILikeError(
+ status_code=408, message="Timeout error occurred."
+ )
+ except Exception as e:
+ raise OpenAILikeError(status_code=500, message=str(e))
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=response_json,
+ )
+ return EmbeddingResponse(**response_json)
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ original_response=str(e),
+ )
+ raise e
+
+ def embedding(
+ self,
+ model: str,
+ input: list,
+ timeout: float,
+ logging_obj,
+ api_key: Optional[str],
+ api_base: Optional[str],
+ optional_params: dict,
+ model_response: Optional[EmbeddingResponse] = None,
+ client=None,
+ aembedding=None,
+ custom_endpoint: Optional[bool] = None,
+ headers: Optional[dict] = None,
+ ) -> EmbeddingResponse:
+ api_base, headers = self._validate_environment(
+ api_base=api_base,
+ api_key=api_key,
+ endpoint_type="embeddings",
+ headers=headers,
+ custom_endpoint=custom_endpoint,
+ )
+ model = model
+ data = {"model": model, "input": input, **optional_params}
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data, "api_base": api_base},
+ )
+
+ if aembedding is True:
+ return self.aembedding(data=data, input=input, logging_obj=logging_obj, model_response=model_response, api_base=api_base, api_key=api_key, timeout=timeout, client=client, headers=headers) # type: ignore
+ if client is None or isinstance(client, AsyncHTTPHandler):
+ self.client = HTTPHandler(timeout=timeout) # type: ignore
+ else:
+ self.client = client
+
+ ## EMBEDDING CALL
+ try:
+ response = self.client.post(
+ api_base,
+ headers=headers,
+ data=json.dumps(data),
+ ) # type: ignore
+
+ response.raise_for_status() # type: ignore
+
+ response_json = response.json() # type: ignore
+ except httpx.HTTPStatusError as e:
+ raise OpenAILikeError(
+ status_code=e.response.status_code,
+ message=e.response.text,
+ )
+ except httpx.TimeoutException:
+ raise OpenAILikeError(status_code=408, message="Timeout error occurred.")
+ except Exception as e:
+ raise OpenAILikeError(status_code=500, message=str(e))
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key=api_key,
+ additional_args={"complete_input_dict": data},
+ original_response=response_json,
+ )
+
+ return litellm.EmbeddingResponse(**response_json)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openrouter/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/openrouter/chat/transformation.py
new file mode 100644
index 00000000..4b95ec87
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openrouter/chat/transformation.py
@@ -0,0 +1,88 @@
+"""
+Support for OpenAI's `/v1/chat/completions` endpoint.
+
+Calls done in OpenAI/openai.py as OpenRouter is openai-compatible.
+
+Docs: https://openrouter.ai/docs/parameters
+"""
+
+from typing import Any, AsyncIterator, Iterator, Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.types.utils import ModelResponse, ModelResponseStream
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+from ..common_utils import OpenRouterException
+
+
+class OpenrouterConfig(OpenAIGPTConfig):
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ mapped_openai_params = super().map_openai_params(
+ non_default_params, optional_params, model, drop_params
+ )
+
+ # OpenRouter-only parameters
+ extra_body = {}
+ transforms = non_default_params.pop("transforms", None)
+ models = non_default_params.pop("models", None)
+ route = non_default_params.pop("route", None)
+ if transforms is not None:
+ extra_body["transforms"] = transforms
+ if models is not None:
+ extra_body["models"] = models
+ if route is not None:
+ extra_body["route"] = route
+ mapped_openai_params["extra_body"] = (
+ extra_body # openai client supports `extra_body` param
+ )
+ return mapped_openai_params
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return OpenRouterException(
+ message=error_message,
+ status_code=status_code,
+ headers=headers,
+ )
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ) -> Any:
+ return OpenRouterChatCompletionStreamingHandler(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+
+class OpenRouterChatCompletionStreamingHandler(BaseModelResponseIterator):
+
+ def chunk_parser(self, chunk: dict) -> ModelResponseStream:
+ try:
+ new_choices = []
+ for choice in chunk["choices"]:
+ choice["delta"]["reasoning_content"] = choice["delta"].get("reasoning")
+ new_choices.append(choice)
+ return ModelResponseStream(
+ id=chunk["id"],
+ object="chat.completion.chunk",
+ created=chunk["created"],
+ model=chunk["model"],
+ choices=new_choices,
+ )
+ except Exception as e:
+ raise e
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/openrouter/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/openrouter/common_utils.py
new file mode 100644
index 00000000..96e53a5a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/openrouter/common_utils.py
@@ -0,0 +1,5 @@
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class OpenRouterException(BaseLLMException):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/perplexity/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/perplexity/chat/transformation.py
new file mode 100644
index 00000000..dab64283
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/perplexity/chat/transformation.py
@@ -0,0 +1,43 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to Perplexity's `/v1/chat/completions`
+"""
+
+from typing import Optional, Tuple
+
+from litellm.secret_managers.main import get_secret_str
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class PerplexityChatConfig(OpenAIGPTConfig):
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = api_base or get_secret_str("PERPLEXITY_API_BASE") or "https://api.perplexity.ai" # type: ignore
+ dynamic_api_key = (
+ api_key
+ or get_secret_str("PERPLEXITYAI_API_KEY")
+ or get_secret_str("PERPLEXITY_API_KEY")
+ )
+ return api_base, dynamic_api_key
+
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ Perplexity supports a subset of OpenAI params
+
+ Ref: https://docs.perplexity.ai/api-reference/chat-completions
+
+ Eg. Perplexity does not support tools, tool_choice, function_call, functions, etc.
+ """
+ return [
+ "frequency_penalty",
+ "max_tokens",
+ "max_completion_tokens",
+ "presence_penalty",
+ "response_format",
+ "stream",
+ "temperature",
+ "top_p",
+ "max_retries",
+ "extra_headers",
+ ]
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/petals/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/petals/common_utils.py
new file mode 100644
index 00000000..bffee338
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/petals/common_utils.py
@@ -0,0 +1,10 @@
+from typing import Union
+
+from httpx import Headers
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class PetalsError(BaseLLMException):
+ def __init__(self, status_code: int, message: str, headers: Union[dict, Headers]):
+ super().__init__(status_code=status_code, message=message, headers=headers)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/petals/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/petals/completion/handler.py
new file mode 100644
index 00000000..ae38baec
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/petals/completion/handler.py
@@ -0,0 +1,149 @@
+import time
+from typing import Callable, Optional, Union
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ custom_prompt,
+ prompt_factory,
+)
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+)
+from litellm.utils import ModelResponse, Usage
+
+from ..common_utils import PetalsError
+
+
+def completion(
+ model: str,
+ messages: list,
+ api_base: Optional[str],
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ optional_params: dict,
+ stream=False,
+ litellm_params=None,
+ logger_fn=None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+):
+ ## Load Config
+ config = litellm.PetalsConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > petals_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ if model in litellm.custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = litellm.custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details["initial_prompt_value"],
+ final_prompt_value=model_prompt_details["final_prompt_value"],
+ messages=messages,
+ )
+ else:
+ prompt = prompt_factory(model=model, messages=messages)
+
+ output_text: Optional[str] = None
+ if api_base:
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key="",
+ additional_args={
+ "complete_input_dict": optional_params,
+ "api_base": api_base,
+ },
+ )
+ data = {"model": model, "inputs": prompt, **optional_params}
+
+ ## COMPLETION CALL
+ if client is None or not isinstance(client, HTTPHandler):
+ client = _get_httpx_client()
+ response = client.post(api_base, data=data)
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key="",
+ original_response=response.text,
+ additional_args={"complete_input_dict": optional_params},
+ )
+
+ ## RESPONSE OBJECT
+ try:
+ output_text = response.json()["outputs"]
+ except Exception as e:
+ PetalsError(
+ status_code=response.status_code,
+ message=str(e),
+ headers=response.headers,
+ )
+
+ else:
+ try:
+ from petals import AutoDistributedModelForCausalLM # type: ignore
+ from transformers import AutoTokenizer
+ except Exception:
+ raise Exception(
+ "Importing torch, transformers, petals failed\nTry pip installing petals \npip install git+https://github.com/bigscience-workshop/petals"
+ )
+
+ model = model
+
+ tokenizer = AutoTokenizer.from_pretrained(
+ model, use_fast=False, add_bos_token=False
+ )
+ model_obj = AutoDistributedModelForCausalLM.from_pretrained(model)
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key="",
+ additional_args={"complete_input_dict": optional_params},
+ )
+
+ ## COMPLETION CALL
+ inputs = tokenizer(prompt, return_tensors="pt")["input_ids"]
+
+ # optional params: max_new_tokens=1,temperature=0.9, top_p=0.6
+ outputs = model_obj.generate(inputs, **optional_params)
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key="",
+ original_response=outputs,
+ additional_args={"complete_input_dict": optional_params},
+ )
+ ## RESPONSE OBJECT
+ output_text = tokenizer.decode(outputs[0])
+
+ if output_text is not None and len(output_text) > 0:
+ model_response.choices[0].message.content = output_text # type: ignore
+
+ prompt_tokens = len(encoding.encode(prompt))
+ completion_tokens = len(
+ encoding.encode(model_response["choices"][0]["message"].get("content"))
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+
+def embedding():
+ # logic for parsing in - calling - parsing out model embedding calls
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/petals/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/petals/completion/transformation.py
new file mode 100644
index 00000000..08ec15de
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/petals/completion/transformation.py
@@ -0,0 +1,137 @@
+from typing import Any, List, Optional, Union
+
+from httpx import Headers, Response
+
+import litellm
+from litellm.llms.base_llm.chat.transformation import (
+ BaseConfig,
+ BaseLLMException,
+ LiteLLMLoggingObj,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse
+
+from ..common_utils import PetalsError
+
+
+class PetalsConfig(BaseConfig):
+ """
+ Reference: https://github.com/petals-infra/chat.petals.dev#post-apiv1generate
+ The `PetalsConfig` class encapsulates the configuration for the Petals API. The properties of this class are described below:
+
+ - `max_length` (integer): This represents the maximum length of the generated text (including the prefix) in tokens.
+
+ - `max_new_tokens` (integer): This represents the maximum number of newly generated tokens (excluding the prefix).
+
+ The generation parameters are compatible with `.generate()` from Hugging Face's Transformers library:
+
+ - `do_sample` (boolean, optional): If set to 0 (default), the API runs greedy generation. If set to 1, the API performs sampling using the parameters below:
+
+ - `temperature` (float, optional): This value sets the temperature for sampling.
+
+ - `top_k` (integer, optional): This value sets the limit for top-k sampling.
+
+ - `top_p` (float, optional): This value sets the limit for top-p (nucleus) sampling.
+
+ - `repetition_penalty` (float, optional): This helps apply the repetition penalty during text generation, as discussed in this paper.
+ """
+
+ max_length: Optional[int] = None
+ max_new_tokens: Optional[int] = (
+ litellm.max_tokens
+ ) # petals requires max tokens to be set
+ do_sample: Optional[bool] = None
+ temperature: Optional[float] = None
+ top_k: Optional[int] = None
+ top_p: Optional[float] = None
+ repetition_penalty: Optional[float] = None
+
+ def __init__(
+ self,
+ max_length: Optional[int] = None,
+ max_new_tokens: Optional[
+ int
+ ] = litellm.max_tokens, # petals requires max tokens to be set
+ do_sample: Optional[bool] = None,
+ temperature: Optional[float] = None,
+ top_k: Optional[int] = None,
+ top_p: Optional[float] = None,
+ repetition_penalty: Optional[float] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return PetalsError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return ["max_tokens", "temperature", "top_p", "stream"]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "max_tokens":
+ optional_params["max_new_tokens"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "stream":
+ optional_params["stream"] = value
+ return optional_params
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ raise NotImplementedError(
+ "Petals transformation currently done in handler.py. [TODO] Move to the transformation.py"
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ raise NotImplementedError(
+ "Petals transformation currently done in handler.py. [TODO] Move to the transformation.py"
+ )
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return {}
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/handler.py
new file mode 100644
index 00000000..43f4b067
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/handler.py
@@ -0,0 +1,472 @@
+# What is this?
+## Controller file for Predibase Integration - https://predibase.com/
+
+import json
+import os
+import time
+from functools import partial
+from typing import Callable, Optional, Union
+
+import httpx # type: ignore
+
+import litellm
+import litellm.litellm_core_utils
+import litellm.litellm_core_utils.litellm_logging
+from litellm.litellm_core_utils.core_helpers import map_finish_reason
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ custom_prompt,
+ prompt_factory,
+)
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.utils import LiteLLMLoggingBaseClass
+from litellm.utils import Choices, CustomStreamWrapper, Message, ModelResponse, Usage
+
+from ..common_utils import PredibaseError
+
+
+async def make_call(
+ client: AsyncHTTPHandler,
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+ timeout: Optional[Union[float, httpx.Timeout]],
+):
+ response = await client.post(
+ api_base, headers=headers, data=data, stream=True, timeout=timeout
+ )
+
+ if response.status_code != 200:
+ raise PredibaseError(status_code=response.status_code, message=response.text)
+
+ completion_stream = response.aiter_lines()
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=completion_stream, # Pass the completion stream for logging
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+
+
+class PredibaseChatCompletion:
+ def __init__(self) -> None:
+ super().__init__()
+
+ def output_parser(self, generated_text: str):
+ """
+ Parse the output text to remove any special characters. In our current approach we just check for ChatML tokens.
+
+ Initial issue that prompted this - https://github.com/BerriAI/litellm/issues/763
+ """
+ chat_template_tokens = [
+ "<|assistant|>",
+ "<|system|>",
+ "<|user|>",
+ "<s>",
+ "</s>",
+ ]
+ for token in chat_template_tokens:
+ if generated_text.strip().startswith(token):
+ generated_text = generated_text.replace(token, "", 1)
+ if generated_text.endswith(token):
+ generated_text = generated_text[::-1].replace(token[::-1], "", 1)[::-1]
+ return generated_text
+
+ def process_response( # noqa: PLR0915
+ self,
+ model: str,
+ response: httpx.Response,
+ model_response: ModelResponse,
+ stream: bool,
+ logging_obj: LiteLLMLoggingBaseClass,
+ optional_params: dict,
+ api_key: str,
+ data: Union[dict, str],
+ messages: list,
+ print_verbose,
+ encoding,
+ ) -> ModelResponse:
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=response.text,
+ additional_args={"complete_input_dict": data},
+ )
+ print_verbose(f"raw model_response: {response.text}")
+ ## RESPONSE OBJECT
+ try:
+ completion_response = response.json()
+ except Exception:
+ raise PredibaseError(message=response.text, status_code=422)
+ if "error" in completion_response:
+ raise PredibaseError(
+ message=str(completion_response["error"]),
+ status_code=response.status_code,
+ )
+ else:
+ if not isinstance(completion_response, dict):
+ raise PredibaseError(
+ status_code=422,
+ message=f"'completion_response' is not a dictionary - {completion_response}",
+ )
+ elif "generated_text" not in completion_response:
+ raise PredibaseError(
+ status_code=422,
+ message=f"'generated_text' is not a key response dictionary - {completion_response}",
+ )
+ if len(completion_response["generated_text"]) > 0:
+ model_response.choices[0].message.content = self.output_parser( # type: ignore
+ completion_response["generated_text"]
+ )
+ ## GETTING LOGPROBS + FINISH REASON
+ if (
+ "details" in completion_response
+ and "tokens" in completion_response["details"]
+ ):
+ model_response.choices[0].finish_reason = map_finish_reason(
+ completion_response["details"]["finish_reason"]
+ )
+ sum_logprob = 0
+ for token in completion_response["details"]["tokens"]:
+ if token["logprob"] is not None:
+ sum_logprob += token["logprob"]
+ setattr(
+ model_response.choices[0].message, # type: ignore
+ "_logprob",
+ sum_logprob, # [TODO] move this to using the actual logprobs
+ )
+ if "best_of" in optional_params and optional_params["best_of"] > 1:
+ if (
+ "details" in completion_response
+ and "best_of_sequences" in completion_response["details"]
+ ):
+ choices_list = []
+ for idx, item in enumerate(
+ completion_response["details"]["best_of_sequences"]
+ ):
+ sum_logprob = 0
+ for token in item["tokens"]:
+ if token["logprob"] is not None:
+ sum_logprob += token["logprob"]
+ if len(item["generated_text"]) > 0:
+ message_obj = Message(
+ content=self.output_parser(item["generated_text"]),
+ logprobs=sum_logprob,
+ )
+ else:
+ message_obj = Message(content=None)
+ choice_obj = Choices(
+ finish_reason=map_finish_reason(item["finish_reason"]),
+ index=idx + 1,
+ message=message_obj,
+ )
+ choices_list.append(choice_obj)
+ model_response.choices.extend(choices_list)
+
+ ## CALCULATING USAGE
+ prompt_tokens = 0
+ try:
+ prompt_tokens = litellm.token_counter(messages=messages)
+ except Exception:
+ # this should remain non blocking we should not block a response returning if calculating usage fails
+ pass
+ output_text = model_response["choices"][0]["message"].get("content", "")
+ if output_text is not None and len(output_text) > 0:
+ completion_tokens = 0
+ try:
+ completion_tokens = len(
+ encoding.encode(
+ model_response["choices"][0]["message"].get("content", "")
+ )
+ ) ##[TODO] use a model-specific tokenizer
+ except Exception:
+ # this should remain non blocking we should not block a response returning if calculating usage fails
+ pass
+ else:
+ completion_tokens = 0
+
+ total_tokens = prompt_tokens + completion_tokens
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=total_tokens,
+ )
+ model_response.usage = usage # type: ignore
+
+ ## RESPONSE HEADERS
+ predibase_headers = response.headers
+ response_headers = {}
+ for k, v in predibase_headers.items():
+ if k.startswith("x-"):
+ response_headers["llm_provider-{}".format(k)] = v
+
+ model_response._hidden_params["additional_headers"] = response_headers
+
+ return model_response
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key: str,
+ logging_obj,
+ optional_params: dict,
+ tenant_id: str,
+ timeout: Union[float, httpx.Timeout],
+ acompletion=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers: dict = {},
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+ headers = litellm.PredibaseConfig().validate_environment(
+ api_key=api_key,
+ headers=headers,
+ messages=messages,
+ optional_params=optional_params,
+ model=model,
+ )
+ completion_url = ""
+ input_text = ""
+ base_url = "https://serving.app.predibase.com"
+
+ if "https" in model:
+ completion_url = model
+ elif api_base:
+ base_url = api_base
+ elif "PREDIBASE_API_BASE" in os.environ:
+ base_url = os.getenv("PREDIBASE_API_BASE", "")
+
+ completion_url = f"{base_url}/{tenant_id}/deployments/v2/llms/{model}"
+
+ if optional_params.get("stream", False) is True:
+ completion_url += "/generate_stream"
+ else:
+ completion_url += "/generate"
+
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details["initial_prompt_value"],
+ final_prompt_value=model_prompt_details["final_prompt_value"],
+ messages=messages,
+ )
+ else:
+ prompt = prompt_factory(model=model, messages=messages)
+
+ ## Load Config
+ config = litellm.PredibaseConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > anthropic_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ stream = optional_params.pop("stream", False)
+
+ data = {
+ "inputs": prompt,
+ "parameters": optional_params,
+ }
+ input_text = prompt
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input_text,
+ api_key=api_key,
+ additional_args={
+ "complete_input_dict": data,
+ "headers": headers,
+ "api_base": completion_url,
+ "acompletion": acompletion,
+ },
+ )
+ ## COMPLETION CALL
+ if acompletion is True:
+ ### ASYNC STREAMING
+ if stream is True:
+ return self.async_streaming(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=completion_url,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ ) # type: ignore
+ else:
+ ### ASYNC COMPLETION
+ return self.async_completion(
+ model=model,
+ messages=messages,
+ data=data,
+ api_base=completion_url,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=False,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ ) # type: ignore
+
+ ### SYNC STREAMING
+ if stream is True:
+ response = litellm.module_level_client.post(
+ completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ stream=stream,
+ timeout=timeout, # type: ignore
+ )
+ _response = CustomStreamWrapper(
+ response.iter_lines(),
+ model,
+ custom_llm_provider="predibase",
+ logging_obj=logging_obj,
+ )
+ return _response
+ ### SYNC COMPLETION
+ else:
+ response = litellm.module_level_client.post(
+ url=completion_url,
+ headers=headers,
+ data=json.dumps(data),
+ timeout=timeout, # type: ignore
+ )
+ return self.process_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=optional_params.get("stream", False),
+ logging_obj=logging_obj, # type: ignore
+ optional_params=optional_params,
+ api_key=api_key,
+ data=data,
+ messages=messages,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ )
+
+ async def async_completion(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ stream,
+ data: dict,
+ optional_params: dict,
+ timeout: Union[float, httpx.Timeout],
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ ) -> ModelResponse:
+
+ async_handler = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.PREDIBASE,
+ params={"timeout": timeout},
+ )
+ try:
+ response = await async_handler.post(
+ api_base, headers=headers, data=json.dumps(data)
+ )
+ except httpx.HTTPStatusError as e:
+ raise PredibaseError(
+ status_code=e.response.status_code,
+ message="HTTPStatusError - received status_code={}, error_message={}".format(
+ e.response.status_code, e.response.text
+ ),
+ )
+ except Exception as e:
+ for exception in litellm.LITELLM_EXCEPTION_TYPES:
+ if isinstance(e, exception):
+ raise e
+ raise PredibaseError(
+ status_code=500, message="{}".format(str(e))
+ ) # don't use verbose_logger.exception, if exception is raised
+ return self.process_response(
+ model=model,
+ response=response,
+ model_response=model_response,
+ stream=stream,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ data=data,
+ messages=messages,
+ print_verbose=print_verbose,
+ optional_params=optional_params,
+ encoding=encoding,
+ )
+
+ async def async_streaming(
+ self,
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key,
+ logging_obj,
+ data: dict,
+ timeout: Union[float, httpx.Timeout],
+ optional_params=None,
+ litellm_params=None,
+ logger_fn=None,
+ headers={},
+ ) -> CustomStreamWrapper:
+ data["stream"] = True
+
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=None,
+ make_call=partial(
+ make_call,
+ api_base=api_base,
+ headers=headers,
+ data=json.dumps(data),
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ timeout=timeout,
+ ),
+ model=model,
+ custom_llm_provider="predibase",
+ logging_obj=logging_obj,
+ )
+ return streamwrapper
+
+ def embedding(self, *args, **kwargs):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/transformation.py
new file mode 100644
index 00000000..f5742386
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/transformation.py
@@ -0,0 +1,180 @@
+from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union
+
+from httpx import Headers, Response
+
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse
+
+from ..common_utils import PredibaseError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class PredibaseConfig(BaseConfig):
+ """
+ Reference: https://docs.predibase.com/user-guide/inference/rest_api
+ """
+
+ adapter_id: Optional[str] = None
+ adapter_source: Optional[Literal["pbase", "hub", "s3"]] = None
+ best_of: Optional[int] = None
+ decoder_input_details: Optional[bool] = None
+ details: bool = True # enables returning logprobs + best of
+ max_new_tokens: int = (
+ 256 # openai default - requests hang if max_new_tokens not given
+ )
+ repetition_penalty: Optional[float] = None
+ return_full_text: Optional[bool] = (
+ False # by default don't return the input as part of the output
+ )
+ seed: Optional[int] = None
+ stop: Optional[List[str]] = None
+ temperature: Optional[float] = None
+ top_k: Optional[int] = None
+ top_p: Optional[int] = None
+ truncate: Optional[int] = None
+ typical_p: Optional[float] = None
+ watermark: Optional[bool] = None
+
+ def __init__(
+ self,
+ best_of: Optional[int] = None,
+ decoder_input_details: Optional[bool] = None,
+ details: Optional[bool] = None,
+ max_new_tokens: Optional[int] = None,
+ repetition_penalty: Optional[float] = None,
+ return_full_text: Optional[bool] = None,
+ seed: Optional[int] = None,
+ stop: Optional[List[str]] = None,
+ temperature: Optional[float] = None,
+ top_k: Optional[int] = None,
+ top_p: Optional[int] = None,
+ truncate: Optional[int] = None,
+ typical_p: Optional[float] = None,
+ watermark: Optional[bool] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "stream",
+ "temperature",
+ "max_completion_tokens",
+ "max_tokens",
+ "top_p",
+ "stop",
+ "n",
+ "response_format",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ # temperature, top_p, n, stream, stop, max_tokens, n, presence_penalty default to None
+ if param == "temperature":
+ if value == 0.0 or value == 0:
+ # hugging face exception raised when temp==0
+ # Failed: Error occurred: HuggingfaceException - Input validation error: `temperature` must be strictly positive
+ value = 0.01
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "n":
+ optional_params["best_of"] = value
+ optional_params["do_sample"] = (
+ True # Need to sample if you want best of for hf inference endpoints
+ )
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "stop":
+ optional_params["stop"] = value
+ if param == "max_tokens" or param == "max_completion_tokens":
+ # HF TGI raises the following exception when max_new_tokens==0
+ # Failed: Error occurred: HuggingfaceException - Input validation error: `max_new_tokens` must be strictly positive
+ if value == 0:
+ value = 1
+ optional_params["max_new_tokens"] = value
+ if param == "echo":
+ # https://huggingface.co/docs/huggingface_hub/main/en/package_reference/inference_client#huggingface_hub.InferenceClient.text_generation.decoder_input_details
+ # Return the decoder input token logprobs and ids. You must set details=True as well for it to be taken into account. Defaults to False
+ optional_params["decoder_input_details"] = True
+ if param == "response_format":
+ optional_params["response_format"] = value
+ return optional_params
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: str,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ raise NotImplementedError(
+ "Predibase transformation currently done in handler.py. Need to migrate to this file."
+ )
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ raise NotImplementedError(
+ "Predibase transformation currently done in handler.py. Need to migrate to this file."
+ )
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return PredibaseError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ if api_key is None:
+ raise ValueError(
+ "Missing Predibase API Key - A call is being made to predibase but no key is set either in the environment variables or via params"
+ )
+
+ default_headers = {
+ "content-type": "application/json",
+ "Authorization": "Bearer {}".format(api_key),
+ }
+ if headers is not None and isinstance(headers, dict):
+ headers = {**default_headers, **headers}
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/predibase/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/predibase/common_utils.py
new file mode 100644
index 00000000..2dad5861
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/predibase/common_utils.py
@@ -0,0 +1,23 @@
+from typing import Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class PredibaseError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ request: Optional[httpx.Request] = None,
+ response: Optional[httpx.Response] = None,
+ headers: Optional[Union[httpx.Headers, dict]] = None,
+ ):
+ super().__init__(
+ status_code=status_code,
+ message=message,
+ request=request,
+ response=response,
+ headers=headers,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/handler.py
new file mode 100644
index 00000000..f52eb2ee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/handler.py
@@ -0,0 +1,300 @@
+import asyncio
+import json
+import time
+from typing import Callable, List, Union
+
+import litellm
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.utils import CustomStreamWrapper, ModelResponse
+
+from ..common_utils import ReplicateError
+from .transformation import ReplicateConfig
+
+replicate_config = ReplicateConfig()
+
+
+# Function to handle prediction response (streaming)
+def handle_prediction_response_streaming(
+ prediction_url, api_token, print_verbose, headers: dict, http_client: HTTPHandler
+):
+ previous_output = ""
+ output_string = ""
+
+ status = ""
+ while True and (status not in ["succeeded", "failed", "canceled"]):
+ time.sleep(0.5) # prevent being rate limited by replicate
+ print_verbose(f"replicate: polling endpoint: {prediction_url}")
+ response = http_client.get(prediction_url, headers=headers)
+ if response.status_code == 200:
+ response_data = response.json()
+ status = response_data["status"]
+ if "output" in response_data:
+ try:
+ output_string = "".join(response_data["output"])
+ except Exception:
+ raise ReplicateError(
+ status_code=422,
+ message="Unable to parse response. Got={}".format(
+ response_data["output"]
+ ),
+ headers=response.headers,
+ )
+ new_output = output_string[len(previous_output) :]
+ print_verbose(f"New chunk: {new_output}")
+ yield {"output": new_output, "status": status}
+ previous_output = output_string
+ status = response_data["status"]
+ if status == "failed":
+ replicate_error = response_data.get("error", "")
+ raise ReplicateError(
+ status_code=400,
+ message=f"Error: {replicate_error}",
+ headers=response.headers,
+ )
+ else:
+ # this can fail temporarily but it does not mean the replicate request failed, replicate request fails when status=="failed"
+ print_verbose(
+ f"Replicate: Failed to fetch prediction status and output.{response.status_code}{response.text}"
+ )
+
+
+# Function to handle prediction response (streaming)
+async def async_handle_prediction_response_streaming(
+ prediction_url,
+ api_token,
+ print_verbose,
+ headers: dict,
+ http_client: AsyncHTTPHandler,
+):
+ previous_output = ""
+ output_string = ""
+
+ status = ""
+ while True and (status not in ["succeeded", "failed", "canceled"]):
+ await asyncio.sleep(0.5) # prevent being rate limited by replicate
+ print_verbose(f"replicate: polling endpoint: {prediction_url}")
+ response = await http_client.get(prediction_url, headers=headers)
+ if response.status_code == 200:
+ response_data = response.json()
+ status = response_data["status"]
+ if "output" in response_data:
+ try:
+ output_string = "".join(response_data["output"])
+ except Exception:
+ raise ReplicateError(
+ status_code=422,
+ message="Unable to parse response. Got={}".format(
+ response_data["output"]
+ ),
+ headers=response.headers,
+ )
+ new_output = output_string[len(previous_output) :]
+ print_verbose(f"New chunk: {new_output}")
+ yield {"output": new_output, "status": status}
+ previous_output = output_string
+ status = response_data["status"]
+ if status == "failed":
+ replicate_error = response_data.get("error", "")
+ raise ReplicateError(
+ status_code=400,
+ message=f"Error: {replicate_error}",
+ headers=response.headers,
+ )
+ else:
+ # this can fail temporarily but it does not mean the replicate request failed, replicate request fails when status=="failed"
+ print_verbose(
+ f"Replicate: Failed to fetch prediction status and output.{response.status_code}{response.text}"
+ )
+
+
+# Main function for prediction completion
+def completion(
+ model: str,
+ messages: list,
+ api_base: str,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ optional_params: dict,
+ litellm_params: dict,
+ logging_obj,
+ api_key,
+ encoding,
+ custom_prompt_dict={},
+ logger_fn=None,
+ acompletion=None,
+ headers={},
+) -> Union[ModelResponse, CustomStreamWrapper]:
+ headers = replicate_config.validate_environment(
+ api_key=api_key,
+ headers=headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ )
+ # Start a prediction and get the prediction URL
+ version_id = replicate_config.model_to_version_id(model)
+ input_data = replicate_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ if acompletion is not None and acompletion is True:
+ return async_completion(
+ model_response=model_response,
+ model=model,
+ encoding=encoding,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ version_id=version_id,
+ input_data=input_data,
+ api_key=api_key,
+ api_base=api_base,
+ logging_obj=logging_obj,
+ print_verbose=print_verbose,
+ headers=headers,
+ ) # type: ignore
+ ## COMPLETION CALL
+ model_response.created = int(
+ time.time()
+ ) # for pricing this must remain right before calling api
+
+ prediction_url = replicate_config.get_complete_url(
+ api_base=api_base,
+ model=model,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+
+ ## COMPLETION CALL
+ httpx_client = _get_httpx_client(
+ params={"timeout": 600.0},
+ )
+ response = httpx_client.post(
+ url=prediction_url,
+ headers=headers,
+ data=json.dumps(input_data),
+ )
+
+ prediction_url = replicate_config.get_prediction_url(response)
+
+ # Handle the prediction response (streaming or non-streaming)
+ if "stream" in optional_params and optional_params["stream"] is True:
+ print_verbose("streaming request")
+ _response = handle_prediction_response_streaming(
+ prediction_url,
+ api_key,
+ print_verbose,
+ headers=headers,
+ http_client=httpx_client,
+ )
+ return CustomStreamWrapper(_response, model, logging_obj=logging_obj, custom_llm_provider="replicate") # type: ignore
+ else:
+ for retry in range(litellm.DEFAULT_REPLICATE_POLLING_RETRIES):
+ time.sleep(
+ litellm.DEFAULT_REPLICATE_POLLING_DELAY_SECONDS + 2 * retry
+ ) # wait to allow response to be generated by replicate - else partial output is generated with status=="processing"
+ response = httpx_client.get(url=prediction_url, headers=headers)
+ if (
+ response.status_code == 200
+ and response.json().get("status") == "processing"
+ ):
+ continue
+ return litellm.ReplicateConfig().transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=input_data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ )
+
+ raise ReplicateError(
+ status_code=500,
+ message="No response received from Replicate API after max retries",
+ headers=None,
+ )
+
+
+async def async_completion(
+ model_response: ModelResponse,
+ model: str,
+ messages: List[AllMessageValues],
+ encoding,
+ optional_params: dict,
+ litellm_params: dict,
+ version_id,
+ input_data,
+ api_key,
+ api_base,
+ logging_obj,
+ print_verbose,
+ headers: dict,
+) -> Union[ModelResponse, CustomStreamWrapper]:
+
+ prediction_url = replicate_config.get_complete_url(
+ api_base=api_base,
+ model=model,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ )
+ async_handler = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.REPLICATE,
+ params={"timeout": 600.0},
+ )
+ response = await async_handler.post(
+ url=prediction_url, headers=headers, data=json.dumps(input_data)
+ )
+ prediction_url = replicate_config.get_prediction_url(response)
+
+ if "stream" in optional_params and optional_params["stream"] is True:
+ _response = async_handle_prediction_response_streaming(
+ prediction_url,
+ api_key,
+ print_verbose,
+ headers=headers,
+ http_client=async_handler,
+ )
+ return CustomStreamWrapper(_response, model, logging_obj=logging_obj, custom_llm_provider="replicate") # type: ignore
+
+ for retry in range(litellm.DEFAULT_REPLICATE_POLLING_RETRIES):
+ await asyncio.sleep(
+ litellm.DEFAULT_REPLICATE_POLLING_DELAY_SECONDS + 2 * retry
+ ) # wait to allow response to be generated by replicate - else partial output is generated with status=="processing"
+ response = await async_handler.get(url=prediction_url, headers=headers)
+ if (
+ response.status_code == 200
+ and response.json().get("status") == "processing"
+ ):
+ continue
+ return litellm.ReplicateConfig().transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key=api_key,
+ request_data=input_data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ )
+ # Add a fallback return if no response is received after max retries
+ raise ReplicateError(
+ status_code=500,
+ message="No response received from Replicate API after max retries",
+ headers=None,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/transformation.py
new file mode 100644
index 00000000..75cfe6ce
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/transformation.py
@@ -0,0 +1,319 @@
+from typing import TYPE_CHECKING, Any, List, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.prompt_templates.common_utils import (
+ convert_content_list_to_str,
+)
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ custom_prompt,
+ prompt_factory,
+)
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse, Usage
+from litellm.utils import token_counter
+
+from ..common_utils import ReplicateError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+
+ LoggingClass = LiteLLMLoggingObj
+else:
+ LoggingClass = Any
+
+
+class ReplicateConfig(BaseConfig):
+ """
+ Reference: https://replicate.com/meta/llama-2-70b-chat/api
+ - `prompt` (string): The prompt to send to the model.
+
+ - `system_prompt` (string): The system prompt to send to the model. This is prepended to the prompt and helps guide system behavior. Default value: `You are a helpful assistant`.
+
+ - `max_new_tokens` (integer): Maximum number of tokens to generate. Typically, a word is made up of 2-3 tokens. Default value: `128`.
+
+ - `min_new_tokens` (integer): Minimum number of tokens to generate. To disable, set to `-1`. A word is usually 2-3 tokens. Default value: `-1`.
+
+ - `temperature` (number): Adjusts the randomness of outputs. Values greater than 1 increase randomness, 0 is deterministic, and 0.75 is a reasonable starting value. Default value: `0.75`.
+
+ - `top_p` (number): During text decoding, it samples from the top `p` percentage of most likely tokens. Reduce this to ignore less probable tokens. Default value: `0.9`.
+
+ - `top_k` (integer): During text decoding, samples from the top `k` most likely tokens. Reduce this to ignore less probable tokens. Default value: `50`.
+
+ - `stop_sequences` (string): A comma-separated list of sequences to stop generation at. For example, inputting '<end>,<stop>' will cease generation at the first occurrence of either 'end' or '<stop>'.
+
+ - `seed` (integer): This is the seed for the random generator. Leave it blank to randomize the seed.
+
+ - `debug` (boolean): If set to `True`, it provides debugging output in logs.
+
+ Please note that Replicate's mapping of these parameters can be inconsistent across different models, indicating that not all of these parameters may be available for use with all models.
+ """
+
+ system_prompt: Optional[str] = None
+ max_new_tokens: Optional[int] = None
+ min_new_tokens: Optional[int] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ top_k: Optional[int] = None
+ stop_sequences: Optional[str] = None
+ seed: Optional[int] = None
+ debug: Optional[bool] = None
+
+ def __init__(
+ self,
+ system_prompt: Optional[str] = None,
+ max_new_tokens: Optional[int] = None,
+ min_new_tokens: Optional[int] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ top_k: Optional[int] = None,
+ stop_sequences: Optional[str] = None,
+ seed: Optional[int] = None,
+ debug: Optional[bool] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ return [
+ "stream",
+ "temperature",
+ "max_tokens",
+ "top_p",
+ "stop",
+ "seed",
+ "tools",
+ "tool_choice",
+ "functions",
+ "function_call",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "max_tokens":
+ if "vicuna" in model or "flan" in model:
+ optional_params["max_length"] = value
+ elif "meta/codellama-13b" in model:
+ optional_params["max_tokens"] = value
+ else:
+ optional_params["max_new_tokens"] = value
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "stop":
+ optional_params["stop_sequences"] = value
+
+ return optional_params
+
+ # Function to extract version ID from model string
+ def model_to_version_id(self, model: str) -> str:
+ if ":" in model:
+ split_model = model.split(":")
+ return split_model[1]
+ return model
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return ReplicateError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ version_id = self.model_to_version_id(model)
+ base_url = api_base
+ if "deployments" in version_id:
+ version_id = version_id.replace("deployments/", "")
+ base_url = f"https://api.replicate.com/v1/deployments/{version_id}"
+ else: # assume it's a model
+ base_url = f"https://api.replicate.com/v1/models/{version_id}"
+
+ base_url = f"{base_url}/predictions"
+ return base_url
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ ## Load Config
+ config = litellm.ReplicateConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in optional_params
+ ): # completion(top_k=3) > replicate_config(top_k=3) <- allows for dynamic variables to be passed in
+ optional_params[k] = v
+
+ system_prompt = None
+ if optional_params is not None and "supports_system_prompt" in optional_params:
+ supports_sys_prompt = optional_params.pop("supports_system_prompt")
+ else:
+ supports_sys_prompt = False
+
+ if supports_sys_prompt:
+ for i in range(len(messages)):
+ if messages[i]["role"] == "system":
+ first_sys_message = messages.pop(i)
+ system_prompt = convert_content_list_to_str(first_sys_message)
+ break
+
+ if model in litellm.custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = litellm.custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details.get("roles", {}),
+ initial_prompt_value=model_prompt_details.get(
+ "initial_prompt_value", ""
+ ),
+ final_prompt_value=model_prompt_details.get("final_prompt_value", ""),
+ bos_token=model_prompt_details.get("bos_token", ""),
+ eos_token=model_prompt_details.get("eos_token", ""),
+ messages=messages,
+ )
+ else:
+ prompt = prompt_factory(model=model, messages=messages)
+
+ if prompt is None or not isinstance(prompt, str):
+ raise ReplicateError(
+ status_code=400,
+ message="LiteLLM Error - prompt is not a string - {}".format(prompt),
+ headers={},
+ )
+
+ # If system prompt is supported, and a system prompt is provided, use it
+ if system_prompt is not None:
+ input_data = {
+ "prompt": prompt,
+ "system_prompt": system_prompt,
+ **optional_params,
+ }
+ # Otherwise, use the prompt as is
+ else:
+ input_data = {"prompt": prompt, **optional_params}
+
+ version_id = self.model_to_version_id(model)
+ request_data: dict = {"input": input_data}
+ if ":" in version_id and len(version_id) > 64:
+ model_parts = version_id.split(":")
+ if (
+ len(model_parts) > 1 and len(model_parts[1]) == 64
+ ): ## checks if model name has a 64 digit code - e.g. "meta/llama-2-70b-chat:02e509c789964a7ea8736978a43525956ef40397be9033abf9fd2badfe68c9e3"
+ request_data["version"] = model_parts[1]
+
+ return request_data
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LoggingClass,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ logging_obj.post_call(
+ input=messages,
+ api_key=api_key,
+ original_response=raw_response.text,
+ additional_args={"complete_input_dict": request_data},
+ )
+ raw_response_json = raw_response.json()
+ if raw_response_json.get("status") != "succeeded":
+ raise ReplicateError(
+ status_code=422,
+ message="LiteLLM Error - prediction not succeeded - {}".format(
+ raw_response_json
+ ),
+ headers=raw_response.headers,
+ )
+ outputs = raw_response_json.get("output", [])
+ response_str = "".join(outputs)
+ if len(response_str) == 0: # edge case, where result from replicate is empty
+ response_str = " "
+
+ ## Building RESPONSE OBJECT
+ if len(response_str) >= 1:
+ model_response.choices[0].message.content = response_str # type: ignore
+
+ # Calculate usage
+ prompt_tokens = token_counter(model=model, messages=messages)
+ completion_tokens = token_counter(
+ model=model,
+ text=response_str,
+ count_response_tokens=True,
+ )
+ model_response.model = "replicate/" + model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+
+ return model_response
+
+ def get_prediction_url(self, response: httpx.Response) -> str:
+ """
+ response json: {
+ ...,
+ "urls":{"cancel":"https://api.replicate.com/v1/predictions/gqsmqmp1pdrj00cknr08dgmvb4/cancel","get":"https://api.replicate.com/v1/predictions/gqsmqmp1pdrj00cknr08dgmvb4","stream":"https://stream-b.svc.rno2.c.replicate.net/v1/streams/eot4gbydowuin4snhncydwxt57dfwgsc3w3snycx5nid7oef7jga"}
+ }
+ """
+ response_json = response.json()
+ prediction_url = response_json.get("urls", {}).get("get")
+ if prediction_url is None:
+ raise ReplicateError(
+ status_code=400,
+ message="LiteLLM Error - prediction url is None - {}".format(
+ response_json
+ ),
+ headers=response.headers,
+ )
+ return prediction_url
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ headers = {
+ "Authorization": f"Token {api_key}",
+ "Content-Type": "application/json",
+ }
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/replicate/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/replicate/common_utils.py
new file mode 100644
index 00000000..c52b47a4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/replicate/common_utils.py
@@ -0,0 +1,15 @@
+from typing import Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class ReplicateError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[dict, httpx.Headers]],
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/handler.py
new file mode 100644
index 00000000..c827a8a5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/handler.py
@@ -0,0 +1,179 @@
+import json
+from copy import deepcopy
+from typing import Callable, Optional, Union
+
+import httpx
+
+from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
+from litellm.utils import ModelResponse, get_secret
+
+from ..common_utils import AWSEventStreamDecoder
+from .transformation import SagemakerChatConfig
+
+
+class SagemakerChatHandler(BaseAWSLLM):
+
+ def _load_credentials(
+ self,
+ optional_params: dict,
+ ):
+ try:
+ from botocore.credentials import Credentials
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+ ## CREDENTIALS ##
+ # pop aws_secret_access_key, aws_access_key_id, aws_session_token, aws_region_name from kwargs, since completion calls fail with them
+ aws_secret_access_key = optional_params.pop("aws_secret_access_key", None)
+ aws_access_key_id = optional_params.pop("aws_access_key_id", None)
+ aws_session_token = optional_params.pop("aws_session_token", None)
+ aws_region_name = optional_params.pop("aws_region_name", None)
+ aws_role_name = optional_params.pop("aws_role_name", None)
+ aws_session_name = optional_params.pop("aws_session_name", None)
+ aws_profile_name = optional_params.pop("aws_profile_name", None)
+ optional_params.pop(
+ "aws_bedrock_runtime_endpoint", None
+ ) # https://bedrock-runtime.{region_name}.amazonaws.com
+ aws_web_identity_token = optional_params.pop("aws_web_identity_token", None)
+ aws_sts_endpoint = optional_params.pop("aws_sts_endpoint", None)
+
+ ### SET REGION NAME ###
+ if aws_region_name is None:
+ # check env #
+ litellm_aws_region_name = get_secret("AWS_REGION_NAME", None)
+
+ if litellm_aws_region_name is not None and isinstance(
+ litellm_aws_region_name, str
+ ):
+ aws_region_name = litellm_aws_region_name
+
+ standard_aws_region_name = get_secret("AWS_REGION", None)
+ if standard_aws_region_name is not None and isinstance(
+ standard_aws_region_name, str
+ ):
+ aws_region_name = standard_aws_region_name
+
+ if aws_region_name is None:
+ aws_region_name = "us-west-2"
+
+ credentials: Credentials = self.get_credentials(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_session_token=aws_session_token,
+ aws_region_name=aws_region_name,
+ aws_session_name=aws_session_name,
+ aws_profile_name=aws_profile_name,
+ aws_role_name=aws_role_name,
+ aws_web_identity_token=aws_web_identity_token,
+ aws_sts_endpoint=aws_sts_endpoint,
+ )
+ return credentials, aws_region_name
+
+ def _prepare_request(
+ self,
+ credentials,
+ model: str,
+ data: dict,
+ optional_params: dict,
+ aws_region_name: str,
+ extra_headers: Optional[dict] = None,
+ ):
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+
+ sigv4 = SigV4Auth(credentials, "sagemaker", aws_region_name)
+ if optional_params.get("stream") is True:
+ api_base = f"https://runtime.sagemaker.{aws_region_name}.amazonaws.com/endpoints/{model}/invocations-response-stream"
+ else:
+ api_base = f"https://runtime.sagemaker.{aws_region_name}.amazonaws.com/endpoints/{model}/invocations"
+
+ sagemaker_base_url = optional_params.get("sagemaker_base_url", None)
+ if sagemaker_base_url is not None:
+ api_base = sagemaker_base_url
+
+ encoded_data = json.dumps(data).encode("utf-8")
+ headers = {"Content-Type": "application/json"}
+ if extra_headers is not None:
+ headers = {"Content-Type": "application/json", **extra_headers}
+ request = AWSRequest(
+ method="POST", url=api_base, data=encoded_data, headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+
+ prepped_request = request.prepare()
+
+ return prepped_request
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ optional_params: dict,
+ litellm_params: dict,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ custom_prompt_dict={},
+ logger_fn=None,
+ acompletion: bool = False,
+ headers: dict = {},
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ ):
+
+ # pop streaming if it's in the optional params as 'stream' raises an error with sagemaker
+ credentials, aws_region_name = self._load_credentials(optional_params)
+ inference_params = deepcopy(optional_params)
+ stream = inference_params.pop("stream", None)
+
+ from litellm.llms.openai_like.chat.handler import OpenAILikeChatHandler
+
+ openai_like_chat_completions = OpenAILikeChatHandler()
+ inference_params["stream"] = True if stream is True else False
+ _data = SagemakerChatConfig().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=inference_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ prepared_request = self._prepare_request(
+ model=model,
+ data=_data,
+ optional_params=optional_params,
+ credentials=credentials,
+ aws_region_name=aws_region_name,
+ )
+
+ custom_stream_decoder = AWSEventStreamDecoder(model="", is_messages_api=True)
+
+ return openai_like_chat_completions.completion(
+ model=model,
+ messages=messages,
+ api_base=prepared_request.url,
+ api_key=None,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ logging_obj=logging_obj,
+ optional_params=inference_params,
+ acompletion=acompletion,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ timeout=timeout,
+ encoding=encoding,
+ headers=prepared_request.headers, # type: ignore
+ custom_endpoint=True,
+ custom_llm_provider="sagemaker_chat",
+ streaming_decoder=custom_stream_decoder, # type: ignore
+ client=client,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/transformation.py
new file mode 100644
index 00000000..42c7e0d5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/transformation.py
@@ -0,0 +1,26 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to Sagemaker's `/invocations` API
+
+Called if Sagemaker endpoint supports HF Messages API.
+
+LiteLLM Docs: https://docs.litellm.ai/docs/providers/aws_sagemaker#sagemaker-messages-api
+Huggingface Docs: https://huggingface.co/docs/text-generation-inference/en/messages_api
+"""
+
+from typing import Union
+
+from httpx._models import Headers
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+from ..common_utils import SagemakerError
+
+
+class SagemakerChatConfig(OpenAIGPTConfig):
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return SagemakerError(
+ status_code=status_code, message=error_message, headers=headers
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/common_utils.py
new file mode 100644
index 00000000..9884f420
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/common_utils.py
@@ -0,0 +1,207 @@
+import json
+from typing import AsyncIterator, Iterator, List, Optional, Union
+
+import httpx
+
+import litellm
+from litellm import verbose_logger
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.types.utils import GenericStreamingChunk as GChunk
+from litellm.types.utils import StreamingChatCompletionChunk
+
+_response_stream_shape_cache = None
+
+
+class SagemakerError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[dict, httpx.Headers]] = None,
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
+
+
+class AWSEventStreamDecoder:
+ def __init__(self, model: str, is_messages_api: Optional[bool] = None) -> None:
+ from botocore.parsers import EventStreamJSONParser
+
+ self.model = model
+ self.parser = EventStreamJSONParser()
+ self.content_blocks: List = []
+ self.is_messages_api = is_messages_api
+
+ def _chunk_parser_messages_api(
+ self, chunk_data: dict
+ ) -> StreamingChatCompletionChunk:
+
+ openai_chunk = StreamingChatCompletionChunk(**chunk_data)
+
+ return openai_chunk
+
+ def _chunk_parser(self, chunk_data: dict) -> GChunk:
+ verbose_logger.debug("in sagemaker chunk parser, chunk_data %s", chunk_data)
+ _token = chunk_data.get("token", {}) or {}
+ _index = chunk_data.get("index", None) or 0
+ is_finished = False
+ finish_reason = ""
+
+ _text = _token.get("text", "")
+ if _text == "<|endoftext|>":
+ return GChunk(
+ text="",
+ index=_index,
+ is_finished=True,
+ finish_reason="stop",
+ usage=None,
+ )
+
+ return GChunk(
+ text=_text,
+ index=_index,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=None,
+ )
+
+ def iter_bytes(
+ self, iterator: Iterator[bytes]
+ ) -> Iterator[Optional[Union[GChunk, StreamingChatCompletionChunk]]]:
+ """Given an iterator that yields lines, iterate over it & yield every event encountered"""
+ from botocore.eventstream import EventStreamBuffer
+
+ event_stream_buffer = EventStreamBuffer()
+ accumulated_json = ""
+
+ for chunk in iterator:
+ event_stream_buffer.add_data(chunk)
+ for event in event_stream_buffer:
+ message = self._parse_message_from_event(event)
+ if message:
+ # remove data: prefix and "\n\n" at the end
+ message = (
+ litellm.CustomStreamWrapper._strip_sse_data_from_chunk(message)
+ or ""
+ )
+ message = message.replace("\n\n", "")
+
+ # Accumulate JSON data
+ accumulated_json += message
+
+ # Try to parse the accumulated JSON
+ try:
+ _data = json.loads(accumulated_json)
+ if self.is_messages_api:
+ yield self._chunk_parser_messages_api(chunk_data=_data)
+ else:
+ yield self._chunk_parser(chunk_data=_data)
+ # Reset accumulated_json after successful parsing
+ accumulated_json = ""
+ except json.JSONDecodeError:
+ # If it's not valid JSON yet, continue to the next event
+ continue
+
+ # Handle any remaining data after the iterator is exhausted
+ if accumulated_json:
+ try:
+ _data = json.loads(accumulated_json)
+ if self.is_messages_api:
+ yield self._chunk_parser_messages_api(chunk_data=_data)
+ else:
+ yield self._chunk_parser(chunk_data=_data)
+ except json.JSONDecodeError:
+ # Handle or log any unparseable data at the end
+ verbose_logger.error(
+ f"Warning: Unparseable JSON data remained: {accumulated_json}"
+ )
+ yield None
+
+ async def aiter_bytes(
+ self, iterator: AsyncIterator[bytes]
+ ) -> AsyncIterator[Optional[Union[GChunk, StreamingChatCompletionChunk]]]:
+ """Given an async iterator that yields lines, iterate over it & yield every event encountered"""
+ from botocore.eventstream import EventStreamBuffer
+
+ event_stream_buffer = EventStreamBuffer()
+ accumulated_json = ""
+
+ async for chunk in iterator:
+ event_stream_buffer.add_data(chunk)
+ for event in event_stream_buffer:
+ message = self._parse_message_from_event(event)
+ if message:
+ verbose_logger.debug("sagemaker parsed chunk bytes %s", message)
+ # remove data: prefix and "\n\n" at the end
+ message = (
+ litellm.CustomStreamWrapper._strip_sse_data_from_chunk(message)
+ or ""
+ )
+ message = message.replace("\n\n", "")
+
+ # Accumulate JSON data
+ accumulated_json += message
+
+ # Try to parse the accumulated JSON
+ try:
+ _data = json.loads(accumulated_json)
+ if self.is_messages_api:
+ yield self._chunk_parser_messages_api(chunk_data=_data)
+ else:
+ yield self._chunk_parser(chunk_data=_data)
+ # Reset accumulated_json after successful parsing
+ accumulated_json = ""
+ except json.JSONDecodeError:
+ # If it's not valid JSON yet, continue to the next event
+ continue
+
+ # Handle any remaining data after the iterator is exhausted
+ if accumulated_json:
+ try:
+ _data = json.loads(accumulated_json)
+ if self.is_messages_api:
+ yield self._chunk_parser_messages_api(chunk_data=_data)
+ else:
+ yield self._chunk_parser(chunk_data=_data)
+ except json.JSONDecodeError:
+ # Handle or log any unparseable data at the end
+ verbose_logger.error(
+ f"Warning: Unparseable JSON data remained: {accumulated_json}"
+ )
+ yield None
+
+ def _parse_message_from_event(self, event) -> Optional[str]:
+ response_dict = event.to_response_dict()
+ parsed_response = self.parser.parse(response_dict, get_response_stream_shape())
+
+ if response_dict["status_code"] != 200:
+ raise ValueError(f"Bad response code, expected 200: {response_dict}")
+
+ if "chunk" in parsed_response:
+ chunk = parsed_response.get("chunk")
+ if not chunk:
+ return None
+ return chunk.get("bytes").decode() # type: ignore[no-any-return]
+ else:
+ chunk = response_dict.get("body")
+ if not chunk:
+ return None
+
+ return chunk.decode() # type: ignore[no-any-return]
+
+
+def get_response_stream_shape():
+ global _response_stream_shape_cache
+ if _response_stream_shape_cache is None:
+
+ from botocore.loaders import Loader
+ from botocore.model import ServiceModel
+
+ loader = Loader()
+ sagemaker_service_dict = loader.load_service_model(
+ "sagemaker-runtime", "service-2"
+ )
+ sagemaker_service_model = ServiceModel(sagemaker_service_dict)
+ _response_stream_shape_cache = sagemaker_service_model.shape_for(
+ "InvokeEndpointWithResponseStreamOutput"
+ )
+ return _response_stream_shape_cache
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/handler.py
new file mode 100644
index 00000000..909caf73
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/handler.py
@@ -0,0 +1,701 @@
+import json
+from copy import deepcopy
+from typing import Any, Callable, List, Optional, Union
+
+import httpx
+
+import litellm
+from litellm._logging import verbose_logger
+from litellm.litellm_core_utils.asyncify import asyncify
+from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM
+from litellm.llms.custom_httpx.http_handler import (
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.utils import (
+ CustomStreamWrapper,
+ EmbeddingResponse,
+ ModelResponse,
+ Usage,
+ get_secret,
+)
+
+from ..common_utils import AWSEventStreamDecoder, SagemakerError
+from .transformation import SagemakerConfig
+
+sagemaker_config = SagemakerConfig()
+
+"""
+SAGEMAKER AUTH Keys/Vars
+os.environ['AWS_ACCESS_KEY_ID'] = ""
+os.environ['AWS_SECRET_ACCESS_KEY'] = ""
+"""
+
+
+# set os.environ['AWS_REGION_NAME'] = <your-region_name>
+class SagemakerLLM(BaseAWSLLM):
+
+ def _load_credentials(
+ self,
+ optional_params: dict,
+ ):
+ try:
+ from botocore.credentials import Credentials
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+ ## CREDENTIALS ##
+ # pop aws_secret_access_key, aws_access_key_id, aws_session_token, aws_region_name from kwargs, since completion calls fail with them
+ aws_secret_access_key = optional_params.pop("aws_secret_access_key", None)
+ aws_access_key_id = optional_params.pop("aws_access_key_id", None)
+ aws_session_token = optional_params.pop("aws_session_token", None)
+ aws_region_name = optional_params.pop("aws_region_name", None)
+ aws_role_name = optional_params.pop("aws_role_name", None)
+ aws_session_name = optional_params.pop("aws_session_name", None)
+ aws_profile_name = optional_params.pop("aws_profile_name", None)
+ optional_params.pop(
+ "aws_bedrock_runtime_endpoint", None
+ ) # https://bedrock-runtime.{region_name}.amazonaws.com
+ aws_web_identity_token = optional_params.pop("aws_web_identity_token", None)
+ aws_sts_endpoint = optional_params.pop("aws_sts_endpoint", None)
+
+ ### SET REGION NAME ###
+ if aws_region_name is None:
+ # check env #
+ litellm_aws_region_name = get_secret("AWS_REGION_NAME", None)
+
+ if litellm_aws_region_name is not None and isinstance(
+ litellm_aws_region_name, str
+ ):
+ aws_region_name = litellm_aws_region_name
+
+ standard_aws_region_name = get_secret("AWS_REGION", None)
+ if standard_aws_region_name is not None and isinstance(
+ standard_aws_region_name, str
+ ):
+ aws_region_name = standard_aws_region_name
+
+ if aws_region_name is None:
+ aws_region_name = "us-west-2"
+
+ credentials: Credentials = self.get_credentials(
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ aws_session_token=aws_session_token,
+ aws_region_name=aws_region_name,
+ aws_session_name=aws_session_name,
+ aws_profile_name=aws_profile_name,
+ aws_role_name=aws_role_name,
+ aws_web_identity_token=aws_web_identity_token,
+ aws_sts_endpoint=aws_sts_endpoint,
+ )
+ return credentials, aws_region_name
+
+ def _prepare_request(
+ self,
+ credentials,
+ model: str,
+ data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ aws_region_name: str,
+ extra_headers: Optional[dict] = None,
+ ):
+ try:
+ from botocore.auth import SigV4Auth
+ from botocore.awsrequest import AWSRequest
+ except ImportError:
+ raise ImportError("Missing boto3 to call bedrock. Run 'pip install boto3'.")
+
+ sigv4 = SigV4Auth(credentials, "sagemaker", aws_region_name)
+ if optional_params.get("stream") is True:
+ api_base = f"https://runtime.sagemaker.{aws_region_name}.amazonaws.com/endpoints/{model}/invocations-response-stream"
+ else:
+ api_base = f"https://runtime.sagemaker.{aws_region_name}.amazonaws.com/endpoints/{model}/invocations"
+
+ sagemaker_base_url = optional_params.get("sagemaker_base_url", None)
+ if sagemaker_base_url is not None:
+ api_base = sagemaker_base_url
+
+ encoded_data = json.dumps(data).encode("utf-8")
+ headers = sagemaker_config.validate_environment(
+ headers=extra_headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ )
+ request = AWSRequest(
+ method="POST", url=api_base, data=encoded_data, headers=headers
+ )
+ sigv4.add_auth(request)
+ if (
+ extra_headers is not None and "Authorization" in extra_headers
+ ): # prevent sigv4 from overwriting the auth header
+ request.headers["Authorization"] = extra_headers["Authorization"]
+
+ prepped_request = request.prepare()
+
+ return prepped_request
+
+ def completion( # noqa: PLR0915
+ self,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ optional_params: dict,
+ litellm_params: dict,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ custom_prompt_dict={},
+ hf_model_name=None,
+ logger_fn=None,
+ acompletion: bool = False,
+ headers: dict = {},
+ ):
+
+ # pop streaming if it's in the optional params as 'stream' raises an error with sagemaker
+ credentials, aws_region_name = self._load_credentials(optional_params)
+ inference_params = deepcopy(optional_params)
+ stream = inference_params.pop("stream", None)
+ model_id = optional_params.get("model_id", None)
+
+ ## Load Config
+ config = litellm.SagemakerConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > sagemaker_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ if stream is True:
+ if acompletion is True:
+ response = self.async_streaming(
+ messages=messages,
+ model=model,
+ custom_prompt_dict=custom_prompt_dict,
+ hf_model_name=hf_model_name,
+ optional_params=optional_params,
+ encoding=encoding,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ model_id=model_id,
+ aws_region_name=aws_region_name,
+ credentials=credentials,
+ headers=headers,
+ litellm_params=litellm_params,
+ )
+ return response
+ else:
+ data = sagemaker_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ prepared_request = self._prepare_request(
+ model=model,
+ data=data,
+ messages=messages,
+ optional_params=optional_params,
+ credentials=credentials,
+ aws_region_name=aws_region_name,
+ )
+ if model_id is not None:
+ # Add model_id as InferenceComponentName header
+ # boto3 doc: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html
+ prepared_request.headers.update(
+ {"X-Amzn-SageMaker-Inference-Component": model_id}
+ )
+ sync_handler = _get_httpx_client()
+ sync_response = sync_handler.post(
+ url=prepared_request.url,
+ headers=prepared_request.headers, # type: ignore
+ data=prepared_request.body,
+ stream=stream,
+ )
+
+ if sync_response.status_code != 200:
+ raise SagemakerError(
+ status_code=sync_response.status_code,
+ message=str(sync_response.read()),
+ )
+
+ decoder = AWSEventStreamDecoder(model="")
+
+ completion_stream = decoder.iter_bytes(
+ sync_response.iter_bytes(chunk_size=1024)
+ )
+ streaming_response = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="sagemaker",
+ logging_obj=logging_obj,
+ )
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=streaming_response,
+ additional_args={"complete_input_dict": data},
+ )
+ return streaming_response
+
+ # Non-Streaming Requests
+
+ # Async completion
+ if acompletion is True:
+ return self.async_completion(
+ messages=messages,
+ model=model,
+ custom_prompt_dict=custom_prompt_dict,
+ hf_model_name=hf_model_name,
+ model_response=model_response,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ model_id=model_id,
+ optional_params=optional_params,
+ credentials=credentials,
+ aws_region_name=aws_region_name,
+ headers=headers,
+ litellm_params=litellm_params,
+ )
+
+ ## Non-Streaming completion CALL
+ _data = sagemaker_config.transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ prepared_request_args = {
+ "model": model,
+ "data": _data,
+ "optional_params": optional_params,
+ "credentials": credentials,
+ "aws_region_name": aws_region_name,
+ "messages": messages,
+ }
+ prepared_request = self._prepare_request(**prepared_request_args)
+ try:
+ if model_id is not None:
+ # Add model_id as InferenceComponentName header
+ # boto3 doc: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html
+ prepared_request.headers.update(
+ {"X-Amzn-SageMaker-Inference-Component": model_id}
+ )
+
+ ## LOGGING
+ timeout = 300.0
+ sync_handler = _get_httpx_client()
+ ## LOGGING
+ logging_obj.pre_call(
+ input=[],
+ api_key="",
+ additional_args={
+ "complete_input_dict": _data,
+ "api_base": prepared_request.url,
+ "headers": prepared_request.headers,
+ },
+ )
+
+ # make sync httpx post request here
+ try:
+ sync_response = sync_handler.post(
+ url=prepared_request.url,
+ headers=prepared_request.headers, # type: ignore
+ data=prepared_request.body,
+ timeout=timeout,
+ )
+
+ if sync_response.status_code != 200:
+ raise SagemakerError(
+ status_code=sync_response.status_code,
+ message=sync_response.text,
+ )
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=[],
+ api_key="",
+ original_response=str(e),
+ additional_args={"complete_input_dict": _data},
+ )
+ raise e
+ except Exception as e:
+ verbose_logger.error("Sagemaker error %s", str(e))
+ status_code = (
+ getattr(e, "response", {})
+ .get("ResponseMetadata", {})
+ .get("HTTPStatusCode", 500)
+ )
+ error_message = (
+ getattr(e, "response", {}).get("Error", {}).get("Message", str(e))
+ )
+ if "Inference Component Name header is required" in error_message:
+ error_message += "\n pass in via `litellm.completion(..., model_id={InferenceComponentName})`"
+ raise SagemakerError(status_code=status_code, message=error_message)
+
+ return sagemaker_config.transform_response(
+ model=model,
+ raw_response=sync_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data=_data,
+ messages=messages,
+ optional_params=optional_params,
+ encoding=encoding,
+ litellm_params=litellm_params,
+ )
+
+ async def make_async_call(
+ self,
+ api_base: str,
+ headers: dict,
+ data: str,
+ logging_obj,
+ client=None,
+ ):
+ try:
+ if client is None:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.SAGEMAKER
+ ) # Create a new client if none provided
+ response = await client.post(
+ api_base,
+ headers=headers,
+ data=data,
+ stream=True,
+ )
+
+ if response.status_code != 200:
+ raise SagemakerError(
+ status_code=response.status_code, message=response.text
+ )
+
+ decoder = AWSEventStreamDecoder(model="")
+ completion_stream = decoder.aiter_bytes(
+ response.aiter_bytes(chunk_size=1024)
+ )
+
+ return completion_stream
+
+ # LOGGING
+ logging_obj.post_call(
+ input=[],
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise SagemakerError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise SagemakerError(status_code=408, message="Timeout error occurred.")
+ except Exception as e:
+ raise SagemakerError(status_code=500, message=str(e))
+
+ async def async_streaming(
+ self,
+ messages: List[AllMessageValues],
+ model: str,
+ custom_prompt_dict: dict,
+ hf_model_name: Optional[str],
+ credentials,
+ aws_region_name: str,
+ optional_params,
+ encoding,
+ model_response: ModelResponse,
+ model_id: Optional[str],
+ logging_obj: Any,
+ litellm_params: dict,
+ headers: dict,
+ ):
+ data = await sagemaker_config.async_transform_request(
+ model=model,
+ messages=messages,
+ optional_params={**optional_params, "stream": True},
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ asyncified_prepare_request = asyncify(self._prepare_request)
+ prepared_request_args = {
+ "model": model,
+ "data": data,
+ "optional_params": optional_params,
+ "credentials": credentials,
+ "aws_region_name": aws_region_name,
+ "messages": messages,
+ }
+ prepared_request = await asyncified_prepare_request(**prepared_request_args)
+ if model_id is not None: # Fixes https://github.com/BerriAI/litellm/issues/8889
+ prepared_request.headers.update(
+ {"X-Amzn-SageMaker-Inference-Component": model_id}
+ )
+ completion_stream = await self.make_async_call(
+ api_base=prepared_request.url,
+ headers=prepared_request.headers, # type: ignore
+ data=prepared_request.body,
+ logging_obj=logging_obj,
+ )
+ streaming_response = CustomStreamWrapper(
+ completion_stream=completion_stream,
+ model=model,
+ custom_llm_provider="sagemaker",
+ logging_obj=logging_obj,
+ )
+
+ # LOGGING
+ logging_obj.post_call(
+ input=[],
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return streaming_response
+
+ async def async_completion(
+ self,
+ messages: List[AllMessageValues],
+ model: str,
+ custom_prompt_dict: dict,
+ hf_model_name: Optional[str],
+ credentials,
+ aws_region_name: str,
+ encoding,
+ model_response: ModelResponse,
+ optional_params: dict,
+ logging_obj: Any,
+ model_id: Optional[str],
+ headers: dict,
+ litellm_params: dict,
+ ):
+ timeout = 300.0
+ async_handler = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.SAGEMAKER
+ )
+
+ data = await sagemaker_config.async_transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ asyncified_prepare_request = asyncify(self._prepare_request)
+ prepared_request_args = {
+ "model": model,
+ "data": data,
+ "optional_params": optional_params,
+ "credentials": credentials,
+ "aws_region_name": aws_region_name,
+ "messages": messages,
+ }
+
+ prepared_request = await asyncified_prepare_request(**prepared_request_args)
+ ## LOGGING
+ logging_obj.pre_call(
+ input=[],
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": prepared_request.url,
+ "headers": prepared_request.headers,
+ },
+ )
+ try:
+ if model_id is not None:
+ # Add model_id as InferenceComponentName header
+ # boto3 doc: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html
+ prepared_request.headers.update(
+ {"X-Amzn-SageMaker-Inference-Component": model_id}
+ )
+ # make async httpx post request here
+ try:
+ response = await async_handler.post(
+ url=prepared_request.url,
+ headers=prepared_request.headers, # type: ignore
+ data=prepared_request.body,
+ timeout=timeout,
+ )
+
+ if response.status_code != 200:
+ raise SagemakerError(
+ status_code=response.status_code, message=response.text
+ )
+ except Exception as e:
+ ## LOGGING
+ logging_obj.post_call(
+ input=data["inputs"],
+ api_key="",
+ original_response=str(e),
+ additional_args={"complete_input_dict": data},
+ )
+ raise e
+ except Exception as e:
+ error_message = f"{str(e)}"
+ if "Inference Component Name header is required" in error_message:
+ error_message += "\n pass in via `litellm.completion(..., model_id={InferenceComponentName})`"
+ raise SagemakerError(status_code=500, message=error_message)
+ return sagemaker_config.transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data=data,
+ messages=messages,
+ optional_params=optional_params,
+ encoding=encoding,
+ litellm_params=litellm_params,
+ )
+
+ def embedding(
+ self,
+ model: str,
+ input: list,
+ model_response: EmbeddingResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ optional_params: dict,
+ custom_prompt_dict={},
+ litellm_params=None,
+ logger_fn=None,
+ ):
+ """
+ Supports Huggingface Jumpstart embeddings like GPT-6B
+ """
+ ### BOTO3 INIT
+ import boto3
+
+ # pop aws_secret_access_key, aws_access_key_id, aws_region_name from kwargs, since completion calls fail with them
+ aws_secret_access_key = optional_params.pop("aws_secret_access_key", None)
+ aws_access_key_id = optional_params.pop("aws_access_key_id", None)
+ aws_region_name = optional_params.pop("aws_region_name", None)
+
+ if aws_access_key_id is not None:
+ # uses auth params passed to completion
+ # aws_access_key_id is not None, assume user is trying to auth using litellm.completion
+ client = boto3.client(
+ service_name="sagemaker-runtime",
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key,
+ region_name=aws_region_name,
+ )
+ else:
+ # aws_access_key_id is None, assume user is trying to auth using env variables
+ # boto3 automaticaly reads env variables
+
+ # we need to read region name from env
+ # I assume majority of users use .env for auth
+ region_name = (
+ get_secret("AWS_REGION_NAME")
+ or aws_region_name # get region from config file if specified
+ or "us-west-2" # default to us-west-2 if region not specified
+ )
+ client = boto3.client(
+ service_name="sagemaker-runtime",
+ region_name=region_name,
+ )
+
+ # pop streaming if it's in the optional params as 'stream' raises an error with sagemaker
+ inference_params = deepcopy(optional_params)
+ inference_params.pop("stream", None)
+
+ ## Load Config
+ config = litellm.SagemakerConfig.get_config()
+ for k, v in config.items():
+ if (
+ k not in inference_params
+ ): # completion(top_k=3) > sagemaker_config(top_k=3) <- allows for dynamic variables to be passed in
+ inference_params[k] = v
+
+ #### HF EMBEDDING LOGIC
+ data = json.dumps({"text_inputs": input}).encode("utf-8")
+
+ ## LOGGING
+ request_str = f"""
+ response = client.invoke_endpoint(
+ EndpointName={model},
+ ContentType="application/json",
+ Body={data}, # type: ignore
+ CustomAttributes="accept_eula=true",
+ )""" # type: ignore
+ logging_obj.pre_call(
+ input=input,
+ api_key="",
+ additional_args={"complete_input_dict": data, "request_str": request_str},
+ )
+ ## EMBEDDING CALL
+ try:
+ response = client.invoke_endpoint(
+ EndpointName=model,
+ ContentType="application/json",
+ Body=data,
+ CustomAttributes="accept_eula=true",
+ )
+ except Exception as e:
+ status_code = (
+ getattr(e, "response", {})
+ .get("ResponseMetadata", {})
+ .get("HTTPStatusCode", 500)
+ )
+ error_message = (
+ getattr(e, "response", {}).get("Error", {}).get("Message", str(e))
+ )
+ raise SagemakerError(status_code=status_code, message=error_message)
+
+ response = json.loads(response["Body"].read().decode("utf8"))
+ ## LOGGING
+ logging_obj.post_call(
+ input=input,
+ api_key="",
+ original_response=response,
+ additional_args={"complete_input_dict": data},
+ )
+
+ print_verbose(f"raw model_response: {response}")
+ if "embedding" not in response:
+ raise SagemakerError(
+ status_code=500, message="embedding not found in response"
+ )
+ embeddings = response["embedding"]
+
+ if not isinstance(embeddings, list):
+ raise SagemakerError(
+ status_code=422,
+ message=f"Response not in expected format - {embeddings}",
+ )
+
+ output_data = []
+ for idx, embedding in enumerate(embeddings):
+ output_data.append(
+ {"object": "embedding", "index": idx, "embedding": embedding}
+ )
+
+ model_response.object = "list"
+ model_response.data = output_data
+ model_response.model = model
+
+ input_tokens = 0
+ for text in input:
+ input_tokens += len(encoding.encode(text))
+
+ setattr(
+ model_response,
+ "usage",
+ Usage(
+ prompt_tokens=input_tokens,
+ completion_tokens=0,
+ total_tokens=input_tokens,
+ ),
+ )
+
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/transformation.py
new file mode 100644
index 00000000..d0ab5d06
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/transformation.py
@@ -0,0 +1,270 @@
+"""
+Translate from OpenAI's `/v1/chat/completions` to Sagemaker's `/invoke`
+
+In the Huggingface TGI format.
+"""
+
+import json
+import time
+from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
+
+from httpx._models import Headers, Response
+
+import litellm
+from litellm.litellm_core_utils.asyncify import asyncify
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ custom_prompt,
+ prompt_factory,
+)
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse, Usage
+
+from ..common_utils import SagemakerError
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class SagemakerConfig(BaseConfig):
+ """
+ Reference: https://d-uuwbxj1u4cnu.studio.us-west-2.sagemaker.aws/jupyter/default/lab/workspaces/auto-q/tree/DemoNotebooks/meta-textgeneration-llama-2-7b-SDK_1.ipynb
+ """
+
+ max_new_tokens: Optional[int] = None
+ top_p: Optional[float] = None
+ temperature: Optional[float] = None
+ return_full_text: Optional[bool] = None
+
+ def __init__(
+ self,
+ max_new_tokens: Optional[int] = None,
+ top_p: Optional[float] = None,
+ temperature: Optional[float] = None,
+ return_full_text: Optional[bool] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return SagemakerError(
+ message=error_message, status_code=status_code, headers=headers
+ )
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return ["stream", "temperature", "max_tokens", "top_p", "stop", "n"]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for param, value in non_default_params.items():
+ if param == "temperature":
+ if value == 0.0 or value == 0:
+ # hugging face exception raised when temp==0
+ # Failed: Error occurred: HuggingfaceException - Input validation error: `temperature` must be strictly positive
+ if not non_default_params.get(
+ "aws_sagemaker_allow_zero_temp", False
+ ):
+ value = 0.01
+
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if param == "n":
+ optional_params["best_of"] = value
+ optional_params["do_sample"] = (
+ True # Need to sample if you want best of for hf inference endpoints
+ )
+ if param == "stream":
+ optional_params["stream"] = value
+ if param == "stop":
+ optional_params["stop"] = value
+ if param == "max_tokens":
+ # HF TGI raises the following exception when max_new_tokens==0
+ # Failed: Error occurred: HuggingfaceException - Input validation error: `max_new_tokens` must be strictly positive
+ if value == 0:
+ value = 1
+ optional_params["max_new_tokens"] = value
+ non_default_params.pop("aws_sagemaker_allow_zero_temp", None)
+ return optional_params
+
+ def _transform_prompt(
+ self,
+ model: str,
+ messages: List,
+ custom_prompt_dict: dict,
+ hf_model_name: Optional[str],
+ ) -> str:
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details.get("roles", None),
+ initial_prompt_value=model_prompt_details.get(
+ "initial_prompt_value", ""
+ ),
+ final_prompt_value=model_prompt_details.get("final_prompt_value", ""),
+ messages=messages,
+ )
+ elif hf_model_name in custom_prompt_dict:
+ # check if the base huggingface model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[hf_model_name]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details.get("roles", None),
+ initial_prompt_value=model_prompt_details.get(
+ "initial_prompt_value", ""
+ ),
+ final_prompt_value=model_prompt_details.get("final_prompt_value", ""),
+ messages=messages,
+ )
+ else:
+ if hf_model_name is None:
+ if "llama-2" in model.lower(): # llama-2 model
+ if "chat" in model.lower(): # apply llama2 chat template
+ hf_model_name = "meta-llama/Llama-2-7b-chat-hf"
+ else: # apply regular llama2 template
+ hf_model_name = "meta-llama/Llama-2-7b"
+ hf_model_name = (
+ hf_model_name or model
+ ) # pass in hf model name for pulling it's prompt template - (e.g. `hf_model_name="meta-llama/Llama-2-7b-chat-hf` applies the llama2 chat template to the prompt)
+ prompt: str = prompt_factory(model=hf_model_name, messages=messages) # type: ignore
+
+ return prompt
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ inference_params = optional_params.copy()
+ stream = inference_params.pop("stream", False)
+ data: Dict = {"parameters": inference_params}
+ if stream is True:
+ data["stream"] = True
+
+ custom_prompt_dict = (
+ litellm_params.get("custom_prompt_dict", None) or litellm.custom_prompt_dict
+ )
+
+ hf_model_name = litellm_params.get("hf_model_name", None)
+
+ prompt = self._transform_prompt(
+ model=model,
+ messages=messages,
+ custom_prompt_dict=custom_prompt_dict,
+ hf_model_name=hf_model_name,
+ )
+ data["inputs"] = prompt
+
+ return data
+
+ async def async_transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ return await asyncify(self.transform_request)(
+ model, messages, optional_params, litellm_params, headers
+ )
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: str,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ completion_response = raw_response.json()
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=completion_response,
+ additional_args={"complete_input_dict": request_data},
+ )
+
+ prompt = request_data["inputs"]
+
+ ## RESPONSE OBJECT
+ try:
+ if isinstance(completion_response, list):
+ completion_response_choices = completion_response[0]
+ else:
+ completion_response_choices = completion_response
+ completion_output = ""
+ if "generation" in completion_response_choices:
+ completion_output += completion_response_choices["generation"]
+ elif "generated_text" in completion_response_choices:
+ completion_output += completion_response_choices["generated_text"]
+
+ # check if the prompt template is part of output, if so - filter it out
+ if completion_output.startswith(prompt) and "<s>" in prompt:
+ completion_output = completion_output.replace(prompt, "", 1)
+
+ model_response.choices[0].message.content = completion_output # type: ignore
+ except Exception:
+ raise SagemakerError(
+ message=f"LiteLLM Error: Unable to parse sagemaker RAW RESPONSE {json.dumps(completion_response)}",
+ status_code=500,
+ )
+
+ ## CALCULATING USAGE - baseten charges on time, not tokens - have some mapping of cost here.
+ prompt_tokens = len(encoding.encode(prompt))
+ completion_tokens = len(
+ encoding.encode(model_response["choices"][0]["message"].get("content", ""))
+ )
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+ def validate_environment(
+ self,
+ headers: Optional[dict],
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ headers = {"Content-Type": "application/json"}
+
+ if headers is not None:
+ headers = {"Content-Type": "application/json", **headers}
+
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/sambanova/chat.py b/.venv/lib/python3.12/site-packages/litellm/llms/sambanova/chat.py
new file mode 100644
index 00000000..abf55d44
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/sambanova/chat.py
@@ -0,0 +1,67 @@
+"""
+Sambanova Chat Completions API
+
+this is OpenAI compatible - no translation needed / occurs
+"""
+
+from typing import Optional
+
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class SambanovaConfig(OpenAIGPTConfig):
+ """
+ Reference: https://docs.sambanova.ai/cloud/api-reference/
+
+ Below are the parameters:
+ """
+
+ max_tokens: Optional[int] = None
+ response_format: Optional[dict] = None
+ seed: Optional[int] = None
+ stream: Optional[bool] = None
+ top_p: Optional[int] = None
+ tool_choice: Optional[str] = None
+ tools: Optional[list] = None
+ user: Optional[str] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ response_format: Optional[dict] = None,
+ seed: Optional[int] = None,
+ stop: Optional[str] = None,
+ stream: Optional[bool] = None,
+ temperature: Optional[float] = None,
+ top_p: Optional[int] = None,
+ tool_choice: Optional[str] = None,
+ tools: Optional[list] = None,
+ user: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ Get the supported OpenAI params for the given model
+
+ """
+
+ return [
+ "max_tokens",
+ "response_format",
+ "seed",
+ "stop",
+ "stream",
+ "temperature",
+ "top_p",
+ "tool_choice",
+ "tools",
+ "user",
+ ]
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/snowflake/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/snowflake/chat/transformation.py
new file mode 100644
index 00000000..d3634e79
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/snowflake/chat/transformation.py
@@ -0,0 +1,167 @@
+"""
+Support for Snowflake REST API
+"""
+
+from typing import TYPE_CHECKING, Any, List, Optional, Tuple
+
+import httpx
+
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse
+
+from ...openai_like.chat.transformation import OpenAIGPTConfig
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class SnowflakeConfig(OpenAIGPTConfig):
+ """
+ source: https://docs.snowflake.com/en/sql-reference/functions/complete-snowflake-cortex
+ """
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return ["temperature", "max_tokens", "top_p", "response_format"]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ """
+ If any supported_openai_params are in non_default_params, add them to optional_params, so they are used in API call
+
+ Args:
+ non_default_params (dict): Non-default parameters to filter.
+ optional_params (dict): Optional parameters to update.
+ model (str): Model name for parameter support check.
+
+ Returns:
+ dict: Updated optional_params with supported non-default parameters.
+ """
+ supported_openai_params = self.get_supported_openai_params(model)
+ for param, value in non_default_params.items():
+ if param in supported_openai_params:
+ optional_params[param] = value
+ return optional_params
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ response_json = raw_response.json()
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=response_json,
+ additional_args={"complete_input_dict": request_data},
+ )
+
+ returned_response = ModelResponse(**response_json)
+
+ returned_response.model = "snowflake/" + (returned_response.model or "")
+
+ if model is not None:
+ returned_response._hidden_params["model"] = model
+ return returned_response
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ """
+ Return headers to use for Snowflake completion request
+
+ Snowflake REST API Ref: https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-llm-rest-api#api-reference
+ Expected headers:
+ {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+ "Authorization": "Bearer " + <JWT>,
+ "X-Snowflake-Authorization-Token-Type": "KEYPAIR_JWT"
+ }
+ """
+
+ if api_key is None:
+ raise ValueError("Missing Snowflake JWT key")
+
+ headers.update(
+ {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+ "Authorization": "Bearer " + api_key,
+ "X-Snowflake-Authorization-Token-Type": "KEYPAIR_JWT",
+ }
+ )
+ return headers
+
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = (
+ api_base
+ or f"""https://{get_secret_str("SNOWFLAKE_ACCOUNT_ID")}.snowflakecomputing.com/api/v2/cortex/inference:complete"""
+ or get_secret_str("SNOWFLAKE_API_BASE")
+ )
+ dynamic_api_key = api_key or get_secret_str("SNOWFLAKE_JWT")
+ return api_base, dynamic_api_key
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ """
+ If api_base is not provided, use the default DeepSeek /chat/completions endpoint.
+ """
+ if not api_base:
+ api_base = f"""https://{get_secret_str("SNOWFLAKE_ACCOUNT_ID")}.snowflakecomputing.com/api/v2/cortex/inference:complete"""
+
+ return api_base
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ stream: bool = optional_params.pop("stream", None) or False
+ extra_body = optional_params.pop("extra_body", {})
+ return {
+ "model": model,
+ "messages": messages,
+ "stream": stream,
+ **optional_params,
+ **extra_body,
+ }
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/snowflake/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/snowflake/common_utils.py
new file mode 100644
index 00000000..40c8270f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/snowflake/common_utils.py
@@ -0,0 +1,34 @@
+from typing import Optional
+
+
+class SnowflakeBase:
+ def validate_environment(
+ self,
+ headers: dict,
+ JWT: Optional[str] = None,
+ ) -> dict:
+ """
+ Return headers to use for Snowflake completion request
+
+ Snowflake REST API Ref: https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-llm-rest-api#api-reference
+ Expected headers:
+ {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+ "Authorization": "Bearer " + <JWT>,
+ "X-Snowflake-Authorization-Token-Type": "KEYPAIR_JWT"
+ }
+ """
+
+ if JWT is None:
+ raise ValueError("Missing Snowflake JWT key")
+
+ headers.update(
+ {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+ "Authorization": "Bearer " + JWT,
+ "X-Snowflake-Authorization-Token-Type": "KEYPAIR_JWT",
+ }
+ )
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/chat.py b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/chat.py
new file mode 100644
index 00000000..06d33f69
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/chat.py
@@ -0,0 +1,59 @@
+"""
+Support for OpenAI's `/v1/chat/completions` endpoint.
+
+Calls done in OpenAI/openai.py as TogetherAI is openai-compatible.
+
+Docs: https://docs.together.ai/reference/completions-1
+"""
+
+from typing import Optional
+
+from litellm import get_model_info, verbose_logger
+
+from ..openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class TogetherAIConfig(OpenAIGPTConfig):
+ def get_supported_openai_params(self, model: str) -> list:
+ """
+ Only some together models support response_format / tool calling
+
+ Docs: https://docs.together.ai/docs/json-mode
+ """
+ supports_function_calling: Optional[bool] = None
+ try:
+ model_info = get_model_info(model, custom_llm_provider="together_ai")
+ supports_function_calling = model_info.get(
+ "supports_function_calling", False
+ )
+ except Exception as e:
+ verbose_logger.debug(f"Error getting supported openai params: {e}")
+ pass
+
+ optional_params = super().get_supported_openai_params(model)
+ if supports_function_calling is not True:
+ verbose_logger.debug(
+ "Only some together models support function calling/response_format. Docs - https://docs.together.ai/docs/function-calling"
+ )
+ optional_params.remove("tools")
+ optional_params.remove("tool_choice")
+ optional_params.remove("function_call")
+ optional_params.remove("response_format")
+ return optional_params
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ mapped_openai_params = super().map_openai_params(
+ non_default_params, optional_params, model, drop_params
+ )
+
+ if "response_format" in mapped_openai_params and mapped_openai_params[
+ "response_format"
+ ] == {"type": "text"}:
+ mapped_openai_params.pop("response_format")
+ return mapped_openai_params
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/completion/handler.py
new file mode 100644
index 00000000..180e3484
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/completion/handler.py
@@ -0,0 +1,3 @@
+"""
+Uses openai's `/completion` handler.py
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/completion/transformation.py
new file mode 100644
index 00000000..8b9dc750
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/completion/transformation.py
@@ -0,0 +1,61 @@
+"""
+Translates calls from OpenAI's `/v1/completions` endpoint to TogetherAI's `/v1/completions` endpoint.
+
+Calls done in OpenAI/openai.py as TogetherAI is openai-compatible.
+
+Docs: https://docs.together.ai/reference/completions-1
+"""
+
+from typing import List, Union, cast
+
+from litellm.llms.openai.completion.utils import is_tokens_or_list_of_tokens
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ AllPromptValues,
+ OpenAITextCompletionUserMessage,
+)
+
+from ...openai.completion.transformation import OpenAITextCompletionConfig
+from ...openai.completion.utils import _transform_prompt
+
+
+class TogetherAITextCompletionConfig(OpenAITextCompletionConfig):
+ def _transform_prompt(
+ self,
+ messages: Union[List[AllMessageValues], List[OpenAITextCompletionUserMessage]],
+ ) -> AllPromptValues:
+ """
+ TogetherAI expects a string prompt.
+ """
+ initial_prompt: AllPromptValues = _transform_prompt(messages)
+ ## TOGETHER AI SPECIFIC VALIDATION ##
+ if isinstance(initial_prompt, list) and is_tokens_or_list_of_tokens(
+ value=initial_prompt
+ ):
+ raise ValueError("TogetherAI does not support integers as input")
+ if (
+ isinstance(initial_prompt, list)
+ and len(initial_prompt) == 1
+ and isinstance(initial_prompt[0], str)
+ ):
+ together_prompt = initial_prompt[0]
+ elif isinstance(initial_prompt, list):
+ raise ValueError("TogetherAI does not support multiple prompts.")
+ else:
+ together_prompt = cast(str, initial_prompt)
+
+ return together_prompt
+
+ def transform_text_completion_request(
+ self,
+ model: str,
+ messages: Union[List[AllMessageValues], List[OpenAITextCompletionUserMessage]],
+ optional_params: dict,
+ headers: dict,
+ ) -> dict:
+ prompt = self._transform_prompt(messages)
+ return {
+ "model": model,
+ "prompt": prompt,
+ **optional_params,
+ }
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/cost_calculator.py b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/cost_calculator.py
new file mode 100644
index 00000000..d3b0db8b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/cost_calculator.py
@@ -0,0 +1,79 @@
+"""
+Handles calculating cost for together ai models
+"""
+
+import re
+
+from litellm.types.utils import CallTypes
+
+
+# Extract the number of billion parameters from the model name
+# only used for together_computer LLMs
+def get_model_params_and_category(model_name, call_type: CallTypes) -> str:
+ """
+ Helper function for calculating together ai pricing.
+
+ Returns
+ - str - model pricing category if mapped else received model name
+ """
+ if call_type == CallTypes.embedding or call_type == CallTypes.aembedding:
+ return get_model_params_and_category_embeddings(model_name=model_name)
+ model_name = model_name.lower()
+ re_params_match = re.search(
+ r"(\d+b)", model_name
+ ) # catch all decimals like 3b, 70b, etc
+ category = None
+ if re_params_match is not None:
+ params_match = str(re_params_match.group(1))
+ params_match = params_match.replace("b", "")
+ if params_match is not None:
+ params_billion = float(params_match)
+ else:
+ return model_name
+ # Determine the category based on the number of parameters
+ if params_billion <= 4.0:
+ category = "together-ai-up-to-4b"
+ elif params_billion <= 8.0:
+ category = "together-ai-4.1b-8b"
+ elif params_billion <= 21.0:
+ category = "together-ai-8.1b-21b"
+ elif params_billion <= 41.0:
+ category = "together-ai-21.1b-41b"
+ elif params_billion <= 80.0:
+ category = "together-ai-41.1b-80b"
+ elif params_billion <= 110.0:
+ category = "together-ai-81.1b-110b"
+ if category is not None:
+ return category
+
+ return model_name
+
+
+def get_model_params_and_category_embeddings(model_name) -> str:
+ """
+ Helper function for calculating together ai embedding pricing.
+
+ Returns
+ - str - model pricing category if mapped else received model name
+ """
+ model_name = model_name.lower()
+ re_params_match = re.search(
+ r"(\d+m)", model_name
+ ) # catch all decimals like 100m, 200m, etc.
+ category = None
+ if re_params_match is not None:
+ params_match = str(re_params_match.group(1))
+ params_match = params_match.replace("m", "")
+ if params_match is not None:
+ params_million = float(params_match)
+ else:
+ return model_name
+ # Determine the category based on the number of parameters
+ if params_million <= 150:
+ category = "together-ai-embedding-up-to-150m"
+ elif params_million <= 350:
+ category = "together-ai-embedding-151m-to-350m"
+ if category is not None:
+ return category
+
+ return model_name
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/embed.py b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/embed.py
new file mode 100644
index 00000000..577df025
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/embed.py
@@ -0,0 +1,7 @@
+"""
+Support for OpenAI's `/v1/embeddings` endpoint.
+
+Calls done in OpenAI/openai.py as TogetherAI is openai-compatible.
+
+Docs: https://docs.together.ai/reference/completions-1
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/rerank/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/rerank/handler.py
new file mode 100644
index 00000000..c5b02731
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/rerank/handler.py
@@ -0,0 +1,92 @@
+"""
+Re rank api
+
+LiteLLM supports the re rank API format, no paramter transformation occurs
+"""
+
+from typing import Any, Dict, List, Optional, Union
+
+import litellm
+from litellm.llms.base import BaseLLM
+from litellm.llms.custom_httpx.http_handler import (
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.llms.together_ai.rerank.transformation import TogetherAIRerankConfig
+from litellm.types.rerank import RerankRequest, RerankResponse
+
+
+class TogetherAIRerank(BaseLLM):
+ def rerank(
+ self,
+ model: str,
+ api_key: str,
+ query: str,
+ documents: List[Union[str, Dict[str, Any]]],
+ top_n: Optional[int] = None,
+ rank_fields: Optional[List[str]] = None,
+ return_documents: Optional[bool] = True,
+ max_chunks_per_doc: Optional[int] = None,
+ _is_async: Optional[bool] = False,
+ ) -> RerankResponse:
+ client = _get_httpx_client()
+
+ request_data = RerankRequest(
+ model=model,
+ query=query,
+ top_n=top_n,
+ documents=documents,
+ rank_fields=rank_fields,
+ return_documents=return_documents,
+ )
+
+ # exclude None values from request_data
+ request_data_dict = request_data.dict(exclude_none=True)
+ if max_chunks_per_doc is not None:
+ raise ValueError("TogetherAI does not support max_chunks_per_doc")
+
+ if _is_async:
+ return self.async_rerank(request_data_dict, api_key) # type: ignore # Call async method
+
+ response = client.post(
+ "https://api.together.xyz/v1/rerank",
+ headers={
+ "accept": "application/json",
+ "content-type": "application/json",
+ "authorization": f"Bearer {api_key}",
+ },
+ json=request_data_dict,
+ )
+
+ if response.status_code != 200:
+ raise Exception(response.text)
+
+ _json_response = response.json()
+
+ return TogetherAIRerankConfig()._transform_response(_json_response)
+
+ async def async_rerank( # New async method
+ self,
+ request_data_dict: Dict[str, Any],
+ api_key: str,
+ ) -> RerankResponse:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.TOGETHER_AI
+ ) # Use async client
+
+ response = await client.post(
+ "https://api.together.xyz/v1/rerank",
+ headers={
+ "accept": "application/json",
+ "content-type": "application/json",
+ "authorization": f"Bearer {api_key}",
+ },
+ json=request_data_dict,
+ )
+
+ if response.status_code != 200:
+ raise Exception(response.text)
+
+ _json_response = response.json()
+
+ return TogetherAIRerankConfig()._transform_response(_json_response)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/rerank/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/rerank/transformation.py
new file mode 100644
index 00000000..47143769
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/together_ai/rerank/transformation.py
@@ -0,0 +1,63 @@
+"""
+Transformation logic from Cohere's /v1/rerank format to Together AI's `/v1/rerank` format.
+
+Why separate file? Make it easy to see how transformation works
+"""
+
+import uuid
+from typing import List, Optional
+
+from litellm.types.rerank import (
+ RerankBilledUnits,
+ RerankResponse,
+ RerankResponseDocument,
+ RerankResponseMeta,
+ RerankResponseResult,
+ RerankTokens,
+)
+
+
+class TogetherAIRerankConfig:
+ def _transform_response(self, response: dict) -> RerankResponse:
+
+ _billed_units = RerankBilledUnits(**response.get("usage", {}))
+ _tokens = RerankTokens(**response.get("usage", {}))
+ rerank_meta = RerankResponseMeta(billed_units=_billed_units, tokens=_tokens)
+
+ _results: Optional[List[dict]] = response.get("results")
+
+ if _results is None:
+ raise ValueError(f"No results found in the response={response}")
+
+ rerank_results: List[RerankResponseResult] = []
+
+ for result in _results:
+ # Validate required fields exist
+ if not all(key in result for key in ["index", "relevance_score"]):
+ raise ValueError(f"Missing required fields in the result={result}")
+
+ # Get document data if it exists
+ document_data = result.get("document", {})
+ document = (
+ RerankResponseDocument(text=str(document_data.get("text", "")))
+ if document_data
+ else None
+ )
+
+ # Create typed result
+ rerank_result = RerankResponseResult(
+ index=int(result["index"]),
+ relevance_score=float(result["relevance_score"]),
+ )
+
+ # Only add document if it exists
+ if document:
+ rerank_result["document"] = document
+
+ rerank_results.append(rerank_result)
+
+ return RerankResponse(
+ id=response.get("id") or str(uuid.uuid4()),
+ results=rerank_results,
+ meta=rerank_meta,
+ ) # Return response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/topaz/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/topaz/common_utils.py
new file mode 100644
index 00000000..4ef2315d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/topaz/common_utils.py
@@ -0,0 +1,35 @@
+from typing import List, Optional
+
+from litellm.secret_managers.main import get_secret_str
+
+from ..base_llm.base_utils import BaseLLMModelInfo
+from ..base_llm.chat.transformation import BaseLLMException
+
+
+class TopazException(BaseLLMException):
+ pass
+
+
+class TopazModelInfo(BaseLLMModelInfo):
+ def get_models(self) -> List[str]:
+ return [
+ "topaz/Standard V2",
+ "topaz/Low Resolution V2",
+ "topaz/CGI",
+ "topaz/High Resolution V2",
+ "topaz/Text Refine",
+ ]
+
+ @staticmethod
+ def get_api_key(api_key: Optional[str] = None) -> Optional[str]:
+ return api_key or get_secret_str("TOPAZ_API_KEY")
+
+ @staticmethod
+ def get_api_base(api_base: Optional[str] = None) -> Optional[str]:
+ return (
+ api_base or get_secret_str("TOPAZ_API_BASE") or "https://api.topazlabs.com"
+ )
+
+ @staticmethod
+ def get_base_model(model: str) -> str:
+ return model
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/topaz/image_variations/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/topaz/image_variations/transformation.py
new file mode 100644
index 00000000..8b95deed
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/topaz/image_variations/transformation.py
@@ -0,0 +1,204 @@
+import base64
+import time
+from io import BytesIO
+from typing import Any, List, Mapping, Optional, Tuple, Union
+
+from aiohttp import ClientResponse
+from httpx import Headers, Response
+
+from litellm.llms.base_llm.chat.transformation import (
+ BaseLLMException,
+ LiteLLMLoggingObj,
+)
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ OpenAIImageVariationOptionalParams,
+)
+from litellm.types.utils import (
+ FileTypes,
+ HttpHandlerRequestFields,
+ ImageObject,
+ ImageResponse,
+)
+
+from ...base_llm.image_variations.transformation import BaseImageVariationConfig
+from ..common_utils import TopazException
+
+
+class TopazImageVariationConfig(BaseImageVariationConfig):
+ def get_supported_openai_params(
+ self, model: str
+ ) -> List[OpenAIImageVariationOptionalParams]:
+ return ["response_format", "size"]
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ if api_key is None:
+ raise ValueError(
+ "API key is required for Topaz image variations. Set via `TOPAZ_API_KEY` or `api_key=..`"
+ )
+ return {
+ # "Content-Type": "multipart/form-data",
+ "Accept": "image/jpeg",
+ "X-API-Key": api_key,
+ }
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ api_base = api_base or "https://api.topazlabs.com"
+ return f"{api_base}/image/v1/enhance"
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ for k, v in non_default_params.items():
+ if k == "response_format":
+ optional_params["output_format"] = v
+ elif k == "size":
+ split_v = v.split("x")
+ assert len(split_v) == 2, "size must be in the format of widthxheight"
+ optional_params["output_width"] = split_v[0]
+ optional_params["output_height"] = split_v[1]
+ return optional_params
+
+ def prepare_file_tuple(
+ self,
+ file_data: FileTypes,
+ ) -> Tuple[str, Optional[FileTypes], str, Mapping[str, str]]:
+ """
+ Convert various file input formats to a consistent tuple format for HTTPX
+ Returns: (filename, file_content, content_type, headers)
+ """
+ # Default values
+ filename = "image.png"
+ content: Optional[FileTypes] = None
+ content_type = "image/png"
+ headers: Mapping[str, str] = {}
+
+ if isinstance(file_data, (bytes, BytesIO)):
+ # Case 1: Just file content
+ content = file_data
+ elif isinstance(file_data, tuple):
+ if len(file_data) == 2:
+ # Case 2: (filename, content)
+ filename = file_data[0] or filename
+ content = file_data[1]
+ elif len(file_data) == 3:
+ # Case 3: (filename, content, content_type)
+ filename = file_data[0] or filename
+ content = file_data[1]
+ content_type = file_data[2] or content_type
+ elif len(file_data) == 4:
+ # Case 4: (filename, content, content_type, headers)
+ filename = file_data[0] or filename
+ content = file_data[1]
+ content_type = file_data[2] or content_type
+ headers = file_data[3]
+
+ return (filename, content, content_type, headers)
+
+ def transform_request_image_variation(
+ self,
+ model: Optional[str],
+ image: FileTypes,
+ optional_params: dict,
+ headers: dict,
+ ) -> HttpHandlerRequestFields:
+
+ request_params = HttpHandlerRequestFields(
+ files={"image": self.prepare_file_tuple(image)},
+ data=optional_params,
+ )
+
+ return request_params
+
+ def _common_transform_response_image_variation(
+ self,
+ image_content: bytes,
+ response_ms: float,
+ ) -> ImageResponse:
+
+ # Convert to base64
+ base64_image = base64.b64encode(image_content).decode("utf-8")
+
+ return ImageResponse(
+ created=int(time.time()),
+ data=[
+ ImageObject(
+ b64_json=base64_image,
+ url=None,
+ revised_prompt=None,
+ )
+ ],
+ response_ms=response_ms,
+ )
+
+ async def async_transform_response_image_variation(
+ self,
+ model: Optional[str],
+ raw_response: ClientResponse,
+ model_response: ImageResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ image: FileTypes,
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ ) -> ImageResponse:
+ image_content = await raw_response.read()
+
+ response_ms = logging_obj.get_response_ms()
+
+ return self._common_transform_response_image_variation(
+ image_content, response_ms
+ )
+
+ def transform_response_image_variation(
+ self,
+ model: Optional[str],
+ raw_response: Response,
+ model_response: ImageResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ image: FileTypes,
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ ) -> ImageResponse:
+ image_content = raw_response.content
+
+ response_ms = (
+ raw_response.elapsed.total_seconds() * 1000
+ ) # Convert to milliseconds
+
+ return self._common_transform_response_image_variation(
+ image_content, response_ms
+ )
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, Headers]
+ ) -> BaseLLMException:
+ return TopazException(
+ status_code=status_code,
+ message=error_message,
+ headers=headers,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/triton/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/triton/common_utils.py
new file mode 100644
index 00000000..d5372eee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/triton/common_utils.py
@@ -0,0 +1,15 @@
+from typing import Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+
+
+class TritonError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[dict, httpx.Headers]] = None,
+ ) -> None:
+ super().__init__(status_code=status_code, message=message, headers=headers)
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/triton/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/triton/completion/handler.py
new file mode 100644
index 00000000..cd1b7a62
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/triton/completion/handler.py
@@ -0,0 +1,5 @@
+"""
+Triton Completion - uses `llm_http_handler.py` to make httpx requests
+
+Request/Response transformation is handled in `transformation.py`
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/triton/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/triton/completion/transformation.py
new file mode 100644
index 00000000..56151f89
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/triton/completion/transformation.py
@@ -0,0 +1,343 @@
+"""
+Translates from OpenAI's `/v1/chat/completions` endpoint to Triton's `/generate` endpoint.
+"""
+
+import json
+from typing import Any, AsyncIterator, Dict, Iterator, List, Literal, Optional, Union
+
+from httpx import Headers, Response
+
+from litellm.litellm_core_utils.prompt_templates.factory import prompt_factory
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.llms.base_llm.chat.transformation import (
+ BaseConfig,
+ BaseLLMException,
+ LiteLLMLoggingObj,
+)
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import (
+ ChatCompletionToolCallChunk,
+ ChatCompletionUsageBlock,
+ Choices,
+ GenericStreamingChunk,
+ Message,
+ ModelResponse,
+)
+
+from ..common_utils import TritonError
+
+
+class TritonConfig(BaseConfig):
+ """
+ Base class for Triton configurations.
+
+ Handles routing between /infer and /generate triton completion llms
+ """
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[Dict, Headers]
+ ) -> BaseLLMException:
+ return TritonError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ def validate_environment(
+ self,
+ headers: Dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> Dict:
+ return {"Content-Type": "application/json"}
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return ["max_tokens", "max_completion_tokens"]
+
+ def map_openai_params(
+ self,
+ non_default_params: Dict,
+ optional_params: Dict,
+ model: str,
+ drop_params: bool,
+ ) -> Dict:
+ for param, value in non_default_params.items():
+ if param == "max_tokens" or param == "max_completion_tokens":
+ optional_params[param] = value
+ return optional_params
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ if api_base is None:
+ raise ValueError("api_base is required")
+ llm_type = self._get_triton_llm_type(api_base)
+ if llm_type == "generate" and stream:
+ return api_base + "_stream"
+ return api_base
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: Dict,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: Dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ api_base = litellm_params.get("api_base", "")
+ llm_type = self._get_triton_llm_type(api_base)
+ if llm_type == "generate":
+ return TritonGenerateConfig().transform_response(
+ model=model,
+ raw_response=raw_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data=request_data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ api_key=api_key,
+ json_mode=json_mode,
+ )
+ elif llm_type == "infer":
+ return TritonInferConfig().transform_response(
+ model=model,
+ raw_response=raw_response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ request_data=request_data,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ api_key=api_key,
+ json_mode=json_mode,
+ )
+ return model_response
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ api_base = litellm_params.get("api_base", "")
+ llm_type = self._get_triton_llm_type(api_base)
+ if llm_type == "generate":
+ return TritonGenerateConfig().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ elif llm_type == "infer":
+ return TritonInferConfig().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+ return {}
+
+ def _get_triton_llm_type(self, api_base: str) -> Literal["generate", "infer"]:
+ if api_base.endswith("/generate"):
+ return "generate"
+ elif api_base.endswith("/infer"):
+ return "infer"
+ else:
+ raise ValueError(f"Invalid Triton API base: {api_base}")
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ) -> Any:
+ return TritonResponseIterator(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+
+class TritonGenerateConfig(TritonConfig):
+ """
+ Transformations for triton /generate endpoint (This is a trtllm model)
+ """
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ inference_params = optional_params.copy()
+ stream = inference_params.pop("stream", False)
+ data_for_triton: Dict[str, Any] = {
+ "text_input": prompt_factory(model=model, messages=messages),
+ "parameters": {
+ "max_tokens": int(optional_params.get("max_tokens", 2000)),
+ "bad_words": [""],
+ "stop_words": [""],
+ },
+ "stream": bool(stream),
+ }
+ data_for_triton["parameters"].update(inference_params)
+ return data_for_triton
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: Dict,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: Dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ try:
+ raw_response_json = raw_response.json()
+ except Exception:
+ raise TritonError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+ model_response.choices = [
+ Choices(index=0, message=Message(content=raw_response_json["text_output"]))
+ ]
+
+ return model_response
+
+
+class TritonInferConfig(TritonConfig):
+ """
+ Transformations for triton /infer endpoint (his is an infer model with a custom model on triton)
+ """
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+
+ text_input = messages[0].get("content", "")
+ data_for_triton = {
+ "inputs": [
+ {
+ "name": "text_input",
+ "shape": [1],
+ "datatype": "BYTES",
+ "data": [text_input],
+ }
+ ]
+ }
+
+ for k, v in optional_params.items():
+ if not (k == "stream" or k == "max_retries"):
+ datatype = "INT32" if isinstance(v, int) else "BYTES"
+ datatype = "FP32" if isinstance(v, float) else datatype
+ data_for_triton["inputs"].append(
+ {"name": k, "shape": [1], "datatype": datatype, "data": [v]}
+ )
+
+ if "max_tokens" not in optional_params:
+ data_for_triton["inputs"].append(
+ {
+ "name": "max_tokens",
+ "shape": [1],
+ "datatype": "INT32",
+ "data": [20],
+ }
+ )
+ return data_for_triton
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: Dict,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: Dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ try:
+ raw_response_json = raw_response.json()
+ except Exception:
+ raise TritonError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+
+ _triton_response_data = raw_response_json["outputs"][0]["data"]
+ triton_response_data: Optional[str] = None
+ if isinstance(_triton_response_data, list):
+ triton_response_data = "".join(_triton_response_data)
+ else:
+ triton_response_data = _triton_response_data
+
+ model_response.choices = [
+ Choices(
+ index=0,
+ message=Message(content=triton_response_data),
+ )
+ ]
+
+ return model_response
+
+
+class TritonResponseIterator(BaseModelResponseIterator):
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ is_finished = False
+ finish_reason = ""
+ usage: Optional[ChatCompletionUsageBlock] = None
+ provider_specific_fields = None
+ index = int(chunk.get("index", 0))
+
+ # set values
+ text = chunk.get("text_output", "")
+ finish_reason = chunk.get("stop_reason", "")
+ is_finished = chunk.get("is_finished", False)
+
+ return GenericStreamingChunk(
+ text=text,
+ tool_use=tool_use,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=usage,
+ index=index,
+ provider_specific_fields=provider_specific_fields,
+ )
+ except json.JSONDecodeError:
+ raise ValueError(f"Failed to decode JSON from chunk: {chunk}")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/triton/embedding/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/triton/embedding/transformation.py
new file mode 100644
index 00000000..4744ec08
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/triton/embedding/transformation.py
@@ -0,0 +1,123 @@
+from typing import List, Optional, Union
+
+import httpx
+
+from litellm.llms.base_llm.chat.transformation import AllMessageValues, BaseLLMException
+from litellm.llms.base_llm.embedding.transformation import (
+ BaseEmbeddingConfig,
+ LiteLLMLoggingObj,
+)
+from litellm.types.llms.openai import AllEmbeddingInputValues
+from litellm.types.utils import EmbeddingResponse
+
+from ..common_utils import TritonError
+
+
+class TritonEmbeddingConfig(BaseEmbeddingConfig):
+ """
+ Transformations for triton /embeddings endpoint (This is a trtllm model)
+ """
+
+ def __init__(self) -> None:
+ pass
+
+ def get_supported_openai_params(self, model: str) -> list:
+ return []
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ """
+ Map OpenAI params to Triton Embedding params
+ """
+ return optional_params
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ return {}
+
+ def transform_embedding_request(
+ self,
+ model: str,
+ input: AllEmbeddingInputValues,
+ optional_params: dict,
+ headers: dict,
+ ) -> dict:
+ return {
+ "inputs": [
+ {
+ "name": "input_text",
+ "shape": [len(input)],
+ "datatype": "BYTES",
+ "data": input,
+ }
+ ]
+ }
+
+ def transform_embedding_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: EmbeddingResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ request_data: dict = {},
+ optional_params: dict = {},
+ litellm_params: dict = {},
+ ) -> EmbeddingResponse:
+ try:
+ raw_response_json = raw_response.json()
+ except Exception:
+ raise TritonError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+
+ _embedding_output = []
+
+ _outputs = raw_response_json["outputs"]
+ for output in _outputs:
+ _shape = output["shape"]
+ _data = output["data"]
+ _split_output_data = self.split_embedding_by_shape(_data, _shape)
+
+ for idx, embedding in enumerate(_split_output_data):
+ _embedding_output.append(
+ {
+ "object": "embedding",
+ "index": idx,
+ "embedding": embedding,
+ }
+ )
+
+ model_response.model = raw_response_json.get("model_name", "None")
+ model_response.data = _embedding_output
+ return model_response
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return TritonError(
+ message=error_message, status_code=status_code, headers=headers
+ )
+
+ @staticmethod
+ def split_embedding_by_shape(
+ data: List[float], shape: List[int]
+ ) -> List[List[float]]:
+ if len(shape) != 2:
+ raise ValueError("Shape must be of length 2.")
+ embedding_size = shape[1]
+ return [
+ data[i * embedding_size : (i + 1) * embedding_size] for i in range(shape[0])
+ ]
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/Readme.md b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/Readme.md
new file mode 100644
index 00000000..2aa7d7b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/Readme.md
@@ -0,0 +1,6 @@
+# Vertex AI Batch Prediction Jobs
+
+Implementation to call VertexAI Batch endpoints in OpenAI Batch API spec
+
+Vertex Docs: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction-gemini
+
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/handler.py
new file mode 100644
index 00000000..b82268be
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/handler.py
@@ -0,0 +1,218 @@
+import json
+from typing import Any, Coroutine, Dict, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.llms.custom_httpx.http_handler import (
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import VertexLLM
+from litellm.types.llms.openai import CreateBatchRequest
+from litellm.types.llms.vertex_ai import (
+ VERTEX_CREDENTIALS_TYPES,
+ VertexAIBatchPredictionJob,
+)
+from litellm.types.utils import LiteLLMBatch
+
+from .transformation import VertexAIBatchTransformation
+
+
+class VertexAIBatchPrediction(VertexLLM):
+ def __init__(self, gcs_bucket_name: str, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.gcs_bucket_name = gcs_bucket_name
+
+ def create_batch(
+ self,
+ _is_async: bool,
+ create_batch_data: CreateBatchRequest,
+ api_base: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ ) -> Union[LiteLLMBatch, Coroutine[Any, Any, LiteLLMBatch]]:
+
+ sync_handler = _get_httpx_client()
+
+ access_token, project_id = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai",
+ )
+
+ default_api_base = self.create_vertex_url(
+ vertex_location=vertex_location or "us-central1",
+ vertex_project=vertex_project or project_id,
+ )
+
+ if len(default_api_base.split(":")) > 1:
+ endpoint = default_api_base.split(":")[-1]
+ else:
+ endpoint = ""
+
+ _, api_base = self._check_custom_proxy(
+ api_base=api_base,
+ custom_llm_provider="vertex_ai",
+ gemini_api_key=None,
+ endpoint=endpoint,
+ stream=None,
+ auth_header=None,
+ url=default_api_base,
+ )
+
+ headers = {
+ "Content-Type": "application/json; charset=utf-8",
+ "Authorization": f"Bearer {access_token}",
+ }
+
+ vertex_batch_request: VertexAIBatchPredictionJob = (
+ VertexAIBatchTransformation.transform_openai_batch_request_to_vertex_ai_batch_request(
+ request=create_batch_data
+ )
+ )
+
+ if _is_async is True:
+ return self._async_create_batch(
+ vertex_batch_request=vertex_batch_request,
+ api_base=api_base,
+ headers=headers,
+ )
+
+ response = sync_handler.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(vertex_batch_request),
+ )
+
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ _json_response = response.json()
+ vertex_batch_response = VertexAIBatchTransformation.transform_vertex_ai_batch_response_to_openai_batch_response(
+ response=_json_response
+ )
+ return vertex_batch_response
+
+ async def _async_create_batch(
+ self,
+ vertex_batch_request: VertexAIBatchPredictionJob,
+ api_base: str,
+ headers: Dict[str, str],
+ ) -> LiteLLMBatch:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.VERTEX_AI,
+ )
+ response = await client.post(
+ url=api_base,
+ headers=headers,
+ data=json.dumps(vertex_batch_request),
+ )
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ _json_response = response.json()
+ vertex_batch_response = VertexAIBatchTransformation.transform_vertex_ai_batch_response_to_openai_batch_response(
+ response=_json_response
+ )
+ return vertex_batch_response
+
+ def create_vertex_url(
+ self,
+ vertex_location: str,
+ vertex_project: str,
+ ) -> str:
+ """Return the base url for the vertex garden models"""
+ # POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/batchPredictionJobs"
+
+ def retrieve_batch(
+ self,
+ _is_async: bool,
+ batch_id: str,
+ api_base: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ ) -> Union[LiteLLMBatch, Coroutine[Any, Any, LiteLLMBatch]]:
+ sync_handler = _get_httpx_client()
+
+ access_token, project_id = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai",
+ )
+
+ default_api_base = self.create_vertex_url(
+ vertex_location=vertex_location or "us-central1",
+ vertex_project=vertex_project or project_id,
+ )
+
+ # Append batch_id to the URL
+ default_api_base = f"{default_api_base}/{batch_id}"
+
+ if len(default_api_base.split(":")) > 1:
+ endpoint = default_api_base.split(":")[-1]
+ else:
+ endpoint = ""
+
+ _, api_base = self._check_custom_proxy(
+ api_base=api_base,
+ custom_llm_provider="vertex_ai",
+ gemini_api_key=None,
+ endpoint=endpoint,
+ stream=None,
+ auth_header=None,
+ url=default_api_base,
+ )
+
+ headers = {
+ "Content-Type": "application/json; charset=utf-8",
+ "Authorization": f"Bearer {access_token}",
+ }
+
+ if _is_async is True:
+ return self._async_retrieve_batch(
+ api_base=api_base,
+ headers=headers,
+ )
+
+ response = sync_handler.get(
+ url=api_base,
+ headers=headers,
+ )
+
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ _json_response = response.json()
+ vertex_batch_response = VertexAIBatchTransformation.transform_vertex_ai_batch_response_to_openai_batch_response(
+ response=_json_response
+ )
+ return vertex_batch_response
+
+ async def _async_retrieve_batch(
+ self,
+ api_base: str,
+ headers: Dict[str, str],
+ ) -> LiteLLMBatch:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.VERTEX_AI,
+ )
+ response = await client.get(
+ url=api_base,
+ headers=headers,
+ )
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ _json_response = response.json()
+ vertex_batch_response = VertexAIBatchTransformation.transform_vertex_ai_batch_response_to_openai_batch_response(
+ response=_json_response
+ )
+ return vertex_batch_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/transformation.py
new file mode 100644
index 00000000..a97f312d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/batches/transformation.py
@@ -0,0 +1,193 @@
+import uuid
+from typing import Dict
+
+from litellm.llms.vertex_ai.common_utils import (
+ _convert_vertex_datetime_to_openai_datetime,
+)
+from litellm.types.llms.openai import BatchJobStatus, CreateBatchRequest
+from litellm.types.llms.vertex_ai import *
+from litellm.types.utils import LiteLLMBatch
+
+
+class VertexAIBatchTransformation:
+ """
+ Transforms OpenAI Batch requests to Vertex AI Batch requests
+
+ API Ref: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/batch-prediction-gemini
+ """
+
+ @classmethod
+ def transform_openai_batch_request_to_vertex_ai_batch_request(
+ cls,
+ request: CreateBatchRequest,
+ ) -> VertexAIBatchPredictionJob:
+ """
+ Transforms OpenAI Batch requests to Vertex AI Batch requests
+ """
+ request_display_name = f"litellm-vertex-batch-{uuid.uuid4()}"
+ input_file_id = request.get("input_file_id")
+ if input_file_id is None:
+ raise ValueError("input_file_id is required, but not provided")
+ input_config: InputConfig = InputConfig(
+ gcsSource=GcsSource(uris=input_file_id), instancesFormat="jsonl"
+ )
+ model: str = cls._get_model_from_gcs_file(input_file_id)
+ output_config: OutputConfig = OutputConfig(
+ predictionsFormat="jsonl",
+ gcsDestination=GcsDestination(
+ outputUriPrefix=cls._get_gcs_uri_prefix_from_file(input_file_id)
+ ),
+ )
+ return VertexAIBatchPredictionJob(
+ inputConfig=input_config,
+ outputConfig=output_config,
+ model=model,
+ displayName=request_display_name,
+ )
+
+ @classmethod
+ def transform_vertex_ai_batch_response_to_openai_batch_response(
+ cls, response: VertexBatchPredictionResponse
+ ) -> LiteLLMBatch:
+ return LiteLLMBatch(
+ id=cls._get_batch_id_from_vertex_ai_batch_response(response),
+ completion_window="24hrs",
+ created_at=_convert_vertex_datetime_to_openai_datetime(
+ vertex_datetime=response.get("createTime", "")
+ ),
+ endpoint="",
+ input_file_id=cls._get_input_file_id_from_vertex_ai_batch_response(
+ response
+ ),
+ object="batch",
+ status=cls._get_batch_job_status_from_vertex_ai_batch_response(response),
+ error_file_id=None, # Vertex AI doesn't seem to have a direct equivalent
+ output_file_id=cls._get_output_file_id_from_vertex_ai_batch_response(
+ response
+ ),
+ )
+
+ @classmethod
+ def _get_batch_id_from_vertex_ai_batch_response(
+ cls, response: VertexBatchPredictionResponse
+ ) -> str:
+ """
+ Gets the batch id from the Vertex AI Batch response safely
+
+ vertex response: `projects/510528649030/locations/us-central1/batchPredictionJobs/3814889423749775360`
+ returns: `3814889423749775360`
+ """
+ _name = response.get("name", "")
+ if not _name:
+ return ""
+
+ # Split by '/' and get the last part if it exists
+ parts = _name.split("/")
+ return parts[-1] if parts else _name
+
+ @classmethod
+ def _get_input_file_id_from_vertex_ai_batch_response(
+ cls, response: VertexBatchPredictionResponse
+ ) -> str:
+ """
+ Gets the input file id from the Vertex AI Batch response
+ """
+ input_file_id: str = ""
+ input_config = response.get("inputConfig")
+ if input_config is None:
+ return input_file_id
+
+ gcs_source = input_config.get("gcsSource")
+ if gcs_source is None:
+ return input_file_id
+
+ uris = gcs_source.get("uris", "")
+ if len(uris) == 0:
+ return input_file_id
+
+ return uris[0]
+
+ @classmethod
+ def _get_output_file_id_from_vertex_ai_batch_response(
+ cls, response: VertexBatchPredictionResponse
+ ) -> str:
+ """
+ Gets the output file id from the Vertex AI Batch response
+ """
+ output_file_id: str = ""
+ output_config = response.get("outputConfig")
+ if output_config is None:
+ return output_file_id
+
+ gcs_destination = output_config.get("gcsDestination")
+ if gcs_destination is None:
+ return output_file_id
+
+ output_uri_prefix = gcs_destination.get("outputUriPrefix", "")
+ return output_uri_prefix
+
+ @classmethod
+ def _get_batch_job_status_from_vertex_ai_batch_response(
+ cls, response: VertexBatchPredictionResponse
+ ) -> BatchJobStatus:
+ """
+ Gets the batch job status from the Vertex AI Batch response
+
+ ref: https://cloud.google.com/vertex-ai/docs/reference/rest/v1/JobState
+ """
+ state_mapping: Dict[str, BatchJobStatus] = {
+ "JOB_STATE_UNSPECIFIED": "failed",
+ "JOB_STATE_QUEUED": "validating",
+ "JOB_STATE_PENDING": "validating",
+ "JOB_STATE_RUNNING": "in_progress",
+ "JOB_STATE_SUCCEEDED": "completed",
+ "JOB_STATE_FAILED": "failed",
+ "JOB_STATE_CANCELLING": "cancelling",
+ "JOB_STATE_CANCELLED": "cancelled",
+ "JOB_STATE_PAUSED": "in_progress",
+ "JOB_STATE_EXPIRED": "expired",
+ "JOB_STATE_UPDATING": "in_progress",
+ "JOB_STATE_PARTIALLY_SUCCEEDED": "completed",
+ }
+
+ vertex_state = response.get("state", "JOB_STATE_UNSPECIFIED")
+ return state_mapping[vertex_state]
+
+ @classmethod
+ def _get_gcs_uri_prefix_from_file(cls, input_file_id: str) -> str:
+ """
+ Gets the gcs uri prefix from the input file id
+
+ Example:
+ input_file_id: "gs://litellm-testing-bucket/vtx_batch.jsonl"
+ returns: "gs://litellm-testing-bucket"
+
+ input_file_id: "gs://litellm-testing-bucket/batches/vtx_batch.jsonl"
+ returns: "gs://litellm-testing-bucket/batches"
+ """
+ # Split the path and remove the filename
+ path_parts = input_file_id.rsplit("/", 1)
+ return path_parts[0]
+
+ @classmethod
+ def _get_model_from_gcs_file(cls, gcs_file_uri: str) -> str:
+ """
+ Extracts the model from the gcs file uri
+
+ When files are uploaded using LiteLLM (/v1/files), the model is stored in the gcs file uri
+
+ Why?
+ - Because Vertex Requires the `model` param in create batch jobs request, but OpenAI does not require this
+
+
+ gcs_file_uri format: gs://litellm-testing-bucket/litellm-vertex-files/publishers/google/models/gemini-1.5-flash-001/e9412502-2c91-42a6-8e61-f5c294cc0fc8
+ returns: "publishers/google/models/gemini-1.5-flash-001"
+ """
+ from urllib.parse import unquote
+
+ decoded_uri = unquote(gcs_file_uri)
+
+ model_path = decoded_uri.split("publishers/")[1]
+ parts = model_path.split("/")
+ model = f"publishers/{'/'.join(parts[:3])}"
+ return model
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/common_utils.py
new file mode 100644
index 00000000..f7149c34
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/common_utils.py
@@ -0,0 +1,282 @@
+from typing import Dict, List, Literal, Optional, Tuple, Union
+
+import httpx
+
+from litellm import supports_response_schema, supports_system_messages, verbose_logger
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.types.llms.vertex_ai import PartType
+
+
+class VertexAIError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[Dict, httpx.Headers]] = None,
+ ):
+ super().__init__(message=message, status_code=status_code, headers=headers)
+
+
+def get_supports_system_message(
+ model: str, custom_llm_provider: Literal["vertex_ai", "vertex_ai_beta", "gemini"]
+) -> bool:
+ try:
+ _custom_llm_provider = custom_llm_provider
+ if custom_llm_provider == "vertex_ai_beta":
+ _custom_llm_provider = "vertex_ai"
+ supports_system_message = supports_system_messages(
+ model=model, custom_llm_provider=_custom_llm_provider
+ )
+ except Exception as e:
+ verbose_logger.warning(
+ "Unable to identify if system message supported. Defaulting to 'False'. Received error message - {}\nAdd it here - https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json".format(
+ str(e)
+ )
+ )
+ supports_system_message = False
+
+ return supports_system_message
+
+
+def get_supports_response_schema(
+ model: str, custom_llm_provider: Literal["vertex_ai", "vertex_ai_beta", "gemini"]
+) -> bool:
+ _custom_llm_provider = custom_llm_provider
+ if custom_llm_provider == "vertex_ai_beta":
+ _custom_llm_provider = "vertex_ai"
+
+ _supports_response_schema = supports_response_schema(
+ model=model, custom_llm_provider=_custom_llm_provider
+ )
+
+ return _supports_response_schema
+
+
+from typing import Literal, Optional
+
+all_gemini_url_modes = Literal["chat", "embedding", "batch_embedding"]
+
+
+def _get_vertex_url(
+ mode: all_gemini_url_modes,
+ model: str,
+ stream: Optional[bool],
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ vertex_api_version: Literal["v1", "v1beta1"],
+) -> Tuple[str, str]:
+ url: Optional[str] = None
+ endpoint: Optional[str] = None
+ if mode == "chat":
+ ### SET RUNTIME ENDPOINT ###
+ endpoint = "generateContent"
+ if stream is True:
+ endpoint = "streamGenerateContent"
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/{vertex_api_version}/projects/{vertex_project}/locations/{vertex_location}/publishers/google/models/{model}:{endpoint}?alt=sse"
+ else:
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/{vertex_api_version}/projects/{vertex_project}/locations/{vertex_location}/publishers/google/models/{model}:{endpoint}"
+
+ # if model is only numeric chars then it's a fine tuned gemini model
+ # model = 4965075652664360960
+ # send to this url: url = f"https://{vertex_location}-aiplatform.googleapis.com/{version}/projects/{vertex_project}/locations/{vertex_location}/endpoints/{model}:{endpoint}"
+ if model.isdigit():
+ # It's a fine-tuned Gemini model
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/{vertex_api_version}/projects/{vertex_project}/locations/{vertex_location}/endpoints/{model}:{endpoint}"
+ if stream is True:
+ url += "?alt=sse"
+ elif mode == "embedding":
+ endpoint = "predict"
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/publishers/google/models/{model}:{endpoint}"
+ if model.isdigit():
+ # https://us-central1-aiplatform.googleapis.com/v1/projects/$PROJECT_ID/locations/us-central1/endpoints/$ENDPOINT_ID:predict
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/{vertex_api_version}/projects/{vertex_project}/locations/{vertex_location}/endpoints/{model}:{endpoint}"
+
+ if not url or not endpoint:
+ raise ValueError(f"Unable to get vertex url/endpoint for mode: {mode}")
+ return url, endpoint
+
+
+def _get_gemini_url(
+ mode: all_gemini_url_modes,
+ model: str,
+ stream: Optional[bool],
+ gemini_api_key: Optional[str],
+) -> Tuple[str, str]:
+ _gemini_model_name = "models/{}".format(model)
+ if mode == "chat":
+ endpoint = "generateContent"
+ if stream is True:
+ endpoint = "streamGenerateContent"
+ url = "https://generativelanguage.googleapis.com/v1beta/{}:{}?key={}&alt=sse".format(
+ _gemini_model_name, endpoint, gemini_api_key
+ )
+ else:
+ url = (
+ "https://generativelanguage.googleapis.com/v1beta/{}:{}?key={}".format(
+ _gemini_model_name, endpoint, gemini_api_key
+ )
+ )
+ elif mode == "embedding":
+ endpoint = "embedContent"
+ url = "https://generativelanguage.googleapis.com/v1beta/{}:{}?key={}".format(
+ _gemini_model_name, endpoint, gemini_api_key
+ )
+ elif mode == "batch_embedding":
+ endpoint = "batchEmbedContents"
+ url = "https://generativelanguage.googleapis.com/v1beta/{}:{}?key={}".format(
+ _gemini_model_name, endpoint, gemini_api_key
+ )
+
+ return url, endpoint
+
+
+def _check_text_in_content(parts: List[PartType]) -> bool:
+ """
+ check that user_content has 'text' parameter.
+ - Known Vertex Error: Unable to submit request because it must have a text parameter.
+ - 'text' param needs to be len > 0
+ - Relevant Issue: https://github.com/BerriAI/litellm/issues/5515
+ """
+ has_text_param = False
+ for part in parts:
+ if "text" in part and part.get("text"):
+ has_text_param = True
+
+ return has_text_param
+
+
+def _build_vertex_schema(parameters: dict):
+ """
+ This is a modified version of https://github.com/google-gemini/generative-ai-python/blob/8f77cc6ac99937cd3a81299ecf79608b91b06bbb/google/generativeai/types/content_types.py#L419
+ """
+ defs = parameters.pop("$defs", {})
+ # flatten the defs
+ for name, value in defs.items():
+ unpack_defs(value, defs)
+ unpack_defs(parameters, defs)
+
+ # 5. Nullable fields:
+ # * https://github.com/pydantic/pydantic/issues/1270
+ # * https://stackoverflow.com/a/58841311
+ # * https://github.com/pydantic/pydantic/discussions/4872
+ convert_to_nullable(parameters)
+ add_object_type(parameters)
+ # Postprocessing
+ # 4. Suppress unnecessary title generation:
+ # * https://github.com/pydantic/pydantic/issues/1051
+ # * http://cl/586221780
+ strip_field(parameters, field_name="title")
+
+ strip_field(
+ parameters, field_name="$schema"
+ ) # 5. Remove $schema - json schema value, not supported by OpenAPI - causes vertex errors.
+ strip_field(
+ parameters, field_name="$id"
+ ) # 6. Remove id - json schema value, not supported by OpenAPI - causes vertex errors.
+
+ return parameters
+
+
+def unpack_defs(schema, defs):
+ properties = schema.get("properties", None)
+ if properties is None:
+ return
+
+ for name, value in properties.items():
+ ref_key = value.get("$ref", None)
+ if ref_key is not None:
+ ref = defs[ref_key.split("defs/")[-1]]
+ unpack_defs(ref, defs)
+ properties[name] = ref
+ continue
+
+ anyof = value.get("anyOf", None)
+ if anyof is not None:
+ for i, atype in enumerate(anyof):
+ ref_key = atype.get("$ref", None)
+ if ref_key is not None:
+ ref = defs[ref_key.split("defs/")[-1]]
+ unpack_defs(ref, defs)
+ anyof[i] = ref
+ continue
+
+ items = value.get("items", None)
+ if items is not None:
+ ref_key = items.get("$ref", None)
+ if ref_key is not None:
+ ref = defs[ref_key.split("defs/")[-1]]
+ unpack_defs(ref, defs)
+ value["items"] = ref
+ continue
+
+
+def convert_to_nullable(schema):
+ anyof = schema.pop("anyOf", None)
+ if anyof is not None:
+ if len(anyof) != 2:
+ raise ValueError(
+ "Invalid input: Type Unions are not supported, except for `Optional` types. "
+ "Please provide an `Optional` type or a non-Union type."
+ )
+ a, b = anyof
+ if a == {"type": "null"}:
+ schema.update(b)
+ elif b == {"type": "null"}:
+ schema.update(a)
+ else:
+ raise ValueError(
+ "Invalid input: Type Unions are not supported, except for `Optional` types. "
+ "Please provide an `Optional` type or a non-Union type."
+ )
+ schema["nullable"] = True
+
+ properties = schema.get("properties", None)
+ if properties is not None:
+ for name, value in properties.items():
+ convert_to_nullable(value)
+
+ items = schema.get("items", None)
+ if items is not None:
+ convert_to_nullable(items)
+
+
+def add_object_type(schema):
+ properties = schema.get("properties", None)
+ if properties is not None:
+ if "required" in schema and schema["required"] is None:
+ schema.pop("required", None)
+ schema["type"] = "object"
+ for name, value in properties.items():
+ add_object_type(value)
+
+ items = schema.get("items", None)
+ if items is not None:
+ add_object_type(items)
+
+
+def strip_field(schema, field_name: str):
+ schema.pop(field_name, None)
+
+ properties = schema.get("properties", None)
+ if properties is not None:
+ for name, value in properties.items():
+ strip_field(value, field_name)
+
+ items = schema.get("items", None)
+ if items is not None:
+ strip_field(items, field_name)
+
+
+def _convert_vertex_datetime_to_openai_datetime(vertex_datetime: str) -> int:
+ """
+ Converts a Vertex AI datetime string to an OpenAI datetime integer
+
+ vertex_datetime: str = "2024-12-04T21:53:12.120184Z"
+ returns: int = 1722729192
+ """
+ from datetime import datetime
+
+ # Parse the ISO format string to datetime object
+ dt = datetime.strptime(vertex_datetime, "%Y-%m-%dT%H:%M:%S.%fZ")
+ # Convert to Unix timestamp (seconds since epoch)
+ return int(dt.timestamp())
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/context_caching/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/context_caching/transformation.py
new file mode 100644
index 00000000..83c15029
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/context_caching/transformation.py
@@ -0,0 +1,110 @@
+"""
+Transformation logic for context caching.
+
+Why separate file? Make it easy to see how transformation works
+"""
+
+from typing import List, Tuple
+
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.llms.vertex_ai import CachedContentRequestBody
+from litellm.utils import is_cached_message
+
+from ..common_utils import get_supports_system_message
+from ..gemini.transformation import (
+ _gemini_convert_messages_with_history,
+ _transform_system_message,
+)
+
+
+def get_first_continuous_block_idx(
+ filtered_messages: List[Tuple[int, AllMessageValues]] # (idx, message)
+) -> int:
+ """
+ Find the array index that ends the first continuous sequence of message blocks.
+
+ Args:
+ filtered_messages: List of tuples containing (index, message) pairs
+
+ Returns:
+ int: The array index where the first continuous sequence ends
+ """
+ if not filtered_messages:
+ return -1
+
+ if len(filtered_messages) == 1:
+ return 0
+
+ current_value = filtered_messages[0][0]
+
+ # Search forward through the array indices
+ for i in range(1, len(filtered_messages)):
+ if filtered_messages[i][0] != current_value + 1:
+ return i - 1
+ current_value = filtered_messages[i][0]
+
+ # If we made it through the whole list, return the last index
+ return len(filtered_messages) - 1
+
+
+def separate_cached_messages(
+ messages: List[AllMessageValues],
+) -> Tuple[List[AllMessageValues], List[AllMessageValues]]:
+ """
+ Returns separated cached and non-cached messages.
+
+ Args:
+ messages: List of messages to be separated.
+
+ Returns:
+ Tuple containing:
+ - cached_messages: List of cached messages.
+ - non_cached_messages: List of non-cached messages.
+ """
+ cached_messages: List[AllMessageValues] = []
+ non_cached_messages: List[AllMessageValues] = []
+
+ # Extract cached messages and their indices
+ filtered_messages: List[Tuple[int, AllMessageValues]] = []
+ for idx, message in enumerate(messages):
+ if is_cached_message(message=message):
+ filtered_messages.append((idx, message))
+
+ # Validate only one block of continuous cached messages
+ last_continuous_block_idx = get_first_continuous_block_idx(filtered_messages)
+ # Separate messages based on the block of cached messages
+ if filtered_messages and last_continuous_block_idx is not None:
+ first_cached_idx = filtered_messages[0][0]
+ last_cached_idx = filtered_messages[last_continuous_block_idx][0]
+
+ cached_messages = messages[first_cached_idx : last_cached_idx + 1]
+ non_cached_messages = (
+ messages[:first_cached_idx] + messages[last_cached_idx + 1 :]
+ )
+ else:
+ non_cached_messages = messages
+
+ return cached_messages, non_cached_messages
+
+
+def transform_openai_messages_to_gemini_context_caching(
+ model: str, messages: List[AllMessageValues], cache_key: str
+) -> CachedContentRequestBody:
+ supports_system_message = get_supports_system_message(
+ model=model, custom_llm_provider="gemini"
+ )
+
+ transformed_system_messages, new_messages = _transform_system_message(
+ supports_system_message=supports_system_message, messages=messages
+ )
+
+ transformed_messages = _gemini_convert_messages_with_history(messages=new_messages)
+ data = CachedContentRequestBody(
+ contents=transformed_messages,
+ model="models/{}".format(model),
+ displayName=cache_key,
+ )
+ if transformed_system_messages is not None:
+ data["system_instruction"] = transformed_system_messages
+
+ return data
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py
new file mode 100644
index 00000000..5cfb9141
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py
@@ -0,0 +1,416 @@
+from typing import List, Literal, Optional, Tuple, Union
+
+import httpx
+
+import litellm
+from litellm.caching.caching import Cache, LiteLLMCacheType
+from litellm.litellm_core_utils.litellm_logging import Logging
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.llms.openai.openai import AllMessageValues
+from litellm.types.llms.vertex_ai import (
+ CachedContentListAllResponseBody,
+ VertexAICachedContentResponseObject,
+)
+
+from ..common_utils import VertexAIError
+from ..vertex_llm_base import VertexBase
+from .transformation import (
+ separate_cached_messages,
+ transform_openai_messages_to_gemini_context_caching,
+)
+
+local_cache_obj = Cache(
+ type=LiteLLMCacheType.LOCAL
+) # only used for calling 'get_cache_key' function
+
+
+class ContextCachingEndpoints(VertexBase):
+ """
+ Covers context caching endpoints for Vertex AI + Google AI Studio
+
+ v0: covers Google AI Studio
+ """
+
+ def __init__(self) -> None:
+ pass
+
+ def _get_token_and_url_context_caching(
+ self,
+ gemini_api_key: Optional[str],
+ custom_llm_provider: Literal["gemini"],
+ api_base: Optional[str],
+ ) -> Tuple[Optional[str], str]:
+ """
+ Internal function. Returns the token and url for the call.
+
+ Handles logic if it's google ai studio vs. vertex ai.
+
+ Returns
+ token, url
+ """
+ if custom_llm_provider == "gemini":
+ auth_header = None
+ endpoint = "cachedContents"
+ url = "https://generativelanguage.googleapis.com/v1beta/{}?key={}".format(
+ endpoint, gemini_api_key
+ )
+
+ else:
+ raise NotImplementedError
+
+ return self._check_custom_proxy(
+ api_base=api_base,
+ custom_llm_provider=custom_llm_provider,
+ gemini_api_key=gemini_api_key,
+ endpoint=endpoint,
+ stream=None,
+ auth_header=auth_header,
+ url=url,
+ )
+
+ def check_cache(
+ self,
+ cache_key: str,
+ client: HTTPHandler,
+ headers: dict,
+ api_key: str,
+ api_base: Optional[str],
+ logging_obj: Logging,
+ ) -> Optional[str]:
+ """
+ Checks if content already cached.
+
+ Currently, checks cache list, for cache key == displayName, since Google doesn't let us set the name of the cache (their API docs are out of sync with actual implementation).
+
+ Returns
+ - cached_content_name - str - cached content name stored on google. (if found.)
+ OR
+ - None
+ """
+
+ _, url = self._get_token_and_url_context_caching(
+ gemini_api_key=api_key,
+ custom_llm_provider="gemini",
+ api_base=api_base,
+ )
+ try:
+ ## LOGGING
+ logging_obj.pre_call(
+ input="",
+ api_key="",
+ additional_args={
+ "complete_input_dict": {},
+ "api_base": url,
+ "headers": headers,
+ },
+ )
+
+ resp = client.get(url=url, headers=headers)
+ resp.raise_for_status()
+ except httpx.HTTPStatusError as e:
+ if e.response.status_code == 403:
+ return None
+ raise VertexAIError(
+ status_code=e.response.status_code, message=e.response.text
+ )
+ except Exception as e:
+ raise VertexAIError(status_code=500, message=str(e))
+ raw_response = resp.json()
+ logging_obj.post_call(original_response=raw_response)
+
+ if "cachedContents" not in raw_response:
+ return None
+
+ all_cached_items = CachedContentListAllResponseBody(**raw_response)
+
+ if "cachedContents" not in all_cached_items:
+ return None
+
+ for cached_item in all_cached_items["cachedContents"]:
+ display_name = cached_item.get("displayName")
+ if display_name is not None and display_name == cache_key:
+ return cached_item.get("name")
+
+ return None
+
+ async def async_check_cache(
+ self,
+ cache_key: str,
+ client: AsyncHTTPHandler,
+ headers: dict,
+ api_key: str,
+ api_base: Optional[str],
+ logging_obj: Logging,
+ ) -> Optional[str]:
+ """
+ Checks if content already cached.
+
+ Currently, checks cache list, for cache key == displayName, since Google doesn't let us set the name of the cache (their API docs are out of sync with actual implementation).
+
+ Returns
+ - cached_content_name - str - cached content name stored on google. (if found.)
+ OR
+ - None
+ """
+
+ _, url = self._get_token_and_url_context_caching(
+ gemini_api_key=api_key,
+ custom_llm_provider="gemini",
+ api_base=api_base,
+ )
+ try:
+ ## LOGGING
+ logging_obj.pre_call(
+ input="",
+ api_key="",
+ additional_args={
+ "complete_input_dict": {},
+ "api_base": url,
+ "headers": headers,
+ },
+ )
+
+ resp = await client.get(url=url, headers=headers)
+ resp.raise_for_status()
+ except httpx.HTTPStatusError as e:
+ if e.response.status_code == 403:
+ return None
+ raise VertexAIError(
+ status_code=e.response.status_code, message=e.response.text
+ )
+ except Exception as e:
+ raise VertexAIError(status_code=500, message=str(e))
+ raw_response = resp.json()
+ logging_obj.post_call(original_response=raw_response)
+
+ if "cachedContents" not in raw_response:
+ return None
+
+ all_cached_items = CachedContentListAllResponseBody(**raw_response)
+
+ if "cachedContents" not in all_cached_items:
+ return None
+
+ for cached_item in all_cached_items["cachedContents"]:
+ display_name = cached_item.get("displayName")
+ if display_name is not None and display_name == cache_key:
+ return cached_item.get("name")
+
+ return None
+
+ def check_and_create_cache(
+ self,
+ messages: List[AllMessageValues], # receives openai format messages
+ api_key: str,
+ api_base: Optional[str],
+ model: str,
+ client: Optional[HTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ logging_obj: Logging,
+ extra_headers: Optional[dict] = None,
+ cached_content: Optional[str] = None,
+ ) -> Tuple[List[AllMessageValues], Optional[str]]:
+ """
+ Receives
+ - messages: List of dict - messages in the openai format
+
+ Returns
+ - messages - List[dict] - filtered list of messages in the openai format.
+ - cached_content - str - the cache content id, to be passed in the gemini request body
+
+ Follows - https://ai.google.dev/api/caching#request-body
+ """
+ if cached_content is not None:
+ return messages, cached_content
+
+ ## AUTHORIZATION ##
+ token, url = self._get_token_and_url_context_caching(
+ gemini_api_key=api_key,
+ custom_llm_provider="gemini",
+ api_base=api_base,
+ )
+
+ headers = {
+ "Content-Type": "application/json",
+ }
+ if token is not None:
+ headers["Authorization"] = f"Bearer {token}"
+ if extra_headers is not None:
+ headers.update(extra_headers)
+
+ if client is None or not isinstance(client, HTTPHandler):
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ client = HTTPHandler(**_params) # type: ignore
+ else:
+ client = client
+
+ cached_messages, non_cached_messages = separate_cached_messages(
+ messages=messages
+ )
+
+ if len(cached_messages) == 0:
+ return messages, None
+
+ ## CHECK IF CACHED ALREADY
+ generated_cache_key = local_cache_obj.get_cache_key(messages=cached_messages)
+ google_cache_name = self.check_cache(
+ cache_key=generated_cache_key,
+ client=client,
+ headers=headers,
+ api_key=api_key,
+ api_base=api_base,
+ logging_obj=logging_obj,
+ )
+ if google_cache_name:
+ return non_cached_messages, google_cache_name
+
+ ## TRANSFORM REQUEST
+ cached_content_request_body = (
+ transform_openai_messages_to_gemini_context_caching(
+ model=model, messages=cached_messages, cache_key=generated_cache_key
+ )
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": cached_content_request_body,
+ "api_base": url,
+ "headers": headers,
+ },
+ )
+
+ try:
+ response = client.post(
+ url=url, headers=headers, json=cached_content_request_body # type: ignore
+ )
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise VertexAIError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise VertexAIError(status_code=408, message="Timeout error occurred.")
+
+ raw_response_cached = response.json()
+ cached_content_response_obj = VertexAICachedContentResponseObject(
+ name=raw_response_cached.get("name"), model=raw_response_cached.get("model")
+ )
+ return (non_cached_messages, cached_content_response_obj["name"])
+
+ async def async_check_and_create_cache(
+ self,
+ messages: List[AllMessageValues], # receives openai format messages
+ api_key: str,
+ api_base: Optional[str],
+ model: str,
+ client: Optional[AsyncHTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ logging_obj: Logging,
+ extra_headers: Optional[dict] = None,
+ cached_content: Optional[str] = None,
+ ) -> Tuple[List[AllMessageValues], Optional[str]]:
+ """
+ Receives
+ - messages: List of dict - messages in the openai format
+
+ Returns
+ - messages - List[dict] - filtered list of messages in the openai format.
+ - cached_content - str - the cache content id, to be passed in the gemini request body
+
+ Follows - https://ai.google.dev/api/caching#request-body
+ """
+ if cached_content is not None:
+ return messages, cached_content
+
+ cached_messages, non_cached_messages = separate_cached_messages(
+ messages=messages
+ )
+
+ if len(cached_messages) == 0:
+ return messages, None
+
+ ## AUTHORIZATION ##
+ token, url = self._get_token_and_url_context_caching(
+ gemini_api_key=api_key,
+ custom_llm_provider="gemini",
+ api_base=api_base,
+ )
+
+ headers = {
+ "Content-Type": "application/json",
+ }
+ if token is not None:
+ headers["Authorization"] = f"Bearer {token}"
+ if extra_headers is not None:
+ headers.update(extra_headers)
+
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ client = get_async_httpx_client(
+ params={"timeout": timeout}, llm_provider=litellm.LlmProviders.VERTEX_AI
+ )
+ else:
+ client = client
+
+ ## CHECK IF CACHED ALREADY
+ generated_cache_key = local_cache_obj.get_cache_key(messages=cached_messages)
+ google_cache_name = await self.async_check_cache(
+ cache_key=generated_cache_key,
+ client=client,
+ headers=headers,
+ api_key=api_key,
+ api_base=api_base,
+ logging_obj=logging_obj,
+ )
+ if google_cache_name:
+ return non_cached_messages, google_cache_name
+
+ ## TRANSFORM REQUEST
+ cached_content_request_body = (
+ transform_openai_messages_to_gemini_context_caching(
+ model=model, messages=cached_messages, cache_key=generated_cache_key
+ )
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": cached_content_request_body,
+ "api_base": url,
+ "headers": headers,
+ },
+ )
+
+ try:
+ response = await client.post(
+ url=url, headers=headers, json=cached_content_request_body # type: ignore
+ )
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise VertexAIError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise VertexAIError(status_code=408, message="Timeout error occurred.")
+
+ raw_response_cached = response.json()
+ cached_content_response_obj = VertexAICachedContentResponseObject(
+ name=raw_response_cached.get("name"), model=raw_response_cached.get("model")
+ )
+ return (non_cached_messages, cached_content_response_obj["name"])
+
+ def get_cache(self):
+ pass
+
+ async def async_get_cache(self):
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/cost_calculator.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/cost_calculator.py
new file mode 100644
index 00000000..fd238860
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/cost_calculator.py
@@ -0,0 +1,242 @@
+# What is this?
+## Cost calculation for Google AI Studio / Vertex AI models
+from typing import Literal, Optional, Tuple, Union
+
+import litellm
+from litellm import verbose_logger
+from litellm.litellm_core_utils.llm_cost_calc.utils import _is_above_128k
+
+"""
+Gemini pricing covers:
+- token
+- image
+- audio
+- video
+"""
+
+"""
+Vertex AI -> character based pricing
+
+Google AI Studio -> token based pricing
+"""
+
+models_without_dynamic_pricing = ["gemini-1.0-pro", "gemini-pro"]
+
+
+def cost_router(
+ model: str,
+ custom_llm_provider: str,
+ call_type: Union[Literal["embedding", "aembedding"], str],
+) -> Literal["cost_per_character", "cost_per_token"]:
+ """
+ Route the cost calc to the right place, based on model/call_type/etc.
+
+ Returns
+ - str, the specific google cost calc function it should route to.
+ """
+ if custom_llm_provider == "vertex_ai" and (
+ "claude" in model
+ or "llama" in model
+ or "mistral" in model
+ or "jamba" in model
+ or "codestral" in model
+ ):
+ return "cost_per_token"
+ elif custom_llm_provider == "vertex_ai" and (
+ call_type == "embedding" or call_type == "aembedding"
+ ):
+ return "cost_per_token"
+ return "cost_per_character"
+
+
+def cost_per_character(
+ model: str,
+ custom_llm_provider: str,
+ prompt_tokens: float,
+ completion_tokens: float,
+ prompt_characters: Optional[float] = None,
+ completion_characters: Optional[float] = None,
+) -> Tuple[float, float]:
+ """
+ Calculates the cost per character for a given VertexAI model, input messages, and response object.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - custom_llm_provider: str, "vertex_ai-*"
+ - prompt_characters: float, the number of input characters
+ - completion_characters: float, the number of output characters
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+
+ Raises:
+ Exception if model requires >128k pricing, but model cost not mapped
+ """
+ model_info = litellm.get_model_info(
+ model=model, custom_llm_provider=custom_llm_provider
+ )
+
+ ## GET MODEL INFO
+ model_info = litellm.get_model_info(
+ model=model, custom_llm_provider=custom_llm_provider
+ )
+
+ ## CALCULATE INPUT COST
+ if prompt_characters is None:
+ prompt_cost, _ = cost_per_token(
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ )
+ else:
+ try:
+ if (
+ _is_above_128k(tokens=prompt_characters * 4) # 1 token = 4 char
+ and model not in models_without_dynamic_pricing
+ ):
+ ## check if character pricing, else default to token pricing
+ assert (
+ "input_cost_per_character_above_128k_tokens" in model_info
+ and model_info["input_cost_per_character_above_128k_tokens"]
+ is not None
+ ), "model info for model={} does not have 'input_cost_per_character_above_128k_tokens'-pricing for > 128k tokens\nmodel_info={}".format(
+ model, model_info
+ )
+ prompt_cost = (
+ prompt_characters
+ * model_info["input_cost_per_character_above_128k_tokens"]
+ )
+ else:
+ assert (
+ "input_cost_per_character" in model_info
+ and model_info["input_cost_per_character"] is not None
+ ), "model info for model={} does not have 'input_cost_per_character'-pricing\nmodel_info={}".format(
+ model, model_info
+ )
+ prompt_cost = prompt_characters * model_info["input_cost_per_character"]
+ except Exception as e:
+ verbose_logger.debug(
+ "litellm.litellm_core_utils.llm_cost_calc.google.py::cost_per_character(): Exception occured - {}\nDefaulting to None".format(
+ str(e)
+ )
+ )
+ prompt_cost, _ = cost_per_token(
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ )
+
+ ## CALCULATE OUTPUT COST
+ if completion_characters is None:
+ _, completion_cost = cost_per_token(
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ )
+ else:
+ try:
+ if (
+ _is_above_128k(tokens=completion_characters * 4) # 1 token = 4 char
+ and model not in models_without_dynamic_pricing
+ ):
+ assert (
+ "output_cost_per_character_above_128k_tokens" in model_info
+ and model_info["output_cost_per_character_above_128k_tokens"]
+ is not None
+ ), "model info for model={} does not have 'output_cost_per_character_above_128k_tokens' pricing\nmodel_info={}".format(
+ model, model_info
+ )
+ completion_cost = (
+ completion_tokens
+ * model_info["output_cost_per_character_above_128k_tokens"]
+ )
+ else:
+ assert (
+ "output_cost_per_character" in model_info
+ and model_info["output_cost_per_character"] is not None
+ ), "model info for model={} does not have 'output_cost_per_character'-pricing\nmodel_info={}".format(
+ model, model_info
+ )
+ completion_cost = (
+ completion_characters * model_info["output_cost_per_character"]
+ )
+ except Exception as e:
+ verbose_logger.debug(
+ "litellm.litellm_core_utils.llm_cost_calc.google.py::cost_per_character(): Exception occured - {}\nDefaulting to None".format(
+ str(e)
+ )
+ )
+ _, completion_cost = cost_per_token(
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ )
+
+ return prompt_cost, completion_cost
+
+
+def cost_per_token(
+ model: str,
+ custom_llm_provider: str,
+ prompt_tokens: float,
+ completion_tokens: float,
+) -> Tuple[float, float]:
+ """
+ Calculates the cost per token for a given model, prompt tokens, and completion tokens.
+
+ Input:
+ - model: str, the model name without provider prefix
+ - custom_llm_provider: str, either "vertex_ai-*" or "gemini"
+ - prompt_tokens: float, the number of input tokens
+ - completion_tokens: float, the number of output tokens
+
+ Returns:
+ Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
+
+ Raises:
+ Exception if model requires >128k pricing, but model cost not mapped
+ """
+ ## GET MODEL INFO
+ model_info = litellm.get_model_info(
+ model=model, custom_llm_provider=custom_llm_provider
+ )
+
+ ## CALCULATE INPUT COST
+ if (
+ _is_above_128k(tokens=prompt_tokens)
+ and model not in models_without_dynamic_pricing
+ ):
+ assert (
+ "input_cost_per_token_above_128k_tokens" in model_info
+ and model_info["input_cost_per_token_above_128k_tokens"] is not None
+ ), "model info for model={} does not have pricing for > 128k tokens\nmodel_info={}".format(
+ model, model_info
+ )
+ prompt_cost = (
+ prompt_tokens * model_info["input_cost_per_token_above_128k_tokens"]
+ )
+ else:
+ prompt_cost = prompt_tokens * model_info["input_cost_per_token"]
+
+ ## CALCULATE OUTPUT COST
+ if (
+ _is_above_128k(tokens=completion_tokens)
+ and model not in models_without_dynamic_pricing
+ ):
+ assert (
+ "output_cost_per_token_above_128k_tokens" in model_info
+ and model_info["output_cost_per_token_above_128k_tokens"] is not None
+ ), "model info for model={} does not have pricing for > 128k tokens\nmodel_info={}".format(
+ model, model_info
+ )
+ completion_cost = (
+ completion_tokens * model_info["output_cost_per_token_above_128k_tokens"]
+ )
+ else:
+ completion_cost = completion_tokens * model_info["output_cost_per_token"]
+
+ return prompt_cost, completion_cost
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/files/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/files/handler.py
new file mode 100644
index 00000000..266169cd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/files/handler.py
@@ -0,0 +1,97 @@
+from typing import Any, Coroutine, Optional, Union
+
+import httpx
+
+from litellm import LlmProviders
+from litellm.integrations.gcs_bucket.gcs_bucket_base import (
+ GCSBucketBase,
+ GCSLoggingConfig,
+)
+from litellm.llms.custom_httpx.http_handler import get_async_httpx_client
+from litellm.types.llms.openai import CreateFileRequest, FileObject
+from litellm.types.llms.vertex_ai import VERTEX_CREDENTIALS_TYPES
+
+from .transformation import VertexAIFilesTransformation
+
+vertex_ai_files_transformation = VertexAIFilesTransformation()
+
+
+class VertexAIFilesHandler(GCSBucketBase):
+ """
+ Handles Calling VertexAI in OpenAI Files API format v1/files/*
+
+ This implementation uploads files on GCS Buckets
+ """
+
+ def __init__(self):
+ super().__init__()
+ self.async_httpx_client = get_async_httpx_client(
+ llm_provider=LlmProviders.VERTEX_AI,
+ )
+
+ pass
+
+ async def async_create_file(
+ self,
+ create_file_data: CreateFileRequest,
+ api_base: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ ):
+ gcs_logging_config: GCSLoggingConfig = await self.get_gcs_logging_config(
+ kwargs={}
+ )
+ headers = await self.construct_request_headers(
+ vertex_instance=gcs_logging_config["vertex_instance"],
+ service_account_json=gcs_logging_config["path_service_account"],
+ )
+ bucket_name = gcs_logging_config["bucket_name"]
+ logging_payload, object_name = (
+ vertex_ai_files_transformation.transform_openai_file_content_to_vertex_ai_file_content(
+ openai_file_content=create_file_data.get("file")
+ )
+ )
+ gcs_upload_response = await self._log_json_data_on_gcs(
+ headers=headers,
+ bucket_name=bucket_name,
+ object_name=object_name,
+ logging_payload=logging_payload,
+ )
+
+ return vertex_ai_files_transformation.transform_gcs_bucket_response_to_openai_file_object(
+ create_file_data=create_file_data,
+ gcs_upload_response=gcs_upload_response,
+ )
+
+ def create_file(
+ self,
+ _is_async: bool,
+ create_file_data: CreateFileRequest,
+ api_base: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ max_retries: Optional[int],
+ ) -> Union[FileObject, Coroutine[Any, Any, FileObject]]:
+ """
+ Creates a file on VertexAI GCS Bucket
+
+ Only supported for Async litellm.acreate_file
+ """
+
+ if _is_async:
+ return self.async_create_file(
+ create_file_data=create_file_data,
+ api_base=api_base,
+ vertex_credentials=vertex_credentials,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ timeout=timeout,
+ max_retries=max_retries,
+ )
+
+ return None # type: ignore
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/files/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/files/transformation.py
new file mode 100644
index 00000000..a124e205
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/files/transformation.py
@@ -0,0 +1,163 @@
+import json
+import uuid
+from typing import Any, Dict, List, Optional, Tuple, Union
+
+from litellm.llms.vertex_ai.common_utils import (
+ _convert_vertex_datetime_to_openai_datetime,
+)
+from litellm.llms.vertex_ai.gemini.transformation import _transform_request_body
+from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import (
+ VertexGeminiConfig,
+)
+from litellm.types.llms.openai import CreateFileRequest, FileObject, FileTypes, PathLike
+
+
+class VertexAIFilesTransformation(VertexGeminiConfig):
+ """
+ Transforms OpenAI /v1/files/* requests to VertexAI /v1/files/* requests
+ """
+
+ def transform_openai_file_content_to_vertex_ai_file_content(
+ self, openai_file_content: Optional[FileTypes] = None
+ ) -> Tuple[str, str]:
+ """
+ Transforms OpenAI FileContentRequest to VertexAI FileContentRequest
+ """
+
+ if openai_file_content is None:
+ raise ValueError("contents of file are None")
+ # Read the content of the file
+ file_content = self._get_content_from_openai_file(openai_file_content)
+
+ # Split into lines and parse each line as JSON
+ openai_jsonl_content = [
+ json.loads(line) for line in file_content.splitlines() if line.strip()
+ ]
+ vertex_jsonl_content = (
+ self._transform_openai_jsonl_content_to_vertex_ai_jsonl_content(
+ openai_jsonl_content
+ )
+ )
+ vertex_jsonl_string = "\n".join(
+ json.dumps(item) for item in vertex_jsonl_content
+ )
+ object_name = self._get_gcs_object_name(
+ openai_jsonl_content=openai_jsonl_content
+ )
+ return vertex_jsonl_string, object_name
+
+ def _transform_openai_jsonl_content_to_vertex_ai_jsonl_content(
+ self, openai_jsonl_content: List[Dict[str, Any]]
+ ):
+ """
+ Transforms OpenAI JSONL content to VertexAI JSONL content
+
+ jsonl body for vertex is {"request": <request_body>}
+ Example Vertex jsonl
+ {"request":{"contents": [{"role": "user", "parts": [{"text": "What is the relation between the following video and image samples?"}, {"fileData": {"fileUri": "gs://cloud-samples-data/generative-ai/video/animals.mp4", "mimeType": "video/mp4"}}, {"fileData": {"fileUri": "gs://cloud-samples-data/generative-ai/image/cricket.jpeg", "mimeType": "image/jpeg"}}]}]}}
+ {"request":{"contents": [{"role": "user", "parts": [{"text": "Describe what is happening in this video."}, {"fileData": {"fileUri": "gs://cloud-samples-data/generative-ai/video/another_video.mov", "mimeType": "video/mov"}}]}]}}
+ """
+
+ vertex_jsonl_content = []
+ for _openai_jsonl_content in openai_jsonl_content:
+ openai_request_body = _openai_jsonl_content.get("body") or {}
+ vertex_request_body = _transform_request_body(
+ messages=openai_request_body.get("messages", []),
+ model=openai_request_body.get("model", ""),
+ optional_params=self._map_openai_to_vertex_params(openai_request_body),
+ custom_llm_provider="vertex_ai",
+ litellm_params={},
+ cached_content=None,
+ )
+ vertex_jsonl_content.append({"request": vertex_request_body})
+ return vertex_jsonl_content
+
+ def _get_gcs_object_name(
+ self,
+ openai_jsonl_content: List[Dict[str, Any]],
+ ) -> str:
+ """
+ Gets a unique GCS object name for the VertexAI batch prediction job
+
+ named as: litellm-vertex-{model}-{uuid}
+ """
+ _model = openai_jsonl_content[0].get("body", {}).get("model", "")
+ if "publishers/google/models" not in _model:
+ _model = f"publishers/google/models/{_model}"
+ object_name = f"litellm-vertex-files/{_model}/{uuid.uuid4()}"
+ return object_name
+
+ def _map_openai_to_vertex_params(
+ self,
+ openai_request_body: Dict[str, Any],
+ ) -> Dict[str, Any]:
+ """
+ wrapper to call VertexGeminiConfig.map_openai_params
+ """
+ _model = openai_request_body.get("model", "")
+ vertex_params = self.map_openai_params(
+ model=_model,
+ non_default_params=openai_request_body,
+ optional_params={},
+ drop_params=False,
+ )
+ return vertex_params
+
+ def _get_content_from_openai_file(self, openai_file_content: FileTypes) -> str:
+ """
+ Helper to extract content from various OpenAI file types and return as string.
+
+ Handles:
+ - Direct content (str, bytes, IO[bytes])
+ - Tuple formats: (filename, content, [content_type], [headers])
+ - PathLike objects
+ """
+ content: Union[str, bytes] = b""
+ # Extract file content from tuple if necessary
+ if isinstance(openai_file_content, tuple):
+ # Take the second element which is always the file content
+ file_content = openai_file_content[1]
+ else:
+ file_content = openai_file_content
+
+ # Handle different file content types
+ if isinstance(file_content, str):
+ # String content can be used directly
+ content = file_content
+ elif isinstance(file_content, bytes):
+ # Bytes content can be decoded
+ content = file_content
+ elif isinstance(file_content, PathLike): # PathLike
+ with open(str(file_content), "rb") as f:
+ content = f.read()
+ elif hasattr(file_content, "read"): # IO[bytes]
+ # File-like objects need to be read
+ content = file_content.read()
+
+ # Ensure content is string
+ if isinstance(content, bytes):
+ content = content.decode("utf-8")
+
+ return content
+
+ def transform_gcs_bucket_response_to_openai_file_object(
+ self, create_file_data: CreateFileRequest, gcs_upload_response: Dict[str, Any]
+ ) -> FileObject:
+ """
+ Transforms GCS Bucket upload file response to OpenAI FileObject
+ """
+ gcs_id = gcs_upload_response.get("id", "")
+ # Remove the last numeric ID from the path
+ gcs_id = "/".join(gcs_id.split("/")[:-1]) if gcs_id else ""
+
+ return FileObject(
+ purpose=create_file_data.get("purpose", "batch"),
+ id=f"gs://{gcs_id}",
+ filename=gcs_upload_response.get("name", ""),
+ created_at=_convert_vertex_datetime_to_openai_datetime(
+ vertex_datetime=gcs_upload_response.get("timeCreated", "")
+ ),
+ status="uploaded",
+ bytes=gcs_upload_response.get("size", 0),
+ object="file",
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/fine_tuning/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/fine_tuning/handler.py
new file mode 100644
index 00000000..3cf409c7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/fine_tuning/handler.py
@@ -0,0 +1,371 @@
+import json
+import traceback
+from datetime import datetime
+from typing import Literal, Optional, Union
+
+import httpx
+from openai.types.fine_tuning.fine_tuning_job import FineTuningJob
+
+import litellm
+from litellm._logging import verbose_logger
+from litellm.llms.custom_httpx.http_handler import HTTPHandler, get_async_httpx_client
+from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import VertexLLM
+from litellm.types.fine_tuning import OpenAIFineTuningHyperparameters
+from litellm.types.llms.openai import FineTuningJobCreate
+from litellm.types.llms.vertex_ai import (
+ VERTEX_CREDENTIALS_TYPES,
+ FineTuneHyperparameters,
+ FineTuneJobCreate,
+ FineTunesupervisedTuningSpec,
+ ResponseSupervisedTuningSpec,
+ ResponseTuningJob,
+)
+
+
+class VertexFineTuningAPI(VertexLLM):
+ """
+ Vertex methods to support for batches
+ """
+
+ def __init__(self) -> None:
+ super().__init__()
+ self.async_handler = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.VERTEX_AI,
+ params={"timeout": 600.0},
+ )
+
+ def convert_response_created_at(self, response: ResponseTuningJob):
+ try:
+
+ create_time_str = response.get("createTime", "") or ""
+ create_time_datetime = datetime.fromisoformat(
+ create_time_str.replace("Z", "+00:00")
+ )
+ # Convert to Unix timestamp (seconds since epoch)
+ created_at = int(create_time_datetime.timestamp())
+
+ return created_at
+ except Exception:
+ return 0
+
+ def convert_openai_request_to_vertex(
+ self,
+ create_fine_tuning_job_data: FineTuningJobCreate,
+ original_hyperparameters: dict = {},
+ kwargs: Optional[dict] = None,
+ ) -> FineTuneJobCreate:
+ """
+ convert request from OpenAI format to Vertex format
+ https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/tuning
+ supervised_tuning_spec = FineTunesupervisedTuningSpec(
+ """
+
+ supervised_tuning_spec = FineTunesupervisedTuningSpec(
+ training_dataset_uri=create_fine_tuning_job_data.training_file,
+ )
+
+ if create_fine_tuning_job_data.validation_file:
+ supervised_tuning_spec["validation_dataset"] = (
+ create_fine_tuning_job_data.validation_file
+ )
+
+ _vertex_hyperparameters = (
+ self._transform_openai_hyperparameters_to_vertex_hyperparameters(
+ create_fine_tuning_job_data=create_fine_tuning_job_data,
+ kwargs=kwargs,
+ original_hyperparameters=original_hyperparameters,
+ )
+ )
+
+ if _vertex_hyperparameters and len(_vertex_hyperparameters) > 0:
+ supervised_tuning_spec["hyperParameters"] = _vertex_hyperparameters
+
+ fine_tune_job = FineTuneJobCreate(
+ baseModel=create_fine_tuning_job_data.model,
+ supervisedTuningSpec=supervised_tuning_spec,
+ tunedModelDisplayName=create_fine_tuning_job_data.suffix,
+ )
+
+ return fine_tune_job
+
+ def _transform_openai_hyperparameters_to_vertex_hyperparameters(
+ self,
+ create_fine_tuning_job_data: FineTuningJobCreate,
+ original_hyperparameters: dict = {},
+ kwargs: Optional[dict] = None,
+ ) -> FineTuneHyperparameters:
+ _oai_hyperparameters = create_fine_tuning_job_data.hyperparameters
+ _vertex_hyperparameters = FineTuneHyperparameters()
+ if _oai_hyperparameters:
+ if _oai_hyperparameters.n_epochs:
+ _vertex_hyperparameters["epoch_count"] = int(
+ _oai_hyperparameters.n_epochs
+ )
+ if _oai_hyperparameters.learning_rate_multiplier:
+ _vertex_hyperparameters["learning_rate_multiplier"] = float(
+ _oai_hyperparameters.learning_rate_multiplier
+ )
+
+ _adapter_size = original_hyperparameters.get("adapter_size", None)
+ if _adapter_size:
+ _vertex_hyperparameters["adapter_size"] = _adapter_size
+
+ return _vertex_hyperparameters
+
+ def convert_vertex_response_to_open_ai_response(
+ self, response: ResponseTuningJob
+ ) -> FineTuningJob:
+ status: Literal[
+ "validating_files", "queued", "running", "succeeded", "failed", "cancelled"
+ ] = "queued"
+ if response["state"] == "JOB_STATE_PENDING":
+ status = "queued"
+ if response["state"] == "JOB_STATE_SUCCEEDED":
+ status = "succeeded"
+ if response["state"] == "JOB_STATE_FAILED":
+ status = "failed"
+ if response["state"] == "JOB_STATE_CANCELLED":
+ status = "cancelled"
+ if response["state"] == "JOB_STATE_RUNNING":
+ status = "running"
+
+ created_at = self.convert_response_created_at(response)
+
+ _supervisedTuningSpec: ResponseSupervisedTuningSpec = (
+ response.get("supervisedTuningSpec", None) or {}
+ )
+ training_uri: str = _supervisedTuningSpec.get("trainingDatasetUri", "") or ""
+ return FineTuningJob(
+ id=response.get("name", "") or "",
+ created_at=created_at,
+ fine_tuned_model=response.get("tunedModelDisplayName", ""),
+ finished_at=None,
+ hyperparameters=self._translate_vertex_response_hyperparameters(
+ vertex_hyper_parameters=_supervisedTuningSpec.get("hyperParameters", {})
+ or {}
+ ),
+ model=response.get("baseModel", "") or "",
+ object="fine_tuning.job",
+ organization_id="",
+ result_files=[],
+ seed=0,
+ status=status,
+ trained_tokens=None,
+ training_file=training_uri,
+ validation_file=None,
+ estimated_finish=None,
+ integrations=[],
+ )
+
+ def _translate_vertex_response_hyperparameters(
+ self, vertex_hyper_parameters: FineTuneHyperparameters
+ ) -> OpenAIFineTuningHyperparameters:
+ """
+ translate vertex responsehyperparameters to openai hyperparameters
+ """
+ _dict_remaining_hyperparameters: dict = dict(vertex_hyper_parameters)
+ return OpenAIFineTuningHyperparameters(
+ n_epochs=_dict_remaining_hyperparameters.pop("epoch_count", 0),
+ **_dict_remaining_hyperparameters,
+ )
+
+ async def acreate_fine_tuning_job(
+ self,
+ fine_tuning_url: str,
+ headers: dict,
+ request_data: FineTuneJobCreate,
+ ):
+
+ try:
+ verbose_logger.debug(
+ "about to create fine tuning job: %s, request_data: %s",
+ fine_tuning_url,
+ json.dumps(request_data, indent=4),
+ )
+ if self.async_handler is None:
+ raise ValueError(
+ "VertexAI Fine Tuning - async_handler is not initialized"
+ )
+ response = await self.async_handler.post(
+ headers=headers,
+ url=fine_tuning_url,
+ json=request_data, # type: ignore
+ )
+
+ if response.status_code != 200:
+ raise Exception(
+ f"Error creating fine tuning job. Status code: {response.status_code}. Response: {response.text}"
+ )
+
+ verbose_logger.debug(
+ "got response from creating fine tuning job: %s", response.json()
+ )
+
+ vertex_response = ResponseTuningJob( # type: ignore
+ **response.json(),
+ )
+
+ verbose_logger.debug("vertex_response %s", vertex_response)
+ open_ai_response = self.convert_vertex_response_to_open_ai_response(
+ vertex_response
+ )
+ return open_ai_response
+
+ except Exception as e:
+ verbose_logger.error("asyncerror creating fine tuning job %s", e)
+ trace_back_str = traceback.format_exc()
+ verbose_logger.error(trace_back_str)
+ raise e
+
+ def create_fine_tuning_job(
+ self,
+ _is_async: bool,
+ create_fine_tuning_job_data: FineTuningJobCreate,
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ kwargs: Optional[dict] = None,
+ original_hyperparameters: Optional[dict] = {},
+ ):
+
+ verbose_logger.debug(
+ "creating fine tuning job, args= %s", create_fine_tuning_job_data
+ )
+ _auth_header, vertex_project = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai_beta",
+ )
+
+ auth_header, _ = self._get_token_and_url(
+ model="",
+ auth_header=_auth_header,
+ gemini_api_key=None,
+ vertex_credentials=vertex_credentials,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ stream=False,
+ custom_llm_provider="vertex_ai_beta",
+ api_base=api_base,
+ )
+
+ headers = {
+ "Authorization": f"Bearer {auth_header}",
+ "Content-Type": "application/json",
+ }
+
+ fine_tune_job = self.convert_openai_request_to_vertex(
+ create_fine_tuning_job_data=create_fine_tuning_job_data,
+ kwargs=kwargs,
+ original_hyperparameters=original_hyperparameters or {},
+ )
+
+ fine_tuning_url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/tuningJobs"
+ if _is_async is True:
+ return self.acreate_fine_tuning_job( # type: ignore
+ fine_tuning_url=fine_tuning_url,
+ headers=headers,
+ request_data=fine_tune_job,
+ )
+ sync_handler = HTTPHandler(timeout=httpx.Timeout(timeout=600.0, connect=5.0))
+
+ verbose_logger.debug(
+ "about to create fine tuning job: %s, request_data: %s",
+ fine_tuning_url,
+ fine_tune_job,
+ )
+ response = sync_handler.post(
+ headers=headers,
+ url=fine_tuning_url,
+ json=fine_tune_job, # type: ignore
+ )
+
+ if response.status_code != 200:
+ raise Exception(
+ f"Error creating fine tuning job. Status code: {response.status_code}. Response: {response.text}"
+ )
+
+ verbose_logger.debug(
+ "got response from creating fine tuning job: %s", response.json()
+ )
+ vertex_response = ResponseTuningJob( # type: ignore
+ **response.json(),
+ )
+
+ verbose_logger.debug("vertex_response %s", vertex_response)
+ open_ai_response = self.convert_vertex_response_to_open_ai_response(
+ vertex_response
+ )
+ return open_ai_response
+
+ async def pass_through_vertex_ai_POST_request(
+ self,
+ request_data: dict,
+ vertex_project: str,
+ vertex_location: str,
+ vertex_credentials: str,
+ request_route: str,
+ ):
+ _auth_header, vertex_project = await self._ensure_access_token_async(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai_beta",
+ )
+ auth_header, _ = self._get_token_and_url(
+ model="",
+ auth_header=_auth_header,
+ gemini_api_key=None,
+ vertex_credentials=vertex_credentials,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ stream=False,
+ custom_llm_provider="vertex_ai_beta",
+ api_base="",
+ )
+
+ headers = {
+ "Authorization": f"Bearer {auth_header}",
+ "Content-Type": "application/json",
+ }
+
+ url = None
+ if request_route == "/tuningJobs":
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/tuningJobs"
+ elif "/tuningJobs/" in request_route and "cancel" in request_route:
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/tuningJobs{request_route}"
+ elif "generateContent" in request_route:
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}{request_route}"
+ elif "predict" in request_route:
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}{request_route}"
+ elif "/batchPredictionJobs" in request_route:
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}{request_route}"
+ elif "countTokens" in request_route:
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}{request_route}"
+ elif "cachedContents" in request_route:
+ _model = request_data.get("model")
+ if _model is not None and "/publishers/google/models/" not in _model:
+ request_data["model"] = (
+ f"projects/{vertex_project}/locations/{vertex_location}/publishers/google/models/{_model}"
+ )
+
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1beta1/projects/{vertex_project}/locations/{vertex_location}{request_route}"
+ else:
+ raise ValueError(f"Unsupported Vertex AI request route: {request_route}")
+ if self.async_handler is None:
+ raise ValueError("VertexAI Fine Tuning - async_handler is not initialized")
+
+ response = await self.async_handler.post(
+ headers=headers,
+ url=url,
+ json=request_data, # type: ignore
+ )
+
+ if response.status_code != 200:
+ raise Exception(
+ f"Error creating fine tuning job. Status code: {response.status_code}. Response: {response.text}"
+ )
+
+ response_json = response.json()
+ return response_json
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini/transformation.py
new file mode 100644
index 00000000..d6bafc7c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini/transformation.py
@@ -0,0 +1,479 @@
+"""
+Transformation logic from OpenAI format to Gemini format.
+
+Why separate file? Make it easy to see how transformation works
+"""
+
+import os
+from typing import TYPE_CHECKING, List, Literal, Optional, Tuple, Union, cast
+
+import httpx
+from pydantic import BaseModel
+
+import litellm
+from litellm._logging import verbose_logger
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ convert_to_anthropic_image_obj,
+ convert_to_gemini_tool_call_invoke,
+ convert_to_gemini_tool_call_result,
+ response_schema_prompt,
+)
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
+from litellm.types.files import (
+ get_file_mime_type_for_file_type,
+ get_file_type_from_extension,
+ is_gemini_1_5_accepted_file_type,
+)
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ ChatCompletionAssistantMessage,
+ ChatCompletionImageObject,
+ ChatCompletionTextObject,
+)
+from litellm.types.llms.vertex_ai import *
+from litellm.types.llms.vertex_ai import (
+ GenerationConfig,
+ PartType,
+ RequestBody,
+ SafetSettingsConfig,
+ SystemInstructions,
+ ToolConfig,
+ Tools,
+)
+
+from ..common_utils import (
+ _check_text_in_content,
+ get_supports_response_schema,
+ get_supports_system_message,
+)
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+def _process_gemini_image(image_url: str, format: Optional[str] = None) -> PartType:
+ """
+ Given an image URL, return the appropriate PartType for Gemini
+ """
+
+ try:
+ # GCS URIs
+ if "gs://" in image_url:
+ # Figure out file type
+ extension_with_dot = os.path.splitext(image_url)[-1] # Ex: ".png"
+ extension = extension_with_dot[1:] # Ex: "png"
+
+ if not format:
+ file_type = get_file_type_from_extension(extension)
+
+ # Validate the file type is supported by Gemini
+ if not is_gemini_1_5_accepted_file_type(file_type):
+ raise Exception(f"File type not supported by gemini - {file_type}")
+
+ mime_type = get_file_mime_type_for_file_type(file_type)
+ else:
+ mime_type = format
+ file_data = FileDataType(mime_type=mime_type, file_uri=image_url)
+
+ return PartType(file_data=file_data)
+ elif (
+ "https://" in image_url
+ and (image_type := format or _get_image_mime_type_from_url(image_url))
+ is not None
+ ):
+
+ file_data = FileDataType(file_uri=image_url, mime_type=image_type)
+ return PartType(file_data=file_data)
+ elif "http://" in image_url or "https://" in image_url or "base64" in image_url:
+ # https links for unsupported mime types and base64 images
+ image = convert_to_anthropic_image_obj(image_url, format=format)
+ _blob = BlobType(data=image["data"], mime_type=image["media_type"])
+ return PartType(inline_data=_blob)
+ raise Exception("Invalid image received - {}".format(image_url))
+ except Exception as e:
+ raise e
+
+
+def _get_image_mime_type_from_url(url: str) -> Optional[str]:
+ """
+ Get mime type for common image URLs
+ See gemini mime types: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/image-understanding#image-requirements
+
+ Supported by Gemini:
+ - PNG (`image/png`)
+ - JPEG (`image/jpeg`)
+ - WebP (`image/webp`)
+ Example:
+ url = https://example.com/image.jpg
+ Returns: image/jpeg
+ """
+ url = url.lower()
+ if url.endswith((".jpg", ".jpeg")):
+ return "image/jpeg"
+ elif url.endswith(".png"):
+ return "image/png"
+ elif url.endswith(".webp"):
+ return "image/webp"
+ elif url.endswith(".mp4"):
+ return "video/mp4"
+ elif url.endswith(".pdf"):
+ return "application/pdf"
+ return None
+
+
+def _gemini_convert_messages_with_history( # noqa: PLR0915
+ messages: List[AllMessageValues],
+) -> List[ContentType]:
+ """
+ Converts given messages from OpenAI format to Gemini format
+
+ - Parts must be iterable
+ - Roles must alternate b/w 'user' and 'model' (same as anthropic -> merge consecutive roles)
+ - Please ensure that function response turn comes immediately after a function call turn
+ """
+ user_message_types = {"user", "system"}
+ contents: List[ContentType] = []
+
+ last_message_with_tool_calls = None
+
+ msg_i = 0
+ tool_call_responses = []
+ try:
+ while msg_i < len(messages):
+ user_content: List[PartType] = []
+ init_msg_i = msg_i
+ ## MERGE CONSECUTIVE USER CONTENT ##
+ while (
+ msg_i < len(messages) and messages[msg_i]["role"] in user_message_types
+ ):
+ _message_content = messages[msg_i].get("content")
+ if _message_content is not None and isinstance(_message_content, list):
+ _parts: List[PartType] = []
+ for element in _message_content:
+ if (
+ element["type"] == "text"
+ and "text" in element
+ and len(element["text"]) > 0
+ ):
+ element = cast(ChatCompletionTextObject, element)
+ _part = PartType(text=element["text"])
+ _parts.append(_part)
+ elif element["type"] == "image_url":
+ element = cast(ChatCompletionImageObject, element)
+ img_element = element
+ format: Optional[str] = None
+ if isinstance(img_element["image_url"], dict):
+ image_url = img_element["image_url"]["url"]
+ format = img_element["image_url"].get("format")
+ else:
+ image_url = img_element["image_url"]
+ _part = _process_gemini_image(
+ image_url=image_url, format=format
+ )
+ _parts.append(_part)
+ user_content.extend(_parts)
+ elif (
+ _message_content is not None
+ and isinstance(_message_content, str)
+ and len(_message_content) > 0
+ ):
+ _part = PartType(text=_message_content)
+ user_content.append(_part)
+
+ msg_i += 1
+
+ if user_content:
+ """
+ check that user_content has 'text' parameter.
+ - Known Vertex Error: Unable to submit request because it must have a text parameter.
+ - Relevant Issue: https://github.com/BerriAI/litellm/issues/5515
+ """
+ has_text_in_content = _check_text_in_content(user_content)
+ if has_text_in_content is False:
+ verbose_logger.warning(
+ "No text in user content. Adding a blank text to user content, to ensure Gemini doesn't fail the request. Relevant Issue - https://github.com/BerriAI/litellm/issues/5515"
+ )
+ user_content.append(
+ PartType(text=" ")
+ ) # add a blank text, to ensure Gemini doesn't fail the request.
+ contents.append(ContentType(role="user", parts=user_content))
+ assistant_content = []
+ ## MERGE CONSECUTIVE ASSISTANT CONTENT ##
+ while msg_i < len(messages) and messages[msg_i]["role"] == "assistant":
+ if isinstance(messages[msg_i], BaseModel):
+ msg_dict: Union[ChatCompletionAssistantMessage, dict] = messages[msg_i].model_dump() # type: ignore
+ else:
+ msg_dict = messages[msg_i] # type: ignore
+ assistant_msg = ChatCompletionAssistantMessage(**msg_dict) # type: ignore
+ _message_content = assistant_msg.get("content", None)
+ if _message_content is not None and isinstance(_message_content, list):
+ _parts = []
+ for element in _message_content:
+ if isinstance(element, dict):
+ if element["type"] == "text":
+ _part = PartType(text=element["text"])
+ _parts.append(_part)
+ assistant_content.extend(_parts)
+ elif (
+ _message_content is not None
+ and isinstance(_message_content, str)
+ and _message_content
+ ):
+ assistant_text = _message_content # either string or none
+ assistant_content.append(PartType(text=assistant_text)) # type: ignore
+
+ ## HANDLE ASSISTANT FUNCTION CALL
+ if (
+ assistant_msg.get("tool_calls", []) is not None
+ or assistant_msg.get("function_call") is not None
+ ): # support assistant tool invoke conversion
+ assistant_content.extend(
+ convert_to_gemini_tool_call_invoke(assistant_msg)
+ )
+ last_message_with_tool_calls = assistant_msg
+
+ msg_i += 1
+
+ if assistant_content:
+ contents.append(ContentType(role="model", parts=assistant_content))
+
+ ## APPEND TOOL CALL MESSAGES ##
+ tool_call_message_roles = ["tool", "function"]
+ if (
+ msg_i < len(messages)
+ and messages[msg_i]["role"] in tool_call_message_roles
+ ):
+ _part = convert_to_gemini_tool_call_result(
+ messages[msg_i], last_message_with_tool_calls # type: ignore
+ )
+ msg_i += 1
+ tool_call_responses.append(_part)
+ if msg_i < len(messages) and (
+ messages[msg_i]["role"] not in tool_call_message_roles
+ ):
+ if len(tool_call_responses) > 0:
+ contents.append(ContentType(parts=tool_call_responses))
+ tool_call_responses = []
+
+ if msg_i == init_msg_i: # prevent infinite loops
+ raise Exception(
+ "Invalid Message passed in - {}. File an issue https://github.com/BerriAI/litellm/issues".format(
+ messages[msg_i]
+ )
+ )
+ if len(tool_call_responses) > 0:
+ contents.append(ContentType(parts=tool_call_responses))
+ return contents
+ except Exception as e:
+ raise e
+
+
+def _transform_request_body(
+ messages: List[AllMessageValues],
+ model: str,
+ optional_params: dict,
+ custom_llm_provider: Literal["vertex_ai", "vertex_ai_beta", "gemini"],
+ litellm_params: dict,
+ cached_content: Optional[str],
+) -> RequestBody:
+ """
+ Common transformation logic across sync + async Gemini /generateContent calls.
+ """
+ # Separate system prompt from rest of message
+ supports_system_message = get_supports_system_message(
+ model=model, custom_llm_provider=custom_llm_provider
+ )
+ system_instructions, messages = _transform_system_message(
+ supports_system_message=supports_system_message, messages=messages
+ )
+ # Checks for 'response_schema' support - if passed in
+ if "response_schema" in optional_params:
+ supports_response_schema = get_supports_response_schema(
+ model=model, custom_llm_provider=custom_llm_provider
+ )
+ if supports_response_schema is False:
+ user_response_schema_message = response_schema_prompt(
+ model=model, response_schema=optional_params.get("response_schema") # type: ignore
+ )
+ messages.append({"role": "user", "content": user_response_schema_message})
+ optional_params.pop("response_schema")
+
+ # Check for any 'litellm_param_*' set during optional param mapping
+
+ remove_keys = []
+ for k, v in optional_params.items():
+ if k.startswith("litellm_param_"):
+ litellm_params.update({k: v})
+ remove_keys.append(k)
+
+ optional_params = {k: v for k, v in optional_params.items() if k not in remove_keys}
+
+ try:
+ if custom_llm_provider == "gemini":
+ content = litellm.GoogleAIStudioGeminiConfig()._transform_messages(
+ messages=messages
+ )
+ else:
+ content = litellm.VertexGeminiConfig()._transform_messages(
+ messages=messages
+ )
+ tools: Optional[Tools] = optional_params.pop("tools", None)
+ tool_choice: Optional[ToolConfig] = optional_params.pop("tool_choice", None)
+ safety_settings: Optional[List[SafetSettingsConfig]] = optional_params.pop(
+ "safety_settings", None
+ ) # type: ignore
+ config_fields = GenerationConfig.__annotations__.keys()
+
+ filtered_params = {
+ k: v for k, v in optional_params.items() if k in config_fields
+ }
+
+ generation_config: Optional[GenerationConfig] = GenerationConfig(
+ **filtered_params
+ )
+ data = RequestBody(contents=content)
+ if system_instructions is not None:
+ data["system_instruction"] = system_instructions
+ if tools is not None:
+ data["tools"] = tools
+ if tool_choice is not None:
+ data["toolConfig"] = tool_choice
+ if safety_settings is not None:
+ data["safetySettings"] = safety_settings
+ if generation_config is not None:
+ data["generationConfig"] = generation_config
+ if cached_content is not None:
+ data["cachedContent"] = cached_content
+ except Exception as e:
+ raise e
+
+ return data
+
+
+def sync_transform_request_body(
+ gemini_api_key: Optional[str],
+ messages: List[AllMessageValues],
+ api_base: Optional[str],
+ model: str,
+ client: Optional[HTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ extra_headers: Optional[dict],
+ optional_params: dict,
+ logging_obj: LiteLLMLoggingObj,
+ custom_llm_provider: Literal["vertex_ai", "vertex_ai_beta", "gemini"],
+ litellm_params: dict,
+) -> RequestBody:
+ from ..context_caching.vertex_ai_context_caching import ContextCachingEndpoints
+
+ context_caching_endpoints = ContextCachingEndpoints()
+
+ if gemini_api_key is not None:
+ messages, cached_content = context_caching_endpoints.check_and_create_cache(
+ messages=messages,
+ api_key=gemini_api_key,
+ api_base=api_base,
+ model=model,
+ client=client,
+ timeout=timeout,
+ extra_headers=extra_headers,
+ cached_content=optional_params.pop("cached_content", None),
+ logging_obj=logging_obj,
+ )
+ else: # [TODO] implement context caching for gemini as well
+ cached_content = optional_params.pop("cached_content", None)
+
+ return _transform_request_body(
+ messages=messages,
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ litellm_params=litellm_params,
+ cached_content=cached_content,
+ optional_params=optional_params,
+ )
+
+
+async def async_transform_request_body(
+ gemini_api_key: Optional[str],
+ messages: List[AllMessageValues],
+ api_base: Optional[str],
+ model: str,
+ client: Optional[AsyncHTTPHandler],
+ timeout: Optional[Union[float, httpx.Timeout]],
+ extra_headers: Optional[dict],
+ optional_params: dict,
+ logging_obj: litellm.litellm_core_utils.litellm_logging.Logging, # type: ignore
+ custom_llm_provider: Literal["vertex_ai", "vertex_ai_beta", "gemini"],
+ litellm_params: dict,
+) -> RequestBody:
+ from ..context_caching.vertex_ai_context_caching import ContextCachingEndpoints
+
+ context_caching_endpoints = ContextCachingEndpoints()
+
+ if gemini_api_key is not None:
+ messages, cached_content = (
+ await context_caching_endpoints.async_check_and_create_cache(
+ messages=messages,
+ api_key=gemini_api_key,
+ api_base=api_base,
+ model=model,
+ client=client,
+ timeout=timeout,
+ extra_headers=extra_headers,
+ cached_content=optional_params.pop("cached_content", None),
+ logging_obj=logging_obj,
+ )
+ )
+ else: # [TODO] implement context caching for gemini as well
+ cached_content = optional_params.pop("cached_content", None)
+
+ return _transform_request_body(
+ messages=messages,
+ model=model,
+ custom_llm_provider=custom_llm_provider,
+ litellm_params=litellm_params,
+ cached_content=cached_content,
+ optional_params=optional_params,
+ )
+
+
+def _transform_system_message(
+ supports_system_message: bool, messages: List[AllMessageValues]
+) -> Tuple[Optional[SystemInstructions], List[AllMessageValues]]:
+ """
+ Extracts the system message from the openai message list.
+
+ Converts the system message to Gemini format
+
+ Returns
+ - system_content_blocks: Optional[SystemInstructions] - the system message list in Gemini format.
+ - messages: List[AllMessageValues] - filtered list of messages in OpenAI format (transformed separately)
+ """
+ # Separate system prompt from rest of message
+ system_prompt_indices = []
+ system_content_blocks: List[PartType] = []
+ if supports_system_message is True:
+ for idx, message in enumerate(messages):
+ if message["role"] == "system":
+ _system_content_block: Optional[PartType] = None
+ if isinstance(message["content"], str):
+ _system_content_block = PartType(text=message["content"])
+ elif isinstance(message["content"], list):
+ system_text = ""
+ for content in message["content"]:
+ system_text += content.get("text") or ""
+ _system_content_block = PartType(text=system_text)
+ if _system_content_block is not None:
+ system_content_blocks.append(_system_content_block)
+ system_prompt_indices.append(idx)
+ if len(system_prompt_indices) > 0:
+ for idx in reversed(system_prompt_indices):
+ messages.pop(idx)
+
+ if len(system_content_blocks) > 0:
+ return SystemInstructions(parts=system_content_blocks), messages
+
+ return None, messages
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py
new file mode 100644
index 00000000..9ac1b1ff
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py
@@ -0,0 +1,1495 @@
+# What is this?
+## httpx client for vertex ai calls
+## Initial implementation - covers gemini + image gen calls
+import json
+import uuid
+from copy import deepcopy
+from functools import partial
+from typing import (
+ TYPE_CHECKING,
+ Any,
+ Callable,
+ Dict,
+ List,
+ Literal,
+ Optional,
+ Tuple,
+ Union,
+ cast,
+)
+
+import httpx # type: ignore
+
+import litellm
+import litellm.litellm_core_utils
+import litellm.litellm_core_utils.litellm_logging
+from litellm import verbose_logger
+from litellm.litellm_core_utils.core_helpers import map_finish_reason
+from litellm.llms.base_llm.chat.transformation import BaseConfig, BaseLLMException
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.llms.openai import (
+ AllMessageValues,
+ ChatCompletionResponseMessage,
+ ChatCompletionToolCallChunk,
+ ChatCompletionToolCallFunctionChunk,
+ ChatCompletionToolParamFunctionChunk,
+ ChatCompletionUsageBlock,
+)
+from litellm.types.llms.vertex_ai import (
+ VERTEX_CREDENTIALS_TYPES,
+ Candidates,
+ ContentType,
+ FunctionCallingConfig,
+ FunctionDeclaration,
+ GenerateContentResponseBody,
+ HttpxPartType,
+ LogprobsResult,
+ ToolConfig,
+ Tools,
+)
+from litellm.types.utils import (
+ ChatCompletionTokenLogprob,
+ ChoiceLogprobs,
+ GenericStreamingChunk,
+ PromptTokensDetailsWrapper,
+ TopLogprob,
+ Usage,
+)
+from litellm.utils import CustomStreamWrapper, ModelResponse
+
+from ....utils import _remove_additional_properties, _remove_strict_from_schema
+from ..common_utils import VertexAIError, _build_vertex_schema
+from ..vertex_llm_base import VertexBase
+from .transformation import (
+ _gemini_convert_messages_with_history,
+ async_transform_request_body,
+ sync_transform_request_body,
+)
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+
+ LoggingClass = LiteLLMLoggingObj
+else:
+ LoggingClass = Any
+
+
+class VertexAIBaseConfig:
+ def get_mapped_special_auth_params(self) -> dict:
+ """
+ Common auth params across bedrock/vertex_ai/azure/watsonx
+ """
+ return {"project": "vertex_project", "region_name": "vertex_location"}
+
+ def map_special_auth_params(self, non_default_params: dict, optional_params: dict):
+ mapped_params = self.get_mapped_special_auth_params()
+
+ for param, value in non_default_params.items():
+ if param in mapped_params:
+ optional_params[mapped_params[param]] = value
+ return optional_params
+
+ def get_eu_regions(self) -> List[str]:
+ """
+ Source: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations#available-regions
+ """
+ return [
+ "europe-central2",
+ "europe-north1",
+ "europe-southwest1",
+ "europe-west1",
+ "europe-west2",
+ "europe-west3",
+ "europe-west4",
+ "europe-west6",
+ "europe-west8",
+ "europe-west9",
+ ]
+
+ def get_us_regions(self) -> List[str]:
+ """
+ Source: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations#available-regions
+ """
+ return [
+ "us-central1",
+ "us-east1",
+ "us-east4",
+ "us-east5",
+ "us-south1",
+ "us-west1",
+ "us-west4",
+ "us-west5",
+ ]
+
+
+class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig):
+ """
+ Reference: https://cloud.google.com/vertex-ai/docs/generative-ai/chat/test-chat-prompts
+ Reference: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference
+
+ The class `VertexAIConfig` provides configuration for the VertexAI's API interface. Below are the parameters:
+
+ - `temperature` (float): This controls the degree of randomness in token selection.
+
+ - `max_output_tokens` (integer): This sets the limitation for the maximum amount of token in the text output. In this case, the default value is 256.
+
+ - `top_p` (float): The tokens are selected from the most probable to the least probable until the sum of their probabilities equals the `top_p` value. Default is 0.95.
+
+ - `top_k` (integer): The value of `top_k` determines how many of the most probable tokens are considered in the selection. For example, a `top_k` of 1 means the selected token is the most probable among all tokens. The default value is 40.
+
+ - `response_mime_type` (str): The MIME type of the response. The default value is 'text/plain'.
+
+ - `candidate_count` (int): Number of generated responses to return.
+
+ - `stop_sequences` (List[str]): The set of character sequences (up to 5) that will stop output generation. If specified, the API will stop at the first appearance of a stop sequence. The stop sequence will not be included as part of the response.
+
+ - `frequency_penalty` (float): This parameter is used to penalize the model from repeating the same output. The default value is 0.0.
+
+ - `presence_penalty` (float): This parameter is used to penalize the model from generating the same output as the input. The default value is 0.0.
+
+ - `seed` (int): The seed value is used to help generate the same output for the same input. The default value is None.
+
+ Note: Please make sure to modify the default parameters as required for your use case.
+ """
+
+ temperature: Optional[float] = None
+ max_output_tokens: Optional[int] = None
+ top_p: Optional[float] = None
+ top_k: Optional[int] = None
+ response_mime_type: Optional[str] = None
+ candidate_count: Optional[int] = None
+ stop_sequences: Optional[list] = None
+ frequency_penalty: Optional[float] = None
+ presence_penalty: Optional[float] = None
+ seed: Optional[int] = None
+
+ def __init__(
+ self,
+ temperature: Optional[float] = None,
+ max_output_tokens: Optional[int] = None,
+ top_p: Optional[float] = None,
+ top_k: Optional[int] = None,
+ response_mime_type: Optional[str] = None,
+ candidate_count: Optional[int] = None,
+ stop_sequences: Optional[list] = None,
+ frequency_penalty: Optional[float] = None,
+ presence_penalty: Optional[float] = None,
+ seed: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> List[str]:
+ return [
+ "temperature",
+ "top_p",
+ "max_tokens",
+ "max_completion_tokens",
+ "stream",
+ "tools",
+ "functions",
+ "tool_choice",
+ "response_format",
+ "n",
+ "stop",
+ "frequency_penalty",
+ "presence_penalty",
+ "extra_headers",
+ "seed",
+ "logprobs",
+ ]
+
+ def map_tool_choice_values(
+ self, model: str, tool_choice: Union[str, dict]
+ ) -> Optional[ToolConfig]:
+ if tool_choice == "none":
+ return ToolConfig(functionCallingConfig=FunctionCallingConfig(mode="NONE"))
+ elif tool_choice == "required":
+ return ToolConfig(functionCallingConfig=FunctionCallingConfig(mode="ANY"))
+ elif tool_choice == "auto":
+ return ToolConfig(functionCallingConfig=FunctionCallingConfig(mode="AUTO"))
+ elif isinstance(tool_choice, dict):
+ # only supported for anthropic + mistral models - https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ToolChoice.html
+ name = tool_choice.get("function", {}).get("name", "")
+ return ToolConfig(
+ functionCallingConfig=FunctionCallingConfig(
+ mode="ANY", allowed_function_names=[name]
+ )
+ )
+ else:
+ raise litellm.utils.UnsupportedParamsError(
+ message="VertexAI doesn't support tool_choice={}. Supported tool_choice values=['auto', 'required', json object]. To drop it from the call, set `litellm.drop_params = True.".format(
+ tool_choice
+ ),
+ status_code=400,
+ )
+
+ def _map_function(self, value: List[dict]) -> List[Tools]:
+ gtool_func_declarations = []
+ googleSearch: Optional[dict] = None
+ googleSearchRetrieval: Optional[dict] = None
+ code_execution: Optional[dict] = None
+ # remove 'additionalProperties' from tools
+ value = _remove_additional_properties(value)
+ # remove 'strict' from tools
+ value = _remove_strict_from_schema(value)
+
+ for tool in value:
+ openai_function_object: Optional[ChatCompletionToolParamFunctionChunk] = (
+ None
+ )
+ if "function" in tool: # tools list
+ _openai_function_object = ChatCompletionToolParamFunctionChunk( # type: ignore
+ **tool["function"]
+ )
+
+ if (
+ "parameters" in _openai_function_object
+ and _openai_function_object["parameters"] is not None
+ ): # OPENAI accepts JSON Schema, Google accepts OpenAPI schema.
+ _openai_function_object["parameters"] = _build_vertex_schema(
+ _openai_function_object["parameters"]
+ )
+
+ openai_function_object = _openai_function_object
+
+ elif "name" in tool: # functions list
+ openai_function_object = ChatCompletionToolParamFunctionChunk(**tool) # type: ignore
+
+ # check if grounding
+ if tool.get("googleSearch", None) is not None:
+ googleSearch = tool["googleSearch"]
+ elif tool.get("googleSearchRetrieval", None) is not None:
+ googleSearchRetrieval = tool["googleSearchRetrieval"]
+ elif tool.get("code_execution", None) is not None:
+ code_execution = tool["code_execution"]
+ elif openai_function_object is not None:
+ gtool_func_declaration = FunctionDeclaration(
+ name=openai_function_object["name"],
+ )
+ _description = openai_function_object.get("description", None)
+ _parameters = openai_function_object.get("parameters", None)
+ if _description is not None:
+ gtool_func_declaration["description"] = _description
+ if _parameters is not None:
+ gtool_func_declaration["parameters"] = _parameters
+ gtool_func_declarations.append(gtool_func_declaration)
+ else:
+ # assume it's a provider-specific param
+ verbose_logger.warning(
+ "Invalid tool={}. Use `litellm.set_verbose` or `litellm --detailed_debug` to see raw request."
+ )
+
+ _tools = Tools(
+ function_declarations=gtool_func_declarations,
+ )
+ if googleSearch is not None:
+ _tools["googleSearch"] = googleSearch
+ if googleSearchRetrieval is not None:
+ _tools["googleSearchRetrieval"] = googleSearchRetrieval
+ if code_execution is not None:
+ _tools["code_execution"] = code_execution
+ return [_tools]
+
+ def _map_response_schema(self, value: dict) -> dict:
+ old_schema = deepcopy(value)
+ if isinstance(old_schema, list):
+ for item in old_schema:
+ if isinstance(item, dict):
+ item = _build_vertex_schema(parameters=item)
+ elif isinstance(old_schema, dict):
+ old_schema = _build_vertex_schema(parameters=old_schema)
+ return old_schema
+
+ def map_openai_params(
+ self,
+ non_default_params: Dict,
+ optional_params: Dict,
+ model: str,
+ drop_params: bool,
+ ) -> Dict:
+ for param, value in non_default_params.items():
+ if param == "temperature":
+ optional_params["temperature"] = value
+ if param == "top_p":
+ optional_params["top_p"] = value
+ if (
+ param == "stream" and value is True
+ ): # sending stream = False, can cause it to get passed unchecked and raise issues
+ optional_params["stream"] = value
+ if param == "n":
+ optional_params["candidate_count"] = value
+ if param == "stop":
+ if isinstance(value, str):
+ optional_params["stop_sequences"] = [value]
+ elif isinstance(value, list):
+ optional_params["stop_sequences"] = value
+ if param == "max_tokens" or param == "max_completion_tokens":
+ optional_params["max_output_tokens"] = value
+ if param == "response_format" and isinstance(value, dict): # type: ignore
+ # remove 'additionalProperties' from json schema
+ value = _remove_additional_properties(value)
+ # remove 'strict' from json schema
+ value = _remove_strict_from_schema(value)
+ if value["type"] == "json_object":
+ optional_params["response_mime_type"] = "application/json"
+ elif value["type"] == "text":
+ optional_params["response_mime_type"] = "text/plain"
+ if "response_schema" in value:
+ optional_params["response_mime_type"] = "application/json"
+ optional_params["response_schema"] = value["response_schema"]
+ elif value["type"] == "json_schema": # type: ignore
+ if "json_schema" in value and "schema" in value["json_schema"]: # type: ignore
+ optional_params["response_mime_type"] = "application/json"
+ optional_params["response_schema"] = value["json_schema"]["schema"] # type: ignore
+
+ if "response_schema" in optional_params and isinstance(
+ optional_params["response_schema"], dict
+ ):
+ optional_params["response_schema"] = self._map_response_schema(
+ value=optional_params["response_schema"]
+ )
+ if param == "frequency_penalty":
+ optional_params["frequency_penalty"] = value
+ if param == "presence_penalty":
+ optional_params["presence_penalty"] = value
+ if param == "logprobs":
+ optional_params["responseLogprobs"] = value
+ if (param == "tools" or param == "functions") and isinstance(value, list):
+ optional_params["tools"] = self._map_function(value=value)
+ optional_params["litellm_param_is_function_call"] = (
+ True if param == "functions" else False
+ )
+ if param == "tool_choice" and (
+ isinstance(value, str) or isinstance(value, dict)
+ ):
+ _tool_choice_value = self.map_tool_choice_values(
+ model=model, tool_choice=value # type: ignore
+ )
+ if _tool_choice_value is not None:
+ optional_params["tool_choice"] = _tool_choice_value
+ if param == "seed":
+ optional_params["seed"] = value
+
+ if litellm.vertex_ai_safety_settings is not None:
+ optional_params["safety_settings"] = litellm.vertex_ai_safety_settings
+ return optional_params
+
+ def get_mapped_special_auth_params(self) -> dict:
+ """
+ Common auth params across bedrock/vertex_ai/azure/watsonx
+ """
+ return {"project": "vertex_project", "region_name": "vertex_location"}
+
+ def map_special_auth_params(self, non_default_params: dict, optional_params: dict):
+ mapped_params = self.get_mapped_special_auth_params()
+
+ for param, value in non_default_params.items():
+ if param in mapped_params:
+ optional_params[mapped_params[param]] = value
+ return optional_params
+
+ def get_eu_regions(self) -> List[str]:
+ """
+ Source: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations#available-regions
+ """
+ return [
+ "europe-central2",
+ "europe-north1",
+ "europe-southwest1",
+ "europe-west1",
+ "europe-west2",
+ "europe-west3",
+ "europe-west4",
+ "europe-west6",
+ "europe-west8",
+ "europe-west9",
+ ]
+
+ def get_flagged_finish_reasons(self) -> Dict[str, str]:
+ """
+ Return Dictionary of finish reasons which indicate response was flagged
+
+ and what it means
+ """
+ return {
+ "SAFETY": "The token generation was stopped as the response was flagged for safety reasons. NOTE: When streaming the Candidate.content will be empty if content filters blocked the output.",
+ "RECITATION": "The token generation was stopped as the response was flagged for unauthorized citations.",
+ "BLOCKLIST": "The token generation was stopped as the response was flagged for the terms which are included from the terminology blocklist.",
+ "PROHIBITED_CONTENT": "The token generation was stopped as the response was flagged for the prohibited contents.",
+ "SPII": "The token generation was stopped as the response was flagged for Sensitive Personally Identifiable Information (SPII) contents.",
+ }
+
+ def translate_exception_str(self, exception_string: str):
+ if (
+ "GenerateContentRequest.tools[0].function_declarations[0].parameters.properties: should be non-empty for OBJECT type"
+ in exception_string
+ ):
+ return "'properties' field in tools[0]['function']['parameters'] cannot be empty if 'type' == 'object'. Received error from provider - {}".format(
+ exception_string
+ )
+ return exception_string
+
+ def get_assistant_content_message(
+ self, parts: List[HttpxPartType]
+ ) -> Optional[str]:
+ _content_str = ""
+ for part in parts:
+ if "text" in part:
+ _content_str += part["text"]
+ if _content_str:
+ return _content_str
+ return None
+
+ def _transform_parts(
+ self,
+ parts: List[HttpxPartType],
+ index: int,
+ is_function_call: Optional[bool],
+ ) -> Tuple[
+ Optional[ChatCompletionToolCallFunctionChunk],
+ Optional[List[ChatCompletionToolCallChunk]],
+ ]:
+ function: Optional[ChatCompletionToolCallFunctionChunk] = None
+ _tools: List[ChatCompletionToolCallChunk] = []
+ for part in parts:
+ if "functionCall" in part:
+ _function_chunk = ChatCompletionToolCallFunctionChunk(
+ name=part["functionCall"]["name"],
+ arguments=json.dumps(part["functionCall"]["args"]),
+ )
+ if is_function_call is True:
+ function = _function_chunk
+ else:
+ _tool_response_chunk = ChatCompletionToolCallChunk(
+ id=f"call_{str(uuid.uuid4())}",
+ type="function",
+ function=_function_chunk,
+ index=index,
+ )
+ _tools.append(_tool_response_chunk)
+ if len(_tools) == 0:
+ tools: Optional[List[ChatCompletionToolCallChunk]] = None
+ else:
+ tools = _tools
+ return function, tools
+
+ def _transform_logprobs(
+ self, logprobs_result: Optional[LogprobsResult]
+ ) -> Optional[ChoiceLogprobs]:
+ if logprobs_result is None:
+ return None
+ if "chosenCandidates" not in logprobs_result:
+ return None
+ logprobs_list: List[ChatCompletionTokenLogprob] = []
+ for index, candidate in enumerate(logprobs_result["chosenCandidates"]):
+ top_logprobs: List[TopLogprob] = []
+ if "topCandidates" in logprobs_result and index < len(
+ logprobs_result["topCandidates"]
+ ):
+ top_candidates_for_index = logprobs_result["topCandidates"][index][
+ "candidates"
+ ]
+
+ for options in top_candidates_for_index:
+ top_logprobs.append(
+ TopLogprob(
+ token=options["token"], logprob=options["logProbability"]
+ )
+ )
+ logprobs_list.append(
+ ChatCompletionTokenLogprob(
+ token=candidate["token"],
+ logprob=candidate["logProbability"],
+ top_logprobs=top_logprobs,
+ )
+ )
+ return ChoiceLogprobs(content=logprobs_list)
+
+ def _handle_blocked_response(
+ self,
+ model_response: ModelResponse,
+ completion_response: GenerateContentResponseBody,
+ ) -> ModelResponse:
+ # If set, the prompt was blocked and no candidates are returned. Rephrase your prompt
+ model_response.choices[0].finish_reason = "content_filter"
+
+ chat_completion_message: ChatCompletionResponseMessage = {
+ "role": "assistant",
+ "content": None,
+ }
+
+ choice = litellm.Choices(
+ finish_reason="content_filter",
+ index=0,
+ message=chat_completion_message, # type: ignore
+ logprobs=None,
+ enhancements=None,
+ )
+
+ model_response.choices = [choice]
+
+ ## GET USAGE ##
+ usage = Usage(
+ prompt_tokens=completion_response["usageMetadata"].get(
+ "promptTokenCount", 0
+ ),
+ completion_tokens=completion_response["usageMetadata"].get(
+ "candidatesTokenCount", 0
+ ),
+ total_tokens=completion_response["usageMetadata"].get("totalTokenCount", 0),
+ )
+
+ setattr(model_response, "usage", usage)
+
+ return model_response
+
+ def _handle_content_policy_violation(
+ self,
+ model_response: ModelResponse,
+ completion_response: GenerateContentResponseBody,
+ ) -> ModelResponse:
+ ## CONTENT POLICY VIOLATION ERROR
+ model_response.choices[0].finish_reason = "content_filter"
+
+ _chat_completion_message = {
+ "role": "assistant",
+ "content": None,
+ }
+
+ choice = litellm.Choices(
+ finish_reason="content_filter",
+ index=0,
+ message=_chat_completion_message,
+ logprobs=None,
+ enhancements=None,
+ )
+
+ model_response.choices = [choice]
+
+ ## GET USAGE ##
+ usage = Usage(
+ prompt_tokens=completion_response["usageMetadata"].get(
+ "promptTokenCount", 0
+ ),
+ completion_tokens=completion_response["usageMetadata"].get(
+ "candidatesTokenCount", 0
+ ),
+ total_tokens=completion_response["usageMetadata"].get("totalTokenCount", 0),
+ )
+
+ setattr(model_response, "usage", usage)
+
+ return model_response
+
+ def _calculate_usage(
+ self,
+ completion_response: GenerateContentResponseBody,
+ ) -> Usage:
+ cached_tokens: Optional[int] = None
+ prompt_tokens_details: Optional[PromptTokensDetailsWrapper] = None
+ if "cachedContentTokenCount" in completion_response["usageMetadata"]:
+ cached_tokens = completion_response["usageMetadata"][
+ "cachedContentTokenCount"
+ ]
+
+ if cached_tokens is not None:
+ prompt_tokens_details = PromptTokensDetailsWrapper(
+ cached_tokens=cached_tokens,
+ )
+ ## GET USAGE ##
+ usage = Usage(
+ prompt_tokens=completion_response["usageMetadata"].get(
+ "promptTokenCount", 0
+ ),
+ completion_tokens=completion_response["usageMetadata"].get(
+ "candidatesTokenCount", 0
+ ),
+ total_tokens=completion_response["usageMetadata"].get("totalTokenCount", 0),
+ prompt_tokens_details=prompt_tokens_details,
+ )
+
+ return usage
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LoggingClass,
+ request_data: Dict,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: Dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=raw_response.text,
+ additional_args={"complete_input_dict": request_data},
+ )
+
+ ## RESPONSE OBJECT
+ try:
+ completion_response = GenerateContentResponseBody(**raw_response.json()) # type: ignore
+ except Exception as e:
+ raise VertexAIError(
+ message="Received={}, Error converting to valid response block={}. File an issue if litellm error - https://github.com/BerriAI/litellm/issues".format(
+ raw_response.text, str(e)
+ ),
+ status_code=422,
+ headers=raw_response.headers,
+ )
+
+ ## GET MODEL ##
+ model_response.model = model
+
+ ## CHECK IF RESPONSE FLAGGED
+ if (
+ "promptFeedback" in completion_response
+ and "blockReason" in completion_response["promptFeedback"]
+ ):
+ return self._handle_blocked_response(
+ model_response=model_response,
+ completion_response=completion_response,
+ )
+
+ _candidates = completion_response.get("candidates")
+ if _candidates and len(_candidates) > 0:
+ content_policy_violations = (
+ VertexGeminiConfig().get_flagged_finish_reasons()
+ )
+ if (
+ "finishReason" in _candidates[0]
+ and _candidates[0]["finishReason"] in content_policy_violations.keys()
+ ):
+ return self._handle_content_policy_violation(
+ model_response=model_response,
+ completion_response=completion_response,
+ )
+
+ model_response.choices = [] # type: ignore
+
+ try:
+ ## CHECK IF GROUNDING METADATA IN REQUEST
+ grounding_metadata: List[dict] = []
+ safety_ratings: List = []
+ citation_metadata: List = []
+ ## GET TEXT ##
+ chat_completion_message: ChatCompletionResponseMessage = {
+ "role": "assistant"
+ }
+ chat_completion_logprobs: Optional[ChoiceLogprobs] = None
+ tools: Optional[List[ChatCompletionToolCallChunk]] = []
+ functions: Optional[ChatCompletionToolCallFunctionChunk] = None
+ if _candidates:
+ for idx, candidate in enumerate(_candidates):
+ if "content" not in candidate:
+ continue
+
+ if "groundingMetadata" in candidate:
+ grounding_metadata.append(candidate["groundingMetadata"]) # type: ignore
+
+ if "safetyRatings" in candidate:
+ safety_ratings.append(candidate["safetyRatings"])
+
+ if "citationMetadata" in candidate:
+ citation_metadata.append(candidate["citationMetadata"])
+ if "parts" in candidate["content"]:
+ chat_completion_message[
+ "content"
+ ] = VertexGeminiConfig().get_assistant_content_message(
+ parts=candidate["content"]["parts"]
+ )
+
+ functions, tools = self._transform_parts(
+ parts=candidate["content"]["parts"],
+ index=candidate.get("index", idx),
+ is_function_call=litellm_params.get(
+ "litellm_param_is_function_call"
+ ),
+ )
+
+ if "logprobsResult" in candidate:
+ chat_completion_logprobs = self._transform_logprobs(
+ logprobs_result=candidate["logprobsResult"]
+ )
+
+ if tools:
+ chat_completion_message["tool_calls"] = tools
+
+ if functions is not None:
+ chat_completion_message["function_call"] = functions
+ choice = litellm.Choices(
+ finish_reason=candidate.get("finishReason", "stop"),
+ index=candidate.get("index", idx),
+ message=chat_completion_message, # type: ignore
+ logprobs=chat_completion_logprobs,
+ enhancements=None,
+ )
+
+ model_response.choices.append(choice)
+
+ usage = self._calculate_usage(completion_response=completion_response)
+ setattr(model_response, "usage", usage)
+
+ ## ADD GROUNDING METADATA ##
+ setattr(model_response, "vertex_ai_grounding_metadata", grounding_metadata)
+ model_response._hidden_params[
+ "vertex_ai_grounding_metadata"
+ ] = ( # older approach - maintaining to prevent regressions
+ grounding_metadata
+ )
+
+ ## ADD SAFETY RATINGS ##
+ setattr(model_response, "vertex_ai_safety_results", safety_ratings)
+ model_response._hidden_params["vertex_ai_safety_results"] = (
+ safety_ratings # older approach - maintaining to prevent regressions
+ )
+
+ ## ADD CITATION METADATA ##
+ setattr(model_response, "vertex_ai_citation_metadata", citation_metadata)
+ model_response._hidden_params["vertex_ai_citation_metadata"] = (
+ citation_metadata # older approach - maintaining to prevent regressions
+ )
+
+ except Exception as e:
+ raise VertexAIError(
+ message="Received={}, Error converting to valid response block={}. File an issue if litellm error - https://github.com/BerriAI/litellm/issues".format(
+ completion_response, str(e)
+ ),
+ status_code=422,
+ headers=raw_response.headers,
+ )
+
+ return model_response
+
+ def _transform_messages(
+ self, messages: List[AllMessageValues]
+ ) -> List[ContentType]:
+ return _gemini_convert_messages_with_history(messages=messages)
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[Dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return VertexAIError(
+ message=error_message, status_code=status_code, headers=headers
+ )
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: Dict,
+ headers: Dict,
+ ) -> Dict:
+ raise NotImplementedError(
+ "Vertex AI has a custom implementation of transform_request. Needs sync + async."
+ )
+
+ def validate_environment(
+ self,
+ headers: Optional[Dict],
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> Dict:
+ default_headers = {
+ "Content-Type": "application/json",
+ }
+ if api_key is not None:
+ default_headers["Authorization"] = f"Bearer {api_key}"
+ if headers is not None:
+ default_headers.update(headers)
+
+ return default_headers
+
+
+async def make_call(
+ client: Optional[AsyncHTTPHandler],
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+):
+ if client is None:
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.VERTEX_AI,
+ )
+
+ try:
+ response = await client.post(api_base, headers=headers, data=data, stream=True)
+ response.raise_for_status()
+ except httpx.HTTPStatusError as e:
+ exception_string = str(await e.response.aread())
+ raise VertexAIError(
+ status_code=e.response.status_code,
+ message=VertexGeminiConfig().translate_exception_str(exception_string),
+ headers=e.response.headers,
+ )
+ if response.status_code != 200 and response.status_code != 201:
+ raise VertexAIError(
+ status_code=response.status_code,
+ message=response.text,
+ headers=response.headers,
+ )
+
+ completion_stream = ModelResponseIterator(
+ streaming_response=response.aiter_lines(), sync_stream=False
+ )
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+
+
+def make_sync_call(
+ client: Optional[HTTPHandler], # module-level client
+ gemini_client: Optional[HTTPHandler], # if passed by user
+ api_base: str,
+ headers: dict,
+ data: str,
+ model: str,
+ messages: list,
+ logging_obj,
+):
+ if gemini_client is not None:
+ client = gemini_client
+ if client is None:
+ client = HTTPHandler() # Create a new client if none provided
+
+ response = client.post(api_base, headers=headers, data=data, stream=True)
+
+ if response.status_code != 200 and response.status_code != 201:
+ raise VertexAIError(
+ status_code=response.status_code,
+ message=str(response.read()),
+ headers=response.headers,
+ )
+
+ completion_stream = ModelResponseIterator(
+ streaming_response=response.iter_lines(), sync_stream=True
+ )
+
+ # LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response="first stream response received",
+ additional_args={"complete_input_dict": data},
+ )
+
+ return completion_stream
+
+
+class VertexLLM(VertexBase):
+ def __init__(self) -> None:
+ super().__init__()
+
+ async def async_streaming(
+ self,
+ model: str,
+ custom_llm_provider: Literal[
+ "vertex_ai", "vertex_ai_beta", "gemini"
+ ], # if it's vertex_ai or gemini (google ai studio)
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ data: dict,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ encoding,
+ logging_obj,
+ stream,
+ optional_params: dict,
+ litellm_params=None,
+ logger_fn=None,
+ api_base: Optional[str] = None,
+ client: Optional[AsyncHTTPHandler] = None,
+ vertex_project: Optional[str] = None,
+ vertex_location: Optional[str] = None,
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES] = None,
+ gemini_api_key: Optional[str] = None,
+ extra_headers: Optional[dict] = None,
+ ) -> CustomStreamWrapper:
+ request_body = await async_transform_request_body(**data) # type: ignore
+
+ should_use_v1beta1_features = self.is_using_v1beta1_features(
+ optional_params=optional_params
+ )
+
+ _auth_header, vertex_project = await self._ensure_access_token_async(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider=custom_llm_provider,
+ )
+
+ auth_header, api_base = self._get_token_and_url(
+ model=model,
+ gemini_api_key=gemini_api_key,
+ auth_header=_auth_header,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ stream=stream,
+ custom_llm_provider=custom_llm_provider,
+ api_base=api_base,
+ should_use_v1beta1_features=should_use_v1beta1_features,
+ )
+
+ headers = VertexGeminiConfig().validate_environment(
+ api_key=auth_header,
+ headers=extra_headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ request_body_str = json.dumps(request_body)
+ streaming_response = CustomStreamWrapper(
+ completion_stream=None,
+ make_call=partial(
+ make_call,
+ client=client,
+ api_base=api_base,
+ headers=headers,
+ data=request_body_str,
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ ),
+ model=model,
+ custom_llm_provider="vertex_ai_beta",
+ logging_obj=logging_obj,
+ )
+ return streaming_response
+
+ async def async_completion(
+ self,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ data: dict,
+ custom_llm_provider: Literal[
+ "vertex_ai", "vertex_ai_beta", "gemini"
+ ], # if it's vertex_ai or gemini (google ai studio)
+ timeout: Optional[Union[float, httpx.Timeout]],
+ encoding,
+ logging_obj,
+ stream,
+ optional_params: dict,
+ litellm_params: dict,
+ logger_fn=None,
+ api_base: Optional[str] = None,
+ client: Optional[AsyncHTTPHandler] = None,
+ vertex_project: Optional[str] = None,
+ vertex_location: Optional[str] = None,
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES] = None,
+ gemini_api_key: Optional[str] = None,
+ extra_headers: Optional[dict] = None,
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+ should_use_v1beta1_features = self.is_using_v1beta1_features(
+ optional_params=optional_params
+ )
+
+ _auth_header, vertex_project = await self._ensure_access_token_async(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider=custom_llm_provider,
+ )
+
+ auth_header, api_base = self._get_token_and_url(
+ model=model,
+ gemini_api_key=gemini_api_key,
+ auth_header=_auth_header,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ stream=stream,
+ custom_llm_provider=custom_llm_provider,
+ api_base=api_base,
+ should_use_v1beta1_features=should_use_v1beta1_features,
+ )
+
+ headers = VertexGeminiConfig().validate_environment(
+ api_key=auth_header,
+ headers=extra_headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ )
+
+ request_body = await async_transform_request_body(**data) # type: ignore
+ _async_client_params = {}
+ if timeout:
+ _async_client_params["timeout"] = timeout
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ client = get_async_httpx_client(
+ params=_async_client_params, llm_provider=litellm.LlmProviders.VERTEX_AI
+ )
+ else:
+ client = client # type: ignore
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": request_body,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ try:
+ response = await client.post(
+ api_base, headers=headers, json=cast(dict, request_body)
+ ) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise VertexAIError(
+ status_code=error_code,
+ message=err.response.text,
+ headers=err.response.headers,
+ )
+ except httpx.TimeoutException:
+ raise VertexAIError(
+ status_code=408,
+ message="Timeout error occurred.",
+ headers=None,
+ )
+
+ return VertexGeminiConfig().transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ api_key="",
+ request_data=cast(dict, request_body),
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ encoding=encoding,
+ )
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ custom_llm_provider: Literal[
+ "vertex_ai", "vertex_ai_beta", "gemini"
+ ], # if it's vertex_ai or gemini (google ai studio)
+ encoding,
+ logging_obj,
+ optional_params: dict,
+ acompletion: bool,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ gemini_api_key: Optional[str],
+ litellm_params: dict,
+ logger_fn=None,
+ extra_headers: Optional[dict] = None,
+ client: Optional[Union[AsyncHTTPHandler, HTTPHandler]] = None,
+ api_base: Optional[str] = None,
+ ) -> Union[ModelResponse, CustomStreamWrapper]:
+ stream: Optional[bool] = optional_params.pop("stream", None) # type: ignore
+
+ transform_request_params = {
+ "gemini_api_key": gemini_api_key,
+ "messages": messages,
+ "api_base": api_base,
+ "model": model,
+ "client": client,
+ "timeout": timeout,
+ "extra_headers": extra_headers,
+ "optional_params": optional_params,
+ "logging_obj": logging_obj,
+ "custom_llm_provider": custom_llm_provider,
+ "litellm_params": litellm_params,
+ }
+
+ ### ROUTING (ASYNC, STREAMING, SYNC)
+ if acompletion:
+ ### ASYNC STREAMING
+ if stream is True:
+ return self.async_streaming(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=stream,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ timeout=timeout,
+ client=client, # type: ignore
+ data=transform_request_params,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ gemini_api_key=gemini_api_key,
+ custom_llm_provider=custom_llm_provider,
+ extra_headers=extra_headers,
+ )
+ ### ASYNC COMPLETION
+ return self.async_completion(
+ model=model,
+ messages=messages,
+ data=transform_request_params, # type: ignore
+ api_base=api_base,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ stream=stream,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ timeout=timeout,
+ client=client, # type: ignore
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ gemini_api_key=gemini_api_key,
+ custom_llm_provider=custom_llm_provider,
+ extra_headers=extra_headers,
+ )
+
+ should_use_v1beta1_features = self.is_using_v1beta1_features(
+ optional_params=optional_params
+ )
+
+ _auth_header, vertex_project = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider=custom_llm_provider,
+ )
+
+ auth_header, url = self._get_token_and_url(
+ model=model,
+ gemini_api_key=gemini_api_key,
+ auth_header=_auth_header,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ stream=stream,
+ custom_llm_provider=custom_llm_provider,
+ api_base=api_base,
+ should_use_v1beta1_features=should_use_v1beta1_features,
+ )
+ headers = VertexGeminiConfig().validate_environment(
+ api_key=auth_header,
+ headers=extra_headers,
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ )
+
+ ## TRANSFORMATION ##
+ data = sync_transform_request_body(**transform_request_params)
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=messages,
+ api_key="",
+ additional_args={
+ "complete_input_dict": data,
+ "api_base": url,
+ "headers": headers,
+ },
+ )
+
+ ## SYNC STREAMING CALL ##
+ if stream is True:
+ request_data_str = json.dumps(data)
+ streaming_response = CustomStreamWrapper(
+ completion_stream=None,
+ make_call=partial(
+ make_sync_call,
+ gemini_client=(
+ client
+ if client is not None and isinstance(client, HTTPHandler)
+ else None
+ ),
+ api_base=url,
+ data=request_data_str,
+ model=model,
+ messages=messages,
+ logging_obj=logging_obj,
+ headers=headers,
+ ),
+ model=model,
+ custom_llm_provider="vertex_ai_beta",
+ logging_obj=logging_obj,
+ )
+
+ return streaming_response
+ ## COMPLETION CALL ##
+
+ if client is None or isinstance(client, AsyncHTTPHandler):
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ client = HTTPHandler(**_params) # type: ignore
+ else:
+ client = client
+
+ try:
+ response = client.post(url=url, headers=headers, json=data) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise VertexAIError(
+ status_code=error_code,
+ message=err.response.text,
+ headers=err.response.headers,
+ )
+ except httpx.TimeoutException:
+ raise VertexAIError(
+ status_code=408,
+ message="Timeout error occurred.",
+ headers=None,
+ )
+
+ return VertexGeminiConfig().transform_response(
+ model=model,
+ raw_response=response,
+ model_response=model_response,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ api_key="",
+ request_data=data, # type: ignore
+ messages=messages,
+ encoding=encoding,
+ )
+
+
+class ModelResponseIterator:
+ def __init__(self, streaming_response, sync_stream: bool):
+ self.streaming_response = streaming_response
+ self.chunk_type: Literal["valid_json", "accumulated_json"] = "valid_json"
+ self.accumulated_json = ""
+ self.sent_first_chunk = False
+
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ processed_chunk = GenerateContentResponseBody(**chunk) # type: ignore
+
+ text = ""
+ tool_use: Optional[ChatCompletionToolCallChunk] = None
+ finish_reason = ""
+ usage: Optional[ChatCompletionUsageBlock] = None
+ _candidates: Optional[List[Candidates]] = processed_chunk.get("candidates")
+ gemini_chunk: Optional[Candidates] = None
+ if _candidates and len(_candidates) > 0:
+ gemini_chunk = _candidates[0]
+
+ if (
+ gemini_chunk
+ and "content" in gemini_chunk
+ and "parts" in gemini_chunk["content"]
+ ):
+ if "text" in gemini_chunk["content"]["parts"][0]:
+ text = gemini_chunk["content"]["parts"][0]["text"]
+ elif "functionCall" in gemini_chunk["content"]["parts"][0]:
+ function_call = ChatCompletionToolCallFunctionChunk(
+ name=gemini_chunk["content"]["parts"][0]["functionCall"][
+ "name"
+ ],
+ arguments=json.dumps(
+ gemini_chunk["content"]["parts"][0]["functionCall"]["args"]
+ ),
+ )
+ tool_use = ChatCompletionToolCallChunk(
+ id=str(uuid.uuid4()),
+ type="function",
+ function=function_call,
+ index=0,
+ )
+
+ if gemini_chunk and "finishReason" in gemini_chunk:
+ finish_reason = map_finish_reason(
+ finish_reason=gemini_chunk["finishReason"]
+ )
+ ## DO NOT SET 'is_finished' = True
+ ## GEMINI SETS FINISHREASON ON EVERY CHUNK!
+
+ if "usageMetadata" in processed_chunk:
+ usage = ChatCompletionUsageBlock(
+ prompt_tokens=processed_chunk["usageMetadata"].get(
+ "promptTokenCount", 0
+ ),
+ completion_tokens=processed_chunk["usageMetadata"].get(
+ "candidatesTokenCount", 0
+ ),
+ total_tokens=processed_chunk["usageMetadata"].get(
+ "totalTokenCount", 0
+ ),
+ )
+
+ returned_chunk = GenericStreamingChunk(
+ text=text,
+ tool_use=tool_use,
+ is_finished=False,
+ finish_reason=finish_reason,
+ usage=usage,
+ index=0,
+ )
+ return returned_chunk
+ except json.JSONDecodeError:
+ raise ValueError(f"Failed to decode JSON from chunk: {chunk}")
+
+ # Sync iterator
+ def __iter__(self):
+ self.response_iterator = self.streaming_response
+ return self
+
+ def handle_valid_json_chunk(self, chunk: str) -> GenericStreamingChunk:
+ chunk = chunk.strip()
+ try:
+ json_chunk = json.loads(chunk)
+
+ except json.JSONDecodeError as e:
+ if (
+ self.sent_first_chunk is False
+ ): # only check for accumulated json, on first chunk, else raise error. Prevent real errors from being masked.
+ self.chunk_type = "accumulated_json"
+ return self.handle_accumulated_json_chunk(chunk=chunk)
+ raise e
+
+ if self.sent_first_chunk is False:
+ self.sent_first_chunk = True
+
+ return self.chunk_parser(chunk=json_chunk)
+
+ def handle_accumulated_json_chunk(self, chunk: str) -> GenericStreamingChunk:
+ chunk = litellm.CustomStreamWrapper._strip_sse_data_from_chunk(chunk) or ""
+ message = chunk.replace("\n\n", "")
+
+ # Accumulate JSON data
+ self.accumulated_json += message
+
+ # Try to parse the accumulated JSON
+ try:
+ _data = json.loads(self.accumulated_json)
+ self.accumulated_json = "" # reset after successful parsing
+ return self.chunk_parser(chunk=_data)
+ except json.JSONDecodeError:
+ # If it's not valid JSON yet, continue to the next event
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+
+ def _common_chunk_parsing_logic(self, chunk: str) -> GenericStreamingChunk:
+ try:
+ chunk = litellm.CustomStreamWrapper._strip_sse_data_from_chunk(chunk) or ""
+ if len(chunk) > 0:
+ """
+ Check if initial chunk valid json
+ - if partial json -> enter accumulated json logic
+ - if valid - continue
+ """
+ if self.chunk_type == "valid_json":
+ return self.handle_valid_json_chunk(chunk=chunk)
+ elif self.chunk_type == "accumulated_json":
+ return self.handle_accumulated_json_chunk(chunk=chunk)
+
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="",
+ usage=None,
+ index=0,
+ tool_use=None,
+ )
+ except Exception:
+ raise
+
+ def __next__(self):
+ try:
+ chunk = self.response_iterator.__next__()
+ except StopIteration:
+ if self.chunk_type == "accumulated_json" and self.accumulated_json:
+ return self.handle_accumulated_json_chunk(chunk="")
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ return self._common_chunk_parsing_logic(chunk=chunk)
+ except StopIteration:
+ raise StopIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error parsing chunk: {e},\nReceived chunk: {chunk}")
+
+ # Async iterator
+ def __aiter__(self):
+ self.async_response_iterator = self.streaming_response.__aiter__()
+ return self
+
+ async def __anext__(self):
+ try:
+ chunk = await self.async_response_iterator.__anext__()
+ except StopAsyncIteration:
+ if self.chunk_type == "accumulated_json" and self.accumulated_json:
+ return self.handle_accumulated_json_chunk(chunk="")
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error receiving chunk from stream: {e}")
+
+ try:
+ return self._common_chunk_parsing_logic(chunk=chunk)
+ except StopAsyncIteration:
+ raise StopAsyncIteration
+ except ValueError as e:
+ raise RuntimeError(f"Error parsing chunk: {e},\nReceived chunk: {chunk}")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py
new file mode 100644
index 00000000..0fe5145a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_handler.py
@@ -0,0 +1,182 @@
+"""
+Google AI Studio /batchEmbedContents Embeddings Endpoint
+"""
+
+import json
+from typing import Any, Literal, Optional, Union
+
+import httpx
+
+import litellm
+from litellm import EmbeddingResponse
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.types.llms.openai import EmbeddingInput
+from litellm.types.llms.vertex_ai import (
+ VertexAIBatchEmbeddingsRequestBody,
+ VertexAIBatchEmbeddingsResponseObject,
+)
+
+from ..gemini.vertex_and_google_ai_studio_gemini import VertexLLM
+from .batch_embed_content_transformation import (
+ process_response,
+ transform_openai_input_gemini_content,
+)
+
+
+class GoogleBatchEmbeddings(VertexLLM):
+ def batch_embeddings(
+ self,
+ model: str,
+ input: EmbeddingInput,
+ print_verbose,
+ model_response: EmbeddingResponse,
+ custom_llm_provider: Literal["gemini", "vertex_ai"],
+ optional_params: dict,
+ logging_obj: Any,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ encoding=None,
+ vertex_project=None,
+ vertex_location=None,
+ vertex_credentials=None,
+ aembedding=False,
+ timeout=300,
+ client=None,
+ ) -> EmbeddingResponse:
+
+ _auth_header, vertex_project = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider=custom_llm_provider,
+ )
+
+ auth_header, url = self._get_token_and_url(
+ model=model,
+ auth_header=_auth_header,
+ gemini_api_key=api_key,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ stream=None,
+ custom_llm_provider=custom_llm_provider,
+ api_base=api_base,
+ should_use_v1beta1_features=False,
+ mode="batch_embedding",
+ )
+
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ _httpx_timeout = httpx.Timeout(timeout)
+ _params["timeout"] = _httpx_timeout
+ else:
+ _params["timeout"] = httpx.Timeout(timeout=600.0, connect=5.0)
+
+ sync_handler: HTTPHandler = HTTPHandler(**_params) # type: ignore
+ else:
+ sync_handler = client # type: ignore
+
+ optional_params = optional_params or {}
+
+ ### TRANSFORMATION ###
+ request_data = transform_openai_input_gemini_content(
+ input=input, model=model, optional_params=optional_params
+ )
+
+ headers = {
+ "Content-Type": "application/json; charset=utf-8",
+ }
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key="",
+ additional_args={
+ "complete_input_dict": request_data,
+ "api_base": url,
+ "headers": headers,
+ },
+ )
+
+ if aembedding is True:
+ return self.async_batch_embeddings( # type: ignore
+ model=model,
+ api_base=api_base,
+ url=url,
+ data=request_data,
+ model_response=model_response,
+ timeout=timeout,
+ headers=headers,
+ input=input,
+ )
+
+ response = sync_handler.post(
+ url=url,
+ headers=headers,
+ data=json.dumps(request_data),
+ )
+
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ _json_response = response.json()
+ _predictions = VertexAIBatchEmbeddingsResponseObject(**_json_response) # type: ignore
+
+ return process_response(
+ model=model,
+ model_response=model_response,
+ _predictions=_predictions,
+ input=input,
+ )
+
+ async def async_batch_embeddings(
+ self,
+ model: str,
+ api_base: Optional[str],
+ url: str,
+ data: VertexAIBatchEmbeddingsRequestBody,
+ model_response: EmbeddingResponse,
+ input: EmbeddingInput,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ headers={},
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> EmbeddingResponse:
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ _httpx_timeout = httpx.Timeout(timeout)
+ _params["timeout"] = _httpx_timeout
+ else:
+ _params["timeout"] = httpx.Timeout(timeout=600.0, connect=5.0)
+
+ async_handler: AsyncHTTPHandler = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.VERTEX_AI,
+ params={"timeout": timeout},
+ )
+ else:
+ async_handler = client # type: ignore
+
+ response = await async_handler.post(
+ url=url,
+ headers=headers,
+ data=json.dumps(data),
+ )
+
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ _json_response = response.json()
+ _predictions = VertexAIBatchEmbeddingsResponseObject(**_json_response) # type: ignore
+
+ return process_response(
+ model=model,
+ model_response=model_response,
+ _predictions=_predictions,
+ input=input,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py
new file mode 100644
index 00000000..592dac58
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py
@@ -0,0 +1,74 @@
+"""
+Transformation logic from OpenAI /v1/embeddings format to Google AI Studio /batchEmbedContents format.
+
+Why separate file? Make it easy to see how transformation works
+"""
+
+from typing import List
+
+from litellm import EmbeddingResponse
+from litellm.types.llms.openai import EmbeddingInput
+from litellm.types.llms.vertex_ai import (
+ ContentType,
+ EmbedContentRequest,
+ PartType,
+ VertexAIBatchEmbeddingsRequestBody,
+ VertexAIBatchEmbeddingsResponseObject,
+)
+from litellm.types.utils import Embedding, Usage
+from litellm.utils import get_formatted_prompt, token_counter
+
+
+def transform_openai_input_gemini_content(
+ input: EmbeddingInput, model: str, optional_params: dict
+) -> VertexAIBatchEmbeddingsRequestBody:
+ """
+ The content to embed. Only the parts.text fields will be counted.
+ """
+ gemini_model_name = "models/{}".format(model)
+ requests: List[EmbedContentRequest] = []
+ if isinstance(input, str):
+ request = EmbedContentRequest(
+ model=gemini_model_name,
+ content=ContentType(parts=[PartType(text=input)]),
+ **optional_params
+ )
+ requests.append(request)
+ else:
+ for i in input:
+ request = EmbedContentRequest(
+ model=gemini_model_name,
+ content=ContentType(parts=[PartType(text=i)]),
+ **optional_params
+ )
+ requests.append(request)
+
+ return VertexAIBatchEmbeddingsRequestBody(requests=requests)
+
+
+def process_response(
+ input: EmbeddingInput,
+ model_response: EmbeddingResponse,
+ model: str,
+ _predictions: VertexAIBatchEmbeddingsResponseObject,
+) -> EmbeddingResponse:
+
+ openai_embeddings: List[Embedding] = []
+ for embedding in _predictions["embeddings"]:
+ openai_embedding = Embedding(
+ embedding=embedding["values"],
+ index=0,
+ object="embedding",
+ )
+ openai_embeddings.append(openai_embedding)
+
+ model_response.data = openai_embeddings
+ model_response.model = model
+
+ input_text = get_formatted_prompt(data={"input": input}, call_type="embedding")
+ prompt_tokens = token_counter(model=model, text=input_text)
+ model_response.usage = Usage(
+ prompt_tokens=prompt_tokens, total_tokens=prompt_tokens
+ )
+
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/image_generation/cost_calculator.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/image_generation/cost_calculator.py
new file mode 100644
index 00000000..2ba18c09
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/image_generation/cost_calculator.py
@@ -0,0 +1,23 @@
+"""
+Vertex AI Image Generation Cost Calculator
+"""
+
+import litellm
+from litellm.types.utils import ImageResponse
+
+
+def cost_calculator(
+ model: str,
+ image_response: ImageResponse,
+) -> float:
+ """
+ Vertex AI Image Generation Cost Calculator
+ """
+ _model_info = litellm.get_model_info(
+ model=model,
+ custom_llm_provider="vertex_ai",
+ )
+
+ output_cost_per_image: float = _model_info.get("output_cost_per_image") or 0.0
+ num_images: int = len(image_response.data)
+ return output_cost_per_image * num_images
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/image_generation/image_generation_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/image_generation/image_generation_handler.py
new file mode 100644
index 00000000..1d5322c0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/image_generation/image_generation_handler.py
@@ -0,0 +1,236 @@
+import json
+from typing import Any, Dict, List, Optional
+
+import httpx
+from openai.types.image import Image
+
+import litellm
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import VertexLLM
+from litellm.types.llms.vertex_ai import VERTEX_CREDENTIALS_TYPES
+from litellm.types.utils import ImageResponse
+
+
+class VertexImageGeneration(VertexLLM):
+ def process_image_generation_response(
+ self,
+ json_response: Dict[str, Any],
+ model_response: ImageResponse,
+ model: Optional[str] = None,
+ ) -> ImageResponse:
+ if "predictions" not in json_response:
+ raise litellm.InternalServerError(
+ message=f"image generation response does not contain 'predictions', got {json_response}",
+ llm_provider="vertex_ai",
+ model=model,
+ )
+
+ predictions = json_response["predictions"]
+ response_data: List[Image] = []
+
+ for prediction in predictions:
+ bytes_base64_encoded = prediction["bytesBase64Encoded"]
+ image_object = Image(b64_json=bytes_base64_encoded)
+ response_data.append(image_object)
+
+ model_response.data = response_data
+ return model_response
+
+ def image_generation(
+ self,
+ prompt: str,
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ model_response: ImageResponse,
+ logging_obj: Any,
+ model: Optional[
+ str
+ ] = "imagegeneration", # vertex ai uses imagegeneration as the default model
+ client: Optional[Any] = None,
+ optional_params: Optional[dict] = None,
+ timeout: Optional[int] = None,
+ aimg_generation=False,
+ ) -> ImageResponse:
+ if aimg_generation is True:
+ return self.aimage_generation( # type: ignore
+ prompt=prompt,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ model=model,
+ client=client,
+ optional_params=optional_params,
+ timeout=timeout,
+ logging_obj=logging_obj,
+ model_response=model_response,
+ )
+
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ _httpx_timeout = httpx.Timeout(timeout)
+ _params["timeout"] = _httpx_timeout
+ else:
+ _params["timeout"] = httpx.Timeout(timeout=600.0, connect=5.0)
+
+ sync_handler: HTTPHandler = HTTPHandler(**_params) # type: ignore
+ else:
+ sync_handler = client # type: ignore
+
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/publishers/google/models/{model}:predict"
+
+ auth_header, _ = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai",
+ )
+ optional_params = optional_params or {
+ "sampleCount": 1
+ } # default optional params
+
+ request_data = {
+ "instances": [{"prompt": prompt}],
+ "parameters": optional_params,
+ }
+
+ request_str = f"\n curl -X POST \\\n -H \"Authorization: Bearer {auth_header[:10] + 'XXXXXXXXXX'}\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n -d {request_data} \\\n \"{url}\""
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+
+ response = sync_handler.post(
+ url=url,
+ headers={
+ "Content-Type": "application/json; charset=utf-8",
+ "Authorization": f"Bearer {auth_header}",
+ },
+ data=json.dumps(request_data),
+ )
+
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ json_response = response.json()
+ return self.process_image_generation_response(
+ json_response, model_response, model
+ )
+
+ async def aimage_generation(
+ self,
+ prompt: str,
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ model_response: litellm.ImageResponse,
+ logging_obj: Any,
+ model: Optional[
+ str
+ ] = "imagegeneration", # vertex ai uses imagegeneration as the default model
+ client: Optional[AsyncHTTPHandler] = None,
+ optional_params: Optional[dict] = None,
+ timeout: Optional[int] = None,
+ ):
+ response = None
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ _httpx_timeout = httpx.Timeout(timeout)
+ _params["timeout"] = _httpx_timeout
+ else:
+ _params["timeout"] = httpx.Timeout(timeout=600.0, connect=5.0)
+
+ self.async_handler = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.VERTEX_AI,
+ params={"timeout": timeout},
+ )
+ else:
+ self.async_handler = client # type: ignore
+
+ # make POST request to
+ # https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagegeneration:predict
+ url = f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/publishers/google/models/{model}:predict"
+
+ """
+ Docs link: https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/imagegeneration?project=adroit-crow-413218
+ curl -X POST \
+ -H "Authorization: Bearer $(gcloud auth print-access-token)" \
+ -H "Content-Type: application/json; charset=utf-8" \
+ -d {
+ "instances": [
+ {
+ "prompt": "a cat"
+ }
+ ],
+ "parameters": {
+ "sampleCount": 1
+ }
+ } \
+ "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagegeneration:predict"
+ """
+ auth_header, _ = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai",
+ )
+ optional_params = optional_params or {
+ "sampleCount": 1
+ } # default optional params
+
+ request_data = {
+ "instances": [{"prompt": prompt}],
+ "parameters": optional_params,
+ }
+
+ request_str = f"\n curl -X POST \\\n -H \"Authorization: Bearer {auth_header[:10] + 'XXXXXXXXXX'}\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n -d {request_data} \\\n \"{url}\""
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+
+ response = await self.async_handler.post(
+ url=url,
+ headers={
+ "Content-Type": "application/json; charset=utf-8",
+ "Authorization": f"Bearer {auth_header}",
+ },
+ data=json.dumps(request_data),
+ )
+
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ json_response = response.json()
+ return self.process_image_generation_response(
+ json_response, model_response, model
+ )
+
+ def is_image_generation_response(self, json_response: Dict[str, Any]) -> bool:
+ if "predictions" in json_response:
+ if "bytesBase64Encoded" in json_response["predictions"][0]:
+ return True
+ return False
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/multimodal_embeddings/embedding_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/multimodal_embeddings/embedding_handler.py
new file mode 100644
index 00000000..f63d1ce1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/multimodal_embeddings/embedding_handler.py
@@ -0,0 +1,294 @@
+import json
+from typing import List, Literal, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ get_async_httpx_client,
+)
+from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import (
+ VertexAIError,
+ VertexLLM,
+)
+from litellm.types.llms.vertex_ai import (
+ Instance,
+ InstanceImage,
+ InstanceVideo,
+ MultimodalPredictions,
+ VertexMultimodalEmbeddingRequest,
+)
+from litellm.types.utils import Embedding, EmbeddingResponse
+from litellm.utils import is_base64_encoded
+
+
+class VertexMultimodalEmbedding(VertexLLM):
+ def __init__(self) -> None:
+ super().__init__()
+ self.SUPPORTED_MULTIMODAL_EMBEDDING_MODELS = [
+ "multimodalembedding",
+ "multimodalembedding@001",
+ ]
+
+ def multimodal_embedding(
+ self,
+ model: str,
+ input: Union[list, str],
+ print_verbose,
+ model_response: EmbeddingResponse,
+ custom_llm_provider: Literal["gemini", "vertex_ai"],
+ optional_params: dict,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ encoding=None,
+ vertex_project=None,
+ vertex_location=None,
+ vertex_credentials=None,
+ aembedding=False,
+ timeout=300,
+ client=None,
+ ) -> EmbeddingResponse:
+
+ _auth_header, vertex_project = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider=custom_llm_provider,
+ )
+
+ auth_header, url = self._get_token_and_url(
+ model=model,
+ auth_header=_auth_header,
+ gemini_api_key=api_key,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ stream=None,
+ custom_llm_provider=custom_llm_provider,
+ api_base=api_base,
+ should_use_v1beta1_features=False,
+ mode="embedding",
+ )
+
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ _httpx_timeout = httpx.Timeout(timeout)
+ _params["timeout"] = _httpx_timeout
+ else:
+ _params["timeout"] = httpx.Timeout(timeout=600.0, connect=5.0)
+
+ sync_handler: HTTPHandler = HTTPHandler(**_params) # type: ignore
+ else:
+ sync_handler = client # type: ignore
+
+ optional_params = optional_params or {}
+
+ request_data = VertexMultimodalEmbeddingRequest()
+
+ if "instances" in optional_params:
+ request_data["instances"] = optional_params["instances"]
+ elif isinstance(input, list):
+ vertex_instances: List[Instance] = self.process_openai_embedding_input(
+ _input=input
+ )
+ request_data["instances"] = vertex_instances
+
+ else:
+ # construct instances
+ vertex_request_instance = Instance(**optional_params)
+
+ if isinstance(input, str):
+ vertex_request_instance = self._process_input_element(input)
+
+ request_data["instances"] = [vertex_request_instance]
+
+ headers = {
+ "Content-Type": "application/json; charset=utf-8",
+ "Authorization": f"Bearer {auth_header}",
+ }
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=input,
+ api_key="",
+ additional_args={
+ "complete_input_dict": request_data,
+ "api_base": url,
+ "headers": headers,
+ },
+ )
+
+ if aembedding is True:
+ return self.async_multimodal_embedding( # type: ignore
+ model=model,
+ api_base=url,
+ data=request_data,
+ timeout=timeout,
+ headers=headers,
+ client=client,
+ model_response=model_response,
+ )
+
+ response = sync_handler.post(
+ url=url,
+ headers=headers,
+ data=json.dumps(request_data),
+ )
+
+ if response.status_code != 200:
+ raise Exception(f"Error: {response.status_code} {response.text}")
+
+ _json_response = response.json()
+ if "predictions" not in _json_response:
+ raise litellm.InternalServerError(
+ message=f"embedding response does not contain 'predictions', got {_json_response}",
+ llm_provider="vertex_ai",
+ model=model,
+ )
+ _predictions = _json_response["predictions"]
+ vertex_predictions = MultimodalPredictions(predictions=_predictions)
+ model_response.data = self.transform_embedding_response_to_openai(
+ predictions=vertex_predictions
+ )
+ model_response.model = model
+
+ return model_response
+
+ async def async_multimodal_embedding(
+ self,
+ model: str,
+ api_base: str,
+ data: VertexMultimodalEmbeddingRequest,
+ model_response: litellm.EmbeddingResponse,
+ timeout: Optional[Union[float, httpx.Timeout]],
+ headers={},
+ client: Optional[AsyncHTTPHandler] = None,
+ ) -> litellm.EmbeddingResponse:
+ if client is None:
+ _params = {}
+ if timeout is not None:
+ if isinstance(timeout, float) or isinstance(timeout, int):
+ timeout = httpx.Timeout(timeout)
+ _params["timeout"] = timeout
+ client = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.VERTEX_AI,
+ params={"timeout": timeout},
+ )
+ else:
+ client = client # type: ignore
+
+ try:
+ response = await client.post(api_base, headers=headers, json=data) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise VertexAIError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise VertexAIError(status_code=408, message="Timeout error occurred.")
+
+ _json_response = response.json()
+ if "predictions" not in _json_response:
+ raise litellm.InternalServerError(
+ message=f"embedding response does not contain 'predictions', got {_json_response}",
+ llm_provider="vertex_ai",
+ model=model,
+ )
+ _predictions = _json_response["predictions"]
+
+ vertex_predictions = MultimodalPredictions(predictions=_predictions)
+ model_response.data = self.transform_embedding_response_to_openai(
+ predictions=vertex_predictions
+ )
+ model_response.model = model
+
+ return model_response
+
+ def _process_input_element(self, input_element: str) -> Instance:
+ """
+ Process the input element for multimodal embedding requests. checks if the if the input is gcs uri, base64 encoded image or plain text.
+
+ Args:
+ input_element (str): The input element to process.
+
+ Returns:
+ Dict[str, Any]: A dictionary representing the processed input element.
+ """
+ if len(input_element) == 0:
+ return Instance(text=input_element)
+ elif "gs://" in input_element:
+ if "mp4" in input_element:
+ return Instance(video=InstanceVideo(gcsUri=input_element))
+ else:
+ return Instance(image=InstanceImage(gcsUri=input_element))
+ elif is_base64_encoded(s=input_element):
+ return Instance(image=InstanceImage(bytesBase64Encoded=input_element))
+ else:
+ return Instance(text=input_element)
+
+ def process_openai_embedding_input(
+ self, _input: Union[list, str]
+ ) -> List[Instance]:
+ """
+ Process the input for multimodal embedding requests.
+
+ Args:
+ _input (Union[list, str]): The input data to process.
+
+ Returns:
+ List[Instance]: A list of processed VertexAI Instance objects.
+ """
+
+ _input_list = None
+ if not isinstance(_input, list):
+ _input_list = [_input]
+ else:
+ _input_list = _input
+
+ processed_instances = []
+ for element in _input_list:
+ if isinstance(element, str):
+ instance = Instance(**self._process_input_element(element))
+ elif isinstance(element, dict):
+ instance = Instance(**element)
+ else:
+ raise ValueError(f"Unsupported input type: {type(element)}")
+ processed_instances.append(instance)
+
+ return processed_instances
+
+ def transform_embedding_response_to_openai(
+ self, predictions: MultimodalPredictions
+ ) -> List[Embedding]:
+
+ openai_embeddings: List[Embedding] = []
+ if "predictions" in predictions:
+ for idx, _prediction in enumerate(predictions["predictions"]):
+ if _prediction:
+ if "textEmbedding" in _prediction:
+ openai_embedding_object = Embedding(
+ embedding=_prediction["textEmbedding"],
+ index=idx,
+ object="embedding",
+ )
+ openai_embeddings.append(openai_embedding_object)
+ elif "imageEmbedding" in _prediction:
+ openai_embedding_object = Embedding(
+ embedding=_prediction["imageEmbedding"],
+ index=idx,
+ object="embedding",
+ )
+ openai_embeddings.append(openai_embedding_object)
+ elif "videoEmbeddings" in _prediction:
+ for video_embedding in _prediction["videoEmbeddings"]:
+ openai_embedding_object = Embedding(
+ embedding=video_embedding["embedding"],
+ index=idx,
+ object="embedding",
+ )
+ openai_embeddings.append(openai_embedding_object)
+ return openai_embeddings
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py
new file mode 100644
index 00000000..18bc72db
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py
@@ -0,0 +1,243 @@
+from typing import Optional, TypedDict, Union
+
+import httpx
+
+import litellm
+from litellm.llms.custom_httpx.http_handler import (
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.llms.openai.openai import HttpxBinaryResponseContent
+from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import VertexLLM
+from litellm.types.llms.vertex_ai import VERTEX_CREDENTIALS_TYPES
+
+
+class VertexInput(TypedDict, total=False):
+ text: Optional[str]
+ ssml: Optional[str]
+
+
+class VertexVoice(TypedDict, total=False):
+ languageCode: str
+ name: str
+
+
+class VertexAudioConfig(TypedDict, total=False):
+ audioEncoding: str
+ speakingRate: str
+
+
+class VertexTextToSpeechRequest(TypedDict, total=False):
+ input: VertexInput
+ voice: VertexVoice
+ audioConfig: Optional[VertexAudioConfig]
+
+
+class VertexTextToSpeechAPI(VertexLLM):
+ """
+ Vertex methods to support for batches
+ """
+
+ def __init__(self) -> None:
+ super().__init__()
+
+ def audio_speech(
+ self,
+ logging_obj,
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ api_base: Optional[str],
+ timeout: Union[float, httpx.Timeout],
+ model: str,
+ input: str,
+ voice: Optional[dict] = None,
+ _is_async: Optional[bool] = False,
+ optional_params: Optional[dict] = None,
+ kwargs: Optional[dict] = None,
+ ) -> HttpxBinaryResponseContent:
+ import base64
+
+ ####### Authenticate with Vertex AI ########
+ _auth_header, vertex_project = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai_beta",
+ )
+
+ auth_header, _ = self._get_token_and_url(
+ model="",
+ auth_header=_auth_header,
+ gemini_api_key=None,
+ vertex_credentials=vertex_credentials,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ stream=False,
+ custom_llm_provider="vertex_ai_beta",
+ api_base=api_base,
+ )
+
+ headers = {
+ "Authorization": f"Bearer {auth_header}",
+ "x-goog-user-project": vertex_project,
+ "Content-Type": "application/json",
+ "charset": "UTF-8",
+ }
+
+ ######### End of Authentication ###########
+
+ ####### Build the request ################
+ # API Ref: https://cloud.google.com/text-to-speech/docs/reference/rest/v1/text/synthesize
+ kwargs = kwargs or {}
+ optional_params = optional_params or {}
+
+ vertex_input = VertexInput(text=input)
+ validate_vertex_input(vertex_input, kwargs, optional_params)
+
+ # required param
+ if voice is not None:
+ vertex_voice = VertexVoice(**voice)
+ elif "voice" in kwargs:
+ vertex_voice = VertexVoice(**kwargs["voice"])
+ else:
+ # use defaults to not fail the request
+ vertex_voice = VertexVoice(
+ languageCode="en-US",
+ name="en-US-Studio-O",
+ )
+
+ if "audioConfig" in kwargs:
+ vertex_audio_config = VertexAudioConfig(**kwargs["audioConfig"])
+ else:
+ # use defaults to not fail the request
+ vertex_audio_config = VertexAudioConfig(
+ audioEncoding="LINEAR16",
+ speakingRate="1",
+ )
+
+ request = VertexTextToSpeechRequest(
+ input=vertex_input,
+ voice=vertex_voice,
+ audioConfig=vertex_audio_config,
+ )
+
+ url = "https://texttospeech.googleapis.com/v1/text:synthesize"
+ ########## End of building request ############
+
+ ########## Log the request for debugging / logging ############
+ logging_obj.pre_call(
+ input=[],
+ api_key="",
+ additional_args={
+ "complete_input_dict": request,
+ "api_base": url,
+ "headers": headers,
+ },
+ )
+
+ ########## End of logging ############
+ ####### Send the request ###################
+ if _is_async is True:
+ return self.async_audio_speech( # type:ignore
+ logging_obj=logging_obj, url=url, headers=headers, request=request
+ )
+ sync_handler = _get_httpx_client()
+
+ response = sync_handler.post(
+ url=url,
+ headers=headers,
+ json=request, # type: ignore
+ )
+ if response.status_code != 200:
+ raise Exception(
+ f"Request failed with status code {response.status_code}, {response.text}"
+ )
+ ############ Process the response ############
+ _json_response = response.json()
+
+ response_content = _json_response["audioContent"]
+
+ # Decode base64 to get binary content
+ binary_data = base64.b64decode(response_content)
+
+ # Create an httpx.Response object
+ response = httpx.Response(
+ status_code=200,
+ content=binary_data,
+ )
+
+ # Initialize the HttpxBinaryResponseContent instance
+ http_binary_response = HttpxBinaryResponseContent(response)
+ return http_binary_response
+
+ async def async_audio_speech(
+ self,
+ logging_obj,
+ url: str,
+ headers: dict,
+ request: VertexTextToSpeechRequest,
+ ) -> HttpxBinaryResponseContent:
+ import base64
+
+ async_handler = get_async_httpx_client(
+ llm_provider=litellm.LlmProviders.VERTEX_AI
+ )
+
+ response = await async_handler.post(
+ url=url,
+ headers=headers,
+ json=request, # type: ignore
+ )
+
+ if response.status_code != 200:
+ raise Exception(
+ f"Request did not return a 200 status code: {response.status_code}, {response.text}"
+ )
+
+ _json_response = response.json()
+
+ response_content = _json_response["audioContent"]
+
+ # Decode base64 to get binary content
+ binary_data = base64.b64decode(response_content)
+
+ # Create an httpx.Response object
+ response = httpx.Response(
+ status_code=200,
+ content=binary_data,
+ )
+
+ # Initialize the HttpxBinaryResponseContent instance
+ http_binary_response = HttpxBinaryResponseContent(response)
+ return http_binary_response
+
+
+def validate_vertex_input(
+ input_data: VertexInput, kwargs: dict, optional_params: dict
+) -> None:
+ # Remove None values
+ if input_data.get("text") is None:
+ input_data.pop("text", None)
+ if input_data.get("ssml") is None:
+ input_data.pop("ssml", None)
+
+ # Check if use_ssml is set
+ use_ssml = kwargs.get("use_ssml", optional_params.get("use_ssml", False))
+
+ if use_ssml:
+ if "text" in input_data:
+ input_data["ssml"] = input_data.pop("text")
+ elif "ssml" not in input_data:
+ raise ValueError("SSML input is required when use_ssml is True.")
+ else:
+ # LiteLLM will auto-detect if text is in ssml format
+ # check if "text" is an ssml - in this case we should pass it as ssml instead of text
+ if input_data:
+ _text = input_data.get("text", None) or ""
+ if "<speak>" in _text:
+ input_data["ssml"] = input_data.pop("text")
+
+ if not input_data:
+ raise ValueError("Either 'text' or 'ssml' must be provided.")
+ if "text" in input_data and "ssml" in input_data:
+ raise ValueError("Only one of 'text' or 'ssml' should be provided, not both.")
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_non_gemini.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_non_gemini.py
new file mode 100644
index 00000000..744e1eb3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_non_gemini.py
@@ -0,0 +1,784 @@
+import json
+import os
+import time
+from typing import Any, Callable, Optional, cast
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.core_helpers import map_finish_reason
+from litellm.llms.bedrock.common_utils import ModelResponseIterator
+from litellm.llms.custom_httpx.http_handler import _DEFAULT_TTL_FOR_HTTPX_CLIENTS
+from litellm.types.llms.vertex_ai import *
+from litellm.utils import CustomStreamWrapper, ModelResponse, Usage
+
+
+class VertexAIError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url=" https://cloud.google.com/vertex-ai/"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class TextStreamer:
+ """
+ Fake streaming iterator for Vertex AI Model Garden calls
+ """
+
+ def __init__(self, text):
+ self.text = text.split() # let's assume words as a streaming unit
+ self.index = 0
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ if self.index < len(self.text):
+ result = self.text[self.index]
+ self.index += 1
+ return result
+ else:
+ raise StopIteration
+
+ def __aiter__(self):
+ return self
+
+ async def __anext__(self):
+ if self.index < len(self.text):
+ result = self.text[self.index]
+ self.index += 1
+ return result
+ else:
+ raise StopAsyncIteration # once we run out of data to stream, we raise this error
+
+
+def _get_client_cache_key(
+ model: str, vertex_project: Optional[str], vertex_location: Optional[str]
+):
+ _cache_key = f"{model}-{vertex_project}-{vertex_location}"
+ return _cache_key
+
+
+def _get_client_from_cache(client_cache_key: str):
+ return litellm.in_memory_llm_clients_cache.get_cache(client_cache_key)
+
+
+def _set_client_in_cache(client_cache_key: str, vertex_llm_model: Any):
+ litellm.in_memory_llm_clients_cache.set_cache(
+ key=client_cache_key,
+ value=vertex_llm_model,
+ ttl=_DEFAULT_TTL_FOR_HTTPX_CLIENTS,
+ )
+
+
+def completion( # noqa: PLR0915
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ optional_params: dict,
+ vertex_project=None,
+ vertex_location=None,
+ vertex_credentials=None,
+ litellm_params=None,
+ logger_fn=None,
+ acompletion: bool = False,
+):
+ """
+ NON-GEMINI/ANTHROPIC CALLS.
+
+ This is the handler for OLDER PALM MODELS and VERTEX AI MODEL GARDEN
+
+ For Vertex AI Anthropic: `vertex_anthropic.py`
+ For Gemini: `vertex_httpx.py`
+ """
+ try:
+ import vertexai
+ except Exception:
+ raise VertexAIError(
+ status_code=400,
+ message="vertexai import failed please run `pip install google-cloud-aiplatform`. This is required for the 'vertex_ai/' route on LiteLLM",
+ )
+
+ if not (
+ hasattr(vertexai, "preview") or hasattr(vertexai.preview, "language_models")
+ ):
+ raise VertexAIError(
+ status_code=400,
+ message="""Upgrade vertex ai. Run `pip install "google-cloud-aiplatform>=1.38"`""",
+ )
+ try:
+ import google.auth # type: ignore
+ from google.cloud import aiplatform # type: ignore
+ from google.cloud.aiplatform_v1beta1.types import (
+ content as gapic_content_types, # type: ignore
+ )
+ from google.protobuf import json_format # type: ignore
+ from google.protobuf.struct_pb2 import Value # type: ignore
+ from vertexai.language_models import CodeGenerationModel, TextGenerationModel
+ from vertexai.preview.generative_models import GenerativeModel
+ from vertexai.preview.language_models import ChatModel, CodeChatModel
+
+ ## Load credentials with the correct quota project ref: https://github.com/googleapis/python-aiplatform/issues/2557#issuecomment-1709284744
+ print_verbose(
+ f"VERTEX AI: vertex_project={vertex_project}; vertex_location={vertex_location}"
+ )
+
+ _cache_key = _get_client_cache_key(
+ model=model, vertex_project=vertex_project, vertex_location=vertex_location
+ )
+ _vertex_llm_model_object = _get_client_from_cache(client_cache_key=_cache_key)
+
+ if _vertex_llm_model_object is None:
+ from google.auth.credentials import Credentials
+
+ if vertex_credentials is not None and isinstance(vertex_credentials, str):
+ import google.oauth2.service_account
+
+ json_obj = json.loads(vertex_credentials)
+
+ creds = (
+ google.oauth2.service_account.Credentials.from_service_account_info(
+ json_obj,
+ scopes=["https://www.googleapis.com/auth/cloud-platform"],
+ )
+ )
+ else:
+ creds, _ = google.auth.default(quota_project_id=vertex_project)
+ print_verbose(
+ f"VERTEX AI: creds={creds}; google application credentials: {os.getenv('GOOGLE_APPLICATION_CREDENTIALS')}"
+ )
+ vertexai.init(
+ project=vertex_project,
+ location=vertex_location,
+ credentials=cast(Credentials, creds),
+ )
+
+ ## Load Config
+ config = litellm.VertexAIConfig.get_config()
+ for k, v in config.items():
+ if k not in optional_params:
+ optional_params[k] = v
+
+ ## Process safety settings into format expected by vertex AI
+ safety_settings = None
+ if "safety_settings" in optional_params:
+ safety_settings = optional_params.pop("safety_settings")
+ if not isinstance(safety_settings, list):
+ raise ValueError("safety_settings must be a list")
+ if len(safety_settings) > 0 and not isinstance(safety_settings[0], dict):
+ raise ValueError("safety_settings must be a list of dicts")
+ safety_settings = [
+ gapic_content_types.SafetySetting(x) for x in safety_settings
+ ]
+
+ # vertexai does not use an API key, it looks for credentials.json in the environment
+
+ prompt = " ".join(
+ [
+ message.get("content")
+ for message in messages
+ if isinstance(message.get("content", None), str)
+ ]
+ )
+
+ mode = ""
+
+ request_str = ""
+ response_obj = None
+ instances = None
+ client_options = {
+ "api_endpoint": f"{vertex_location}-aiplatform.googleapis.com"
+ }
+ fake_stream = False
+ if (
+ model in litellm.vertex_language_models
+ or model in litellm.vertex_vision_models
+ ):
+ llm_model: Any = _vertex_llm_model_object or GenerativeModel(model)
+ mode = "vision"
+ request_str += f"llm_model = GenerativeModel({model})\n"
+ elif model in litellm.vertex_chat_models:
+ llm_model = _vertex_llm_model_object or ChatModel.from_pretrained(model)
+ mode = "chat"
+ request_str += f"llm_model = ChatModel.from_pretrained({model})\n"
+ elif model in litellm.vertex_text_models:
+ llm_model = _vertex_llm_model_object or TextGenerationModel.from_pretrained(
+ model
+ )
+ mode = "text"
+ request_str += f"llm_model = TextGenerationModel.from_pretrained({model})\n"
+ elif model in litellm.vertex_code_text_models:
+ llm_model = _vertex_llm_model_object or CodeGenerationModel.from_pretrained(
+ model
+ )
+ mode = "text"
+ request_str += f"llm_model = CodeGenerationModel.from_pretrained({model})\n"
+ fake_stream = True
+ elif model in litellm.vertex_code_chat_models: # vertex_code_llm_models
+ llm_model = _vertex_llm_model_object or CodeChatModel.from_pretrained(model)
+ mode = "chat"
+ request_str += f"llm_model = CodeChatModel.from_pretrained({model})\n"
+ elif model == "private":
+ mode = "private"
+ model = optional_params.pop("model_id", None)
+ # private endpoint requires a dict instead of JSON
+ instances = [optional_params.copy()]
+ instances[0]["prompt"] = prompt
+ llm_model = aiplatform.PrivateEndpoint(
+ endpoint_name=model,
+ project=vertex_project,
+ location=vertex_location,
+ )
+ request_str += f"llm_model = aiplatform.PrivateEndpoint(endpoint_name={model}, project={vertex_project}, location={vertex_location})\n"
+ else: # assume vertex model garden on public endpoint
+ mode = "custom"
+
+ instances = [optional_params.copy()]
+ instances[0]["prompt"] = prompt
+ instances = [
+ json_format.ParseDict(instance_dict, Value())
+ for instance_dict in instances
+ ]
+ # Will determine the API used based on async parameter
+ llm_model = None
+
+ # NOTE: async prediction and streaming under "private" mode isn't supported by aiplatform right now
+ if acompletion is True:
+ data = {
+ "llm_model": llm_model,
+ "mode": mode,
+ "prompt": prompt,
+ "logging_obj": logging_obj,
+ "request_str": request_str,
+ "model": model,
+ "model_response": model_response,
+ "encoding": encoding,
+ "messages": messages,
+ "print_verbose": print_verbose,
+ "client_options": client_options,
+ "instances": instances,
+ "vertex_location": vertex_location,
+ "vertex_project": vertex_project,
+ "safety_settings": safety_settings,
+ **optional_params,
+ }
+ if optional_params.get("stream", False) is True:
+ # async streaming
+ return async_streaming(**data)
+
+ return async_completion(**data)
+
+ completion_response = None
+
+ stream = optional_params.pop(
+ "stream", None
+ ) # See note above on handling streaming for vertex ai
+ if mode == "chat":
+ chat = llm_model.start_chat()
+ request_str += "chat = llm_model.start_chat()\n"
+
+ if fake_stream is not True and stream is True:
+ # NOTE: VertexAI does not accept stream=True as a param and raises an error,
+ # we handle this by removing 'stream' from optional params and sending the request
+ # after we get the response we add optional_params["stream"] = True, since main.py needs to know it's a streaming response to then transform it for the OpenAI format
+ optional_params.pop(
+ "stream", None
+ ) # vertex ai raises an error when passing stream in optional params
+
+ request_str += (
+ f"chat.send_message_streaming({prompt}, **{optional_params})\n"
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+
+ model_response = chat.send_message_streaming(prompt, **optional_params)
+
+ return model_response
+
+ request_str += f"chat.send_message({prompt}, **{optional_params}).text\n"
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ completion_response = chat.send_message(prompt, **optional_params).text
+ elif mode == "text":
+
+ if fake_stream is not True and stream is True:
+ request_str += (
+ f"llm_model.predict_streaming({prompt}, **{optional_params})\n"
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ model_response = llm_model.predict_streaming(prompt, **optional_params)
+
+ return model_response
+
+ request_str += f"llm_model.predict({prompt}, **{optional_params}).text\n"
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ completion_response = llm_model.predict(prompt, **optional_params).text
+ elif mode == "custom":
+ """
+ Vertex AI Model Garden
+ """
+
+ if vertex_project is None or vertex_location is None:
+ raise ValueError(
+ "Vertex project and location are required for custom endpoint"
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ llm_model = aiplatform.gapic.PredictionServiceClient(
+ client_options=client_options
+ )
+ request_str += f"llm_model = aiplatform.gapic.PredictionServiceClient(client_options={client_options})\n"
+ endpoint_path = llm_model.endpoint_path(
+ project=vertex_project, location=vertex_location, endpoint=model
+ )
+ request_str += (
+ f"llm_model.predict(endpoint={endpoint_path}, instances={instances})\n"
+ )
+ response = llm_model.predict(
+ endpoint=endpoint_path, instances=instances
+ ).predictions
+
+ completion_response = response[0]
+ if (
+ isinstance(completion_response, str)
+ and "\nOutput:\n" in completion_response
+ ):
+ completion_response = completion_response.split("\nOutput:\n", 1)[1]
+ if stream is True:
+ response = TextStreamer(completion_response)
+ return response
+ elif mode == "private":
+ """
+ Vertex AI Model Garden deployed on private endpoint
+ """
+ if instances is None:
+ raise ValueError("instances are required for private endpoint")
+ if llm_model is None:
+ raise ValueError("Unable to pick client for private endpoint")
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ request_str += f"llm_model.predict(instances={instances})\n"
+ response = llm_model.predict(instances=instances).predictions
+
+ completion_response = response[0]
+ if (
+ isinstance(completion_response, str)
+ and "\nOutput:\n" in completion_response
+ ):
+ completion_response = completion_response.split("\nOutput:\n", 1)[1]
+ if stream is True:
+ response = TextStreamer(completion_response)
+ return response
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt, api_key=None, original_response=completion_response
+ )
+
+ ## RESPONSE OBJECT
+ if isinstance(completion_response, litellm.Message):
+ model_response.choices[0].message = completion_response # type: ignore
+ elif len(str(completion_response)) > 0:
+ model_response.choices[0].message.content = str(completion_response) # type: ignore
+ model_response.created = int(time.time())
+ model_response.model = model
+ ## CALCULATING USAGE
+ if model in litellm.vertex_language_models and response_obj is not None:
+ model_response.choices[0].finish_reason = map_finish_reason(
+ response_obj.candidates[0].finish_reason.name
+ )
+ usage = Usage(
+ prompt_tokens=response_obj.usage_metadata.prompt_token_count,
+ completion_tokens=response_obj.usage_metadata.candidates_token_count,
+ total_tokens=response_obj.usage_metadata.total_token_count,
+ )
+ else:
+ # init prompt tokens
+ # this block attempts to get usage from response_obj if it exists, if not it uses the litellm token counter
+ prompt_tokens, completion_tokens, _ = 0, 0, 0
+ if response_obj is not None:
+ if hasattr(response_obj, "usage_metadata") and hasattr(
+ response_obj.usage_metadata, "prompt_token_count"
+ ):
+ prompt_tokens = response_obj.usage_metadata.prompt_token_count
+ completion_tokens = (
+ response_obj.usage_metadata.candidates_token_count
+ )
+ else:
+ prompt_tokens = len(encoding.encode(prompt))
+ completion_tokens = len(
+ encoding.encode(
+ model_response["choices"][0]["message"].get("content", "")
+ )
+ )
+
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+
+ if fake_stream is True and stream is True:
+ return ModelResponseIterator(model_response)
+ return model_response
+ except Exception as e:
+ if isinstance(e, VertexAIError):
+ raise e
+ raise litellm.APIConnectionError(
+ message=str(e), llm_provider="vertex_ai", model=model
+ )
+
+
+async def async_completion( # noqa: PLR0915
+ llm_model,
+ mode: str,
+ prompt: str,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ request_str: str,
+ print_verbose: Callable,
+ logging_obj,
+ encoding,
+ client_options=None,
+ instances=None,
+ vertex_project=None,
+ vertex_location=None,
+ safety_settings=None,
+ **optional_params,
+):
+ """
+ Add support for acompletion calls for gemini-pro
+ """
+ try:
+
+ response_obj = None
+ completion_response = None
+ if mode == "chat":
+ # chat-bison etc.
+ chat = llm_model.start_chat()
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ response_obj = await chat.send_message_async(prompt, **optional_params)
+ completion_response = response_obj.text
+ elif mode == "text":
+ # gecko etc.
+ request_str += f"llm_model.predict({prompt}, **{optional_params}).text\n"
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ response_obj = await llm_model.predict_async(prompt, **optional_params)
+ completion_response = response_obj.text
+ elif mode == "custom":
+ """
+ Vertex AI Model Garden
+ """
+ from google.cloud import aiplatform # type: ignore
+
+ if vertex_project is None or vertex_location is None:
+ raise ValueError(
+ "Vertex project and location are required for custom endpoint"
+ )
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+
+ llm_model = aiplatform.gapic.PredictionServiceAsyncClient(
+ client_options=client_options
+ )
+ request_str += f"llm_model = aiplatform.gapic.PredictionServiceAsyncClient(client_options={client_options})\n"
+ endpoint_path = llm_model.endpoint_path(
+ project=vertex_project, location=vertex_location, endpoint=model
+ )
+ request_str += (
+ f"llm_model.predict(endpoint={endpoint_path}, instances={instances})\n"
+ )
+ response_obj = await llm_model.predict(
+ endpoint=endpoint_path,
+ instances=instances,
+ )
+ response = response_obj.predictions
+ completion_response = response[0]
+ if (
+ isinstance(completion_response, str)
+ and "\nOutput:\n" in completion_response
+ ):
+ completion_response = completion_response.split("\nOutput:\n", 1)[1]
+
+ elif mode == "private":
+ request_str += f"llm_model.predict_async(instances={instances})\n"
+ response_obj = await llm_model.predict_async(
+ instances=instances,
+ )
+
+ response = response_obj.predictions
+ completion_response = response[0]
+ if (
+ isinstance(completion_response, str)
+ and "\nOutput:\n" in completion_response
+ ):
+ completion_response = completion_response.split("\nOutput:\n", 1)[1]
+
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt, api_key=None, original_response=completion_response
+ )
+
+ ## RESPONSE OBJECT
+ if isinstance(completion_response, litellm.Message):
+ model_response.choices[0].message = completion_response # type: ignore
+ elif len(str(completion_response)) > 0:
+ model_response.choices[0].message.content = str( # type: ignore
+ completion_response
+ )
+ model_response.created = int(time.time())
+ model_response.model = model
+ ## CALCULATING USAGE
+ if model in litellm.vertex_language_models and response_obj is not None:
+ model_response.choices[0].finish_reason = map_finish_reason(
+ response_obj.candidates[0].finish_reason.name
+ )
+ usage = Usage(
+ prompt_tokens=response_obj.usage_metadata.prompt_token_count,
+ completion_tokens=response_obj.usage_metadata.candidates_token_count,
+ total_tokens=response_obj.usage_metadata.total_token_count,
+ )
+ else:
+ # init prompt tokens
+ # this block attempts to get usage from response_obj if it exists, if not it uses the litellm token counter
+ prompt_tokens, completion_tokens, _ = 0, 0, 0
+ if response_obj is not None and (
+ hasattr(response_obj, "usage_metadata")
+ and hasattr(response_obj.usage_metadata, "prompt_token_count")
+ ):
+ prompt_tokens = response_obj.usage_metadata.prompt_token_count
+ completion_tokens = response_obj.usage_metadata.candidates_token_count
+ else:
+ prompt_tokens = len(encoding.encode(prompt))
+ completion_tokens = len(
+ encoding.encode(
+ model_response["choices"][0]["message"].get("content", "")
+ )
+ )
+
+ # set usage
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+ except Exception as e:
+ raise VertexAIError(status_code=500, message=str(e))
+
+
+async def async_streaming( # noqa: PLR0915
+ llm_model,
+ mode: str,
+ prompt: str,
+ model: str,
+ model_response: ModelResponse,
+ messages: list,
+ print_verbose: Callable,
+ logging_obj,
+ request_str: str,
+ encoding=None,
+ client_options=None,
+ instances=None,
+ vertex_project=None,
+ vertex_location=None,
+ safety_settings=None,
+ **optional_params,
+):
+ """
+ Add support for async streaming calls for gemini-pro
+ """
+ response: Any = None
+ if mode == "chat":
+ chat = llm_model.start_chat()
+ optional_params.pop(
+ "stream", None
+ ) # vertex ai raises an error when passing stream in optional params
+ request_str += (
+ f"chat.send_message_streaming_async({prompt}, **{optional_params})\n"
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ response = chat.send_message_streaming_async(prompt, **optional_params)
+
+ elif mode == "text":
+ optional_params.pop(
+ "stream", None
+ ) # See note above on handling streaming for vertex ai
+ request_str += (
+ f"llm_model.predict_streaming_async({prompt}, **{optional_params})\n"
+ )
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ response = llm_model.predict_streaming_async(prompt, **optional_params)
+ elif mode == "custom":
+ from google.cloud import aiplatform # type: ignore
+
+ if vertex_project is None or vertex_location is None:
+ raise ValueError(
+ "Vertex project and location are required for custom endpoint"
+ )
+
+ stream = optional_params.pop("stream", None)
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key=None,
+ additional_args={
+ "complete_input_dict": optional_params,
+ "request_str": request_str,
+ },
+ )
+ llm_model = aiplatform.gapic.PredictionServiceAsyncClient(
+ client_options=client_options
+ )
+ request_str += f"llm_model = aiplatform.gapic.PredictionServiceAsyncClient(client_options={client_options})\n"
+ endpoint_path = llm_model.endpoint_path(
+ project=vertex_project, location=vertex_location, endpoint=model
+ )
+ request_str += (
+ f"client.predict(endpoint={endpoint_path}, instances={instances})\n"
+ )
+ response_obj = await llm_model.predict(
+ endpoint=endpoint_path,
+ instances=instances,
+ )
+
+ response = response_obj.predictions
+ completion_response = response[0]
+ if (
+ isinstance(completion_response, str)
+ and "\nOutput:\n" in completion_response
+ ):
+ completion_response = completion_response.split("\nOutput:\n", 1)[1]
+ if stream:
+ response = TextStreamer(completion_response)
+
+ elif mode == "private":
+ if instances is None:
+ raise ValueError("Instances are required for private endpoint")
+ stream = optional_params.pop("stream", None)
+ _ = instances[0].pop("stream", None)
+ request_str += f"llm_model.predict_async(instances={instances})\n"
+ response_obj = await llm_model.predict_async(
+ instances=instances,
+ )
+ response = response_obj.predictions
+ completion_response = response[0]
+ if (
+ isinstance(completion_response, str)
+ and "\nOutput:\n" in completion_response
+ ):
+ completion_response = completion_response.split("\nOutput:\n", 1)[1]
+ if stream:
+ response = TextStreamer(completion_response)
+
+ if response is None:
+ raise ValueError("Unable to generate response")
+
+ logging_obj.post_call(input=prompt, api_key=None, original_response=response)
+
+ streamwrapper = CustomStreamWrapper(
+ completion_stream=response,
+ model=model,
+ custom_llm_provider="vertex_ai",
+ logging_obj=logging_obj,
+ )
+
+ return streamwrapper
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/ai21/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/ai21/transformation.py
new file mode 100644
index 00000000..d87b2e03
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/ai21/transformation.py
@@ -0,0 +1,62 @@
+import types
+from typing import Optional
+
+import litellm
+
+
+class VertexAIAi21Config:
+ """
+ Reference: https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/ai21
+
+ The class `VertexAIAi21Config` provides configuration for the VertexAI's AI21 API interface
+
+ -> Supports all OpenAI parameters
+ """
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self):
+ return litellm.OpenAIConfig().get_supported_openai_params(model="gpt-3.5-turbo")
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ):
+ if "max_completion_tokens" in non_default_params:
+ non_default_params["max_tokens"] = non_default_params.pop(
+ "max_completion_tokens"
+ )
+ return litellm.OpenAIConfig().map_openai_params(
+ non_default_params=non_default_params,
+ optional_params=optional_params,
+ model=model,
+ drop_params=drop_params,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/transformation.py
new file mode 100644
index 00000000..ab0555b0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/anthropic/transformation.py
@@ -0,0 +1,114 @@
+# What is this?
+## Handler file for calling claude-3 on vertex ai
+from typing import Any, List, Optional
+
+import httpx
+
+import litellm
+from litellm.llms.base_llm.chat.transformation import LiteLLMLoggingObj
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.utils import ModelResponse
+
+from ....anthropic.chat.transformation import AnthropicConfig
+
+
+class VertexAIError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url=" https://cloud.google.com/vertex-ai/"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+class VertexAIAnthropicConfig(AnthropicConfig):
+ """
+ Reference:https://docs.anthropic.com/claude/reference/messages_post
+
+ Note that the API for Claude on Vertex differs from the Anthropic API documentation in the following ways:
+
+ - `model` is not a valid parameter. The model is instead specified in the Google Cloud endpoint URL.
+ - `anthropic_version` is a required parameter and must be set to "vertex-2023-10-16".
+
+ The class `VertexAIAnthropicConfig` provides configuration for the VertexAI's Anthropic API interface. Below are the parameters:
+
+ - `max_tokens` Required (integer) max tokens,
+ - `anthropic_version` Required (string) version of anthropic for bedrock - e.g. "bedrock-2023-05-31"
+ - `system` Optional (string) the system prompt, conversion from openai format to this is handled in factory.py
+ - `temperature` Optional (float) The amount of randomness injected into the response
+ - `top_p` Optional (float) Use nucleus sampling.
+ - `top_k` Optional (int) Only sample from the top K options for each subsequent token
+ - `stop_sequences` Optional (List[str]) Custom text sequences that cause the model to stop generating
+
+ Note: Please make sure to modify the default parameters as required for your use case.
+ """
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ headers: dict,
+ ) -> dict:
+ data = super().transform_request(
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ headers=headers,
+ )
+
+ data.pop("model", None) # vertex anthropic doesn't accept 'model' parameter
+ return data
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: dict,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ litellm_params: dict,
+ encoding: Any,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ response = super().transform_response(
+ model,
+ raw_response,
+ model_response,
+ logging_obj,
+ request_data,
+ messages,
+ optional_params,
+ litellm_params,
+ encoding,
+ api_key,
+ json_mode,
+ )
+ response.model = model
+
+ return response
+
+ @classmethod
+ def is_supported_model(cls, model: str, custom_llm_provider: str) -> bool:
+ """
+ Check if the model is supported by the VertexAI Anthropic API.
+ """
+ if (
+ custom_llm_provider != "vertex_ai"
+ and custom_llm_provider != "vertex_ai_beta"
+ ):
+ return False
+ if "claude" in model.lower():
+ return True
+ elif model in litellm.vertex_anthropic_models:
+ return True
+ return False
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py
new file mode 100644
index 00000000..cf46f4a7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/llama3/transformation.py
@@ -0,0 +1,73 @@
+import types
+from typing import Optional
+
+from litellm.llms.openai.chat.gpt_transformation import OpenAIGPTConfig
+
+
+class VertexAILlama3Config(OpenAIGPTConfig):
+ """
+ Reference:https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/llama#streaming
+
+ The class `VertexAILlama3Config` provides configuration for the VertexAI's Llama API interface. Below are the parameters:
+
+ - `max_tokens` Required (integer) max tokens,
+
+ Note: Please make sure to modify the default parameters as required for your use case.
+ """
+
+ max_tokens: Optional[int] = None
+
+ def __init__(
+ self,
+ max_tokens: Optional[int] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key == "max_tokens" and value is None:
+ value = self.max_tokens
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self, model: str):
+ supported_params = super().get_supported_openai_params(model=model)
+ try:
+ supported_params.remove("max_retries")
+ except KeyError:
+ pass
+ return supported_params
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ):
+ if "max_completion_tokens" in non_default_params:
+ non_default_params["max_tokens"] = non_default_params.pop(
+ "max_completion_tokens"
+ )
+ return super().map_openai_params(
+ non_default_params=non_default_params,
+ optional_params=optional_params,
+ model=model,
+ drop_params=drop_params,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py
new file mode 100644
index 00000000..fb239363
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py
@@ -0,0 +1,242 @@
+# What is this?
+## API Handler for calling Vertex AI Partner Models
+from enum import Enum
+from typing import Callable, Optional, Union
+
+import httpx # type: ignore
+
+import litellm
+from litellm import LlmProviders
+from litellm.utils import ModelResponse
+
+from ..vertex_llm_base import VertexBase
+
+
+class VertexPartnerProvider(str, Enum):
+ mistralai = "mistralai"
+ llama = "llama"
+ ai21 = "ai21"
+ claude = "claude"
+
+
+class VertexAIError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url=" https://cloud.google.com/vertex-ai/"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+def create_vertex_url(
+ vertex_location: str,
+ vertex_project: str,
+ partner: VertexPartnerProvider,
+ stream: Optional[bool],
+ model: str,
+ api_base: Optional[str] = None,
+) -> str:
+ """Return the base url for the vertex partner models"""
+ if partner == VertexPartnerProvider.llama:
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1beta1/projects/{vertex_project}/locations/{vertex_location}/endpoints/openapi/chat/completions"
+ elif partner == VertexPartnerProvider.mistralai:
+ if stream:
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/publishers/mistralai/models/{model}:streamRawPredict"
+ else:
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/publishers/mistralai/models/{model}:rawPredict"
+ elif partner == VertexPartnerProvider.ai21:
+ if stream:
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1beta1/projects/{vertex_project}/locations/{vertex_location}/publishers/ai21/models/{model}:streamRawPredict"
+ else:
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1beta1/projects/{vertex_project}/locations/{vertex_location}/publishers/ai21/models/{model}:rawPredict"
+ elif partner == VertexPartnerProvider.claude:
+ if stream:
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/publishers/anthropic/models/{model}:streamRawPredict"
+ else:
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1/projects/{vertex_project}/locations/{vertex_location}/publishers/anthropic/models/{model}:rawPredict"
+
+
+class VertexAIPartnerModels(VertexBase):
+ def __init__(self) -> None:
+ pass
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ api_base: Optional[str],
+ optional_params: dict,
+ custom_prompt_dict: dict,
+ headers: Optional[dict],
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ vertex_project=None,
+ vertex_location=None,
+ vertex_credentials=None,
+ logger_fn=None,
+ acompletion: bool = False,
+ client=None,
+ ):
+ try:
+ import vertexai
+
+ from litellm.llms.anthropic.chat import AnthropicChatCompletion
+ from litellm.llms.codestral.completion.handler import (
+ CodestralTextCompletion,
+ )
+ from litellm.llms.openai_like.chat.handler import OpenAILikeChatHandler
+ from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import (
+ VertexLLM,
+ )
+ except Exception as e:
+ raise VertexAIError(
+ status_code=400,
+ message=f"""vertexai import failed please run `pip install -U "google-cloud-aiplatform>=1.38"`. Got error: {e}""",
+ )
+
+ if not (
+ hasattr(vertexai, "preview") or hasattr(vertexai.preview, "language_models")
+ ):
+ raise VertexAIError(
+ status_code=400,
+ message="""Upgrade vertex ai. Run `pip install "google-cloud-aiplatform>=1.38"`""",
+ )
+ try:
+
+ vertex_httpx_logic = VertexLLM()
+
+ access_token, project_id = vertex_httpx_logic._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai",
+ )
+
+ openai_like_chat_completions = OpenAILikeChatHandler()
+ codestral_fim_completions = CodestralTextCompletion()
+ anthropic_chat_completions = AnthropicChatCompletion()
+
+ ## CONSTRUCT API BASE
+ stream: bool = optional_params.get("stream", False) or False
+
+ optional_params["stream"] = stream
+
+ if "llama" in model:
+ partner = VertexPartnerProvider.llama
+ elif "mistral" in model or "codestral" in model:
+ partner = VertexPartnerProvider.mistralai
+ elif "jamba" in model:
+ partner = VertexPartnerProvider.ai21
+ elif "claude" in model:
+ partner = VertexPartnerProvider.claude
+
+ default_api_base = create_vertex_url(
+ vertex_location=vertex_location or "us-central1",
+ vertex_project=vertex_project or project_id,
+ partner=partner, # type: ignore
+ stream=stream,
+ model=model,
+ )
+
+ if len(default_api_base.split(":")) > 1:
+ endpoint = default_api_base.split(":")[-1]
+ else:
+ endpoint = ""
+
+ _, api_base = self._check_custom_proxy(
+ api_base=api_base,
+ custom_llm_provider="vertex_ai",
+ gemini_api_key=None,
+ endpoint=endpoint,
+ stream=stream,
+ auth_header=None,
+ url=default_api_base,
+ )
+
+ if "codestral" in model or "mistral" in model:
+ model = model.split("@")[0]
+
+ if "codestral" in model and litellm_params.get("text_completion") is True:
+ optional_params["model"] = model
+ text_completion_model_response = litellm.TextCompletionResponse(
+ stream=stream
+ )
+ return codestral_fim_completions.completion(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ api_key=access_token,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=text_completion_model_response,
+ print_verbose=print_verbose,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ acompletion=acompletion,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ timeout=timeout,
+ encoding=encoding,
+ )
+ elif "claude" in model:
+ if headers is None:
+ headers = {}
+ headers.update({"Authorization": "Bearer {}".format(access_token)})
+
+ optional_params.update(
+ {
+ "anthropic_version": "vertex-2023-10-16",
+ "is_vertex_request": True,
+ }
+ )
+
+ return anthropic_chat_completions.completion(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ acompletion=acompletion,
+ custom_prompt_dict=litellm.custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ encoding=encoding, # for calculating input/output tokens
+ api_key=access_token,
+ logging_obj=logging_obj,
+ headers=headers,
+ timeout=timeout,
+ client=client,
+ custom_llm_provider=LlmProviders.VERTEX_AI.value,
+ )
+
+ return openai_like_chat_completions.completion(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ api_key=access_token,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ acompletion=acompletion,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ client=client,
+ timeout=timeout,
+ encoding=encoding,
+ custom_llm_provider="vertex_ai",
+ custom_endpoint=True,
+ )
+
+ except Exception as e:
+ if hasattr(e, "status_code"):
+ raise e
+ raise VertexAIError(status_code=500, message=str(e))
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/embedding_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/embedding_handler.py
new file mode 100644
index 00000000..3ef40703
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/embedding_handler.py
@@ -0,0 +1,228 @@
+from typing import Literal, Optional, Union
+
+import httpx
+
+import litellm
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObject
+from litellm.llms.custom_httpx.http_handler import (
+ AsyncHTTPHandler,
+ HTTPHandler,
+ _get_httpx_client,
+ get_async_httpx_client,
+)
+from litellm.llms.vertex_ai.vertex_ai_non_gemini import VertexAIError
+from litellm.llms.vertex_ai.vertex_llm_base import VertexBase
+from litellm.types.llms.vertex_ai import *
+from litellm.types.utils import EmbeddingResponse
+
+from .types import *
+
+
+class VertexEmbedding(VertexBase):
+ def __init__(self) -> None:
+ super().__init__()
+
+ def embedding(
+ self,
+ model: str,
+ input: Union[list, str],
+ print_verbose,
+ model_response: EmbeddingResponse,
+ optional_params: dict,
+ logging_obj: LiteLLMLoggingObject,
+ custom_llm_provider: Literal[
+ "vertex_ai", "vertex_ai_beta", "gemini"
+ ], # if it's vertex_ai or gemini (google ai studio)
+ timeout: Optional[Union[float, httpx.Timeout]],
+ api_key: Optional[str] = None,
+ encoding=None,
+ aembedding=False,
+ api_base: Optional[str] = None,
+ client: Optional[Union[AsyncHTTPHandler, HTTPHandler]] = None,
+ vertex_project: Optional[str] = None,
+ vertex_location: Optional[str] = None,
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES] = None,
+ gemini_api_key: Optional[str] = None,
+ extra_headers: Optional[dict] = None,
+ ) -> EmbeddingResponse:
+ if aembedding is True:
+ return self.async_embedding( # type: ignore
+ model=model,
+ input=input,
+ logging_obj=logging_obj,
+ model_response=model_response,
+ optional_params=optional_params,
+ encoding=encoding,
+ custom_llm_provider=custom_llm_provider,
+ timeout=timeout,
+ api_base=api_base,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ gemini_api_key=gemini_api_key,
+ extra_headers=extra_headers,
+ )
+
+ should_use_v1beta1_features = self.is_using_v1beta1_features(
+ optional_params=optional_params
+ )
+
+ _auth_header, vertex_project = self._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider=custom_llm_provider,
+ )
+ auth_header, api_base = self._get_token_and_url(
+ model=model,
+ gemini_api_key=gemini_api_key,
+ auth_header=_auth_header,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ stream=False,
+ custom_llm_provider=custom_llm_provider,
+ api_base=api_base,
+ should_use_v1beta1_features=should_use_v1beta1_features,
+ mode="embedding",
+ )
+ headers = self.set_headers(auth_header=auth_header, extra_headers=extra_headers)
+ vertex_request: VertexEmbeddingRequest = (
+ litellm.vertexAITextEmbeddingConfig.transform_openai_request_to_vertex_embedding_request(
+ input=input, optional_params=optional_params, model=model
+ )
+ )
+
+ _client_params = {}
+ if timeout:
+ _client_params["timeout"] = timeout
+ if client is None or not isinstance(client, HTTPHandler):
+ client = _get_httpx_client(params=_client_params)
+ else:
+ client = client # type: ignore
+ ## LOGGING
+ logging_obj.pre_call(
+ input=vertex_request,
+ api_key="",
+ additional_args={
+ "complete_input_dict": vertex_request,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ try:
+ response = client.post(api_base, headers=headers, json=vertex_request) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise VertexAIError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise VertexAIError(status_code=408, message="Timeout error occurred.")
+
+ _json_response = response.json()
+ ## LOGGING POST-CALL
+ logging_obj.post_call(
+ input=input, api_key=None, original_response=_json_response
+ )
+
+ model_response = (
+ litellm.vertexAITextEmbeddingConfig.transform_vertex_response_to_openai(
+ response=_json_response, model=model, model_response=model_response
+ )
+ )
+
+ return model_response
+
+ async def async_embedding(
+ self,
+ model: str,
+ input: Union[list, str],
+ model_response: litellm.EmbeddingResponse,
+ logging_obj: LiteLLMLoggingObject,
+ optional_params: dict,
+ custom_llm_provider: Literal[
+ "vertex_ai", "vertex_ai_beta", "gemini"
+ ], # if it's vertex_ai or gemini (google ai studio)
+ timeout: Optional[Union[float, httpx.Timeout]],
+ api_base: Optional[str] = None,
+ client: Optional[AsyncHTTPHandler] = None,
+ vertex_project: Optional[str] = None,
+ vertex_location: Optional[str] = None,
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES] = None,
+ gemini_api_key: Optional[str] = None,
+ extra_headers: Optional[dict] = None,
+ encoding=None,
+ ) -> litellm.EmbeddingResponse:
+ """
+ Async embedding implementation
+ """
+ should_use_v1beta1_features = self.is_using_v1beta1_features(
+ optional_params=optional_params
+ )
+ _auth_header, vertex_project = await self._ensure_access_token_async(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider=custom_llm_provider,
+ )
+ auth_header, api_base = self._get_token_and_url(
+ model=model,
+ gemini_api_key=gemini_api_key,
+ auth_header=_auth_header,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_credentials=vertex_credentials,
+ stream=False,
+ custom_llm_provider=custom_llm_provider,
+ api_base=api_base,
+ should_use_v1beta1_features=should_use_v1beta1_features,
+ mode="embedding",
+ )
+ headers = self.set_headers(auth_header=auth_header, extra_headers=extra_headers)
+ vertex_request: VertexEmbeddingRequest = (
+ litellm.vertexAITextEmbeddingConfig.transform_openai_request_to_vertex_embedding_request(
+ input=input, optional_params=optional_params, model=model
+ )
+ )
+
+ _async_client_params = {}
+ if timeout:
+ _async_client_params["timeout"] = timeout
+ if client is None or not isinstance(client, AsyncHTTPHandler):
+ client = get_async_httpx_client(
+ params=_async_client_params, llm_provider=litellm.LlmProviders.VERTEX_AI
+ )
+ else:
+ client = client # type: ignore
+ ## LOGGING
+ logging_obj.pre_call(
+ input=vertex_request,
+ api_key="",
+ additional_args={
+ "complete_input_dict": vertex_request,
+ "api_base": api_base,
+ "headers": headers,
+ },
+ )
+
+ try:
+ response = await client.post(api_base, headers=headers, json=vertex_request) # type: ignore
+ response.raise_for_status()
+ except httpx.HTTPStatusError as err:
+ error_code = err.response.status_code
+ raise VertexAIError(status_code=error_code, message=err.response.text)
+ except httpx.TimeoutException:
+ raise VertexAIError(status_code=408, message="Timeout error occurred.")
+
+ _json_response = response.json()
+ ## LOGGING POST-CALL
+ logging_obj.post_call(
+ input=input, api_key=None, original_response=_json_response
+ )
+
+ model_response = (
+ litellm.vertexAITextEmbeddingConfig.transform_vertex_response_to_openai(
+ response=_json_response, model=model, model_response=model_response
+ )
+ )
+
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/transformation.py
new file mode 100644
index 00000000..d9e84fca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/transformation.py
@@ -0,0 +1,265 @@
+import types
+from typing import List, Literal, Optional, Union
+
+from pydantic import BaseModel
+
+from litellm.types.utils import EmbeddingResponse, Usage
+
+from .types import *
+
+
+class VertexAITextEmbeddingConfig(BaseModel):
+ """
+ Reference: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings-api#TextEmbeddingInput
+
+ Args:
+ auto_truncate: Optional(bool) If True, will truncate input text to fit within the model's max input length.
+ task_type: Optional(str) The type of task to be performed. The default is "RETRIEVAL_QUERY".
+ title: Optional(str) The title of the document to be embedded. (only valid with task_type=RETRIEVAL_DOCUMENT).
+ """
+
+ auto_truncate: Optional[bool] = None
+ task_type: Optional[
+ Literal[
+ "RETRIEVAL_QUERY",
+ "RETRIEVAL_DOCUMENT",
+ "SEMANTIC_SIMILARITY",
+ "CLASSIFICATION",
+ "CLUSTERING",
+ "QUESTION_ANSWERING",
+ "FACT_VERIFICATION",
+ ]
+ ] = None
+ title: Optional[str] = None
+
+ def __init__(
+ self,
+ auto_truncate: Optional[bool] = None,
+ task_type: Optional[
+ Literal[
+ "RETRIEVAL_QUERY",
+ "RETRIEVAL_DOCUMENT",
+ "SEMANTIC_SIMILARITY",
+ "CLASSIFICATION",
+ "CLUSTERING",
+ "QUESTION_ANSWERING",
+ "FACT_VERIFICATION",
+ ]
+ ] = None,
+ title: Optional[str] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ def get_supported_openai_params(self):
+ return ["dimensions"]
+
+ def map_openai_params(
+ self, non_default_params: dict, optional_params: dict, kwargs: dict
+ ):
+ for param, value in non_default_params.items():
+ if param == "dimensions":
+ optional_params["outputDimensionality"] = value
+
+ if "input_type" in kwargs:
+ optional_params["task_type"] = kwargs.pop("input_type")
+ return optional_params, kwargs
+
+ def get_mapped_special_auth_params(self) -> dict:
+ """
+ Common auth params across bedrock/vertex_ai/azure/watsonx
+ """
+ return {"project": "vertex_project", "region_name": "vertex_location"}
+
+ def map_special_auth_params(self, non_default_params: dict, optional_params: dict):
+ mapped_params = self.get_mapped_special_auth_params()
+
+ for param, value in non_default_params.items():
+ if param in mapped_params:
+ optional_params[mapped_params[param]] = value
+ return optional_params
+
+ def transform_openai_request_to_vertex_embedding_request(
+ self, input: Union[list, str], optional_params: dict, model: str
+ ) -> VertexEmbeddingRequest:
+ """
+ Transforms an openai request to a vertex embedding request.
+ """
+ if model.isdigit():
+ return self._transform_openai_request_to_fine_tuned_embedding_request(
+ input, optional_params, model
+ )
+
+ vertex_request: VertexEmbeddingRequest = VertexEmbeddingRequest()
+ vertex_text_embedding_input_list: List[TextEmbeddingInput] = []
+ task_type: Optional[TaskType] = optional_params.get("task_type")
+ title = optional_params.get("title")
+
+ if isinstance(input, str):
+ input = [input] # Convert single string to list for uniform processing
+
+ for text in input:
+ embedding_input = self.create_embedding_input(
+ content=text, task_type=task_type, title=title
+ )
+ vertex_text_embedding_input_list.append(embedding_input)
+
+ vertex_request["instances"] = vertex_text_embedding_input_list
+ vertex_request["parameters"] = EmbeddingParameters(**optional_params)
+
+ return vertex_request
+
+ def _transform_openai_request_to_fine_tuned_embedding_request(
+ self, input: Union[list, str], optional_params: dict, model: str
+ ) -> VertexEmbeddingRequest:
+ """
+ Transforms an openai request to a vertex fine-tuned embedding request.
+
+ Vertex Doc: https://console.cloud.google.com/vertex-ai/model-garden?hl=en&project=adroit-crow-413218&pageState=(%22galleryStateKey%22:(%22f%22:(%22g%22:%5B%5D,%22o%22:%5B%5D),%22s%22:%22%22))
+ Sample Request:
+
+ ```json
+ {
+ "instances" : [
+ {
+ "inputs": "How would the Future of AI in 10 Years look?",
+ "parameters": {
+ "max_new_tokens": 128,
+ "temperature": 1.0,
+ "top_p": 0.9,
+ "top_k": 10
+ }
+ }
+ ]
+ }
+ ```
+ """
+ vertex_request: VertexEmbeddingRequest = VertexEmbeddingRequest()
+ vertex_text_embedding_input_list: List[TextEmbeddingFineTunedInput] = []
+ if isinstance(input, str):
+ input = [input] # Convert single string to list for uniform processing
+
+ for text in input:
+ embedding_input = TextEmbeddingFineTunedInput(inputs=text)
+ vertex_text_embedding_input_list.append(embedding_input)
+
+ vertex_request["instances"] = vertex_text_embedding_input_list
+ vertex_request["parameters"] = TextEmbeddingFineTunedParameters(
+ **optional_params
+ )
+
+ return vertex_request
+
+ def create_embedding_input(
+ self,
+ content: str,
+ task_type: Optional[TaskType] = None,
+ title: Optional[str] = None,
+ ) -> TextEmbeddingInput:
+ """
+ Creates a TextEmbeddingInput object.
+
+ Vertex requires a List of TextEmbeddingInput objects. This helper function creates a single TextEmbeddingInput object.
+
+ Args:
+ content (str): The content to be embedded.
+ task_type (Optional[TaskType]): The type of task to be performed".
+ title (Optional[str]): The title of the document to be embedded
+
+ Returns:
+ TextEmbeddingInput: A TextEmbeddingInput object.
+ """
+ text_embedding_input = TextEmbeddingInput(content=content)
+ if task_type is not None:
+ text_embedding_input["task_type"] = task_type
+ if title is not None:
+ text_embedding_input["title"] = title
+ return text_embedding_input
+
+ def transform_vertex_response_to_openai(
+ self, response: dict, model: str, model_response: EmbeddingResponse
+ ) -> EmbeddingResponse:
+ """
+ Transforms a vertex embedding response to an openai response.
+ """
+ if model.isdigit():
+ return self._transform_vertex_response_to_openai_for_fine_tuned_models(
+ response, model, model_response
+ )
+
+ _predictions = response["predictions"]
+
+ embedding_response = []
+ input_tokens: int = 0
+ for idx, element in enumerate(_predictions):
+
+ embedding = element["embeddings"]
+ embedding_response.append(
+ {
+ "object": "embedding",
+ "index": idx,
+ "embedding": embedding["values"],
+ }
+ )
+ input_tokens += embedding["statistics"]["token_count"]
+
+ model_response.object = "list"
+ model_response.data = embedding_response
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=input_tokens, completion_tokens=0, total_tokens=input_tokens
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+ def _transform_vertex_response_to_openai_for_fine_tuned_models(
+ self, response: dict, model: str, model_response: EmbeddingResponse
+ ) -> EmbeddingResponse:
+ """
+ Transforms a vertex fine-tuned model embedding response to an openai response format.
+ """
+ _predictions = response["predictions"]
+
+ embedding_response = []
+ # For fine-tuned models, we don't get token counts in the response
+ input_tokens = 0
+
+ for idx, embedding_values in enumerate(_predictions):
+ embedding_response.append(
+ {
+ "object": "embedding",
+ "index": idx,
+ "embedding": embedding_values[
+ 0
+ ], # The embedding values are nested one level deeper
+ }
+ )
+
+ model_response.object = "list"
+ model_response.data = embedding_response
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=input_tokens, completion_tokens=0, total_tokens=input_tokens
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/types.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/types.py
new file mode 100644
index 00000000..c0c53b17
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_embeddings/types.py
@@ -0,0 +1,62 @@
+"""
+Types for Vertex Embeddings Requests
+"""
+
+from enum import Enum
+from typing import List, Optional, TypedDict, Union
+
+
+class TaskType(str, Enum):
+ RETRIEVAL_QUERY = "RETRIEVAL_QUERY"
+ RETRIEVAL_DOCUMENT = "RETRIEVAL_DOCUMENT"
+ SEMANTIC_SIMILARITY = "SEMANTIC_SIMILARITY"
+ CLASSIFICATION = "CLASSIFICATION"
+ CLUSTERING = "CLUSTERING"
+ QUESTION_ANSWERING = "QUESTION_ANSWERING"
+ FACT_VERIFICATION = "FACT_VERIFICATION"
+ CODE_RETRIEVAL_QUERY = "CODE_RETRIEVAL_QUERY"
+
+
+class TextEmbeddingInput(TypedDict, total=False):
+ content: str
+ task_type: Optional[TaskType]
+ title: Optional[str]
+
+
+# Fine-tuned models require a different input format
+# Ref: https://console.cloud.google.com/vertex-ai/model-garden?hl=en&project=adroit-crow-413218&pageState=(%22galleryStateKey%22:(%22f%22:(%22g%22:%5B%5D,%22o%22:%5B%5D),%22s%22:%22%22))
+class TextEmbeddingFineTunedInput(TypedDict, total=False):
+ inputs: str
+
+
+class TextEmbeddingFineTunedParameters(TypedDict, total=False):
+ max_new_tokens: Optional[int]
+ temperature: Optional[float]
+ top_p: Optional[float]
+ top_k: Optional[int]
+
+
+class EmbeddingParameters(TypedDict, total=False):
+ auto_truncate: Optional[bool]
+ output_dimensionality: Optional[int]
+
+
+class VertexEmbeddingRequest(TypedDict, total=False):
+ instances: Union[List[TextEmbeddingInput], List[TextEmbeddingFineTunedInput]]
+ parameters: Optional[Union[EmbeddingParameters, TextEmbeddingFineTunedParameters]]
+
+
+# Example usage:
+# example_request: VertexEmbeddingRequest = {
+# "instances": [
+# {
+# "content": "I would like embeddings for this text!",
+# "task_type": "RETRIEVAL_DOCUMENT",
+# "title": "document title"
+# }
+# ],
+# "parameters": {
+# "auto_truncate": True,
+# "output_dimensionality": None
+# }
+# }
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_llm_base.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_llm_base.py
new file mode 100644
index 00000000..8286cb51
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_llm_base.py
@@ -0,0 +1,319 @@
+"""
+Base Vertex, Google AI Studio LLM Class
+
+Handles Authentication and generating request urls for Vertex AI and Google AI Studio
+"""
+
+import json
+import os
+from typing import TYPE_CHECKING, Any, Literal, Optional, Tuple
+
+from litellm._logging import verbose_logger
+from litellm.litellm_core_utils.asyncify import asyncify
+from litellm.llms.base import BaseLLM
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler
+from litellm.types.llms.vertex_ai import VERTEX_CREDENTIALS_TYPES
+
+from .common_utils import _get_gemini_url, _get_vertex_url, all_gemini_url_modes
+
+if TYPE_CHECKING:
+ from google.auth.credentials import Credentials as GoogleCredentialsObject
+else:
+ GoogleCredentialsObject = Any
+
+
+class VertexBase(BaseLLM):
+ def __init__(self) -> None:
+ super().__init__()
+ self.access_token: Optional[str] = None
+ self.refresh_token: Optional[str] = None
+ self._credentials: Optional[GoogleCredentialsObject] = None
+ self.project_id: Optional[str] = None
+ self.async_handler: Optional[AsyncHTTPHandler] = None
+
+ def get_vertex_region(self, vertex_region: Optional[str]) -> str:
+ return vertex_region or "us-central1"
+
+ def load_auth(
+ self, credentials: Optional[VERTEX_CREDENTIALS_TYPES], project_id: Optional[str]
+ ) -> Tuple[Any, str]:
+ import google.auth as google_auth
+ from google.auth import identity_pool
+ from google.auth.transport.requests import (
+ Request, # type: ignore[import-untyped]
+ )
+
+ if credentials is not None:
+ import google.oauth2.service_account
+
+ if isinstance(credentials, str):
+ verbose_logger.debug(
+ "Vertex: Loading vertex credentials from %s", credentials
+ )
+ verbose_logger.debug(
+ "Vertex: checking if credentials is a valid path, os.path.exists(%s)=%s, current dir %s",
+ credentials,
+ os.path.exists(credentials),
+ os.getcwd(),
+ )
+
+ try:
+ if os.path.exists(credentials):
+ json_obj = json.load(open(credentials))
+ else:
+ json_obj = json.loads(credentials)
+ except Exception:
+ raise Exception(
+ "Unable to load vertex credentials from environment. Got={}".format(
+ credentials
+ )
+ )
+ elif isinstance(credentials, dict):
+ json_obj = credentials
+ else:
+ raise ValueError(
+ "Invalid credentials type: {}".format(type(credentials))
+ )
+
+ # Check if the JSON object contains Workload Identity Federation configuration
+ if "type" in json_obj and json_obj["type"] == "external_account":
+ creds = identity_pool.Credentials.from_info(json_obj)
+ else:
+ creds = (
+ google.oauth2.service_account.Credentials.from_service_account_info(
+ json_obj,
+ scopes=["https://www.googleapis.com/auth/cloud-platform"],
+ )
+ )
+
+ if project_id is None:
+ project_id = getattr(creds, "project_id", None)
+ else:
+ creds, creds_project_id = google_auth.default(
+ quota_project_id=project_id,
+ scopes=["https://www.googleapis.com/auth/cloud-platform"],
+ )
+ if project_id is None:
+ project_id = creds_project_id
+
+ creds.refresh(Request()) # type: ignore
+
+ if not project_id:
+ raise ValueError("Could not resolve project_id")
+
+ if not isinstance(project_id, str):
+ raise TypeError(
+ f"Expected project_id to be a str but got {type(project_id)}"
+ )
+
+ return creds, project_id
+
+ def refresh_auth(self, credentials: Any) -> None:
+ from google.auth.transport.requests import (
+ Request, # type: ignore[import-untyped]
+ )
+
+ credentials.refresh(Request())
+
+ def _ensure_access_token(
+ self,
+ credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ project_id: Optional[str],
+ custom_llm_provider: Literal[
+ "vertex_ai", "vertex_ai_beta", "gemini"
+ ], # if it's vertex_ai or gemini (google ai studio)
+ ) -> Tuple[str, str]:
+ """
+ Returns auth token and project id
+ """
+ if custom_llm_provider == "gemini":
+ return "", ""
+ if self.access_token is not None:
+ if project_id is not None:
+ return self.access_token, project_id
+ elif self.project_id is not None:
+ return self.access_token, self.project_id
+
+ if not self._credentials:
+ self._credentials, cred_project_id = self.load_auth(
+ credentials=credentials, project_id=project_id
+ )
+ if not self.project_id:
+ self.project_id = project_id or cred_project_id
+ else:
+ if self._credentials.expired or not self._credentials.token:
+ self.refresh_auth(self._credentials)
+
+ if not self.project_id:
+ self.project_id = self._credentials.quota_project_id
+
+ if not self.project_id:
+ raise ValueError("Could not resolve project_id")
+
+ if not self._credentials or not self._credentials.token:
+ raise RuntimeError("Could not resolve API token from the environment")
+
+ return self._credentials.token, project_id or self.project_id
+
+ def is_using_v1beta1_features(self, optional_params: dict) -> bool:
+ """
+ VertexAI only supports ContextCaching on v1beta1
+
+ use this helper to decide if request should be sent to v1 or v1beta1
+
+ Returns v1beta1 if context caching is enabled
+ Returns v1 in all other cases
+ """
+ if "cached_content" in optional_params:
+ return True
+ if "CachedContent" in optional_params:
+ return True
+ return False
+
+ def _check_custom_proxy(
+ self,
+ api_base: Optional[str],
+ custom_llm_provider: str,
+ gemini_api_key: Optional[str],
+ endpoint: str,
+ stream: Optional[bool],
+ auth_header: Optional[str],
+ url: str,
+ ) -> Tuple[Optional[str], str]:
+ """
+ for cloudflare ai gateway - https://github.com/BerriAI/litellm/issues/4317
+
+ ## Returns
+ - (auth_header, url) - Tuple[Optional[str], str]
+ """
+ if api_base:
+ if custom_llm_provider == "gemini":
+ url = "{}:{}".format(api_base, endpoint)
+ if gemini_api_key is None:
+ raise ValueError(
+ "Missing gemini_api_key, please set `GEMINI_API_KEY`"
+ )
+ auth_header = (
+ gemini_api_key # cloudflare expects api key as bearer token
+ )
+ else:
+ url = "{}:{}".format(api_base, endpoint)
+
+ if stream is True:
+ url = url + "?alt=sse"
+ return auth_header, url
+
+ def _get_token_and_url(
+ self,
+ model: str,
+ auth_header: Optional[str],
+ gemini_api_key: Optional[str],
+ vertex_project: Optional[str],
+ vertex_location: Optional[str],
+ vertex_credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ stream: Optional[bool],
+ custom_llm_provider: Literal["vertex_ai", "vertex_ai_beta", "gemini"],
+ api_base: Optional[str],
+ should_use_v1beta1_features: Optional[bool] = False,
+ mode: all_gemini_url_modes = "chat",
+ ) -> Tuple[Optional[str], str]:
+ """
+ Internal function. Returns the token and url for the call.
+
+ Handles logic if it's google ai studio vs. vertex ai.
+
+ Returns
+ token, url
+ """
+ if custom_llm_provider == "gemini":
+ url, endpoint = _get_gemini_url(
+ mode=mode,
+ model=model,
+ stream=stream,
+ gemini_api_key=gemini_api_key,
+ )
+ auth_header = None # this field is not used for gemin
+ else:
+ vertex_location = self.get_vertex_region(vertex_region=vertex_location)
+
+ ### SET RUNTIME ENDPOINT ###
+ version: Literal["v1beta1", "v1"] = (
+ "v1beta1" if should_use_v1beta1_features is True else "v1"
+ )
+ url, endpoint = _get_vertex_url(
+ mode=mode,
+ model=model,
+ stream=stream,
+ vertex_project=vertex_project,
+ vertex_location=vertex_location,
+ vertex_api_version=version,
+ )
+
+ return self._check_custom_proxy(
+ api_base=api_base,
+ auth_header=auth_header,
+ custom_llm_provider=custom_llm_provider,
+ gemini_api_key=gemini_api_key,
+ endpoint=endpoint,
+ stream=stream,
+ url=url,
+ )
+
+ async def _ensure_access_token_async(
+ self,
+ credentials: Optional[VERTEX_CREDENTIALS_TYPES],
+ project_id: Optional[str],
+ custom_llm_provider: Literal[
+ "vertex_ai", "vertex_ai_beta", "gemini"
+ ], # if it's vertex_ai or gemini (google ai studio)
+ ) -> Tuple[str, str]:
+ """
+ Async version of _ensure_access_token
+ """
+ if custom_llm_provider == "gemini":
+ return "", ""
+ if self.access_token is not None:
+ if project_id is not None:
+ return self.access_token, project_id
+ elif self.project_id is not None:
+ return self.access_token, self.project_id
+
+ if not self._credentials:
+ try:
+ self._credentials, cred_project_id = await asyncify(self.load_auth)(
+ credentials=credentials, project_id=project_id
+ )
+ except Exception:
+ verbose_logger.exception(
+ "Failed to load vertex credentials. Check to see if credentials containing partial/invalid information."
+ )
+ raise
+ if not self.project_id:
+ self.project_id = project_id or cred_project_id
+ else:
+ if self._credentials.expired or not self._credentials.token:
+ await asyncify(self.refresh_auth)(self._credentials)
+
+ if not self.project_id:
+ self.project_id = self._credentials.quota_project_id
+
+ if not self.project_id:
+ raise ValueError("Could not resolve project_id")
+
+ if not self._credentials or not self._credentials.token:
+ raise RuntimeError("Could not resolve API token from the environment")
+
+ return self._credentials.token, project_id or self.project_id
+
+ def set_headers(
+ self, auth_header: Optional[str], extra_headers: Optional[dict]
+ ) -> dict:
+ headers = {
+ "Content-Type": "application/json",
+ }
+ if auth_header is not None:
+ headers["Authorization"] = f"Bearer {auth_header}"
+ if extra_headers is not None:
+ headers.update(extra_headers)
+
+ return headers
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_model_garden/main.py b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_model_garden/main.py
new file mode 100644
index 00000000..7b54d4e3
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vertex_ai/vertex_model_garden/main.py
@@ -0,0 +1,149 @@
+"""
+API Handler for calling Vertex AI Model Garden Models
+
+Most Vertex Model Garden Models are OpenAI compatible - so this handler calls `openai_like_chat_completions`
+
+Usage:
+
+response = litellm.completion(
+ model="vertex_ai/openai/5464397967697903616",
+ messages=[{"role": "user", "content": "Hello, how are you?"}],
+)
+
+Sent to this route when `model` is in the format `vertex_ai/openai/{MODEL_ID}`
+
+
+Vertex Documentation for using the OpenAI /chat/completions endpoint: https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_pytorch_llama3_deployment.ipynb
+"""
+
+from typing import Callable, Optional, Union
+
+import httpx # type: ignore
+
+from litellm.utils import ModelResponse
+
+from ..common_utils import VertexAIError
+from ..vertex_llm_base import VertexBase
+
+
+def create_vertex_url(
+ vertex_location: str,
+ vertex_project: str,
+ stream: Optional[bool],
+ model: str,
+ api_base: Optional[str] = None,
+) -> str:
+ """Return the base url for the vertex garden models"""
+ # f"https://{self.endpoint.location}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT_ID}/locations/{self.endpoint.location}"
+ return f"https://{vertex_location}-aiplatform.googleapis.com/v1beta1/projects/{vertex_project}/locations/{vertex_location}/endpoints/{model}"
+
+
+class VertexAIModelGardenModels(VertexBase):
+ def __init__(self) -> None:
+ pass
+
+ def completion(
+ self,
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ api_base: Optional[str],
+ optional_params: dict,
+ custom_prompt_dict: dict,
+ headers: Optional[dict],
+ timeout: Union[float, httpx.Timeout],
+ litellm_params: dict,
+ vertex_project=None,
+ vertex_location=None,
+ vertex_credentials=None,
+ logger_fn=None,
+ acompletion: bool = False,
+ client=None,
+ ):
+ """
+ Handles calling Vertex AI Model Garden Models in OpenAI compatible format
+
+ Sent to this route when `model` is in the format `vertex_ai/openai/{MODEL_ID}`
+ """
+ try:
+ import vertexai
+
+ from litellm.llms.openai_like.chat.handler import OpenAILikeChatHandler
+ from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import (
+ VertexLLM,
+ )
+ except Exception as e:
+
+ raise VertexAIError(
+ status_code=400,
+ message=f"""vertexai import failed please run `pip install -U "google-cloud-aiplatform>=1.38"`. Got error: {e}""",
+ )
+
+ if not (
+ hasattr(vertexai, "preview") or hasattr(vertexai.preview, "language_models")
+ ):
+ raise VertexAIError(
+ status_code=400,
+ message="""Upgrade vertex ai. Run `pip install "google-cloud-aiplatform>=1.38"`""",
+ )
+ try:
+ model = model.replace("openai/", "")
+ vertex_httpx_logic = VertexLLM()
+
+ access_token, project_id = vertex_httpx_logic._ensure_access_token(
+ credentials=vertex_credentials,
+ project_id=vertex_project,
+ custom_llm_provider="vertex_ai",
+ )
+
+ openai_like_chat_completions = OpenAILikeChatHandler()
+
+ ## CONSTRUCT API BASE
+ stream: bool = optional_params.get("stream", False) or False
+ optional_params["stream"] = stream
+ default_api_base = create_vertex_url(
+ vertex_location=vertex_location or "us-central1",
+ vertex_project=vertex_project or project_id,
+ stream=stream,
+ model=model,
+ )
+
+ if len(default_api_base.split(":")) > 1:
+ endpoint = default_api_base.split(":")[-1]
+ else:
+ endpoint = ""
+
+ _, api_base = self._check_custom_proxy(
+ api_base=api_base,
+ custom_llm_provider="vertex_ai",
+ gemini_api_key=None,
+ endpoint=endpoint,
+ stream=stream,
+ auth_header=None,
+ url=default_api_base,
+ )
+ model = ""
+ return openai_like_chat_completions.completion(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ api_key=access_token,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ acompletion=acompletion,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ client=client,
+ timeout=timeout,
+ encoding=encoding,
+ custom_llm_provider="vertex_ai",
+ )
+
+ except Exception as e:
+ raise VertexAIError(status_code=500, message=str(e))
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/handler.py
new file mode 100644
index 00000000..1f130829
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/handler.py
@@ -0,0 +1,195 @@
+import time # type: ignore
+from typing import Callable
+
+import httpx
+
+from litellm.litellm_core_utils.prompt_templates.factory import (
+ custom_prompt,
+ prompt_factory,
+)
+from litellm.utils import ModelResponse, Usage
+
+llm = None
+
+
+class VLLMError(Exception):
+ def __init__(self, status_code, message):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(method="POST", url="http://0.0.0.0:8000")
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ self.message
+ ) # Call the base class constructor with the parameters it needs
+
+
+# check if vllm is installed
+def validate_environment(model: str):
+ global llm
+ try:
+ from vllm import LLM, SamplingParams # type: ignore
+
+ if llm is None:
+ llm = LLM(model=model)
+ return llm, SamplingParams
+ except Exception as e:
+ raise VLLMError(status_code=0, message=str(e))
+
+
+def completion(
+ model: str,
+ messages: list,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ logging_obj,
+ optional_params: dict,
+ custom_prompt_dict={},
+ litellm_params=None,
+ logger_fn=None,
+):
+ global llm
+ try:
+ llm, SamplingParams = validate_environment(model=model)
+ except Exception as e:
+ raise VLLMError(status_code=0, message=str(e))
+ sampling_params = SamplingParams(**optional_params)
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details["initial_prompt_value"],
+ final_prompt_value=model_prompt_details["final_prompt_value"],
+ messages=messages,
+ )
+ else:
+ prompt = prompt_factory(model=model, messages=messages)
+
+ ## LOGGING
+ logging_obj.pre_call(
+ input=prompt,
+ api_key="",
+ additional_args={"complete_input_dict": sampling_params},
+ )
+
+ if llm:
+ outputs = llm.generate(prompt, sampling_params)
+ else:
+ raise VLLMError(
+ status_code=0, message="Need to pass in a model name to initialize vllm"
+ )
+
+ ## COMPLETION CALL
+ if "stream" in optional_params and optional_params["stream"] is True:
+ return iter(outputs)
+ else:
+ ## LOGGING
+ logging_obj.post_call(
+ input=prompt,
+ api_key="",
+ original_response=outputs,
+ additional_args={"complete_input_dict": sampling_params},
+ )
+ print_verbose(f"raw model_response: {outputs}")
+ ## RESPONSE OBJECT
+ model_response.choices[0].message.content = outputs[0].outputs[0].text # type: ignore
+
+ ## CALCULATING USAGE
+ prompt_tokens = len(outputs[0].prompt_token_ids)
+ completion_tokens = len(outputs[0].outputs[0].token_ids)
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+
+def batch_completions(
+ model: str, messages: list, optional_params=None, custom_prompt_dict={}
+):
+ """
+ Example usage:
+ import litellm
+ import os
+ from litellm import batch_completion
+
+
+ responses = batch_completion(
+ model="vllm/facebook/opt-125m",
+ messages = [
+ [
+ {
+ "role": "user",
+ "content": "good morning? "
+ }
+ ],
+ [
+ {
+ "role": "user",
+ "content": "what's the time? "
+ }
+ ]
+ ]
+ )
+ """
+ try:
+ llm, SamplingParams = validate_environment(model=model)
+ except Exception as e:
+ error_str = str(e)
+ raise VLLMError(status_code=0, message=error_str)
+ sampling_params = SamplingParams(**optional_params)
+ prompts = []
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_details = custom_prompt_dict[model]
+ for message in messages:
+ prompt = custom_prompt(
+ role_dict=model_prompt_details["roles"],
+ initial_prompt_value=model_prompt_details["initial_prompt_value"],
+ final_prompt_value=model_prompt_details["final_prompt_value"],
+ messages=message,
+ )
+ prompts.append(prompt)
+ else:
+ for message in messages:
+ prompt = prompt_factory(model=model, messages=message)
+ prompts.append(prompt)
+
+ if llm:
+ outputs = llm.generate(prompts, sampling_params)
+ else:
+ raise VLLMError(
+ status_code=0, message="Need to pass in a model name to initialize vllm"
+ )
+
+ final_outputs = []
+ for output in outputs:
+ model_response = ModelResponse()
+ ## RESPONSE OBJECT
+ model_response.choices[0].message.content = output.outputs[0].text # type: ignore
+
+ ## CALCULATING USAGE
+ prompt_tokens = len(output.prompt_token_ids)
+ completion_tokens = len(output.outputs[0].token_ids)
+
+ model_response.created = int(time.time())
+ model_response.model = model
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ final_outputs.append(model_response)
+ return final_outputs
+
+
+def embedding():
+ # logic for parsing in - calling - parsing out model embedding calls
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/transformation.py
new file mode 100644
index 00000000..ec4c07e9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/transformation.py
@@ -0,0 +1,15 @@
+"""
+Translates from OpenAI's `/v1/chat/completions` to the VLLM sdk `llm.generate`.
+
+NOT RECOMMENDED FOR PRODUCTION USE. Use `hosted_vllm/` instead.
+"""
+
+from ...hosted_vllm.chat.transformation import HostedVLLMChatConfig
+
+
+class VLLMConfig(HostedVLLMChatConfig):
+ """
+ VLLM SDK supports the same OpenAI params as hosted_vllm.
+ """
+
+ pass
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/volcengine.py b/.venv/lib/python3.12/site-packages/litellm/llms/volcengine.py
new file mode 100644
index 00000000..e4a78104
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/volcengine.py
@@ -0,0 +1,64 @@
+from typing import Optional, Union
+
+from litellm.llms.openai_like.chat.transformation import OpenAILikeChatConfig
+
+
+class VolcEngineConfig(OpenAILikeChatConfig):
+ frequency_penalty: Optional[int] = None
+ function_call: Optional[Union[str, dict]] = None
+ functions: Optional[list] = None
+ logit_bias: Optional[dict] = None
+ max_tokens: Optional[int] = None
+ n: Optional[int] = None
+ presence_penalty: Optional[int] = None
+ stop: Optional[Union[str, list]] = None
+ temperature: Optional[int] = None
+ top_p: Optional[int] = None
+ response_format: Optional[dict] = None
+
+ def __init__(
+ self,
+ frequency_penalty: Optional[int] = None,
+ function_call: Optional[Union[str, dict]] = None,
+ functions: Optional[list] = None,
+ logit_bias: Optional[dict] = None,
+ max_tokens: Optional[int] = None,
+ n: Optional[int] = None,
+ presence_penalty: Optional[int] = None,
+ stop: Optional[Union[str, list]] = None,
+ temperature: Optional[int] = None,
+ top_p: Optional[int] = None,
+ response_format: Optional[dict] = None,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def get_supported_openai_params(self, model: str) -> list:
+ return [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "top_logprobs",
+ "max_completion_tokens",
+ "max_tokens",
+ "n",
+ "presence_penalty",
+ "seed",
+ "stop",
+ "stream",
+ "stream_options",
+ "temperature",
+ "top_p",
+ "tools",
+ "tool_choice",
+ "function_call",
+ "functions",
+ "max_retries",
+ "extra_headers",
+ ] # works across all models
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/voyage/embedding/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/voyage/embedding/transformation.py
new file mode 100644
index 00000000..9507ac89
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/voyage/embedding/transformation.py
@@ -0,0 +1,146 @@
+from typing import List, Optional, Union
+
+import httpx
+
+from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllEmbeddingInputValues, AllMessageValues
+from litellm.types.utils import EmbeddingResponse, Usage
+
+
+class VoyageError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Union[dict, httpx.Headers] = {},
+ ):
+ self.status_code = status_code
+ self.message = message
+ self.request = httpx.Request(
+ method="POST", url="https://api.voyageai.com/v1/embeddings"
+ )
+ self.response = httpx.Response(status_code=status_code, request=self.request)
+ super().__init__(
+ status_code=status_code,
+ message=message,
+ headers=headers,
+ )
+
+
+class VoyageEmbeddingConfig(BaseEmbeddingConfig):
+ """
+ Reference: https://docs.voyageai.com/reference/embeddings-api
+ """
+
+ def __init__(self) -> None:
+ pass
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ if api_base:
+ if not api_base.endswith("/embeddings"):
+ api_base = f"{api_base}/embeddings"
+ return api_base
+ return "https://api.voyageai.com/v1/embeddings"
+
+ def get_supported_openai_params(self, model: str) -> list:
+ return [
+ "encoding_format",
+ "dimensions",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ """
+ Map OpenAI params to Voyage params
+
+ Reference: https://docs.voyageai.com/reference/embeddings-api
+ """
+ if "encoding_format" in non_default_params:
+ optional_params["encoding_format"] = non_default_params["encoding_format"]
+ if "dimensions" in non_default_params:
+ optional_params["output_dimension"] = non_default_params["dimensions"]
+ return optional_params
+
+ def validate_environment(
+ self,
+ headers: dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> dict:
+ if api_key is None:
+ api_key = (
+ get_secret_str("VOYAGE_API_KEY")
+ or get_secret_str("VOYAGE_AI_API_KEY")
+ or get_secret_str("VOYAGE_AI_TOKEN")
+ )
+ return {
+ "Authorization": f"Bearer {api_key}",
+ }
+
+ def transform_embedding_request(
+ self,
+ model: str,
+ input: AllEmbeddingInputValues,
+ optional_params: dict,
+ headers: dict,
+ ) -> dict:
+ return {
+ "input": input,
+ "model": model,
+ **optional_params,
+ }
+
+ def transform_embedding_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: EmbeddingResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str] = None,
+ request_data: dict = {},
+ optional_params: dict = {},
+ litellm_params: dict = {},
+ ) -> EmbeddingResponse:
+ try:
+ raw_response_json = raw_response.json()
+ except Exception:
+ raise VoyageError(
+ message=raw_response.text, status_code=raw_response.status_code
+ )
+
+ # model_response.usage
+ model_response.model = raw_response_json.get("model")
+ model_response.data = raw_response_json.get("data")
+ model_response.object = raw_response_json.get("object")
+
+ usage = Usage(
+ prompt_tokens=raw_response_json.get("usage", {}).get("total_tokens", 0),
+ total_tokens=raw_response_json.get("usage", {}).get("total_tokens", 0),
+ )
+ model_response.usage = usage
+ return model_response
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return VoyageError(
+ message=error_message, status_code=status_code, headers=headers
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/handler.py
new file mode 100644
index 00000000..8ea19d41
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/handler.py
@@ -0,0 +1,90 @@
+from typing import Callable, Optional, Union
+
+import httpx
+
+from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler
+from litellm.types.utils import CustomStreamingDecoder, ModelResponse
+
+from ...openai_like.chat.handler import OpenAILikeChatHandler
+from ..common_utils import _get_api_params
+from .transformation import IBMWatsonXChatConfig
+
+watsonx_chat_transformation = IBMWatsonXChatConfig()
+
+
+class WatsonXChatHandler(OpenAILikeChatHandler):
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ def completion(
+ self,
+ *,
+ model: str,
+ messages: list,
+ api_base: str,
+ custom_llm_provider: str,
+ custom_prompt_dict: dict,
+ model_response: ModelResponse,
+ print_verbose: Callable,
+ encoding,
+ api_key: Optional[str],
+ logging_obj,
+ optional_params: dict,
+ acompletion=None,
+ litellm_params: dict = {},
+ headers: Optional[dict] = None,
+ logger_fn=None,
+ timeout: Optional[Union[float, httpx.Timeout]] = None,
+ client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None,
+ custom_endpoint: Optional[bool] = None,
+ streaming_decoder: Optional[CustomStreamingDecoder] = None,
+ fake_stream: bool = False,
+ ):
+ api_params = _get_api_params(params=optional_params)
+
+ ## UPDATE HEADERS
+ headers = watsonx_chat_transformation.validate_environment(
+ headers=headers or {},
+ model=model,
+ messages=messages,
+ optional_params=optional_params,
+ api_key=api_key,
+ )
+
+ ## UPDATE PAYLOAD (optional params)
+ watsonx_auth_payload = watsonx_chat_transformation._prepare_payload(
+ model=model,
+ api_params=api_params,
+ )
+ optional_params.update(watsonx_auth_payload)
+
+ ## GET API URL
+ api_base = watsonx_chat_transformation.get_complete_url(
+ api_base=api_base,
+ model=model,
+ optional_params=optional_params,
+ litellm_params=litellm_params,
+ stream=optional_params.get("stream", False),
+ )
+
+ return super().completion(
+ model=model,
+ messages=messages,
+ api_base=api_base,
+ custom_llm_provider=custom_llm_provider,
+ custom_prompt_dict=custom_prompt_dict,
+ model_response=model_response,
+ print_verbose=print_verbose,
+ encoding=encoding,
+ api_key=api_key,
+ logging_obj=logging_obj,
+ optional_params=optional_params,
+ acompletion=acompletion,
+ litellm_params=litellm_params,
+ logger_fn=logger_fn,
+ headers=headers,
+ timeout=timeout,
+ client=client,
+ custom_endpoint=True,
+ streaming_decoder=streaming_decoder,
+ )
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/transformation.py
new file mode 100644
index 00000000..f253da6f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/transformation.py
@@ -0,0 +1,110 @@
+"""
+Translation from OpenAI's `/chat/completions` endpoint to IBM WatsonX's `/text/chat` endpoint.
+
+Docs: https://cloud.ibm.com/apidocs/watsonx-ai#text-chat
+"""
+
+from typing import List, Optional, Tuple, Union
+
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.watsonx import WatsonXAIEndpoint
+
+from ....utils import _remove_additional_properties, _remove_strict_from_schema
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+from ..common_utils import IBMWatsonXMixin
+
+
+class IBMWatsonXChatConfig(IBMWatsonXMixin, OpenAIGPTConfig):
+
+ def get_supported_openai_params(self, model: str) -> List:
+ return [
+ "temperature", # equivalent to temperature
+ "max_tokens", # equivalent to max_new_tokens
+ "top_p", # equivalent to top_p
+ "frequency_penalty", # equivalent to repetition_penalty
+ "stop", # equivalent to stop_sequences
+ "seed", # equivalent to random_seed
+ "stream", # equivalent to stream
+ "tools",
+ "tool_choice", # equivalent to tool_choice + tool_choice_options
+ "logprobs",
+ "top_logprobs",
+ "n",
+ "presence_penalty",
+ "response_format",
+ ]
+
+ def is_tool_choice_option(self, tool_choice: Optional[Union[str, dict]]) -> bool:
+ if tool_choice is None:
+ return False
+ if isinstance(tool_choice, str):
+ return tool_choice in ["auto", "none", "required"]
+ return False
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ ## TOOLS ##
+ _tools = non_default_params.pop("tools", None)
+ if _tools is not None:
+ # remove 'additionalProperties' from tools
+ _tools = _remove_additional_properties(_tools)
+ # remove 'strict' from tools
+ _tools = _remove_strict_from_schema(_tools)
+ if _tools is not None:
+ non_default_params["tools"] = _tools
+
+ ## TOOL CHOICE ##
+
+ _tool_choice = non_default_params.pop("tool_choice", None)
+ if self.is_tool_choice_option(_tool_choice):
+ optional_params["tool_choice_options"] = _tool_choice
+ elif _tool_choice is not None:
+ optional_params["tool_choice"] = _tool_choice
+ return super().map_openai_params(
+ non_default_params, optional_params, model, drop_params
+ )
+
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = api_base or get_secret_str("HOSTED_VLLM_API_BASE") # type: ignore
+ dynamic_api_key = (
+ api_key or get_secret_str("HOSTED_VLLM_API_KEY") or ""
+ ) # vllm does not require an api key
+ return api_base, dynamic_api_key
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ url = self._get_base_url(api_base=api_base)
+ if model.startswith("deployment/"):
+ deployment_id = "/".join(model.split("/")[1:])
+ endpoint = (
+ WatsonXAIEndpoint.DEPLOYMENT_CHAT_STREAM.value
+ if stream
+ else WatsonXAIEndpoint.DEPLOYMENT_CHAT.value
+ )
+ endpoint = endpoint.format(deployment_id=deployment_id)
+ else:
+ endpoint = (
+ WatsonXAIEndpoint.CHAT_STREAM.value
+ if stream
+ else WatsonXAIEndpoint.CHAT.value
+ )
+ url = url.rstrip("/") + endpoint
+
+ ## add api version
+ url = self._add_api_version_to_url(
+ url=url, api_version=optional_params.pop("api_version", None)
+ )
+ return url
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/common_utils.py b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/common_utils.py
new file mode 100644
index 00000000..4916cd1c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/common_utils.py
@@ -0,0 +1,291 @@
+from typing import Dict, List, Optional, Union, cast
+
+import httpx
+
+import litellm
+from litellm import verbose_logger
+from litellm.caching import InMemoryCache
+from litellm.litellm_core_utils.prompt_templates import factory as ptf
+from litellm.llms.base_llm.chat.transformation import BaseLLMException
+from litellm.secret_managers.main import get_secret_str
+from litellm.types.llms.openai import AllMessageValues
+from litellm.types.llms.watsonx import WatsonXAPIParams, WatsonXCredentials
+
+
+class WatsonXAIError(BaseLLMException):
+ def __init__(
+ self,
+ status_code: int,
+ message: str,
+ headers: Optional[Union[Dict, httpx.Headers]] = None,
+ ):
+ super().__init__(status_code=status_code, message=message, headers=headers)
+
+
+iam_token_cache = InMemoryCache()
+
+
+def get_watsonx_iam_url():
+ return (
+ get_secret_str("WATSONX_IAM_URL") or "https://iam.cloud.ibm.com/identity/token"
+ )
+
+
+def generate_iam_token(api_key=None, **params) -> str:
+ result: Optional[str] = iam_token_cache.get_cache(api_key) # type: ignore
+
+ if result is None:
+ headers = {}
+ headers["Content-Type"] = "application/x-www-form-urlencoded"
+ if api_key is None:
+ api_key = get_secret_str("WX_API_KEY") or get_secret_str("WATSONX_API_KEY")
+ if api_key is None:
+ raise ValueError("API key is required")
+ headers["Accept"] = "application/json"
+ data = {
+ "grant_type": "urn:ibm:params:oauth:grant-type:apikey",
+ "apikey": api_key,
+ }
+ iam_token_url = get_watsonx_iam_url()
+ verbose_logger.debug(
+ "calling ibm `/identity/token` to retrieve IAM token.\nURL=%s\nheaders=%s\ndata=%s",
+ iam_token_url,
+ headers,
+ data,
+ )
+ response = litellm.module_level_client.post(
+ url=iam_token_url, data=data, headers=headers
+ )
+ response.raise_for_status()
+ json_data = response.json()
+
+ result = json_data["access_token"]
+ iam_token_cache.set_cache(
+ key=api_key,
+ value=result,
+ ttl=json_data["expires_in"] - 10, # leave some buffer
+ )
+
+ return cast(str, result)
+
+
+def _generate_watsonx_token(api_key: Optional[str], token: Optional[str]) -> str:
+ if token is not None:
+ return token
+ token = generate_iam_token(api_key)
+ return token
+
+
+def _get_api_params(
+ params: dict,
+) -> WatsonXAPIParams:
+ """
+ Find watsonx.ai credentials in the params or environment variables and return the headers for authentication.
+ """
+ # Load auth variables from params
+ project_id = params.pop(
+ "project_id", params.pop("watsonx_project", None)
+ ) # watsonx.ai project_id - allow 'watsonx_project' to be consistent with how vertex project implementation works -> reduce provider-specific params
+ space_id = params.pop("space_id", None) # watsonx.ai deployment space_id
+ region_name = params.pop("region_name", params.pop("region", None))
+ if region_name is None:
+ region_name = params.pop(
+ "watsonx_region_name", params.pop("watsonx_region", None)
+ ) # consistent with how vertex ai + aws regions are accepted
+
+ # Load auth variables from environment variables
+ if project_id is None:
+ project_id = (
+ get_secret_str("WATSONX_PROJECT_ID")
+ or get_secret_str("WX_PROJECT_ID")
+ or get_secret_str("PROJECT_ID")
+ )
+ if region_name is None:
+ region_name = (
+ get_secret_str("WATSONX_REGION")
+ or get_secret_str("WX_REGION")
+ or get_secret_str("REGION")
+ )
+ if space_id is None:
+ space_id = (
+ get_secret_str("WATSONX_DEPLOYMENT_SPACE_ID")
+ or get_secret_str("WATSONX_SPACE_ID")
+ or get_secret_str("WX_SPACE_ID")
+ or get_secret_str("SPACE_ID")
+ )
+
+ if project_id is None:
+ raise WatsonXAIError(
+ status_code=401,
+ message="Error: Watsonx project_id not set. Set WX_PROJECT_ID in environment variables or pass in as a parameter.",
+ )
+
+ return WatsonXAPIParams(
+ project_id=project_id,
+ space_id=space_id,
+ region_name=region_name,
+ )
+
+
+def convert_watsonx_messages_to_prompt(
+ model: str,
+ messages: List[AllMessageValues],
+ provider: str,
+ custom_prompt_dict: Dict,
+) -> str:
+ # handle anthropic prompts and amazon titan prompts
+ if model in custom_prompt_dict:
+ # check if the model has a registered custom prompt
+ model_prompt_dict = custom_prompt_dict[model]
+ prompt = ptf.custom_prompt(
+ messages=messages,
+ role_dict=model_prompt_dict.get(
+ "role_dict", model_prompt_dict.get("roles")
+ ),
+ initial_prompt_value=model_prompt_dict.get("initial_prompt_value", ""),
+ final_prompt_value=model_prompt_dict.get("final_prompt_value", ""),
+ bos_token=model_prompt_dict.get("bos_token", ""),
+ eos_token=model_prompt_dict.get("eos_token", ""),
+ )
+ return prompt
+ elif provider == "ibm-mistralai":
+ prompt = ptf.mistral_instruct_pt(messages=messages)
+ else:
+ prompt: str = ptf.prompt_factory( # type: ignore
+ model=model, messages=messages, custom_llm_provider="watsonx"
+ )
+ return prompt
+
+
+# Mixin class for shared IBM Watson X functionality
+class IBMWatsonXMixin:
+ def validate_environment(
+ self,
+ headers: Dict,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ api_key: Optional[str] = None,
+ api_base: Optional[str] = None,
+ ) -> Dict:
+ default_headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+ }
+
+ if "Authorization" in headers:
+ return {**default_headers, **headers}
+ token = cast(
+ Optional[str],
+ optional_params.get("token") or get_secret_str("WATSONX_TOKEN"),
+ )
+ if token:
+ headers["Authorization"] = f"Bearer {token}"
+ elif zen_api_key := get_secret_str("WATSONX_ZENAPIKEY"):
+ headers["Authorization"] = f"ZenApiKey {zen_api_key}"
+ else:
+ token = _generate_watsonx_token(api_key=api_key, token=token)
+ # build auth headers
+ headers["Authorization"] = f"Bearer {token}"
+ return {**default_headers, **headers}
+
+ def _get_base_url(self, api_base: Optional[str]) -> str:
+ url = (
+ api_base
+ or get_secret_str("WATSONX_API_BASE") # consistent with 'AZURE_API_BASE'
+ or get_secret_str("WATSONX_URL")
+ or get_secret_str("WX_URL")
+ or get_secret_str("WML_URL")
+ )
+
+ if url is None:
+ raise WatsonXAIError(
+ status_code=401,
+ message="Error: Watsonx URL not set. Set WATSONX_API_BASE in environment variables or pass in as parameter - 'api_base='.",
+ )
+ return url
+
+ def _add_api_version_to_url(self, url: str, api_version: Optional[str]) -> str:
+ api_version = api_version or litellm.WATSONX_DEFAULT_API_VERSION
+ url = url + f"?version={api_version}"
+
+ return url
+
+ def get_error_class(
+ self, error_message: str, status_code: int, headers: Union[Dict, httpx.Headers]
+ ) -> BaseLLMException:
+ return WatsonXAIError(
+ status_code=status_code, message=error_message, headers=headers
+ )
+
+ @staticmethod
+ def get_watsonx_credentials(
+ optional_params: dict, api_key: Optional[str], api_base: Optional[str]
+ ) -> WatsonXCredentials:
+ api_key = (
+ api_key
+ or optional_params.pop("apikey", None)
+ or get_secret_str("WATSONX_APIKEY")
+ or get_secret_str("WATSONX_API_KEY")
+ or get_secret_str("WX_API_KEY")
+ )
+
+ api_base = (
+ api_base
+ or optional_params.pop(
+ "url",
+ optional_params.pop("api_base", optional_params.pop("base_url", None)),
+ )
+ or get_secret_str("WATSONX_API_BASE")
+ or get_secret_str("WATSONX_URL")
+ or get_secret_str("WX_URL")
+ or get_secret_str("WML_URL")
+ )
+
+ wx_credentials = optional_params.pop(
+ "wx_credentials",
+ optional_params.pop(
+ "watsonx_credentials", None
+ ), # follow {provider}_credentials, same as vertex ai
+ )
+
+ token: Optional[str] = None
+
+ if wx_credentials is not None:
+ api_base = wx_credentials.get("url", api_base)
+ api_key = wx_credentials.get(
+ "apikey", wx_credentials.get("api_key", api_key)
+ )
+ token = wx_credentials.get(
+ "token",
+ wx_credentials.get(
+ "watsonx_token", None
+ ), # follow format of {provider}_token, same as azure - e.g. 'azure_ad_token=..'
+ )
+ if api_key is None or not isinstance(api_key, str):
+ raise WatsonXAIError(
+ status_code=401,
+ message="Error: Watsonx API key not set. Set WATSONX_API_KEY in environment variables or pass in as parameter - 'api_key='.",
+ )
+ if api_base is None or not isinstance(api_base, str):
+ raise WatsonXAIError(
+ status_code=401,
+ message="Error: Watsonx API base not set. Set WATSONX_API_BASE in environment variables or pass in as parameter - 'api_base='.",
+ )
+ return WatsonXCredentials(
+ api_key=api_key, api_base=api_base, token=cast(Optional[str], token)
+ )
+
+ def _prepare_payload(self, model: str, api_params: WatsonXAPIParams) -> dict:
+ payload: dict = {}
+ if model.startswith("deployment/"):
+ if api_params["space_id"] is None:
+ raise WatsonXAIError(
+ status_code=401,
+ message="Error: space_id is required for models called using the 'deployment/' endpoint. Pass in the space_id as a parameter or set it in the WX_SPACE_ID environment variable.",
+ )
+ payload["space_id"] = api_params["space_id"]
+ return payload
+ payload["model_id"] = model
+ payload["project_id"] = api_params["project_id"]
+ return payload
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/completion/handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/completion/handler.py
new file mode 100644
index 00000000..2a57ddcf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/completion/handler.py
@@ -0,0 +1,3 @@
+"""
+Watsonx uses the llm_http_handler.py to handle the requests.
+"""
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/completion/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/completion/transformation.py
new file mode 100644
index 00000000..f414354e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/completion/transformation.py
@@ -0,0 +1,391 @@
+import time
+from datetime import datetime
+from typing import (
+ TYPE_CHECKING,
+ Any,
+ AsyncIterator,
+ Dict,
+ Iterator,
+ List,
+ Optional,
+ Union,
+)
+
+import httpx
+
+from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator
+from litellm.types.llms.openai import AllMessageValues, ChatCompletionUsageBlock
+from litellm.types.llms.watsonx import WatsonXAIEndpoint
+from litellm.types.utils import GenericStreamingChunk, ModelResponse, Usage
+from litellm.utils import map_finish_reason
+
+from ...base_llm.chat.transformation import BaseConfig
+from ..common_utils import (
+ IBMWatsonXMixin,
+ WatsonXAIError,
+ _get_api_params,
+ convert_watsonx_messages_to_prompt,
+)
+
+if TYPE_CHECKING:
+ from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj
+
+ LiteLLMLoggingObj = _LiteLLMLoggingObj
+else:
+ LiteLLMLoggingObj = Any
+
+
+class IBMWatsonXAIConfig(IBMWatsonXMixin, BaseConfig):
+ """
+ Reference: https://cloud.ibm.com/apidocs/watsonx-ai#text-generation
+ (See ibm_watsonx_ai.metanames.GenTextParamsMetaNames for a list of all available params)
+
+ Supported params for all available watsonx.ai foundational models.
+
+ - `decoding_method` (str): One of "greedy" or "sample"
+
+ - `temperature` (float): Sets the model temperature for sampling - not available when decoding_method='greedy'.
+
+ - `max_new_tokens` (integer): Maximum length of the generated tokens.
+
+ - `min_new_tokens` (integer): Maximum length of input tokens. Any more than this will be truncated.
+
+ - `length_penalty` (dict): A dictionary with keys "decay_factor" and "start_index".
+
+ - `stop_sequences` (string[]): list of strings to use as stop sequences.
+
+ - `top_k` (integer): top k for sampling - not available when decoding_method='greedy'.
+
+ - `top_p` (integer): top p for sampling - not available when decoding_method='greedy'.
+
+ - `repetition_penalty` (float): token repetition penalty during text generation.
+
+ - `truncate_input_tokens` (integer): Truncate input tokens to this length.
+
+ - `include_stop_sequences` (bool): If True, the stop sequence will be included at the end of the generated text in the case of a match.
+
+ - `return_options` (dict): A dictionary of options to return. Options include "input_text", "generated_tokens", "input_tokens", "token_ranks". Values are boolean.
+
+ - `random_seed` (integer): Random seed for text generation.
+
+ - `moderations` (dict): Dictionary of properties that control the moderations, for usages such as Hate and profanity (HAP) and PII filtering.
+
+ - `stream` (bool): If True, the model will return a stream of responses.
+ """
+
+ decoding_method: Optional[str] = "sample"
+ temperature: Optional[float] = None
+ max_new_tokens: Optional[int] = None # litellm.max_tokens
+ min_new_tokens: Optional[int] = None
+ length_penalty: Optional[dict] = None # e.g {"decay_factor": 2.5, "start_index": 5}
+ stop_sequences: Optional[List[str]] = None # e.g ["}", ")", "."]
+ top_k: Optional[int] = None
+ top_p: Optional[float] = None
+ repetition_penalty: Optional[float] = None
+ truncate_input_tokens: Optional[int] = None
+ include_stop_sequences: Optional[bool] = False
+ return_options: Optional[Dict[str, bool]] = None
+ random_seed: Optional[int] = None # e.g 42
+ moderations: Optional[dict] = None
+ stream: Optional[bool] = False
+
+ def __init__(
+ self,
+ decoding_method: Optional[str] = None,
+ temperature: Optional[float] = None,
+ max_new_tokens: Optional[int] = None,
+ min_new_tokens: Optional[int] = None,
+ length_penalty: Optional[dict] = None,
+ stop_sequences: Optional[List[str]] = None,
+ top_k: Optional[int] = None,
+ top_p: Optional[float] = None,
+ repetition_penalty: Optional[float] = None,
+ truncate_input_tokens: Optional[int] = None,
+ include_stop_sequences: Optional[bool] = None,
+ return_options: Optional[dict] = None,
+ random_seed: Optional[int] = None,
+ moderations: Optional[dict] = None,
+ stream: Optional[bool] = None,
+ **kwargs,
+ ) -> None:
+ locals_ = locals().copy()
+ for key, value in locals_.items():
+ if key != "self" and value is not None:
+ setattr(self.__class__, key, value)
+
+ @classmethod
+ def get_config(cls):
+ return super().get_config()
+
+ def is_watsonx_text_param(self, param: str) -> bool:
+ """
+ Determine if user passed in a watsonx.ai text generation param
+ """
+ text_generation_params = [
+ "decoding_method",
+ "max_new_tokens",
+ "min_new_tokens",
+ "length_penalty",
+ "stop_sequences",
+ "top_k",
+ "repetition_penalty",
+ "truncate_input_tokens",
+ "include_stop_sequences",
+ "return_options",
+ "random_seed",
+ "moderations",
+ "decoding_method",
+ "min_tokens",
+ ]
+
+ return param in text_generation_params
+
+ def get_supported_openai_params(self, model: str):
+ return [
+ "temperature", # equivalent to temperature
+ "max_tokens", # equivalent to max_new_tokens
+ "top_p", # equivalent to top_p
+ "frequency_penalty", # equivalent to repetition_penalty
+ "stop", # equivalent to stop_sequences
+ "seed", # equivalent to random_seed
+ "stream", # equivalent to stream
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: Dict,
+ optional_params: Dict,
+ model: str,
+ drop_params: bool,
+ ) -> Dict:
+ extra_body = {}
+ for k, v in non_default_params.items():
+ if k == "max_tokens":
+ optional_params["max_new_tokens"] = v
+ elif k == "stream":
+ optional_params["stream"] = v
+ elif k == "temperature":
+ optional_params["temperature"] = v
+ elif k == "top_p":
+ optional_params["top_p"] = v
+ elif k == "frequency_penalty":
+ optional_params["repetition_penalty"] = v
+ elif k == "seed":
+ optional_params["random_seed"] = v
+ elif k == "stop":
+ optional_params["stop_sequences"] = v
+ elif k == "decoding_method":
+ extra_body["decoding_method"] = v
+ elif k == "min_tokens":
+ extra_body["min_new_tokens"] = v
+ elif k == "top_k":
+ extra_body["top_k"] = v
+ elif k == "truncate_input_tokens":
+ extra_body["truncate_input_tokens"] = v
+ elif k == "length_penalty":
+ extra_body["length_penalty"] = v
+ elif k == "time_limit":
+ extra_body["time_limit"] = v
+ elif k == "return_options":
+ extra_body["return_options"] = v
+
+ if extra_body:
+ optional_params["extra_body"] = extra_body
+ return optional_params
+
+ def get_mapped_special_auth_params(self) -> dict:
+ """
+ Common auth params across bedrock/vertex_ai/azure/watsonx
+ """
+ return {
+ "project": "watsonx_project",
+ "region_name": "watsonx_region_name",
+ "token": "watsonx_token",
+ }
+
+ def map_special_auth_params(self, non_default_params: dict, optional_params: dict):
+ mapped_params = self.get_mapped_special_auth_params()
+
+ for param, value in non_default_params.items():
+ if param in mapped_params:
+ optional_params[mapped_params[param]] = value
+ return optional_params
+
+ def get_eu_regions(self) -> List[str]:
+ """
+ Source: https://www.ibm.com/docs/en/watsonx/saas?topic=integrations-regional-availability
+ """
+ return [
+ "eu-de",
+ "eu-gb",
+ ]
+
+ def get_us_regions(self) -> List[str]:
+ """
+ Source: https://www.ibm.com/docs/en/watsonx/saas?topic=integrations-regional-availability
+ """
+ return [
+ "us-south",
+ ]
+
+ def transform_request(
+ self,
+ model: str,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: Dict,
+ headers: Dict,
+ ) -> Dict:
+ provider = model.split("/")[0]
+ prompt = convert_watsonx_messages_to_prompt(
+ model=model,
+ messages=messages,
+ provider=provider,
+ custom_prompt_dict={},
+ )
+ extra_body_params = optional_params.pop("extra_body", {})
+ optional_params.update(extra_body_params)
+ watsonx_api_params = _get_api_params(params=optional_params)
+
+ watsonx_auth_payload = self._prepare_payload(
+ model=model,
+ api_params=watsonx_api_params,
+ )
+
+ # init the payload to the text generation call
+ payload = {
+ "input": prompt,
+ "moderations": optional_params.pop("moderations", {}),
+ "parameters": optional_params,
+ **watsonx_auth_payload,
+ }
+
+ return payload
+
+ def transform_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: ModelResponse,
+ logging_obj: LiteLLMLoggingObj,
+ request_data: Dict,
+ messages: List[AllMessageValues],
+ optional_params: Dict,
+ litellm_params: Dict,
+ encoding: str,
+ api_key: Optional[str] = None,
+ json_mode: Optional[bool] = None,
+ ) -> ModelResponse:
+ ## LOGGING
+ logging_obj.post_call(
+ input=messages,
+ api_key="",
+ original_response=raw_response.text,
+ )
+
+ json_resp = raw_response.json()
+
+ if "results" not in json_resp:
+ raise WatsonXAIError(
+ status_code=500,
+ message=f"Error: Invalid response from Watsonx.ai API: {json_resp}",
+ )
+ if model_response is None:
+ model_response = ModelResponse(model=json_resp.get("model_id", None))
+ generated_text = json_resp["results"][0]["generated_text"]
+ prompt_tokens = json_resp["results"][0]["input_token_count"]
+ completion_tokens = json_resp["results"][0]["generated_token_count"]
+ model_response.choices[0].message.content = generated_text # type: ignore
+ model_response.choices[0].finish_reason = map_finish_reason(
+ json_resp["results"][0]["stop_reason"]
+ )
+ if json_resp.get("created_at"):
+ model_response.created = int(
+ datetime.fromisoformat(json_resp["created_at"]).timestamp()
+ )
+ else:
+ model_response.created = int(time.time())
+ usage = Usage(
+ prompt_tokens=prompt_tokens,
+ completion_tokens=completion_tokens,
+ total_tokens=prompt_tokens + completion_tokens,
+ )
+ setattr(model_response, "usage", usage)
+ return model_response
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ url = self._get_base_url(api_base=api_base)
+ if model.startswith("deployment/"):
+ # deployment models are passed in as 'deployment/<deployment_id>'
+ deployment_id = "/".join(model.split("/")[1:])
+ endpoint = (
+ WatsonXAIEndpoint.DEPLOYMENT_TEXT_GENERATION_STREAM.value
+ if stream
+ else WatsonXAIEndpoint.DEPLOYMENT_TEXT_GENERATION.value
+ )
+ endpoint = endpoint.format(deployment_id=deployment_id)
+ else:
+ endpoint = (
+ WatsonXAIEndpoint.TEXT_GENERATION_STREAM
+ if stream
+ else WatsonXAIEndpoint.TEXT_GENERATION
+ )
+ url = url.rstrip("/") + endpoint
+
+ ## add api version
+ url = self._add_api_version_to_url(
+ url=url, api_version=optional_params.pop("api_version", None)
+ )
+ return url
+
+ def get_model_response_iterator(
+ self,
+ streaming_response: Union[Iterator[str], AsyncIterator[str], ModelResponse],
+ sync_stream: bool,
+ json_mode: Optional[bool] = False,
+ ):
+ return WatsonxTextCompletionResponseIterator(
+ streaming_response=streaming_response,
+ sync_stream=sync_stream,
+ json_mode=json_mode,
+ )
+
+
+class WatsonxTextCompletionResponseIterator(BaseModelResponseIterator):
+ # def _handle_string_chunk(self, str_line: str) -> GenericStreamingChunk:
+ # return self.chunk_parser(json.loads(str_line))
+
+ def chunk_parser(self, chunk: dict) -> GenericStreamingChunk:
+ try:
+ results = chunk.get("results", [])
+ if len(results) > 0:
+ text = results[0].get("generated_text", "")
+ finish_reason = results[0].get("stop_reason")
+ is_finished = finish_reason != "not_finished"
+
+ return GenericStreamingChunk(
+ text=text,
+ is_finished=is_finished,
+ finish_reason=finish_reason,
+ usage=ChatCompletionUsageBlock(
+ prompt_tokens=results[0].get("input_token_count", 0),
+ completion_tokens=results[0].get("generated_token_count", 0),
+ total_tokens=results[0].get("input_token_count", 0)
+ + results[0].get("generated_token_count", 0),
+ ),
+ )
+ return GenericStreamingChunk(
+ text="",
+ is_finished=False,
+ finish_reason="stop",
+ usage=None,
+ )
+ except Exception as e:
+ raise e
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/embed/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/embed/transformation.py
new file mode 100644
index 00000000..359137ee
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/embed/transformation.py
@@ -0,0 +1,112 @@
+"""
+Translates from OpenAI's `/v1/embeddings` to IBM's `/text/embeddings` route.
+"""
+
+from typing import Optional
+
+import httpx
+
+from litellm.llms.base_llm.embedding.transformation import (
+ BaseEmbeddingConfig,
+ LiteLLMLoggingObj,
+)
+from litellm.types.llms.openai import AllEmbeddingInputValues
+from litellm.types.llms.watsonx import WatsonXAIEndpoint
+from litellm.types.utils import EmbeddingResponse, Usage
+
+from ..common_utils import IBMWatsonXMixin, _get_api_params
+
+
+class IBMWatsonXEmbeddingConfig(IBMWatsonXMixin, BaseEmbeddingConfig):
+ def get_supported_openai_params(self, model: str) -> list:
+ return []
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool,
+ ) -> dict:
+ return optional_params
+
+ def transform_embedding_request(
+ self,
+ model: str,
+ input: AllEmbeddingInputValues,
+ optional_params: dict,
+ headers: dict,
+ ) -> dict:
+ watsonx_api_params = _get_api_params(params=optional_params)
+ watsonx_auth_payload = self._prepare_payload(
+ model=model,
+ api_params=watsonx_api_params,
+ )
+
+ return {
+ "inputs": input,
+ "parameters": optional_params,
+ **watsonx_auth_payload,
+ }
+
+ def get_complete_url(
+ self,
+ api_base: Optional[str],
+ model: str,
+ optional_params: dict,
+ litellm_params: dict,
+ stream: Optional[bool] = None,
+ ) -> str:
+ url = self._get_base_url(api_base=api_base)
+ endpoint = WatsonXAIEndpoint.EMBEDDINGS.value
+ if model.startswith("deployment/"):
+ deployment_id = "/".join(model.split("/")[1:])
+ endpoint = endpoint.format(deployment_id=deployment_id)
+ url = url.rstrip("/") + endpoint
+
+ ## add api version
+ url = self._add_api_version_to_url(
+ url=url, api_version=optional_params.pop("api_version", None)
+ )
+ return url
+
+ def transform_embedding_response(
+ self,
+ model: str,
+ raw_response: httpx.Response,
+ model_response: EmbeddingResponse,
+ logging_obj: LiteLLMLoggingObj,
+ api_key: Optional[str],
+ request_data: dict,
+ optional_params: dict,
+ litellm_params: dict,
+ ) -> EmbeddingResponse:
+ logging_obj.post_call(
+ original_response=raw_response.text,
+ )
+ json_resp = raw_response.json()
+ if model_response is None:
+ model_response = EmbeddingResponse(model=json_resp.get("model_id", None))
+ results = json_resp.get("results", [])
+ embedding_response = []
+ for idx, result in enumerate(results):
+ embedding_response.append(
+ {
+ "object": "embedding",
+ "index": idx,
+ "embedding": result["embedding"],
+ }
+ )
+ model_response.object = "list"
+ model_response.data = embedding_response
+ input_tokens = json_resp.get("input_token_count", 0)
+ setattr(
+ model_response,
+ "usage",
+ Usage(
+ prompt_tokens=input_tokens,
+ completion_tokens=0,
+ total_tokens=input_tokens,
+ ),
+ )
+ return model_response
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/xai/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/xai/chat/transformation.py
new file mode 100644
index 00000000..734c6eb2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/xai/chat/transformation.py
@@ -0,0 +1,53 @@
+from typing import Optional, Tuple
+
+from litellm.secret_managers.main import get_secret_str
+
+from ...openai.chat.gpt_transformation import OpenAIGPTConfig
+
+XAI_API_BASE = "https://api.x.ai/v1"
+
+
+class XAIChatConfig(OpenAIGPTConfig):
+ def _get_openai_compatible_provider_info(
+ self, api_base: Optional[str], api_key: Optional[str]
+ ) -> Tuple[Optional[str], Optional[str]]:
+ api_base = api_base or get_secret_str("XAI_API_BASE") or XAI_API_BASE # type: ignore
+ dynamic_api_key = api_key or get_secret_str("XAI_API_KEY")
+ return api_base, dynamic_api_key
+
+ def get_supported_openai_params(self, model: str) -> list:
+ return [
+ "frequency_penalty",
+ "logit_bias",
+ "logprobs",
+ "max_tokens",
+ "n",
+ "presence_penalty",
+ "response_format",
+ "seed",
+ "stop",
+ "stream",
+ "stream_options",
+ "temperature",
+ "tool_choice",
+ "tools",
+ "top_logprobs",
+ "top_p",
+ "user",
+ ]
+
+ def map_openai_params(
+ self,
+ non_default_params: dict,
+ optional_params: dict,
+ model: str,
+ drop_params: bool = False,
+ ) -> dict:
+ supported_openai_params = self.get_supported_openai_params(model=model)
+ for param, value in non_default_params.items():
+ if param == "max_completion_tokens":
+ optional_params["max_tokens"] = value
+ elif param in supported_openai_params:
+ if value is not None:
+ optional_params[param] = value
+ return optional_params