File size: 1,486 Bytes
cf4341b
 
29e9295
a1b1b32
 
cf4341b
a1b1b32
29e9295
 
 
 
4969145
29e9295
cf4341b
29e9295
4969145
29e9295
 
 
cf4341b
 
 
 
 
29e9295
 
cf4341b
 
29e9295
 
 
 
 
 
 
cf4341b
29e9295
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import os

from dotenv import load_dotenv
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI
from llama_index.llms.azure_openai import AzureOpenAI
from llama_index.embeddings.azure_openai import AzureOpenAIEmbedding
from schemas import ServiceProvider, ChatbotVersion

load_dotenv()

def get_service_provider_config(service_provider: ServiceProvider, model_name: str=ChatbotVersion.CHATGPT_35.value):
    if service_provider == ServiceProvider.AZURE:
        return get_azure_openai_config(model_name = model_name)
    if service_provider == ServiceProvider.OPENAI:
        llm = OpenAI(model=model_name)
        embed_model = OpenAIEmbedding()
        return llm, embed_model

# The engine name needs to be the same as the deployment name in Azure.
def get_azure_openai_config(model_name: str):
    api_key = os.getenv("AZURE_OPENAI_API_KEY")
    azure_endpoint = "https://awesumcare.openai.azure.com/"
    api_version = "2024-10-01-preview"

    llm = AzureOpenAI(
        engine=model_name,
        model=model_name,
        api_key=api_key,
        azure_endpoint=azure_endpoint,
        api_version=api_version,
    )

    # You need to deploy your own embedding model as well as your own chat completion model
    embed_model = AzureOpenAIEmbedding(
        deployment_name="text-embedding-ada-002",
        api_key=api_key,
        azure_endpoint=azure_endpoint,
        api_version=api_version,
    )
    return llm, embed_model