Commit a0086259 authored by Wade's avatar Wade

deepseek define model

parent 89fcd46e
{"level":"info","pid":13887,"time":1749196484,"caller":"/Users/wade/project/wuban/agentchat/log.go:68","message":"This message appears when log level set to Debug or Info"}
{"level":"info","pid":13887,"method":"DeepSeek.Init","time":1749196484,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:91","message":"Initializing DeepSeek plugin"}
{"level":"info","pid":13887,"method":"DeepSeek.Init","time":1749196484,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:104","message":"Initialization successful"}
{"level":"info","pid":13887,"method":"Milvus.Init","time":1749196484,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:75","message":"Initializing Milvus plugin"}
{"level":"info","pid":13887,"method":"Milvus.Init","time":1749196485,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:87","message":"Initialization successful"}
{"level":"info","pid":13887,"method":"GraphKnowledge.Init","time":1749196485,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:299","message":"Initializing GraphKnowledge plugin"}
{"level":"info","pid":13887,"method":"NewClient","ip":"54.92.111.204","port":5670,"time":1749196485,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:93","message":"Creating new GraphRAG client"}
{"level":"info","pid":13887,"method":"GraphKnowledge.Init","time":1749196485,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:311","message":"Initialization successful"}
{"level":"info","pid":13887,"method":"DefineIndexerAndRetriever","collection":"chatRag1","dimension":768,"time":1749196485,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:152","message":"Defining indexer and retriever"}
{"level":"info","pid":13887,"method":"Milvus.newDocStore","collection":"chatRag1","dimension":768,"time":1749196485,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:201","message":"Creating new doc store"}
{"level":"info","pid":13887,"method":"Milvus.newDocStore","collection":"chatRag1","time":1749196486,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:302","message":"Doc store created successfully"}
{"level":"info","pid":13887,"method":"DefineIndexerAndRetriever","collection":"chatRag1","time":1749196486,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:182","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":13887,"method":"DefineIndexerAndRetriever","time":1749196486,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:357","message":"Defining indexer and retriever"}
{"level":"info","pid":13887,"method":"GraphKnowledge.newDocStore","space_id":"","model_name":"Qwen/Qwen2.5-Coder-32B-Instruct","time":1749196486,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:393","message":"Creating new doc store"}
{"level":"info","pid":13887,"method":"GraphKnowledge.newDocStore","time":1749196486,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:399","message":"Doc store created successfully"}
{"level":"info","pid":13887,"method":"DefineIndexerAndRetriever","time":1749196486,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:376","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":13887,"method":"NewKnowledgeClient","endpoint":"lkeap.tencentcloudapi.com","region":"ap-guangzhou","secret_id":"","token":"","time":1749196487,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:43","message":"Creating new KnowledgeClient"}
{"level":"info","pid":13887,"method":"KnowledgeClient.Init","time":1749196487,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:51","message":"Initializing KnowledgeClient"}
{"level":"info","pid":13887,"method":"KnowledgeClient.Init","time":1749196487,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:109","message":"Initialization successful"}
{"level":"info","pid":13887,"time":1749196487,"caller":"/Users/wade/project/wuban/agentchat/main.go:267","message":"KnowledgeClient initialized successfully"}
{"level":"info","pid":14403,"time":1749196957,"caller":"/Users/wade/project/wuban/agentchat/log.go:68","message":"This message appears when log level set to Debug or Info"}
{"level":"info","pid":14403,"method":"DeepSeek.Init","time":1749196957,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:91","message":"Initializing DeepSeek plugin"}
{"level":"info","pid":14403,"method":"DeepSeek.Init","time":1749196957,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:104","message":"Initialization successful"}
{"level":"info","pid":14403,"method":"Milvus.Init","time":1749196957,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:75","message":"Initializing Milvus plugin"}
{"level":"info","pid":14403,"method":"Milvus.Init","time":1749196958,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:87","message":"Initialization successful"}
{"level":"info","pid":14403,"method":"GraphKnowledge.Init","time":1749196958,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:299","message":"Initializing GraphKnowledge plugin"}
{"level":"info","pid":14403,"method":"NewClient","ip":"54.92.111.204","port":5670,"time":1749196958,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:93","message":"Creating new GraphRAG client"}
{"level":"info","pid":14403,"method":"GraphKnowledge.Init","time":1749196958,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:311","message":"Initialization successful"}
{"level":"info","pid":14403,"method":"DefineIndexerAndRetriever","collection":"chatRag1","dimension":768,"time":1749196958,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:152","message":"Defining indexer and retriever"}
{"level":"info","pid":14403,"method":"Milvus.newDocStore","collection":"chatRag1","dimension":768,"time":1749196958,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:201","message":"Creating new doc store"}
{"level":"info","pid":14403,"method":"Milvus.newDocStore","collection":"chatRag1","time":1749196959,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:302","message":"Doc store created successfully"}
{"level":"info","pid":14403,"method":"DefineIndexerAndRetriever","collection":"chatRag1","time":1749196959,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:182","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":14403,"method":"DefineIndexerAndRetriever","time":1749196959,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:357","message":"Defining indexer and retriever"}
{"level":"info","pid":14403,"method":"GraphKnowledge.newDocStore","space_id":"","model_name":"Qwen/Qwen2.5-Coder-32B-Instruct","time":1749196959,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:393","message":"Creating new doc store"}
{"level":"info","pid":14403,"method":"GraphKnowledge.newDocStore","time":1749196959,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:399","message":"Doc store created successfully"}
{"level":"info","pid":14403,"method":"DefineIndexerAndRetriever","time":1749196959,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:376","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":14403,"method":"NewKnowledgeClient","endpoint":"lkeap.tencentcloudapi.com","region":"ap-guangzhou","secret_id":"","token":"","time":1749196960,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:43","message":"Creating new KnowledgeClient"}
{"level":"info","pid":14403,"method":"KnowledgeClient.Init","time":1749196960,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:51","message":"Initializing KnowledgeClient"}
{"level":"info","pid":14403,"method":"KnowledgeClient.Init","time":1749196960,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:109","message":"Initialization successful"}
{"level":"info","pid":14403,"time":1749196960,"caller":"/Users/wade/project/wuban/agentchat/main.go:267","message":"KnowledgeClient initialized successfully"}
{"level":"info","pid":14676,"time":1749197161,"caller":"/Users/wade/project/wuban/agentchat/log.go:68","message":"This message appears when log level set to Debug or Info"}
{"level":"info","pid":14676,"method":"DeepSeek.Init","time":1749197161,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:91","message":"Initializing DeepSeek plugin"}
{"level":"info","pid":14676,"method":"DeepSeek.Init","time":1749197161,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:104","message":"Initialization successful"}
{"level":"info","pid":14676,"method":"Milvus.Init","time":1749197161,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:75","message":"Initializing Milvus plugin"}
{"level":"info","pid":14676,"method":"Milvus.Init","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:87","message":"Initialization successful"}
{"level":"info","pid":14676,"method":"GraphKnowledge.Init","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:299","message":"Initializing GraphKnowledge plugin"}
{"level":"info","pid":14676,"method":"NewClient","ip":"54.92.111.204","port":5670,"time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:93","message":"Creating new GraphRAG client"}
{"level":"info","pid":14676,"method":"GraphKnowledge.Init","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:311","message":"Initialization successful"}
{"level":"info","pid":14676,"method":"DefineIndexerAndRetriever","collection":"chatRag1","dimension":768,"time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:152","message":"Defining indexer and retriever"}
{"level":"info","pid":14676,"method":"Milvus.newDocStore","collection":"chatRag1","dimension":768,"time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:201","message":"Creating new doc store"}
{"level":"info","pid":14676,"method":"Milvus.newDocStore","collection":"chatRag1","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:302","message":"Doc store created successfully"}
{"level":"info","pid":14676,"method":"DefineIndexerAndRetriever","collection":"chatRag1","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:182","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":14676,"method":"DefineIndexerAndRetriever","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:357","message":"Defining indexer and retriever"}
{"level":"info","pid":14676,"method":"GraphKnowledge.newDocStore","space_id":"","model_name":"Qwen/Qwen2.5-Coder-32B-Instruct","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:393","message":"Creating new doc store"}
{"level":"info","pid":14676,"method":"GraphKnowledge.newDocStore","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:399","message":"Doc store created successfully"}
{"level":"info","pid":14676,"method":"DefineIndexerAndRetriever","time":1749197162,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:376","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":14676,"method":"NewKnowledgeClient","endpoint":"lkeap.tencentcloudapi.com","region":"ap-guangzhou","secret_id":"","token":"","time":1749197163,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:43","message":"Creating new KnowledgeClient"}
{"level":"info","pid":14676,"method":"KnowledgeClient.Init","time":1749197163,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:51","message":"Initializing KnowledgeClient"}
{"level":"info","pid":14676,"method":"KnowledgeClient.Init","time":1749197163,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:109","message":"Initialization successful"}
{"level":"info","pid":14676,"time":1749197163,"caller":"/Users/wade/project/wuban/agentchat/main.go:267","message":"KnowledgeClient initialized successfully"}
{"level":"info","pid":14767,"time":1749197208,"caller":"/Users/wade/project/wuban/agentchat/log.go:68","message":"This message appears when log level set to Debug or Info"}
{"level":"info","pid":14767,"method":"DeepSeek.Init","time":1749197208,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:91","message":"Initializing DeepSeek plugin"}
{"level":"info","pid":14767,"method":"DeepSeek.Init","time":1749197208,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:104","message":"Initialization successful"}
{"level":"info","pid":14767,"method":"Milvus.Init","time":1749197208,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:75","message":"Initializing Milvus plugin"}
{"level":"info","pid":14767,"method":"Milvus.Init","time":1749197209,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:87","message":"Initialization successful"}
{"level":"info","pid":14767,"method":"GraphKnowledge.Init","time":1749197209,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:299","message":"Initializing GraphKnowledge plugin"}
{"level":"info","pid":14767,"method":"NewClient","ip":"54.92.111.204","port":5670,"time":1749197209,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:93","message":"Creating new GraphRAG client"}
{"level":"info","pid":14767,"method":"GraphKnowledge.Init","time":1749197209,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:311","message":"Initialization successful"}
{"level":"info","pid":14767,"method":"DefineIndexerAndRetriever","collection":"chatRag1","dimension":768,"time":1749197209,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:152","message":"Defining indexer and retriever"}
{"level":"info","pid":14767,"method":"Milvus.newDocStore","collection":"chatRag1","dimension":768,"time":1749197209,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:201","message":"Creating new doc store"}
{"level":"info","pid":14767,"method":"Milvus.newDocStore","collection":"chatRag1","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:302","message":"Doc store created successfully"}
{"level":"info","pid":14767,"method":"DefineIndexerAndRetriever","collection":"chatRag1","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:182","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":14767,"method":"DefineIndexerAndRetriever","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:357","message":"Defining indexer and retriever"}
{"level":"info","pid":14767,"method":"GraphKnowledge.newDocStore","space_id":"","model_name":"Qwen/Qwen2.5-Coder-32B-Instruct","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:393","message":"Creating new doc store"}
{"level":"info","pid":14767,"method":"GraphKnowledge.newDocStore","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:399","message":"Doc store created successfully"}
{"level":"info","pid":14767,"method":"DefineIndexerAndRetriever","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:376","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":14767,"method":"NewKnowledgeClient","endpoint":"lkeap.tencentcloudapi.com","region":"ap-guangzhou","secret_id":"","token":"","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:43","message":"Creating new KnowledgeClient"}
{"level":"info","pid":14767,"method":"KnowledgeClient.Init","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:51","message":"Initializing KnowledgeClient"}
{"level":"info","pid":14767,"method":"KnowledgeClient.Init","time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:109","message":"Initialization successful"}
{"level":"info","pid":14767,"time":1749197210,"caller":"/Users/wade/project/wuban/agentchat/main.go:267","message":"KnowledgeClient initialized successfully"}
{"level":"info","pid":14767,"time":1749197238,"caller":"/Users/wade/project/wuban/agentchat/main.go:281","message":"input--------{\"content\":\"What is the capital of UK?\",\"from\":\"Alice\",\"from_id\":\"user123\",\"to\":\"string\",\"to_id\":\"user456\",\"model\":\"gpt-3.5-turbo\",\"apiKey\":\"sk-1234567890abcdef\",\"milvus\":true}"}
{"level":"info","pid":14767,"time":1749197331,"caller":"/Users/wade/project/wuban/agentchat/main.go:281","message":"input--------{\"content\":\"What is the capital of UK?\",\"from\":\"Alice\",\"from_id\":\"user123\",\"to\":\"string\",\"to_id\":\"user456\",\"model\":\"gpt-3.5-turbo\",\"apiKey\":\"sk-1234567890abcdef\",\"milvus\":true}"}
{"level":"info","pid":15018,"time":1749197572,"caller":"/Users/wade/project/wuban/agentchat/log.go:68","message":"This message appears when log level set to Debug or Info"}
{"level":"info","pid":15018,"method":"DeepSeek.Init","time":1749197572,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:91","message":"Initializing DeepSeek plugin"}
{"level":"info","pid":15018,"method":"DeepSeek.Init","time":1749197572,"caller":"/Users/wade/project/wuban/agentchat/plugins/deepseek/deepseek.go:104","message":"Initialization successful"}
{"level":"info","pid":15018,"method":"Milvus.Init","time":1749197572,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:75","message":"Initializing Milvus plugin"}
{"level":"info","pid":15018,"method":"Milvus.Init","time":1749197574,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:87","message":"Initialization successful"}
{"level":"info","pid":15018,"method":"GraphKnowledge.Init","time":1749197574,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:299","message":"Initializing GraphKnowledge plugin"}
{"level":"info","pid":15018,"method":"NewClient","ip":"54.92.111.204","port":5670,"time":1749197574,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:93","message":"Creating new GraphRAG client"}
{"level":"info","pid":15018,"method":"GraphKnowledge.Init","time":1749197574,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:311","message":"Initialization successful"}
{"level":"info","pid":15018,"method":"DefineIndexerAndRetriever","collection":"chatRag1","dimension":768,"time":1749197574,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:152","message":"Defining indexer and retriever"}
{"level":"info","pid":15018,"method":"Milvus.newDocStore","collection":"chatRag1","dimension":768,"time":1749197574,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:201","message":"Creating new doc store"}
{"level":"info","pid":15018,"method":"Milvus.newDocStore","collection":"chatRag1","time":1749197575,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:302","message":"Doc store created successfully"}
{"level":"info","pid":15018,"method":"DefineIndexerAndRetriever","collection":"chatRag1","time":1749197575,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:182","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":15018,"method":"DefineIndexerAndRetriever","time":1749197575,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:357","message":"Defining indexer and retriever"}
{"level":"info","pid":15018,"method":"GraphKnowledge.newDocStore","space_id":"","model_name":"Qwen/Qwen2.5-Coder-32B-Instruct","time":1749197575,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:393","message":"Creating new doc store"}
{"level":"info","pid":15018,"method":"GraphKnowledge.newDocStore","time":1749197575,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:399","message":"Doc store created successfully"}
{"level":"info","pid":15018,"method":"DefineIndexerAndRetriever","time":1749197575,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:376","message":"Indexer and retriever defined successfully"}
{"level":"info","pid":15018,"method":"NewKnowledgeClient","endpoint":"lkeap.tencentcloudapi.com","region":"ap-guangzhou","secret_id":"","token":"","time":1749197576,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:43","message":"Creating new KnowledgeClient"}
{"level":"info","pid":15018,"method":"KnowledgeClient.Init","time":1749197576,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:51","message":"Initializing KnowledgeClient"}
{"level":"info","pid":15018,"method":"KnowledgeClient.Init","time":1749197576,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:109","message":"Initialization successful"}
{"level":"info","pid":15018,"time":1749197576,"caller":"/Users/wade/project/wuban/agentchat/main.go:267","message":"KnowledgeClient initialized successfully"}
{"level":"info","pid":15018,"time":1749197593,"caller":"/Users/wade/project/wuban/agentchat/main.go:281","message":"input--------{\"content\":\"What is the capital of UK?\",\"from\":\"Alice\",\"from_id\":\"user123\",\"to\":\"string\",\"to_id\":\"user456\",\"model\":\"gpt-3.5-turbo\",\"apiKey\":\"sk-1234567890abcdef\",\"milvus\":true}"}
{"level":"info","pid":15018,"time":1749197593,"caller":"/Users/wade/project/wuban/agentchat/main.go:307","message":"qaAsJson--------{\"ID\":48,\"CreatedAt\":\"2025-06-06T07:06:25.067252Z\",\"FromID\":\"user123\",\"From\":\"Alice\",\"Question\":\"What is the capital of UK?\",\"Answer\":\"I'm sorry, but I don't have the information to answer your question about the capital of the UK based on the provided context. The context mentions Paris as the capital of France and the USA as the largest importer of coffee, but it doesn't include information about the UK.\\n\",\"Summary\":\"Conversation summary: What is the capital of the UK?\",\"To\":\"Bob\",\"ToID\":\"user456\",\"Milvus\":false,\"Graph\":false}"}
{"level":"info","pid":15018,"method":"docStore.Retrieve","collection":"chatRag1","time":1749197593,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:450","message":"Starting retrieve operation"}
{"level":"info","pid":15018,"method":"docStore.Retrieve","collection":"chatRag1","documents":2,"time":1749197598,"caller":"/Users/wade/project/wuban/agentchat/plugins/milvus/milvus.go:640","message":"Retrieve operation completed successfully"}
{"level":"info","pid":15018,"time":1749197598,"caller":"/Users/wade/project/wuban/agentchat/main.go:333","message":"promptInput.Context: Paris is the capital of France?\nUSA is the largest importer of coffee?\n"}
{"level":"info","pid":15018,"method":"docStore.Retrieve","space_id":"","time":1749197598,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:755","message":"Starting retrieve operation"}
{"level":"info","pid":15018,"method":"docStore.Retrieve","space_id":"","documents":1,"time":1749197606,"caller":"/Users/wade/project/wuban/agentchat/plugins/graphrag/graph.go:892","message":"Retrieve operation completed successfully"}
{"level":"info","pid":15018,"time":1749197606,"caller":"/Users/wade/project/wuban/agentchat/main.go:348","message":"promptInput.Graph : 知识库中提供的内容不足以回答此问题\n\n<references title=\"References\" references=\"[]\" />\n"}
{"level":"info","pid":15018,"from":"Alice","from_id":"user123","to":"string","to_id":"user456","promptInput.Query":"What is the capital of UK?","resp.Text()":"I'm sorry, but the provided context doesn't contain information about the capital of the UK.\n","promptInput.Summary":"Conversation summary: What is the capital of the UK?","time":1749197607,"caller":"/Users/wade/project/wuban/agentchat/main.go:375","message":"QueryRewriteWithSummary"}
{"level":"info","pid":15018,"method":"KnowledgeClient.QueryRewriteWithSummary","user_question":"What is the capital of UK?","assistant_answer":"I'm sorry, but the provided context doesn't contain information about the capital of the UK.\n","history_summary":"Conversation summary: What is the capital of the UK?","time":1749197607,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:256","message":"Starting query rewrite with summary operation"}
{"level":"info","pid":15018,"method":"KnowledgeClient.QueryRewrite","message_count":3,"model":"lke-query-rewrite-base","time":1749197607,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:131","message":"Starting query rewrite operation"}
{"level":"info","pid":15018,"method":"KnowledgeClient.QueryRewrite","rewritten_query":"Conversation summary: Conversation summary: What is the capital of the UK?","request_id":"17ee0ba6-92ef-4fee-a388-4fec87c6db85","usage":{"InputTokens":74,"OutputTokens":15,"TotalTokens":89},"raw_response":"{\"Response\":{\"Content\":\"Conversation summary: Conversation summary: What is the capital of the UK?\",\"Usage\":{\"InputTokens\":74,\"OutputTokens\":15,\"TotalTokens\":89},\"RequestId\":\"17ee0ba6-92ef-4fee-a388-4fec87c6db85\"}}","time":1749197611,"caller":"/Users/wade/project/wuban/agentchat/plugins/knowledge/knowledge.go:237","message":"Query rewrite operation completed successfully"}
{"level":"info","pid":15018,"from":"Alice","from_id":"user123","to":"string","to_id":"user456","question":"What is the capital of UK?","context":"Paris is the capital of France?\nUSA is the largest importer of coffee?\n","graph":"知识库中提供的内容不足以回答此问题\n\n<references title=\"References\" references=\"[]\" />\n","last summary":"Conversation summary: What is the capital of the UK?","answer":"I'm sorry, but the provided context doesn't contain information about the capital of the UK.\n","time":1749197612,"caller":"/Users/wade/project/wuban/agentchat/main.go:401","message":"Question and answer pair recorded"}
...@@ -92,4 +92,7 @@ require ( ...@@ -92,4 +92,7 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
) )
replace github.com/firebase/genkit/go => github.com/wade-liwei/genkit-web/go v0.0.0-20250605093206-aab2d64e9700
replace github.com/firebase/genkit/go => ../genkit/go
//replace github.com/firebase/genkit/go => github.com/wade-liwei/genkit-web/go v0.0.0-20250605093206-aab2d64e9700
...@@ -145,6 +145,8 @@ func main() { ...@@ -145,6 +145,8 @@ func main() {
log.Fatal().Msg(err.Error()) log.Fatal().Msg(err.Error())
} }
embedder := googlegenai.GoogleAIEmbedder(g, "embedding-001") embedder := googlegenai.GoogleAIEmbedder(g, "embedding-001")
if embedder == nil { if embedder == nil {
log.Fatal().Msg(err.Error()) log.Fatal().Msg(err.Error())
...@@ -242,7 +244,9 @@ func main() { ...@@ -242,7 +244,9 @@ func main() {
}) })
simpleQaPrompt, err := genkit.DefinePrompt(g, "simpleQaPrompt", simpleQaPrompt, err := genkit.DefinePrompt(g, "simpleQaPrompt",
ai.WithModelName("googleai/gemini-2.0-flash"), // ai.WithModelName("googleai/gemini-2.0-flash"),
// deepseek
ai.WithModelName("deepseek/deepseek-chat"),
ai.WithPrompt(simpleQaPromptTemplate), ai.WithPrompt(simpleQaPromptTemplate),
ai.WithInputType(simpleQaPromptInput{}), ai.WithInputType(simpleQaPromptInput{}),
ai.WithOutputFormat(ai.OutputFormatText), ai.WithOutputFormat(ai.OutputFormatText),
...@@ -269,6 +273,11 @@ func main() { ...@@ -269,6 +273,11 @@ func main() {
// Define a simple flow that generates jokes about a given topic // Define a simple flow that generates jokes about a given topic
genkit.DefineFlow(g, "chat", func(ctx context.Context, input *ChatInput) (Response, error) { genkit.DefineFlow(g, "chat", func(ctx context.Context, input *ChatInput) (Response, error) {
ctxAsJson, _ := json.Marshal(ctx)
log.Info().Msgf("input----ctxAsJson----%s", string(ctxAsJson))
inputAsJson, err := json.Marshal(input) inputAsJson, err := json.Marshal(input)
if err != nil { if err != nil {
......
...@@ -15,211 +15,525 @@ import ( ...@@ -15,211 +15,525 @@ import (
const provider = "deepseek" const provider = "deepseek"
// 常量定义支持的模型
const (
// DeepSeekChat = "deepseek-chat"
// DeepSeekCoder = "deepseek-coder"
// DeepSeekReasoner = "deepseek-reasoner"
DeepSeekChat = deepseek.DeepSeekChat
DeepSeekCoder = deepseek.DeepSeekCoder
DeepSeekReasoner = deepseek.DeepSeekReasoner
)
var ( var (
mediaSupportedModels = []string{deepseek.DeepSeekChat, deepseek.DeepSeekCoder, deepseek.DeepSeekReasoner} mediaSupportedModels = []string{DeepSeekChat, DeepSeekCoder, DeepSeekReasoner}
roleMapping = map[ai.Role]string{ roleMapping = map[ai.Role]string{
ai.RoleUser: deepseek.ChatMessageRoleUser, ai.RoleUser: deepseek.ChatMessageRoleUser,
ai.RoleModel: deepseek.ChatMessageRoleAssistant, ai.RoleModel: deepseek.ChatMessageRoleAssistant,
ai.RoleSystem: deepseek.ChatMessageRoleSystem, ai.RoleSystem: deepseek.ChatMessageRoleSystem,
ai.RoleTool: deepseek.ChatMessageRoleTool, ai.RoleTool: deepseek.ChatMessageRoleTool,
} }
) )
// modelInfoMap 定义支持的模型及其信息
var modelInfoMap = map[string]ai.ModelInfo{
DeepSeekChat: {
Label: "DeepSeek Chat",
Supports: &ai.ModelSupports{
Multiturn: true,
SystemRole: true,
Media: false,
Tools: true,
},
Versions: []string{},
},
DeepSeekCoder: {
Label: "DeepSeek Coder",
Supports: &ai.ModelSupports{
Multiturn: true,
SystemRole: true,
Media: false,
Tools: true,
},
Versions: []string{},
},
DeepSeekReasoner: {
Label: "DeepSeek Reasoner",
Supports: &ai.ModelSupports{
Multiturn: true,
SystemRole: true,
Media: false,
Tools: true,
},
Versions: []string{},
},
}
// DeepSeek holds configuration for the plugin. // DeepSeek holds configuration for the plugin.
type DeepSeek struct { type DeepSeek struct {
APIKey string // DeepSeek API key APIKey string // DeepSeek API key
mu sync.Mutex // Mutex to control access. mu sync.Mutex // Mutex to control access.
initted bool // Whether the plugin has been initialized. initted bool // Whether the plugin has been initialized.
} }
// Name returns the provider name. // Name returns the provider name.
func (d DeepSeek) Name() string { func (d *DeepSeek) Name() string {
return provider return provider
} }
// ModelDefinition represents a model with its name and type. // ModelDefinition represents a model with its name and type.
type ModelDefinition struct { type ModelDefinition struct {
Name string Name string
Type string Type string
} }
// DefineModel defines a DeepSeek model in Genkit. // Init initializes the DeepSeek plugin and registers all known models.
func (d *DeepSeek) DefineModel(g *genkit.Genkit, model ModelDefinition, info *ai.ModelInfo) ai.Model {
log.Info().
Str("method", "DeepSeek.DefineModel").
Str("model_name", model.Name).
Msg("Defining DeepSeek model")
d.mu.Lock()
defer d.mu.Unlock()
if !d.initted {
log.Error().Str("method", "DeepSeek.DefineModel").Msg("DeepSeek not initialized")
panic("deepseek.Init not called")
}
// Define model info, supporting multiturn and system role.
mi := ai.ModelInfo{
Label: model.Name,
Supports: &ai.ModelSupports{
Multiturn: true,
SystemRole: true,
Media: false, // DeepSeek API primarily supports text.
Tools: false, // Tools not yet supported in this implementation.
},
Versions: []string{},
}
if info != nil {
mi = *info
}
meta := &ai.ModelInfo{
Label: model.Name,
Supports: mi.Supports,
Versions: []string{},
}
gen := &generator{model: model, apiKey: d.APIKey}
modelDef := genkit.DefineModel(g, provider, model.Name, meta, gen.generate)
log.Info().
Str("method", "DeepSeek.DefineModel").
Str("model_name", model.Name).
Msg("Model defined successfully")
return modelDef
}
// Init initializes the DeepSeek plugin.
func (d *DeepSeek) Init(ctx context.Context, g *genkit.Genkit) error { func (d *DeepSeek) Init(ctx context.Context, g *genkit.Genkit) error {
log.Info().Str("method", "DeepSeek.Init").Msg("Initializing DeepSeek plugin") log.Info().Str("method", "DeepSeek.Init").Msg("Initializing DeepSeek plugin")
d.mu.Lock() d.mu.Lock()
defer d.mu.Unlock() defer d.mu.Unlock()
if d.initted { if d.initted {
log.Error().Str("method", "DeepSeek.Init").Msg("Plugin already initialized") log.Error().Str("method", "DeepSeek.Init").Msg("Plugin already initialized")
return fmt.Errorf("deepseek.Init already called") return fmt.Errorf("deepseek.Init already called")
} }
if d == nil || d.APIKey == "" { if d == nil || d.APIKey == "" {
log.Error().Str("method", "DeepSeek.Init").Msg("APIKey is required") log.Error().Str("method", "DeepSeek.Init").Msg("APIKey is required")
return fmt.Errorf("deepseek: need APIKey") return fmt.Errorf("deepseek: need APIKey")
} }
d.initted = true d.initted = true
log.Info().Str("method", "DeepSeek.Init").Msg("Initialization successful")
return nil //d.mu.Unlock()
// 自动注册所有支持的模型
for _, modelName := range mediaSupportedModels {
modelDef := ModelDefinition{
Name: modelName,
Type: "chat", // 假设所有模型都支持 chat 类型
}
d.DefineModel(g, modelDef, nil)
}
log.Info().Str("method", "DeepSeek.Init").Msg("Initialization successful")
return nil
}
// DefineModel defines a DeepSeek model in Genkit.
func (d *DeepSeek) DefineModel(g *genkit.Genkit, model ModelDefinition, info *ai.ModelInfo) ai.Model {
log.Info().
Str("method", "DeepSeek.DefineModel").
Str("model_name", model.Name).
Msg("Defining DeepSeek model")
// d.mu.Lock()
// defer d.mu.Unlock()
if !d.initted {
log.Error().Str("method", "DeepSeek.DefineModel").Msg("DeepSeek not initialized")
return nil
}
// 获取模型信息
var mi ai.ModelInfo
if info != nil {
mi = *info
} else {
var ok bool
mi, ok = modelInfoMap[model.Name]
if !ok {
log.Error().
Str("method", "DeepSeek.DefineModel").
Str("model_name", model.Name).
Msg("Unknown model and no ModelInfo provided")
return nil
}
}
// 定义生成器
gen := &generator{model: model, apiKey: d.APIKey}
modelDef := genkit.DefineModel(g, provider, model.Name, &mi, gen.generate)
log.Info().
Str("method", "Deep lantern").
Str("model_name", model.Name).
Msg("Model defined successfully")
return modelDef
} }
// generator handles model generation. // generator handles model generation.
type generator struct { type generator struct {
model ModelDefinition model ModelDefinition
apiKey string apiKey string
} }
// generate implements the Genkit model generation interface. // generate implements the Genkit model generation interface.
func (g *generator) generate(ctx context.Context, input *ai.ModelRequest, cb func(context.Context, *ai.ModelResponseChunk) error) (*ai.ModelResponse, error) { func (g *generator) generate(ctx context.Context, input *ai.ModelRequest, cb func(context.Context, *ai.ModelResponseChunk) error) (*ai.ModelResponse, error) {
log.Info(). log.Info().
Str("method", "generator.generate"). Str("method", "generator.generate").
Str("model_name", g.model.Name). Str("model_name", g.model.Name).
Int("messages", len(input.Messages)). Int("messages", len(input.Messages)).
Msg("Starting model generation") Msg("Starting model generation")
if len(input.Messages) == 0 { if len(input.Messages) == 0 {
log.Error().Str("method", "generator.generate").Msg("Prompt or messages required") log.Error().Str("method", "generator.generate").Msg("Prompt or messages required")
return nil, fmt.Errorf("prompt or messages required") return nil, fmt.Errorf("prompt or messages required")
} }
// Initialize DeepSeek client. // Initialize DeepSeek client.
client := deepseek.NewClient(g.apiKey) client := deepseek.NewClient(g.apiKey)
log.Debug().Str("method", "generator.generate").Msg("DeepSeek client initialized") log.Debug().Str("method", "generator.generate").Msg("DeepSeek client initialized")
// Create a chat completion request // Create a chat completion request
request := &deepseek.ChatCompletionRequest{ request := &deepseek.ChatCompletionRequest{
Model: g.model.Name, Model: g.model.Name,
} }
for _, msg := range input.Messages { for _, msg := range input.Messages {
role, ok := roleMapping[msg.Role] role, ok := roleMapping[msg.Role]
if !ok { if !ok {
log.Error(). log.Error().
Str("method", "generator.generate"). Str("method", "generator.generate").
Str("role", string(msg.Role)). Str("role", string(msg.Role)).
Msg("Unsupported role") Msg("Unsupported role")
return nil, fmt.Errorf("unsupported role: %s", msg.Role) return nil, fmt.Errorf("unsupported role: %s", msg.Role)
} }
content := concatMessageParts(msg.Content) content := concatMessageParts(msg.Content)
request.Messages = append(request.Messages, deepseek.ChatCompletionMessage{ request.Messages = append(request.Messages, deepseek.ChatCompletionMessage{
Role: role, Role: role,
Content: content, Content: content,
}) })
log.Debug(). log.Debug().
Str("method", "generator.generate"). Str("method", "generator.generate").
Str("role", role). Str("role", role).
Str("content", content). Str("content", content).
Msg("Added message to request") Msg("Added message to request")
} }
// Send the request and handle the response // Send the request and handle the response
response, err := client.CreateChatCompletion(ctx, request) response, err := client.CreateChatCompletion(ctx, request)
if err != nil { if err != nil {
log.Error(). log.Error().
Err(err). Err(err).
Str("method", "generator.generate"). Str("method", "generator.generate").
Msg("Failed to create chat completion") Msg("Failed to create chat completion")
return nil, fmt.Errorf("create chat completion: %w", err) return nil, fmt.Errorf("create chat completion: %w", err)
} }
log.Debug(). log.Debug().
Str("method", "generator.generate"). Str("method", "generator.generate").
Int("choices", len(response.Choices)). Int("choices", len(response.Choices)).
Msg("Received chat completion response") Msg("Received chat completion response")
// Create a final response with the merged chunks // Create a final response with the merged chunks
finalResponse := &ai.ModelResponse{ finalResponse := &ai.ModelResponse{
Request: input, Request: input,
FinishReason: ai.FinishReason("stop"), FinishReason: ai.FinishReason("stop"),
Message: &ai.Message{ Message: &ai.Message{
Role: ai.RoleModel, Role: ai.RoleModel,
}, },
} }
for _, chunk := range response.Choices { for _, chunk := range response.Choices {
log.Debug(). log.Debug().
Str("method", "generator.generate"). Str("method", "generator.generate").
Int("index", chunk.Index). Int("index", chunk.Index).
Str("content", chunk.Message.Content). Str("content", chunk.Message.Content).
Msg("Processing response chunk") Msg("Processing response chunk")
p := ai.Part{ p := ai.Part{
Text: chunk.Message.Content, Text: chunk.Message.Content,
Kind: ai.PartKind(chunk.Index), Kind: ai.PartKind(chunk.Index),
} }
finalResponse.Message.Content = append(finalResponse.Message.Content, &p) finalResponse.Message.Content = append(finalResponse.Message.Content, &p)
} }
log.Info(). log.Info().
Str("method", "generator.generate"). Str("method", "generator.generate").
Str("model_name", g.model.Name). Str("model_name", g.model.Name).
Int("content_parts", len(finalResponse.Message.Content)). Int("content_parts", len(finalResponse.Message.Content)).
Msg("Model generation completed successfully") Msg("Model generation completed successfully")
return finalResponse, nil return finalResponse, nil
} }
// concatMessageParts concatenates message parts into a single string. // concatMessageParts concatenates message parts into a single string.
func concatMessageParts(parts []*ai.Part) string { func concatMessageParts(parts []*ai.Part) string {
log.Debug(). log.Debug().
Str("method", "concatMessageParts"). Str("method", "concatMessageParts").
Int("parts", len(parts)). Int("parts", len(parts)).
Msg("Concatenating message parts") Msg("Concatenating message parts")
var sb strings.Builder var sb strings.Builder
for _, part := range parts { for _, part := range parts {
if part.IsText() { if part.IsText() {
sb.WriteString(part.Text) sb.WriteString(part.Text)
} }
// Ignore non-text parts (e.g., media, tools) as DeepSeek API doesn't support them. // Ignore non-text parts (e.g., media, tools) as DeepSeek API doesn't support them.
} }
result := sb.String() result := sb.String()
log.Debug(). log.Debug().
Str("method", "concatMessageParts"). Str("method", "concatMessageParts").
Str("result", result). Str("result", result).
Msg("Concatenation complete") Msg("Concatenation complete")
return result return result
} }
// package deepseek
// import (
// "context"
// "fmt"
// "strings"
// "sync"
// "github.com/firebase/genkit/go/ai"
// "github.com/firebase/genkit/go/genkit"
// "github.com/rs/zerolog/log"
// deepseek "github.com/cohesion-org/deepseek-go"
// )
// const provider = "deepseek"
// var (
// mediaSupportedModels = []string{deepseek.DeepSeekChat, deepseek.DeepSeekCoder, deepseek.DeepSeekReasoner}
// roleMapping = map[ai.Role]string{
// ai.RoleUser: deepseek.ChatMessageRoleUser,
// ai.RoleModel: deepseek.ChatMessageRoleAssistant,
// ai.RoleSystem: deepseek.ChatMessageRoleSystem,
// ai.RoleTool: deepseek.ChatMessageRoleTool,
// }
// )
// // DeepSeek holds configuration for the plugin.
// type DeepSeek struct {
// APIKey string // DeepSeek API key
// mu sync.Mutex // Mutex to control access.
// initted bool // Whether the plugin has been initialized.
// }
// // Name returns the provider name.
// func (d DeepSeek) Name() string {
// return provider
// }
// // ModelDefinition represents a model with its name and type.
// type ModelDefinition struct {
// Name string
// Type string
// }
// // DefineModel defines a DeepSeek model in Genkit.
// func (d *DeepSeek) DefineModel(g *genkit.Genkit, model ModelDefinition, info *ai.ModelInfo) ai.Model {
// log.Info().
// Str("method", "DeepSeek.DefineModel").
// Str("model_name", model.Name).
// Msg("Defining DeepSeek model")
// d.mu.Lock()
// defer d.mu.Unlock()
// if !d.initted {
// log.Error().Str("method", "DeepSeek.DefineModel").Msg("DeepSeek not initialized")
// panic("deepseek.Init not called")
// }
// // Define model info, supporting multiturn and system role.
// mi := ai.ModelInfo{
// Label: model.Name,
// Supports: &ai.ModelSupports{
// Multiturn: true,
// SystemRole: true,
// Media: false, // DeepSeek API primarily supports text.
// Tools: false, // Tools not yet supported in this implementation.
// },
// Versions: []string{},
// }
// if info != nil {
// mi = *info
// }
// meta := &ai.ModelInfo{
// Label: model.Name,
// Supports: mi.Supports,
// Versions: []string{},
// }
// gen := &generator{model: model, apiKey: d.APIKey}
// modelDef := genkit.DefineModel(g, provider, model.Name, meta, gen.generate)
// log.Info().
// Str("method", "DeepSeek.DefineModel").
// Str("model_name", model.Name).
// Msg("Model defined successfully")
// return modelDef
// }
// // Init initializes the DeepSeek plugin.
// func (d *DeepSeek) Init(ctx context.Context, g *genkit.Genkit) error {
// log.Info().Str("method", "DeepSeek.Init").Msg("Initializing DeepSeek plugin")
// d.mu.Lock()
// defer d.mu.Unlock()
// if d.initted {
// log.Error().Str("method", "DeepSeek.Init").Msg("Plugin already initialized")
// return fmt.Errorf("deepseek.Init already called")
// }
// if d == nil || d.APIKey == "" {
// log.Error().Str("method", "DeepSeek.Init").Msg("APIKey is required")
// return fmt.Errorf("deepseek: need APIKey")
// }
// d.initted = true
// log.Info().Str("method", "DeepSeek.Init").Msg("Initialization successful")
// return nil
// }
// // generator handles model generation.
// type generator struct {
// model ModelDefinition
// apiKey string
// }
// // generate implements the Genkit model generation interface.
// func (g *generator) generate(ctx context.Context, input *ai.ModelRequest, cb func(context.Context, *ai.ModelResponseChunk) error) (*ai.ModelResponse, error) {
// log.Info().
// Str("method", "generator.generate").
// Str("model_name", g.model.Name).
// Int("messages", len(input.Messages)).
// Msg("Starting model generation")
// if len(input.Messages) == 0 {
// log.Error().Str("method", "generator.generate").Msg("Prompt or messages required")
// return nil, fmt.Errorf("prompt or messages required")
// }
// // Initialize DeepSeek client.
// client := deepseek.NewClient(g.apiKey)
// log.Debug().Str("method", "generator.generate").Msg("DeepSeek client initialized")
// // Create a chat completion request
// request := &deepseek.ChatCompletionRequest{
// Model: g.model.Name,
// }
// for _, msg := range input.Messages {
// role, ok := roleMapping[msg.Role]
// if !ok {
// log.Error().
// Str("method", "generator.generate").
// Str("role", string(msg.Role)).
// Msg("Unsupported role")
// return nil, fmt.Errorf("unsupported role: %s", msg.Role)
// }
// content := concatMessageParts(msg.Content)
// request.Messages = append(request.Messages, deepseek.ChatCompletionMessage{
// Role: role,
// Content: content,
// })
// log.Debug().
// Str("method", "generator.generate").
// Str("role", role).
// Str("content", content).
// Msg("Added message to request")
// }
// // Send the request and handle the response
// response, err := client.CreateChatCompletion(ctx, request)
// if err != nil {
// log.Error().
// Err(err).
// Str("method", "generator.generate").
// Msg("Failed to create chat completion")
// return nil, fmt.Errorf("create chat completion: %w", err)
// }
// log.Debug().
// Str("method", "generator.generate").
// Int("choices", len(response.Choices)).
// Msg("Received chat completion response")
// // Create a final response with the merged chunks
// finalResponse := &ai.ModelResponse{
// Request: input,
// FinishReason: ai.FinishReason("stop"),
// Message: &ai.Message{
// Role: ai.RoleModel,
// },
// }
// for _, chunk := range response.Choices {
// log.Debug().
// Str("method", "generator.generate").
// Int("index", chunk.Index).
// Str("content", chunk.Message.Content).
// Msg("Processing response chunk")
// p := ai.Part{
// Text: chunk.Message.Content,
// Kind: ai.PartKind(chunk.Index),
// }
// finalResponse.Message.Content = append(finalResponse.Message.Content, &p)
// }
// log.Info().
// Str("method", "generator.generate").
// Str("model_name", g.model.Name).
// Int("content_parts", len(finalResponse.Message.Content)).
// Msg("Model generation completed successfully")
// return finalResponse, nil
// }
// // concatMessageParts concatenates message parts into a single string.
// func concatMessageParts(parts []*ai.Part) string {
// log.Debug().
// Str("method", "concatMessageParts").
// Int("parts", len(parts)).
// Msg("Concatenating message parts")
// var sb strings.Builder
// for _, part := range parts {
// if part.IsText() {
// sb.WriteString(part.Text)
// }
// // Ignore non-text parts (e.g., media, tools) as DeepSeek API doesn't support them.
// }
// result := sb.String()
// log.Debug().
// Str("method", "concatMessageParts").
// Str("result", result).
// Msg("Concatenation complete")
// return result
// }
// package deepseek // package deepseek
// import ( // import (
......
package main
import (
"fmt"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
lkeap "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/lkeap/v20240522"
)
func main() {
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性
// 以下代码示例仅供参考,建议采用更安全的方式来使用密钥
// 请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
//os.Setenv("TENCENTCLOUD_SECRET_ID", "AKID64oLfmfLtESUJ6i8LPSM4gCVbiniQuBF")
//os.Setenv("TENCENTCLOUD_SECRET_KEY", "rX2JMBnBMJ2YqulOo37xa5OUMSN4Xnpd")
credential := common.NewCredential(
"AKID64oLfmfLtESUJ6i8LPSM4gCVbiniQuBF",
"rX2JMBnBMJ2YqulOo37xa5OUMSN4Xnpd",
)
// 使用临时密钥示例
// credential := common.NewTokenCredential("SecretId", "SecretKey", "Token")
// 实例化一个client选项,可选的,没有特殊需求可以跳过
cpf := profile.NewClientProfile()
cpf.HttpProfile.Endpoint = "lkeap.tencentcloudapi.com"
// 实例化要请求产品的client对象,clientProfile是可选的
client, _ := lkeap.NewClient(credential, "ap-guangzhou", cpf)
// 实例化一个请求对象,每个接口都会对应一个request对象
request := lkeap.NewQueryRewriteRequest()
request.Model = common.StringPtr("*")
// 返回的resp是一个QueryRewriteResponse的实例,与请求对象对应
response, err := client.QueryRewrite(request)
if _, ok := err.(*errors.TencentCloudSDKError); ok {
fmt.Printf("An API error has returned: %s", err)
return
}
if err != nil {
panic(err)
}
// 输出json格式的字符串回包
fmt.Printf("%s", response.ToJsonString())
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment