"use client"; import React, { useEffect, useState } from "react"; import { Badge, Card, Table, Metric, TableBody, TableCell, TableHead, TableHeaderCell, TableRow, Text, Title, Icon, Accordion, AccordionBody, AccordionHeader, List, ListItem, Tab, TabGroup, TabList, TabPanel, TabPanels, Grid, } from "@tremor/react"; import { Statistic } from "antd" import { modelAvailableCall } from "./networking"; import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; interface ApiRefProps { proxySettings: any; } const APIRef: React.FC<ApiRefProps> = ({ proxySettings, }) => { let base_url = "<your_proxy_base_url>"; if (proxySettings) { if (proxySettings.PROXY_BASE_URL && proxySettings.PROXY_BASE_URL !== undefined) { base_url = proxySettings.PROXY_BASE_URL; } } return ( <> <Grid className="gap-2 p-8 h-[80vh] w-full mt-2"> <div className="mb-5"> <p className="text-2xl text-tremor-content-strong dark:text-dark-tremor-content-strong font-semibold">OpenAI Compatible Proxy: API Reference</p> <Text className="mt-2 mb-2">LiteLLM is OpenAI Compatible. This means your API Key works with the OpenAI SDK. Just replace the base_url to point to your litellm proxy. Example Below </Text> <TabGroup> <TabList> <Tab>OpenAI Python SDK</Tab> <Tab>LlamaIndex</Tab> <Tab>Langchain Py</Tab> </TabList> <TabPanels> <TabPanel> <SyntaxHighlighter language="python"> {` import openai client = openai.OpenAI( api_key="your_api_key", base_url="${base_url}" # LiteLLM Proxy is OpenAI compatible, Read More: https://docs.litellm.ai/docs/proxy/user_keys ) response = client.chat.completions.create( model="gpt-3.5-turbo", # model to send to the proxy messages = [ { "role": "user", "content": "this is a test request, write a short poem" } ] ) print(response) `} </SyntaxHighlighter> </TabPanel> <TabPanel> <SyntaxHighlighter language="python"> {` import os, dotenv from llama_index.llms import AzureOpenAI from llama_index.embeddings import AzureOpenAIEmbedding from llama_index import VectorStoreIndex, SimpleDirectoryReader, ServiceContext llm = AzureOpenAI( engine="azure-gpt-3.5", # model_name on litellm proxy temperature=0.0, azure_endpoint="${base_url}", # litellm proxy endpoint api_key="sk-1234", # litellm proxy API Key api_version="2023-07-01-preview", ) embed_model = AzureOpenAIEmbedding( deployment_name="azure-embedding-model", azure_endpoint="${base_url}", api_key="sk-1234", api_version="2023-07-01-preview", ) documents = SimpleDirectoryReader("llama_index_data").load_data() service_context = ServiceContext.from_defaults(llm=llm, embed_model=embed_model) index = VectorStoreIndex.from_documents(documents, service_context=service_context) query_engine = index.as_query_engine() response = query_engine.query("What did the author do growing up?") print(response) `} </SyntaxHighlighter> </TabPanel> <TabPanel> <SyntaxHighlighter language="python"> {` from langchain.chat_models import ChatOpenAI from langchain.prompts.chat import ( ChatPromptTemplate, HumanMessagePromptTemplate, SystemMessagePromptTemplate, ) from langchain.schema import HumanMessage, SystemMessage chat = ChatOpenAI( openai_api_base="${base_url}", model = "gpt-3.5-turbo", temperature=0.1 ) messages = [ SystemMessage( content="You are a helpful assistant that im using to make a test request to." ), HumanMessage( content="test from litellm. tell me why it's amazing in 1 sentence" ), ] response = chat(messages) print(response) `} </SyntaxHighlighter> </TabPanel> </TabPanels> </TabGroup> </div> </Grid> </> ) } export default APIRef;