File tree Expand file tree Collapse file tree 6 files changed +123
-2
lines changed
how-to-use-openrouter-to-access-multiple-ai-models-in-one-python-script Expand file tree Collapse file tree 6 files changed +123
-2
lines changed Original file line number Diff line number Diff line change 1+ import os
2+ import requests
3+
4+ OPENROUTER_API_URL = "https://openrouter.ai/api/v1/chat/completions"
5+
6+ api_key = os .getenv ("OPENROUTER_API_KEY" )
7+
8+ headers = {
9+ "Authorization" : f"Bearer { api_key } " ,
10+ "Content-Type" : "application/json"
11+ }
12+ payload = {
13+ "model" : "openrouter/auto" ,
14+ "messages" : [{"role" : "user" , "content" : "Say hello in one sentence." }]
15+ }
16+ response = requests .post (OPENROUTER_API_URL , headers = headers , json = payload )
17+ data = response .json ()
18+
19+ print (f"Model: { data .get ('model' )} " )
20+ print (f"Response: { data ['choices' ][0 ]['message' ]['content' ]} " )
Original file line number Diff line number Diff line change 1+ import os
2+ import requests
3+
4+ OPENROUTER_API_URL = "https://openrouter.ai/api/v1/chat/completions"
5+
6+ api_key = os .getenv ("OPENROUTER_API_KEY" )
7+
8+ headers = {
9+ "Authorization" : f"Bearer { api_key } " ,
10+ "Content-Type" : "application/json"
11+ }
12+ payload = {
13+ "model" : "openai/gpt-3.5-turbo" ,
14+ "messages" : [{"role" : "user" , "content" : "Say hello in one sentence." }]
15+ }
16+ response = requests .post (OPENROUTER_API_URL , headers = headers , json = payload )
17+ data = response .json ()
18+
19+ if model := data .get ('model' ):
20+ print (f"Model: { model } by { data ['provider' ]} " )
21+ print (f"Response: { data ['choices' ][0 ]['message' ]['content' ]} " )
22+ else :
23+ print ("No model found in the response." )
24+ print (f"Response: { data } " )
Original file line number Diff line number Diff line change 1+ import os
2+ import requests
3+
4+ OPENROUTER_API_URL = "https://openrouter.ai/api/v1/chat/completions"
5+
6+ api_key = os .getenv ("OPENROUTER_API_KEY" )
7+
8+ def make_request_with_fallback (models_list , messages ):
9+ headers = {
10+ "Authorization" : f"Bearer { api_key } " ,
11+ "Content-Type" : "application/json"
12+ }
13+ payload = {"models" : models_list , "messages" : messages }
14+
15+ return requests .post (OPENROUTER_API_URL , headers = headers , json = payload )
16+
17+ response = make_request_with_fallback (
18+ models_list = [
19+ "openai/gpt-5" ,
20+ "openai/gpt-3.5-turbo" ,
21+ "openai/gpt-3.5-turbo-16k"
22+ ],
23+ messages = [{"role" : "user" , "content" : "What is the capital of France?" }]
24+ )
25+
26+ data = response .json ()
27+ if model := data .get ('model' ):
28+ print (f"Model: { model } by { data ['provider' ]} " )
29+ print (f"Response: { data ['choices' ][0 ]['message' ]['content' ]} " )
30+ else :
31+ print ("No model found in the response." )
32+ print (f"Response: { data } " )
Original file line number Diff line number Diff line change 1+ import os
2+ import requests
3+
4+ OPENROUTER_MODELS_URL = "https://openrouter.ai/api/v1/models"
5+
6+ api_key = os .getenv ("OPENROUTER_API_KEY" )
7+
8+ headers = {"Authorization" : f"Bearer { api_key } " }
9+ response = requests .get (OPENROUTER_MODELS_URL , headers = headers )
10+ data = response .json ()
11+
12+ models = data .get ("data" , [])
13+ print (f"Success! Found { len (models )} models via OpenRouter." )
14+ print (f"Examples: { ', ' .join (m ['id' ] for m in models [:5 ])} " )
Original file line number Diff line number Diff line change 1- python-dotenv == 1.2.1
2- requests == 2.32.5
1+ requests
Original file line number Diff line number Diff line change 1+ import os
2+ import requests
3+
4+ OPENROUTER_API_URL = "https://openrouter.ai/api/v1/chat/completions"
5+
6+ api_key = os .getenv ("OPENROUTER_API_KEY" )
7+
8+ def make_request (model , messages , provider_config = None ):
9+ headers = {
10+ "Authorization" : f"Bearer { api_key } " ,
11+ "Content-Type" : "application/json"
12+ }
13+ payload = {"model" : model , "messages" : messages }
14+ if provider_config :
15+ payload ["provider" ] = provider_config
16+
17+ response = requests .post (OPENROUTER_API_URL , headers = headers , json = payload )
18+ response .raise_for_status ()
19+ return response .json ()
20+
21+ data = make_request (
22+ model = "meta-llama/llama-3.1-70b-instruct" ,
23+ messages = [{"role" : "user" , "content" : "Explain AI in one sentence." }],
24+ provider_config = {"sort" : "price" }
25+ )
26+
27+ if model := data .get ('model' ):
28+ print (f"Model: { model } by { data ['provider' ]} " )
29+ print (f"Response: { data ['choices' ][0 ]['message' ]['content' ]} " )
30+ else :
31+ print ("No model found in the response." )
32+ print (f"Response: { data } " )
You can’t perform that action at this time.
0 commit comments