一切顺势而行 2025-06-15 20:43 采纳率: 75%
浏览 44
已结题

langchain_milvus 连接mivlus指定了host 结果调用的是localhost



```c++
from langchain_milvus import Milvus
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableParallel, RunnablePassthrough, RunnableLambda, Runnable
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
import os
llm = ChatOpenAI(
    base_url=os.getenv("OPENAI_URL"),
    model=os.getenv("QIANWEN_MODEL_NAME"),
    api_key=os.getenv("OPENAI_API_KEY")
)
embeddings = OpenAIEmbeddings(
    base_url = "https://ark.cn-beijing.volces.com/api/v3",
    api_key = os.getenv("OPENAI_EMBEDDING_API_KEY"),
    model = "doubao-embedding-large-text-240915"
)
collection = 'pdf_document'
try:
    db = Milvus(
        embedding_function = embeddings,
        collection_name = collection,
        text_field="content",
        vector_field="embedding",
        connection_args={
            "host":"192.168.64.145",
            "port":"19530",
            "user":"root",
            "password":"Milvus",
            "db_name":"default"
        }
    )
except Exception as e:
    print(f"连接milvus失败 {e}")
    raise e
# 创建相似度检索器
retriever = db.as_retriever(
     search_type="similarity",
     search_kwargs={
         "k": 3
     }
 )
# 构建提示词
prompt = ChatPromptTemplate.from_template(
    """
    请根据上下文之间输出最终答案,不要包含任何推理过程,如果不知道答案,请输出不知道
    上下文: {content}
    问题: {question}
    答案:
    """
)


#  构建请求链

setup_retriever = RunnableParallel({"content": retriever, "question" : RunnablePassthrough()})
chain = setup_retriever|prompt | llm | StrOutputParser()
async def get_answer(question):
    async for chunk in chain.astream(question):
         print(chunk,end = " ",flush= True)

if __name__ == '__main__':
    response = chain.invoke("JAVA中为啥不推荐使用jdk自带的线程池")
    print(response)




2025-06-15 20:40:50,262 [ERROR][_create_connection]: Failed to create new connection using: 127ff4dec7304acea7274ff113003ed1 (milvus_client.py:916)
Traceback (most recent call last):
  File "D:\code\python-start-demo\ai\ollama_embedding.py", line 40, in <module>
    raise e
  File "D:\code\python-start-demo\ai\ollama_embedding.py", line 25, in <module>
    db = Milvus(
         ^^^^^^^
  File "D:\ProgramData\conda_envs\myenv\Lib\site-packages\langchain_milvus\vectorstores\milvus.py", line 374, in __init__
    self._milvus_client = MilvusClient(
                          ^^^^^^^^^^^^^
  File "D:\ProgramData\conda_envs\myenv\Lib\site-packages\pymilvus\milvus_client\milvus_client.py", line 64, in __init__
    self._using = self._create_connection(
                  ^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\ProgramData\conda_envs\myenv\Lib\site-packages\pymilvus\milvus_client\milvus_client.py", line 917, in _create_connection
    raise ex from ex
  File "D:\ProgramData\conda_envs\myenv\Lib\site-packages\pymilvus\milvus_client\milvus_client.py", line 914, in _create_connection
    connections.connect(using, user, password, db_name, token, uri=uri, **kwargs)
  File "D:\ProgramData\conda_envs\myenv\Lib\site-packages\pymilvus\orm\connections.py", line 465, in connect
    connect_milvus(**kwargs, user=user, password=password, token=token, db_name=db_name)
  File "D:\ProgramData\conda_envs\myenv\Lib\site-packages\pymilvus\orm\connections.py", line 415, in connect_milvus
    gh._wait_for_channel_ready(timeout=timeout)
  File "D:\ProgramData\conda_envs\myenv\Lib\site-packages\pymilvus\client\grpc_handler.py", line 159, in _wait_for_channel_ready
    raise MilvusException(
pymilvus.exceptions.MilvusException: <MilvusException: (code=2, message=Fail connecting to server on localhost:19530, illegal connection params or server unavailable)>
  • 写回答

6条回答 默认 最新

  • 一切顺势而行 2025-06-16 05:57
    关注
    
    
    ```c++
    db = Milvus(
                embedding_function = embeddings,
                collection_name = collection,
                text_field="content",
                vector_field="embedding",
                connection_args={
                    #"host":host,
                    #"port":"19530",
                    "address":"192.168.64.145:19530",
                    "user":"root",
                    "password":"Milvus",
                    "db_name":"default"
                }
            )
    
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月15日