VM-X AI Langchain Python SDK
Project description
VM-X SDK for Python Langchain
Description
VM-X AI SDK client for Python Langchain
Installation
pip install langchain-vm-x-ai
poetry add langchain-vm-x-ai
Usage
Non-Streaming
from langchain_vmxai import ChatVMX
llm = ChatVMX(
resource="default",
)
messages = [
(
"system",
"You are a helpful translator. Translate the user sentence to French.",
),
("human", "I love programming."),
]
result = llm.invoke(messages)
Streaming
from langchain_vmxai import ChatVMX
llm = ChatVMX(
resource="default",
)
messages = [
(
"system",
"You are a helpful translator. Translate the user sentence to French.",
),
("human", "I love programming."),
]
for chunk in llm.stream(messages):
print(chunk.content, end="", flush=True)
Function Calling
Decorator
from langchain_core.messages import HumanMessage, ToolMessage
from langchain_core.tools import tool
from langchain_vmxai import ChatVMX
@tool
def add(a: int, b: int) -> int:
"""Adds a and b.
Args:
a: first int
b: second int
"""
return a + b
@tool
def multiply(a: int, b: int) -> int:
"""Multiplies a and b.
Args:
a: first int
b: second int
"""
return a * b
tools = [add, multiply]
llm = ChatVMX(
resource="default",
)
llm_with_tools = llm.bind_tools(tools)
query = "What is 3 * 12? Also, what is 11 + 49?"
messages = [HumanMessage(query)]
ai_msg = llm_with_tools.invoke(messages)
messages.append(ai_msg)
for tool_call in ai_msg.tool_calls:
selected_tool = {"add": add, "multiply": multiply}[tool_call["name"].lower()]
tool_output = selected_tool.invoke(tool_call["args"])
messages.append(ToolMessage(tool_output, tool_call_id=tool_call["id"]))
print(llm_with_tools.invoke(messages))
Pydantic
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_vmxai import ChatVMX
from langchain_vmxai.output_parsers.tools import PydanticToolsParser
# Note that the docstrings here are crucial, as they will be passed along
# to the model along with the class name.
class add(BaseModel):
"""Add two integers together."""
a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
class multiply(BaseModel):
"""Multiply two integers together."""
a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
tools = [add, multiply]
llm = ChatVMX(
resource="default",
)
llm_with_tools = llm.bind_tools(tools) | PydanticToolsParser(tools=[multiply, add])
query = "What is 3 * 12? Also, what is 11 + 49?"
print(llm_with_tools.invoke(query))
Function Calling Streaming
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_vmxai import ChatVMX
from langchain_vmxai.output_parsers.tools import PydanticToolsParser
# Note that the docstrings here are crucial, as they will be passed along
# to the model along with the class name.
class add(BaseModel):
"""Add two integers together."""
a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
class multiply(BaseModel):
"""Multiply two integers together."""
a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
tools = [add, multiply]
llm = ChatVMX(
resource="default",
)
llm_with_tools = llm.bind_tools(tools) | PydanticToolsParser(tools=[multiply, add])
query = "What is 3 * 12? Also, what is 11 + 49?"
for chunk in llm_with_tools.stream(query):
print(chunk)
Structured Output
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_vmxai import ChatVMX
class Joke(BaseModel):
setup: str = Field(description="The setup of the joke")
punchline: str = Field(description="The punchline to the joke")
llm = ChatVMX(resource="default")
structured_llm = llm.with_structured_output(Joke, strict=True)
print(structured_llm.invoke("Tell me a joke about cats"))
Limitations
- Async client is not supported.
json_mode
andjson_schema
Structured output are not supported.
Change Log
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
langchain_vm_x_ai-1.1.2.tar.gz
(17.6 kB
view details)
Built Distribution
File details
Details for the file langchain_vm_x_ai-1.1.2.tar.gz
.
File metadata
- Download URL: langchain_vm_x_ai-1.1.2.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.9.20 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47079d149160ab1031c8161c3f17861d9fa9e955c4e999601bd8e58de051dabf |
|
MD5 | 9744dce7201235b73a3e2bc881de54b8 |
|
BLAKE2b-256 | 9fa18e61596d47bb698a161ca072bb0c54ec4377ff63915dbb8cc95b0d114f1e |
File details
Details for the file langchain_vm_x_ai-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: langchain_vm_x_ai-1.1.2-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.9.20 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7ac7cd905dfce3bbb561519836b30f8031eb0f4be72fd0b695241c767dea07f |
|
MD5 | 734204f1d792b4395c2a7ce8660ba3ba |
|
BLAKE2b-256 | 2e6db3a02f16d5dcf66c25ac24d8b4aed9f22c402984f2c1eeefd35848873f67 |