自然语言数据库查询工具

一个通过自然语言查询OPENMRS MySQL数据库的应用,利用本地LLM处理查询并返回结果。

  • by tonyihvn
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 tonyihvn/intellia

使用说明

MCP OpenMRS 应用程序

这个项目实现了一个模型上下文协议(MCP),用于连接到一个OPENMRS的MySQL数据库,使应用程序能够通过理解数据库架构并查询数据库来回答自然语言问题。该应用程序设计为本地部署,并使用本地大型语言模型(如CodeLlama)来处理自然语言查询。网页界面是使用Flask和Streamlit构建的。

项目结构

mcp-openmrs-app
├── src
│   ├── __init__.py
│   ├── main.py
│   ├── streamlit_app.py
│   ├── core
│   │   ├── __init__.py
│   │   └── query_handler.py
│   ├── db
│   │   ├── __init__.py
│   │   ├── connection.py
│   │   └── schema.py
│   ├── llm
│   │   ├── __init__.py
│   │   └── client.py
│   └── web
│       ├── __init__.py
│       ├── routes.py
│       └── templates
│           └── index.html
├── tests
│   ├── __init__.py
│   ├── test_core.py
│   └── test_db.py
├── config.py
├── requirements.txt
└── README.md

设置说明

  1. 克隆仓库:

    git clone <repository-url>
    cd mcp-openmrs-app
    
  2. 安装依赖项: 确保已安装Python,然后运行:

    pip install -r requirements.txt
    
  3. 配置应用程序: 更新 config.py 文件中包含您的数据库连接参数和大型语言模型(LLM)设置。

  4. 运行 Flask 应用程序: 通过执行以下命令启动Flask应用程序:

    python src/main.py
    
  5. 运行Streamlit应用程序: 通过执行以下命令启动Streamlit应用程序:

    streamlit run src/streamlit_app.py
    
  6. 访问应用程序:

    • 对于Flask应用程序,请打开您的网络浏览器并导航至 http://localhost:5000。
    • 对于Streamlit应用程序,请打开您的网络浏览器并导航至 http://localhost:8501。

使用方法

一旦应用程序运行起来,您就可以输入与OPENMRS数据库相关的自然语言问题。应用程序将处理这些问题,查询数据库,并返回相关答案。

MCP(多点控制单元)功能

模型上下文协议(MCP)使应用程序能够理解所提问题的上下文,并根据数据库模式构建适当的SQL查询。这实现了与数据库的动态交互,为用户提供准确且相关信息。

测试

提供了单元测试 tests 目录以确保核心功能和数据库交互按预期工作。您可以使用以下命令运行测试:

pytest

许可证

此项目采用MIT许可证授权。有关详细信息,请参阅LICENSE文件。