package com.pavis.admin.aigc.service;

import com.pavis.admin.aigc.common.model.req.ChatReq;
import com.pavis.admin.aigc.common.model.req.ImageReq;
import com.pavis.admin.aigc.model.entity.AigcAppDO;
import dev.langchain4j.data.image.Image;
import dev.langchain4j.model.output.Response;
import dev.langchain4j.service.TokenStream;
import top.continew.starter.extension.crud.service.BaseService;
import com.pavis.admin.aigc.model.query.AigcAppQuery;
import com.pavis.admin.aigc.model.req.AigcAppReq;
import com.pavis.admin.aigc.model.resp.AigcAppDetailResp;
import com.pavis.admin.aigc.model.resp.AigcAppResp;

import java.util.List;

/**
 * AIGC应用配置业务接口
 *
 * @author semi
 * @since 2025/05/26 17:28
 */
public interface AigcAppService extends BaseService<AigcAppResp, AigcAppDetailResp, AigcAppQuery, AigcAppReq> {
    List<AigcAppDO> list(AigcAppDO data);

    AigcAppDO getById(String id);

    AigcAppDO get(String appId);

    // langchat内的

    TokenStream chat(ChatReq req);

    TokenStream singleChat(ChatReq req);

    String text(ChatReq req);

    Response<Image> image(ImageReq req);
}