对话结果支持参考图片最佳实践

OpenSearch-LLM智能问答版支持上传图片的能力,可以返回携带图片的结构化结果。

文档上传

文档上传支持API导入和文件上传导入两种方式,此处以API导入为例:

点击API导入,可以查看host数据导入demo

image.png

数据导入API(host地址)

(以上海区域为例) http://opensearch-cn-shanghai.aliyuncs.com

数据导入demo

import java.util.HashMap;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchException;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchResult;

/**
 * 文档推送demo
 */
public class testPushDemo {

    private static String appName = "替换为应用名";
    private static String accesskey = "替换accesskey";
    private static String secret = "替换secret";
    private static String host = "替换应用的API访问地址";
    private static String path = "/apps/%s/actions/knowledge-bulk";

    public static void main(String[] args) {

        String appPath = String.format(path, appName);

        //创建并构造OpenSearch对象
        OpenSearch openSearch = new OpenSearch(accesskey, secret, host);
        //创建OpenSearchClient对象,并以OpenSearch对象作为构造参数
        OpenSearchClient openSearchClient = new OpenSearchClient(openSearch);

        //单个doc构建
        JSONObject oneRequest = new JSONObject();
        oneRequest.put("cmd", "ADD");
        JSONObject fields = new JSONObject();
        fields.put("id", "测试文档的id");
        fields.put("title", "测试文档的标题");
        fields.put("url", "测试文档的URL");
        fields.put("content", "<h2>Alibaba travel front-end technology past and present</h2><br /><p><img src="http://gw.alicdn.com/tps/TB1fhZbJFXXXXbhaXXXXXXXXXXX-864-176.png" width=300></p>");
        fields.put("category", "测试文档的类目");
        oneRequest.put("fields", fields);

        //可以同时添加多条数据
        JSONArray request = new JSONArray();
        request.add(oneRequest);

        Map<String, String> params = new HashMap<String, String>() {{
            put("format", "full_json");
            put("_POST_BODY", request.toJSONString());
        }};
        try {
            OpenSearchResult openSearchResult = openSearchClient.callAndDecodeResult(appPath, params, "POST");
            //打印返回结果
            System.out.println(openSearchResult.getResult());
        } catch (OpenSearchException e) {
            e.printStackTrace();
        } catch (OpenSearchClientException e) {
            e.printStackTrace();
        }
    }
}
说明

图片相关链接需放在content字段中,url为可通过浏览器访问的链接,详情如下:

  • 文档标题以及标签中的内容会参与图片的搜索

  • 标签:<h1></h1>,<h2></h2>,<h3></h3>,<h4></h4>,<h5></h5>

  • url示例:<h2>Alibaba travel front-end technology past and present</h2><br /><p><img src="http://gw.alicdn.com/tps/TB1fhZbJFXXXXbhaXXXXXXXXXXX-864-176.png" width=300></p>

问答测试

1、登录开放搜索控制台选择LLM智能问答版,点击左侧导航栏实例管理,选择对应的实例点击管理,进入实例详情页面,点击问答测试,输入询问内容。

image.pngimage.png

2、在对话框输入需要询问的内容,点击发送。

image.png

3、问答测试效果展示

image.png

注意事项

  1. 图片文档格式支持markdown格式和HTML格式。

  2. 在html和markdown两种格式中,图片用img标签表示,img标签必须包含src属性,表示图片的地址。

  3. 地址必须以http或者https开头,以.jpg .jpeg .png结尾。

  4. 图片支持jpg/jpeg/png三种格式。