## 什么是第四维度?
Fourth-Dimension是言图科技提供的以Python语言编写的应用程序库,以实现对Yantu API便捷访问。它包括一个用于初始化的API资源的预定义类集,可以方便地访问Yantu API,以高效地使用言图私域知识库、言图文档问答等功能。此外,Fourth-Dimension还提供了一套本地部署方法。
## 产品特点
可在线使用Yantu API或本地部署专属知识库,自定义embedding和答案生成模型,根据自己的需求进行定制和优化。
## 主要功能
* 简单高效,用户只需配置专属密钥即可使用yantu API
* 高度定制化和数据安全的私域知识库
* 言图智能业务机器人
* 基于私域知识库的文档问答
* 简单易用的本地化部署流程
## 存储/检索方式
* elasticsearch
* faiss
* elasticsearch+Faiss
## 答案生成模型
* gpt-3.5-turbo-16k
## 版本说明
* Python 3.8
* Elasticsearch 7.17.7
* Faiss 1.7.4
## 如何安装
### 创建虚拟环境
确保存在可用的虚拟环境,若没有可根据以下命令进行创建
```
conda create --name 您的虚拟环境名 python=3.8
```
### 安装第四维度
通过pip安装:
```
pip install Fourth-Dimension
```
或通过源码安装:
```
pip setup.py install
```
### 本地部署
#### Elasticsearch
#### BGE
## 配置文件说明
```text
{
//文档文本存储方式
"word_storage": "elasticsearch",
//文档向量存储方式
"embedding_storage": "faiss_process",
//检索方式选择
"search_select": "elasticsearch",
//embedding模型
"embedding_model": "bge-large-zh-v1.5",
//答案生成模型
"answer_generation_model": "gpt-3.5-turbo-16k",
//文档划分设置
"para_config": {
//文档划分段落长度
"chunk_size": 500,
//文档划分重叠度
"overlap": 20
},
//召回设置
"recall_config": {
//指定使用多少召回结果进行答案生成
"top_k": 10
},
//Elasticsearch设置
"elasticsearch_setting": {
"host": "localhost",
"port": 9200,
//若存在安全认证,则填写用户名和密码
"username": "",
"password": "",
//Elasticsearch分词器
"analyzer": "standard"
},
//Faiss设置
"faiss_setting": {
//索引方式
"retrieval_way": "IndexFlatL2"
}
}
```
## 示例代码
```python
import fourth_dimension
answer = fourth_dimension.query("您的问题", '文档路径')
```
Raw data
{
"_id": null,
"home_page": "https://gitee.com/hustai/Fourth-Dimension",
"name": "fdfdtest",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "python,yantu,\u4e2d\u6587",
"author": "yantu-tech",
"author_email": "GuoHuai Wu <wu466687121@qq.com>",
"download_url": "https://files.pythonhosted.org/packages/5c/c6/38ec40efa5a463908ebe4e53fe8d1f34c8c7d7a273689aab2291356d6f85/fdfdtest-1.7.tar.gz",
"platform": null,
"description": "## \u4ec0\u4e48\u662f\u7b2c\u56db\u7ef4\u5ea6\uff1f\r\nFourth-Dimension\u662f\u8a00\u56fe\u79d1\u6280\u63d0\u4f9b\u7684\u4ee5Python\u8bed\u8a00\u7f16\u5199\u7684\u5e94\u7528\u7a0b\u5e8f\u5e93\uff0c\u4ee5\u5b9e\u73b0\u5bf9Yantu API\u4fbf\u6377\u8bbf\u95ee\u3002\u5b83\u5305\u62ec\u4e00\u4e2a\u7528\u4e8e\u521d\u59cb\u5316\u7684API\u8d44\u6e90\u7684\u9884\u5b9a\u4e49\u7c7b\u96c6\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u8bbf\u95eeYantu API\uff0c\u4ee5\u9ad8\u6548\u5730\u4f7f\u7528\u8a00\u56fe\u79c1\u57df\u77e5\u8bc6\u5e93\u3001\u8a00\u56fe\u6587\u6863\u95ee\u7b54\u7b49\u529f\u80fd\u3002\u6b64\u5916\uff0cFourth-Dimension\u8fd8\u63d0\u4f9b\u4e86\u4e00\u5957\u672c\u5730\u90e8\u7f72\u65b9\u6cd5\u3002\r\n\r\n## \u4ea7\u54c1\u7279\u70b9\r\n\u53ef\u5728\u7ebf\u4f7f\u7528Yantu API\u6216\u672c\u5730\u90e8\u7f72\u4e13\u5c5e\u77e5\u8bc6\u5e93\uff0c\u81ea\u5b9a\u4e49embedding\u548c\u7b54\u6848\u751f\u6210\u6a21\u578b\uff0c\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u8fdb\u884c\u5b9a\u5236\u548c\u4f18\u5316\u3002\r\n\r\n## \u4e3b\u8981\u529f\u80fd\r\n* \u7b80\u5355\u9ad8\u6548\uff0c\u7528\u6237\u53ea\u9700\u914d\u7f6e\u4e13\u5c5e\u5bc6\u94a5\u5373\u53ef\u4f7f\u7528yantu API\r\n* \u9ad8\u5ea6\u5b9a\u5236\u5316\u548c\u6570\u636e\u5b89\u5168\u7684\u79c1\u57df\u77e5\u8bc6\u5e93\r\n* \u8a00\u56fe\u667a\u80fd\u4e1a\u52a1\u673a\u5668\u4eba\r\n* \u57fa\u4e8e\u79c1\u57df\u77e5\u8bc6\u5e93\u7684\u6587\u6863\u95ee\u7b54\r\n* \u7b80\u5355\u6613\u7528\u7684\u672c\u5730\u5316\u90e8\u7f72\u6d41\u7a0b\r\n\r\n## \u5b58\u50a8/\u68c0\u7d22\u65b9\u5f0f\r\n* elasticsearch\r\n* faiss\r\n* elasticsearch+Faiss\r\n\r\n## \u7b54\u6848\u751f\u6210\u6a21\u578b\r\n* gpt-3.5-turbo-16k\r\n\r\n## \u7248\u672c\u8bf4\u660e\r\n* Python 3.8\r\n* Elasticsearch 7.17.7\r\n* Faiss 1.7.4\r\n\r\n\r\n## \u5982\u4f55\u5b89\u88c5\r\n### \u521b\u5efa\u865a\u62df\u73af\u5883\r\n\u786e\u4fdd\u5b58\u5728\u53ef\u7528\u7684\u865a\u62df\u73af\u5883\uff0c\u82e5\u6ca1\u6709\u53ef\u6839\u636e\u4ee5\u4e0b\u547d\u4ee4\u8fdb\u884c\u521b\u5efa\r\n```\r\nconda create --name \u60a8\u7684\u865a\u62df\u73af\u5883\u540d python=3.8\r\n```\r\n\r\n### \u5b89\u88c5\u7b2c\u56db\u7ef4\u5ea6 \r\n\u901a\u8fc7pip\u5b89\u88c5\uff1a\r\n```\r\npip install Fourth-Dimension\r\n```\r\n\u6216\u901a\u8fc7\u6e90\u7801\u5b89\u88c5\uff1a\r\n```\r\npip setup.py install\r\n```\r\n\r\n\r\n### \u672c\u5730\u90e8\u7f72\r\n#### Elasticsearch\r\n\r\n\r\n#### BGE\r\n\r\n\r\n## \u914d\u7f6e\u6587\u4ef6\u8bf4\u660e\r\n```text\r\n{\r\n //\u6587\u6863\u6587\u672c\u5b58\u50a8\u65b9\u5f0f\r\n \"word_storage\": \"elasticsearch\",\r\n //\u6587\u6863\u5411\u91cf\u5b58\u50a8\u65b9\u5f0f\r\n \"embedding_storage\": \"faiss_process\",\r\n //\u68c0\u7d22\u65b9\u5f0f\u9009\u62e9\r\n \"search_select\": \"elasticsearch\",\r\n //embedding\u6a21\u578b\r\n \"embedding_model\": \"bge-large-zh-v1.5\",\r\n //\u7b54\u6848\u751f\u6210\u6a21\u578b\r\n \"answer_generation_model\": \"gpt-3.5-turbo-16k\",\r\n //\u6587\u6863\u5212\u5206\u8bbe\u7f6e\r\n \"para_config\": {\r\n //\u6587\u6863\u5212\u5206\u6bb5\u843d\u957f\u5ea6\r\n \"chunk_size\": 500,\r\n //\u6587\u6863\u5212\u5206\u91cd\u53e0\u5ea6\r\n \"overlap\": 20\r\n },\r\n //\u53ec\u56de\u8bbe\u7f6e\r\n \"recall_config\": {\r\n //\u6307\u5b9a\u4f7f\u7528\u591a\u5c11\u53ec\u56de\u7ed3\u679c\u8fdb\u884c\u7b54\u6848\u751f\u6210\r\n \"top_k\": 10\r\n },\r\n //Elasticsearch\u8bbe\u7f6e\r\n \"elasticsearch_setting\": {\r\n \"host\": \"localhost\",\r\n \"port\": 9200,\r\n //\u82e5\u5b58\u5728\u5b89\u5168\u8ba4\u8bc1\uff0c\u5219\u586b\u5199\u7528\u6237\u540d\u548c\u5bc6\u7801\r\n \"username\": \"\",\r\n \"password\": \"\",\r\n //Elasticsearch\u5206\u8bcd\u5668\r\n \"analyzer\": \"standard\"\r\n },\r\n //Faiss\u8bbe\u7f6e\r\n \"faiss_setting\": {\r\n //\u7d22\u5f15\u65b9\u5f0f\r\n \"retrieval_way\": \"IndexFlatL2\"\r\n }\r\n}\r\n```\r\n\r\n## \u793a\u4f8b\u4ee3\u7801\r\n```python\r\nimport fourth_dimension\r\n\r\nanswer = fourth_dimension.query(\"\u60a8\u7684\u95ee\u9898\", '\u6587\u6863\u8def\u5f84')\r\n```\r\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Yantu tools for python",
"version": "1.7",
"project_urls": {
"Homepage": "https://gitee.com/hustai/Fourth-Dimension"
},
"split_keywords": [
"python",
"yantu",
"\u4e2d\u6587"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5cc638ec40efa5a463908ebe4e53fe8d1f34c8c7d7a273689aab2291356d6f85",
"md5": "1d0a4ae4df31ae62b04e52178be7651a",
"sha256": "409e469ae8662c05533fedcb8ecc57fde1215c0de765f5c9db668cb51b834414"
},
"downloads": -1,
"filename": "fdfdtest-1.7.tar.gz",
"has_sig": false,
"md5_digest": "1d0a4ae4df31ae62b04e52178be7651a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 17626,
"upload_time": "2023-11-09T06:40:47",
"upload_time_iso_8601": "2023-11-09T06:40:47.593869Z",
"url": "https://files.pythonhosted.org/packages/5c/c6/38ec40efa5a463908ebe4e53fe8d1f34c8c7d7a273689aab2291356d6f85/fdfdtest-1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-09 06:40:47",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "fdfdtest"
}