langchain4j [BUG] 使用AzureOpenAiEmbeddingModel进行文本嵌入时,报告了非法字符的错误

u91tlkcl  于 4个月前  发布在  其他
关注(0)|答案(4)|浏览(52)

描述错误

我执行了以下代码来简单测试AzureOpenAiEmbeddingModel的文本嵌入功能,但遇到了一个错误。

Response<Embedding> response = azureOpenAiEmbeddingModelService.embed(TextSegment.from("Hi"));
System.out.println(response.toString());

日志和堆栈跟踪

重现问题
预期行为
请完成以下信息:

  • LangChain4j版本:0.31.0
  • 使用的LLM(s):TEXT-EMBEDDING-ADA-002
  • Java版本:8
  • Spring Boot版本(如适用):2.7.14
    附加上下文

似乎在编码和解码操作期间,向量的"["符号没有正确处理。

zzzyeukh

zzzyeukh1#

/cc @agoncal (azure), @jdubois (azure)

nbewdwxp

nbewdwxp2#

@Makato-Sino,请问您能尝试使用0.32.0版本吗?

jv2fixgn

jv2fixgn3#

在我将与LangChain4j相关的组件版本切换到0.32.0后,我运行了相同的代码,但出现了一个新的错误:

EmbeddingModel embeddingModel = AzureOpenAiEmbeddingModel.builder()
            .endpoint("......")
            .openAIClient(...)
            .deploymentName("TEXT-EMBEDDING-ADA-002")
            .build();
Response<Embedding> response = embeddingModel.embed(TextSegment.from("Hi"));
System.out.println(response.toString());

在调试过程中,发现在反序列化过程中JSON中的数据内容没有正确提取。

jucafojl

jucafojl4#

这是调用嵌入模型返回的json数据:

{
    "object": "list",
    "model": "text-embedding-ada-002",
    "data": [
        {
            "index": 0,
            "object": "embedding",
            "embedding": Array[1536]
        }
    ],
    "usage": {
        "prompt_tokens": 1,
        "total_tokens": 1
    }
}

相关问题