# llmhelper
大模型辅助函数库
## 安装
```shell
pip install llmhelper
```
## 环境变量
- OPENAI_API_KEY
- 必填
- OPENAI_BASE_URL
- 必填
- OPENAI_CHAT_MODEL
- 默认为:qwen2-instruct
- OPENAI_EMBEDDINGS_MODEL
- 默认为:bge-m3
- OPENAI_RERANK_MODEL
- 默认为:bge-reranker-v2-m3
- LLMHELPER_REDIS_STACK_URLS
- 默认为:`{"default": "redis://localhost:3679/0"}`
- 字典类型,表示指定索引的向量数据库地址。例如:
```python
LLMHELPER_REDIS_STACK_URLS = {
"default": "redis://localhost:6379/0",
"kb:qa": "redis://192.168.1.31:6379/0",
"kb:doc": "redis://192.168.1.32:6379/0",
"ai:instruct": "redis://192.168.1.33:6379/0",
}
```
## 函数列表
- exceptions
- ParseJsonResponseError
- ChatError
- GetTextEmbeddingsError
- GetRerankScoresError
- NoneValueError
- VectorStoreNoneValueError
- EmbeddingsNoneValueError
- RerankNoneValueError
- base
- get_llmhelper_config
- set_llmhelper_default_config
- set_llmhelper_config
- get_default_llm
- get_default_chat_model
- get_default_embeddings_model
- get_default_rerank_model
- get_template_engine
- get_llm_base_url
- get_llm_api_url
- template
- get_template_prompt_by_django_template_engine
- get_template_prompt_by_jinjia2
- get_template_prompt
- llm
- get_messages
- parse_json_response
- chat
- jsonchat
- streaming_chat
- embeddings
- OpenAIEmbeddings
- get_text_embeddings
- rerank
- get_rerank_scores
- vectorestores
- RedisVectorStore
- extra.django_vectorstore_index_model.models
- WithVectorStoreIndex
## 版本记录
### v0.1.0
- 版本首发。
### v0.2.0
- 添加embeddings模型操作支持。
- 添加rerank模型操作支持。
### v0.3.0
- 添加向量数据库操作支持。
### v0.4.0
- 添加django_vectorstore_index_model抽象类。
### v0.5.1
#### 新增
- 添加时间增强数据集。
- RedisVectorStore.safe_insert函数自动将超长文本分块创建索引。
#### 修改
- llm.json_parse_response在遇到无法解析的响应时会抛出异常。
- chat中参数template_name建议修改为template。
- vectorstores查询空索引时异常,建议异常时返回空数组。
- get_template_prompt_by_jinjia2允许用户自定义template_root。
#### 修正
- exception类设定默认提示语的方式错误。
- llmhelper.template引擎初始化错误。
### v0.5.2
#### 修正
- 时间计算问题。
### v0.5.3
#### 修改
- `WithVectorStoreIndex`添加是否自动索引的控制项。
### v0.5.4
#### 修改
- `RedisVectorStore`添加`rerank`方法。
### v0.5.5
#### 修正
- `parse_json_response`正则多行匹配的问题。
Raw data
{
"_id": null,
"home_page": null,
"name": "llmhelper",
"maintainer": "Zhou WangJie",
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "llm, llmhelper",
"author": "Zhou WangJie",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/bf/bd/55b8262262d602e944bf342069853e041cfe09b918c0d15fc90d5c2d72e8/llmhelper-0.5.5.tar.gz",
"platform": null,
"description": "# llmhelper\n\n\u5927\u6a21\u578b\u8f85\u52a9\u51fd\u6570\u5e93\n\n## \u5b89\u88c5\n\n```shell\npip install llmhelper\n```\n\n## \u73af\u5883\u53d8\u91cf\n\n- OPENAI_API_KEY\n - \u5fc5\u586b\n- OPENAI_BASE_URL\n - \u5fc5\u586b\n- OPENAI_CHAT_MODEL\n - \u9ed8\u8ba4\u4e3a\uff1aqwen2-instruct\n- OPENAI_EMBEDDINGS_MODEL\n - \u9ed8\u8ba4\u4e3a\uff1abge-m3\n- OPENAI_RERANK_MODEL\n - \u9ed8\u8ba4\u4e3a\uff1abge-reranker-v2-m3\n- LLMHELPER_REDIS_STACK_URLS\n - \u9ed8\u8ba4\u4e3a\uff1a`{\"default\": \"redis://localhost:3679/0\"}`\n - \u5b57\u5178\u7c7b\u578b\uff0c\u8868\u793a\u6307\u5b9a\u7d22\u5f15\u7684\u5411\u91cf\u6570\u636e\u5e93\u5730\u5740\u3002\u4f8b\u5982\uff1a\n\n ```python\n LLMHELPER_REDIS_STACK_URLS = {\n \"default\": \"redis://localhost:6379/0\",\n \"kb:qa\": \"redis://192.168.1.31:6379/0\",\n \"kb:doc\": \"redis://192.168.1.32:6379/0\",\n \"ai:instruct\": \"redis://192.168.1.33:6379/0\",\n }\n ```\n\n## \u51fd\u6570\u5217\u8868\n\n- exceptions\n - ParseJsonResponseError\n - ChatError\n - GetTextEmbeddingsError\n - GetRerankScoresError\n - NoneValueError\n - VectorStoreNoneValueError\n - EmbeddingsNoneValueError\n - RerankNoneValueError\n- base\n - get_llmhelper_config\n - set_llmhelper_default_config\n - set_llmhelper_config\n - get_default_llm\n - get_default_chat_model\n - get_default_embeddings_model\n - get_default_rerank_model\n - get_template_engine\n - get_llm_base_url\n - get_llm_api_url\n- template\n - get_template_prompt_by_django_template_engine\n - get_template_prompt_by_jinjia2\n - get_template_prompt\n- llm\n - get_messages\n - parse_json_response\n - chat\n - jsonchat\n - streaming_chat\n- embeddings\n - OpenAIEmbeddings\n - get_text_embeddings\n- rerank\n - get_rerank_scores\n- vectorestores\n - RedisVectorStore\n- extra.django_vectorstore_index_model.models\n - WithVectorStoreIndex\n\n## \u7248\u672c\u8bb0\u5f55\n\n### v0.1.0\n\n- \u7248\u672c\u9996\u53d1\u3002\n\n### v0.2.0\n\n- \u6dfb\u52a0embeddings\u6a21\u578b\u64cd\u4f5c\u652f\u6301\u3002\n- \u6dfb\u52a0rerank\u6a21\u578b\u64cd\u4f5c\u652f\u6301\u3002\n\n### v0.3.0\n\n- \u6dfb\u52a0\u5411\u91cf\u6570\u636e\u5e93\u64cd\u4f5c\u652f\u6301\u3002\n\n### v0.4.0\n\n- \u6dfb\u52a0django_vectorstore_index_model\u62bd\u8c61\u7c7b\u3002\n\n### v0.5.1\n\n#### \u65b0\u589e\n- \u6dfb\u52a0\u65f6\u95f4\u589e\u5f3a\u6570\u636e\u96c6\u3002\n- RedisVectorStore.safe_insert\u51fd\u6570\u81ea\u52a8\u5c06\u8d85\u957f\u6587\u672c\u5206\u5757\u521b\u5efa\u7d22\u5f15\u3002\n\n#### \u4fee\u6539\n- llm.json_parse_response\u5728\u9047\u5230\u65e0\u6cd5\u89e3\u6790\u7684\u54cd\u5e94\u65f6\u4f1a\u629b\u51fa\u5f02\u5e38\u3002\n- chat\u4e2d\u53c2\u6570template_name\u5efa\u8bae\u4fee\u6539\u4e3atemplate\u3002\n- vectorstores\u67e5\u8be2\u7a7a\u7d22\u5f15\u65f6\u5f02\u5e38\uff0c\u5efa\u8bae\u5f02\u5e38\u65f6\u8fd4\u56de\u7a7a\u6570\u7ec4\u3002\n- get_template_prompt_by_jinjia2\u5141\u8bb8\u7528\u6237\u81ea\u5b9a\u4e49template_root\u3002\n\n#### \u4fee\u6b63\n\n- exception\u7c7b\u8bbe\u5b9a\u9ed8\u8ba4\u63d0\u793a\u8bed\u7684\u65b9\u5f0f\u9519\u8bef\u3002\n- llmhelper.template\u5f15\u64ce\u521d\u59cb\u5316\u9519\u8bef\u3002\n\n### v0.5.2\n\n#### \u4fee\u6b63\n\n- \u65f6\u95f4\u8ba1\u7b97\u95ee\u9898\u3002\n\n### v0.5.3\n\n#### \u4fee\u6539\n\n- `WithVectorStoreIndex`\u6dfb\u52a0\u662f\u5426\u81ea\u52a8\u7d22\u5f15\u7684\u63a7\u5236\u9879\u3002\n\n### v0.5.4\n\n#### \u4fee\u6539\n\n- `RedisVectorStore`\u6dfb\u52a0`rerank`\u65b9\u6cd5\u3002\n\n### v0.5.5\n\n#### \u4fee\u6b63\n\n- `parse_json_response`\u6b63\u5219\u591a\u884c\u5339\u914d\u7684\u95ee\u9898\u3002\n",
"bugtrack_url": null,
"license": "Apache License, Version 2.0",
"summary": "\u5927\u6a21\u578b\u8f85\u52a9\u51fd\u6570\u5e93",
"version": "0.5.5",
"project_urls": null,
"split_keywords": [
"llm",
" llmhelper"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "aeed90bff0ac41c51f8be74168b09fde02ffa7bb9b5a175d88abffce160b2040",
"md5": "55795635eddafe47a448baa024442730",
"sha256": "80f9e5c55d29b00111d4cca29da076b1c3a399cec5fd339ca8521c5cbd797f67"
},
"downloads": -1,
"filename": "llmhelper-0.5.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "55795635eddafe47a448baa024442730",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 23010,
"upload_time": "2025-01-30T14:08:57",
"upload_time_iso_8601": "2025-01-30T14:08:57.138181Z",
"url": "https://files.pythonhosted.org/packages/ae/ed/90bff0ac41c51f8be74168b09fde02ffa7bb9b5a175d88abffce160b2040/llmhelper-0.5.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bfbd55b8262262d602e944bf342069853e041cfe09b918c0d15fc90d5c2d72e8",
"md5": "074f0ca1793af84fddcf0a49076ab0b9",
"sha256": "cbb0d80dc808bc4586eacef4ab63a98b57b7f09efe227b80bb6df4348757f3a1"
},
"downloads": -1,
"filename": "llmhelper-0.5.5.tar.gz",
"has_sig": false,
"md5_digest": "074f0ca1793af84fddcf0a49076ab0b9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20254,
"upload_time": "2025-01-30T14:08:59",
"upload_time_iso_8601": "2025-01-30T14:08:59.264365Z",
"url": "https://files.pythonhosted.org/packages/bf/bd/55b8262262d602e944bf342069853e041cfe09b918c0d15fc90d5c2d72e8/llmhelper-0.5.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-30 14:08:59",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "llmhelper"
}