Spaces:
Sleeping
Sleeping
"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; | |