LangChain如何使用通义千问的向量模型



1、问题

开始用的代码如下:

import osfrom langchain_openai import OpenAIEmbeddings,  OpenAIembeddings_model = OpenAIEmbeddings(        api_key=os.getenv("DASHSCOPE_API_KEY"),  # 换成你的API KEY        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",        model="text-embedding-v3")embeddings = embeddings_model.embed_documents(    [        "你好!",                 "你能做什么"    ] )print(f"Embedding: {embeddings}")

执行时报错:

openai.BadRequestError: Error code: 400 - {   'error': {   'code': 'InvalidParameter', 'param': None,    'message': '<400> InternalError.Algo.InvalidParameter: Value error, contents is neither str nor list of str.: input.contents',    'type': 'InvalidParameter'},    'id': '2aadf398-7093-9b37-be4c-c85829fce932',    'request_id': '2aadf398-7093-9b37-be4c-c85829fce932'}

2、原因

文本列表 在送入 embeddings.create 之前已经被 token 化了,发送给模型的并不是文本原文

3、方案

增加参数check_embedding_ctx_length = False。最终代码如下:

import osfrom langchain_openai import OpenAIEmbeddings,  OpenAIembeddings_model = OpenAIEmbeddings(        api_key=os.getenv("DASHSCOPE_API_KEY"),  # 换成你的API KEY        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",        model="text-embedding-v3",        check_embedding_ctx_length = False)embeddings = embeddings_model.embed_documents(    [        "你好!",                 "你能做什么"    ] )print(f"Embedding: {embeddings}")

前沿技术大模型技术新闻资讯

刚刚!小米手机可以养小龙虾🦞了

2026-5-3 10:19:41

RAG技术前沿技术新闻资讯

Chonkie:开源、轻量、极速的 RAG 分块神器 🦛

2026-5-3 10:30:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索