OpenAI代理服务

MCP Server是一个基于Quarkus构建的OpenAI API代理服务,提供请求转发、认证和系统提示注入功能。

  • by hamidkhanjani
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 hamidkhanjani/mcp-server

使用说明

MCP服务器

MCP服务器是使用Quarkus构建的OpenAI API的代理服务。它将请求转发到OpenAI的API,同时添加身份验证并注入系统提示。

特性

  • 代理请求OpenAI的聊天完成API
  • 通过API密钥添加身份验证
  • 自动向所有请求注入系统提示
  • 使用Quarkus构建,可实现快速启动和低内存使用率

建筑

该应用程序由以下组件组成:

  • MCP控制器:处理传入请求并将其转发给OpenAI
  • OpenAI客户端:用于与OpenAI的API通信的接口
  • ApiKeyFilter:验证传入请求的API密钥
  • 聊天请求:聊天完成请求的数据模型

先决条件

  • Java 17或更高版本
  • Maven 3.8.1或更高版本
  • Docker(可选,用于容器化部署)

设置和安装

地方发展

  1. 克隆存储库:

    git clone https://github.com/hamidkhanjani/mcp-server.git
    cd mcp-server
    
  2. 在中配置您的OpenAI API密钥 src/main/resources/application.properties:

    openai.api.key=Bearer sk-your-openai-api-key
    
  3. 构建应用程序:

    ./mvnw clean package
    
  4. 在开发模式下运行应用程序:

    ./mvnw quarkus:dev
    

生产部署

  1. 构建应用程序:

    ./mvnw clean package
    
  2. 运行应用程序:

    java -jar target/quarkus-app/quarkus-run.jar
    

Docker部署

  1. 构建Docker镜像:

    docker build -t mcp-server .
    
  2. 运行容器:

    docker run -p 8080:8080 -e OPENAI_API_KEY="Bearer sk-your-openai-api-key" mcp-server
    

用法

认证

对MCP服务器的所有请求都需要使用API密钥进行身份验证。在中包含API密钥 Authorization 头球

Authorization: Bearer my-secret-key

提出请求

向发送POST请求 /v1/chat/completions 带有JSON正文的端点:

curl -X POST \
  http://localhost:8080/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer my-secret-key' \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [
      {
        "role": "user",
        "content": "Hello, how are you?"
      }
    ],
    "temperature": 0.7,
    "max_tokens": 150
  }'

在将请求转发到OpenAI之前,服务器将在消息数组的开头自动注入一个系统提示(“你是一个有用的助手。”)。

配置

应用程序可以通过以下方式配置 application.properties 文件:

# OpenAI API URL
quarkus.rest-client.openai-client.url=https://api.openai.com

# OpenAI API Key (replace with your actual API key)
openai.api.key=Bearer sk-your-openai-api-key

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

贡献

欢迎投稿!请随时提交拉取请求。