| """Utility & helper functions.""" |
|
|
| from langchain.chat_models import init_chat_model |
| from langchain_core.language_models import BaseChatModel |
| from langchain_core.messages import BaseMessage |
|
|
|
|
| def get_message_text(msg: BaseMessage) -> str: |
| """Get the text content of a message.""" |
| content = msg.content |
| if isinstance(content, str): |
| return content |
| elif isinstance(content, dict): |
| return content.get("text", "") |
| else: |
| txts = [c if isinstance(c, str) else (c.get("text") or "") for c in content] |
| return "".join(txts).strip() |
|
|
|
|
| def load_chat_model(fully_specified_name: str) -> BaseChatModel: |
| """Load a chat model from a fully specified name. |
| |
| Args: |
| fully_specified_name (str): String in the format 'provider/model'. |
| """ |
| provider, model = fully_specified_name.split("/", maxsplit=1) |
| return init_chat_model(model, model_provider=provider) |
|
|