通过oneapi使用OpenAI的text-embedding向量模型出现错误
carwlyjoe opened this issue · 0 comments
carwlyjoe commented
我之前是通过oneapi的次数渠道创建的API Key在Chatollama中使用text-embedding模型处理知识库文件的,那个时候还能用。但是现在Oneapi的次数渠道不支持text-embedding向量模型了,只有额度渠道支持。于是我通过oneapi的额度渠道创建好API Key后尝试在chatollama中使用,发现正常对话是没有问题的。但是当创建知识库,选择text-embedding-large作为向量模型时,chatollama报错cannot read propties of undefined:
后台日志如下:
chatollama-1 | Invalid token from Authorization header.
chatollama-1 | URL: /api/knowledgebases User: null
chatollama-1 | Current User: null
chatollama-1 | Created knowledge base n: 32 by anonymous
chatollama-1 | Creating embeddings for OpenAI model: text-embedding-3-large, host: https://chatapi.onechats.top
chatollama-1 | Creating Chroma vector store
chatollama-1 | Initializing ParentDocumentRetriever with RedisDocstore
chatollama-1 | Redis client options: { host: 'redis', port: 6379, username: undefined, password: undefined }
chatollama-1 | [nuxt] [request error] [unhandled] [500] Cannot read properties of undefined (reading '0')
chatollama-1 | at OpenAIEmbeddings.embedDocuments (./.output/server/node_modules/@langchain/openai/dist/embeddings.js:189:46)
chatollama-1 | at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
chatollama-1 | at async Chroma.addDocuments (./.output/server/node_modules/@langchain/community/dist/vectorstores/chroma.js:79:32)
chatollama-1 | at async ParentDocumentRetriever.addDocuments (./.output/server/node_modules/langchain/dist/retrievers/parent_document.js:167:13)
chatollama-1 | at async createRetriever (./.output/server/chunks/_/index2.mjs:520:7)
chatollama-1 | at async ingestDocument (./.output/server/chunks/_/rag.mjs:292:3)
chatollama-1 | at async Object.handler (./.output/server/chunks/routes/api/index.post3.mjs:90:5)
chatollama-1 | at async Object.handler (./.output/server/chunks/runtime.mjs:3126:19)
chatollama-1 | at async Server.toNodeHandle (./.output/server/chunks/runtime.mjs:3392:7)
因为在测试时,使用文档中的原文进行询问,只有OpenAI的text-embedding-large模型能够在检索的时候做到几乎每次都检索到文档中对应位置的内容,然后据此回答问题。
向量模型虽然多,但能用的应该只有text-embedding-large模型。其他向量模型基本上都是找不到,要么不回复,要么瞎回复。这还是把原文直接给它们,如果这都找不到的话,那用户如果不用原文进行询问就更不用说了。
我用过的其他ChatGPT客户端,虽然支持知识库功能,但是很少有能够支持使用text-embedding-large向量模型的,如果有的话基本上效果都是比较好的
所以总的来说个人认为让text-embedding-large模型能够正常工作对于此项目的知识库功能是非常有价值的,就是不知道这个问题出在哪里,希望小木头有空的时候看看能不能修复一下,我平时也会有需要用的时候,感谢