Как улучшить функции вызовов сервера-фиевой сервера MCP с моделью OpenAI [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как улучшить функции вызовов сервера-фиевой сервера MCP с моделью OpenAI [закрыто]

Сообщение Anonymous »

У меня есть рабочая модель, с которой я могу поговорить с двумя настроенными серверами MCP. Первым является исполнитель Pydantic Python, а второй - сервер файловой системы MCP. Оба распознаются моделью, и я могу выполнить код Python, модель правильно выбирает инструмент и выполняемый код Python, когда это необходимо. podman run -d \
--replace \
--network librechat-net \
--name vllm \
--device nvidia.com/gpu=5 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-v ~/chat_app/vllm/tool_chat_template_mistral.jinja:/app/chat_templates/tool_chat_template_mistral.jinja \
--env "HUGGING_FACE_HUB_TOKEN=..." \
-p 8000:8000 \
--ipc=host \
vllm/vllm-openai:latest \
--model mistralai/Mistral-7B-Instruct-v0.3 \
--chat-template "/app/chat_templates/tool_chat_template_mistral.jinja" \
--enable-auto-tool-choice \
--tool-call-parser mistral
< /code>
Но с сервером файловой системы я не могу действительно заставить модель для чтения файлов. Он всегда отвечает: «Чтобы прочитать содержимое файла, необходимо использовать read_file (path: ...)»
Я использую библиотеку MCP-openai: https://github.com/s1m0n38/mcp-openai/tree/main
и это мой скрипт, где я настраивал Scripted. Контейнер Podman с uv run client.py. < /p>
from mcp_openai import MCPClient
from mcp_openai import config
import asyncio
import os

mcp_client_config = config.MCPClientConfig(
mcpServers={
"pydantic_server": config.MCPServerConfig(
command='deno',
args=[
'run',
'-N',
'-R=node_modules',
'-W=node_modules',
'--node-modules-dir=auto',
'jsr:@pydantic/mcp-run-python',
'stdio',
],
),
"filesystem": config.MCPServerConfig(
command = "npx",
args= [
"-y",
"@modelcontextprotocol/server-filesystem",
"/app/test"
]
)
}
)

llm_client_config = config.LLMClientConfig(
api_key="dummy",
base_url="http://vllm:8000/v1",
)

llm_request_config = config.LLMRequestConfig(model="mistralai/Mistral-7B-Instruct-v0.3")

client = MCPClient(
mcp_client_config,
llm_client_config,
llm_request_config,
)

async def interactive_loop():
for server in mcp_client_config.mcpServers:
await client.connect_to_server(server)
await asyncio.sleep(1)

print("MCP Client gestartet. Schreibe 'quit' zum Beenden.")

messages = []

try:
while True:
user_input = input("\nUser: ").strip()
if user_input.lower() in {"quit", "exit"}:
print("Beende.")

break

messages.append({
"role": "user",
"content": user_input
})

try:
messages_out = await client.process_messages([{"role": "user", "content": user_input}])
except Exception as e:
print(f"Fehler bei der Verarbeitung: {e}")
continue

# Zeige die letzte Antwort des LLMs
for msg in messages_out:
if msg["role"] == "assistant":
print(f"\nAssistant: {msg}")
messages_out = []
# Update Chatverlauf
messages.extend(messages_out)
finally:
print("Räume Ressourcen auf...")
await client.cleanup()

async def main():
await interactive_loop()

if __name__ == "__main__":
asyncio.run(main())


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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