php结合通义千问和qdrant实现RAG向量检索增强知识库问答示例代码
代码语言:php
所属分类:其他
代码描述:php结合通义千问和qdrant实现RAG向量检索增强知识库问答示例代码,通过通义千问将知识库文本向量化插入qdrant中,然后在进行近似查询,最后交给ai总结输出。
代码标签: php 结合 通义千问 qdrant RAG 向量 检索 增强 知识库 问答 示例 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<?php //key申请地址:https://dashscope.console.aliyun.com/apiKey function aichat($query) { $apikey = "自己申请key"; if ($query == "") { return ""; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $body = [ 'model' => 'qwen-turbo', // 'model' => 'qwen-plus-v1', 'messages' => [['role' => "system", "content" => "你是一个ai助手"], ['role' => "user", "content" => $query], ], ]; curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body, JSON_UNESCAPED_UNICODE)); curl_setopt($ch, CURLOPT_POST, 1); // Set the API key as an HTTP header $headers = array(); $headers[] = "Content-Type: application/json"; $headers[] = "Authorization: Bearer ".$apikey; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // Send the request and parse the response $response = curl_exec($ch); if (curl_errno($ch)) { curl_close($ch); return ""; } else { curl_close($ch); $response_data = json_decode($response, true); if (isset($response_data['choices'][0]['message']['content'])) { return $response_data['choices'][0]['message']['content']; } else { return ""; } } } function getembeding($text) { if ($text == "") { return ""; } //key申请地址:https://dashscope.console.aliyun.com/apiKey $apikey = "自己申请key0"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $body = [ 'model' => 'text-embedding-v2', 'input' => ['texts' => [$text]], "parameters" => [ "text_type" => "query" ] ]; curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body, JSON_UNESCAPED_UNICODE)); curl_setopt($ch, CURLOPT_POST, 1); // Set the API key as an HTTP header $headers = array(); $headers[] = "Content-Type: application/json"; $headers[] = "Authorization: Bearer ".$apikey; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // Send the request and parse the response $response = curl_exec($ch); if (curl_errno($ch)) { curl_close($ch); return ""; } else { curl_close($ch); $response_data = json_decode($response, true); if (isset($response_data['output']['embeddings'])) { return $response_data['output']['embeddings'][0]['embedding']; //var_dump($response_data['output']['embeddings']) ; } else { return ""; } } } // 创建集合 function createCollection() { $url = 'http://localhost:6333/collections/testqianwen'; $data = array( "vectors" => array( "size" => 1536, "distance" => "Dot" ) ); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); $response = curl_exec($ch); curl_close($ch); return $response; } // 确认集合被创建 function checkCollec.........完整代码请登录后点击上方下载按钮下载查看
网友评论0