Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,5 @@ dependencies:
- "pinecone-client[grpc]==6.0.0"
- tavily-python==0.5.3
- build==1.2.2
- langchain-aws==0.2.27

1 change: 1 addition & 0 deletions experimental/notebooks/03_tableau_datasource_qa.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@
" tableau_user=tableau_user,\n",
" datasource_luid=datasource_luid,\n",
" tooling_llm_model=tooling_model\n",
" model_provider=openai\n",
")\n",
"\n",
"# add the tool to a List to give to the agent\n",
Expand Down
33 changes: 33 additions & 0 deletions experimental/utilities/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from langchain_openai import ChatOpenAI, AzureChatOpenAI, OpenAIEmbeddings, AzureOpenAIEmbeddings
from langchain.chat_models.base import BaseChatModel
from langchain.embeddings.base import Embeddings
from langchain_aws import ChatBedrockConverse, BedrockEmbeddings


def select_model(provider: str = "openai", model_name: str = "gpt-4o-mini", temperature: float = 0.2) -> BaseChatModel:
Expand All @@ -15,6 +16,23 @@ def select_model(provider: str = "openai", model_name: str = "gpt-4o-mini", temp
model_name=model_name,
temperature=temperature
)
elif provider == "aws":
auth_type = 'profile' if os.environ.get("aws_cred_profile",None) is None else 'creds'
if auth_type == 'profile':
return ChatBedrockConverse(
model=model_name,
temperature=temperature,
credentials_profile_name = os.environ.get("aws_cred_profile")
)
else:
return ChatBedrockConverse(
model=model_name,
temperature=temperature,
aws_access_key_id=os.environ.get("aws_access_key_id"),
aws_secret_access_key=os.environ.get("aws_secret_access_key"),
aws_session_token=os.environ.get("aws_session_token")
)

else: # default to OpenAI
return ChatOpenAI(
model_name=model_name,
Expand All @@ -32,6 +50,21 @@ def select_embeddings(provider: str = "openai", model_name: str = "text-embeddin
openai_api_key=os.environ.get("AZURE_OPENAI_API_KEY"),
model=model_name
)
elif provider == "aws":
auth_type = 'profile' if os.environ.get("aws_cred_profile",None) is None else 'creds'
if auth_type == 'profile':

return BedrockEmbeddings(
model=model_name,
credentials_profile_name = os.environ.get("aws_cred_profile")
)
else:
return BedrockEmbeddings(
model=model_name,
aws_access_key_id=os.environ.get("aws_access_key_id"),
aws_secret_access_key=os.environ.get("aws_secret_access_key"),
aws_session_token=os.environ.get("aws_session_token")
)
else: # default to OpenAI
return OpenAIEmbeddings(
model=model_name,
Expand Down
33 changes: 33 additions & 0 deletions pkg/langchain_tableau/utilities/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from langchain_openai import ChatOpenAI, AzureChatOpenAI, OpenAIEmbeddings, AzureOpenAIEmbeddings
from langchain.chat_models.base import BaseChatModel
from langchain.embeddings.base import Embeddings
from langchain_aws import ChatBedrockConverse, BedrockEmbeddings


def select_model(provider: str = "openai", model_name: str = "gpt-4o-mini", temperature: float = 0.2) -> BaseChatModel:
Expand All @@ -15,6 +16,23 @@ def select_model(provider: str = "openai", model_name: str = "gpt-4o-mini", temp
model_name=model_name,
temperature=temperature
)
elif provider == "aws":
auth_type = 'profile' if os.environ.get("aws_cred_profile",None) is None else 'creds'
if auth_type == 'profile':
return ChatBedrockConverse(
model=model_name,
temperature=temperature,
credentials_profile_name = os.environ.get("aws_cred_profile")
)
else:
return ChatBedrockConverse(
model=model_name,
temperature=temperature,
aws_access_key_id=os.environ.get("aws_access_key_id"),
aws_secret_access_key=os.environ.get("aws_secret_access_key"),
aws_session_token=os.environ.get("aws_session_token")
)

else: # default to OpenAI
return ChatOpenAI(
model_name=model_name,
Expand All @@ -32,6 +50,21 @@ def select_embeddings(provider: str = "openai", model_name: str = "text-embeddin
openai_api_key=os.environ.get("AZURE_OPENAI_API_KEY"),
model=model_name
)
elif provider == "aws":
auth_type = 'profile' if os.environ.get("aws_cred_profile",None) is None else 'creds'
if auth_type == 'profile':

return BedrockEmbeddings(
model=model_name,
credentials_profile_name = os.environ.get("aws_cred_profile")
)
else:
return BedrockEmbeddings(
model=model_name,
aws_access_key_id=os.environ.get("aws_access_key_id"),
aws_secret_access_key=os.environ.get("aws_secret_access_key"),
aws_session_token=os.environ.get("aws_session_token")
)
else: # default to OpenAI
return OpenAIEmbeddings(
model=model_name,
Expand Down