|
"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; |
|
|
|
|