Как заставить функции LLM Call MCP, размещенные в Google Cloud Run с PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как заставить функции LLM Call MCP, размещенные в Google Cloud Run с Python

Сообщение Anonymous »

Я размещал функцию в Google, и я могу позвонить ее с помощью FastMcpClient.
Спасибо за помощь с моим предыдущим вопросом. < /p>
Это мой код сервера MCP. Это развернуто как изображение Docker в Google Cloud Run. < /P>
import asyncio
import os
from fastmcp import FastMCP, Context
mcp = FastMCP("MCP Server on Cloud Run")

@mcp.tool()
'''Call this function when there are 2 numbers to add. Pass the 2 numbers as parameters'''
async def add(a: int, b: int, ctx: Context) -> int:
await ctx.debug(f"[add] {a}+{b}")
result = a+b
await ctx.debug(f"result={result}")
return result

if __name__ == "__main__":
asyncio.run(
mcp.run_async(
transport="streamable-http",
host="0.0.0.0",
port=os.getenv("PORT", 8080),
)
)
< /code>
Приведенный ниже код работает, и я могу вызвать инструмент MCP, чтобы добавить 2 номера. < /p>
from fastmcp import Client
import asyncio
import google.oauth2.id_token
import google.auth.transport.requests
import os
import sys

args = sys.argv
if len(args) != 3:
sys.stderr.write(f"Usage: python {args[0]} \n")
sys.exit(1)

a = args[1]
b = args[2]

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'C:\\Path\\to\\file.json'
audience = "https://mcp-server-url-from-cloud-run"

request = google.auth.transport.requests.Request()
token = google.oauth2.id_token.fetch_id_token(request, audience)

config = {
"mcpServers": {
"cloud-run":{
"transport": "streamable-http",
"url": f"{audience}/mcp/",
"headers": {
"Authorization": "Bearer token",
},
"auth": token,
}
}
}

client = Client(config)

async def run():
async with client:
print("Connected")
aint=int(a)
bint=int(b)
result = await client.call_tool(
name="add",
arguments={"a":aint, "b":bint},
)
print(result)

if __name__ == "__main__":
asyncio.run(run())
< /code>
Мое намерение заключалось в том, чтобы разоблачить этот инструмент моему LLM, чтобы он мог решить, когда называть инструменты в его утилизации. Например, если я скажу «Добавить 5 и 4» в приглашении, LLM должен вызвать функцию добавления и возвращать 9. Просто использование функции call_tool () не добавляет большого значения, когда вмещаются неструктурированные данные.os.environ["OPENAI_API_KEY"] = "Open_API_Key"
# Instantiate Google Gemini LLM with deterministic output and retry logic
llm = ChatOpenAI(
model="gpt-4o",
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2,
#api_key=""
# base_url="...",
# organization="...",
# other params...
)
server_script = sys.argv[1]
# Configure MCP server startup parameters
server_params = StdioServerParameters(
command="python" if server_script.endswith(".py") else "node",
args=[server_script],
)
mcp_client = None

async def run_agent():
global mcp_client
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
mcp_client = type("MCPClientHolder", (), {"session": session})()
tools = await load_mcp_tools(session)
agent = create_react_agent(llm, tools,prompt=system_message_obj)
print("MCP Client Started! Type 'quit' to exit.")
while True:
query = input("\\nQuery: ").strip()
if query.lower() == "quit":
break
# Send user query to agent and print formatted response
response = await agent.ainvoke({"messages": query})
try:
formatted = json.dumps(response, indent=2, cls=CustomEncoder)
except Exception:
formatted = str(response)
print("\\nResponse:")
print(formatted)
return
< /code>
Есть ли способ разоблачить инструменты с моего сервера Google Cloud MCP (вызванного в моем первом коде) к клиенту Python LLM с использованием URL -URL Cloud Run и Secure JSON? Например, как это делается во втором коде с локальным файлом .py.
Это может быть основным вопросом, но я не мог найти никаких ответов до сих пор. Любая помощь будет действительно оценена.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ith-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как заставить функции LLM Call MCP, размещенные в Google Cloud Run с Python
    Anonymous » » в форуме Python
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Как заставить функции LLM Call MCP, размещенные в Google Cloud Run с Python
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как заставить функции LLM Call MCP, размещенные в Google Cloud Run с Python
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как заставить функции LLM Call MCP, размещенные в Google Cloud Run с Python
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Какой LLM используется в MCP Inspector + MCP -сервере по умолчанию
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»