package com.ruoyi.oa.service;

import com.ruoyi.oa.domain.bo.OaAiDataQueryBo;
import com.ruoyi.oa.domain.vo.DynamicDataVo;

/**
 * AI数据查询服务接口
 *
 * @author ruoyi
 * @date 2024-12-19
 */
public interface IAiDataQueryService {

    /**
     * 根据用户需求进行AI数据查询
     *
     * @param queryBo 查询请求
     * @return 动态数据格式的查询结果
     */
    DynamicDataVo queryDataByAi(OaAiDataQueryBo queryBo);

    /**
     * 根据关键词匹配相关表
     *
     * @param keywords 关键词
     * @return 匹配的表名列表
     */
    java.util.List<String> matchTablesByKeywords(String[] keywords);

    /**
     * 生成AI提示词
     *
     * @param userQuery 用户查询需求
     * @param tableNames 相关表名
     * @param tableColumns 表字段信息
     * @return AI提示词
     */
    String generateAiPrompt(String userQuery, java.util.List<String> tableNames, 
                           java.util.Map<String, java.util.List<com.ruoyi.oa.domain.vo.TableColumnVo>> tableColumns);
} 