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_modeandjson_schemaStructured output are not supported.
Change Log
Metadata
Release files for langchain-vm-x-ai 1.2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_vm_x_ai-1.2.6.tar.gz | 17.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_vm_x_ai-1.2.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.1 kB
Release files / langchain_vm_x_ai-1.2.6.tar.gz
| Download URL | langchain_vm_x_ai-1.2.6.tar.gz |
|---|---|
| Size | 17.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b432038a1b3146a977c1fb6a94cab79ac5e8e316269a176bebae61e6c0679cb2
|
|
BLAKE2b-256 checksum How to use checksums |
16185bea1fd3a7ee4f766336f0c93d58a37d96e3d07bb1833163607bad599bc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.9.23 Linux/6.11.0-1018-azure
|
Release files / langchain_vm_x_ai-1.2.6-py3-none-any.whl
| Download URL | langchain_vm_x_ai-1.2.6-py3-none-any.whl |
|---|---|
| Size | 18.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b7845a758ffed199463a64aa72d2c5e0ea53754e80a119cc9dbd9c68c81d9ce
|
|
BLAKE2b-256 checksum How to use checksums |
f4cbad29c9275f2bf28c3c4d289bb5365fb8e4e0128521a1bb4fced69563195b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.9.23 Linux/6.11.0-1018-azure
|