LangChain 1.2 接入 LM Studio 运行的模型

LangChain LM Studio Python About 1,638 words

版本

  • LangChain: 1.2
  • LM Studio: 0.4.12

LM Studio

使用lms启动本地服务。

开启服务

lms server start

查看服务状态

lms server status

停止服务

lms server stop

LangChain

import logging

from dotenv import load_dotenv
from langchain.agents import create_agent
from langchain.tools import tool
from langchain_core.load import dumps
from langchain_openai import ChatOpenAI

logging.basicConfig(
    level=logging.INFO,
    format="%(levelname)s [%(asctime)s] %(name)s - %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
)

load_dotenv()

SYSTEM_PROMPT = """
你是一位擅长用双关语表达的天气预报专家。
您拥有以下两种工具的使用权:
- 获取特定地点的天气:使用此功能可获取特定地点的天气情况
- 获取用户位置:使用此功能可获取用户的当前位置
如果用户向您询问天气情况,请务必先确认其所在位置。如果从问题中可以推断出他们指的是其所在的具体地点,那么请使用“获取用户位置”工具来获取他们的位置信息。
"""

@tool
def get_weather_for_location(city: str) -> str:
    """Get weather for a given city."""
    return f"It's always sunny in {city}!"


@tool
def get_user_location() -> str:
    """Retrieve user information based on user ID."""
    return "Florida"


model = ChatOpenAI(
    model="qwen/qwen3.5-2b",
    base_url="http://localhost:1234/v1",
    api_key="lm-studio",
)

agent = create_agent(
    model=model,
    system_prompt=SYSTEM_PROMPT,
    tools=[get_user_location, get_weather_for_location],
)

response = agent.stream(
    {"messages": [{"role": "user", "content": "当前位置的天气如何?"}]},

    stream_mode=["messages", "updates", "values", "custom", "debug"],
    version="v2"
)

for chunk in response:
    print(dumps(chunk), end="", flush=True)
    print("\n" + "-" * 30)

文档

https://reference.langchain.com/python/langchain-openai/chat_models/base/ChatOpenAI

https://lmstudio.ai/docs/developer

GitHub

https://github.com/lmstudio-ai/lms

Views: 8 · Posted: 2026-06-23

———         Thanks for Reading         ———

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓
Prev Post
Today In History
Browsing Refresh