Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.env
temp_test
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
# ModulelyTools
一个基于LLM的函数模块化&说明文档生成小工具,开发中~

## 环境部署
#### python版本
```
python >= 3.7
```
#### 安装依赖
```
pip install -r requirements.txt
```
#### 配置LLM相关参数(token)
```
# 1.复制example.env并命名为.env文件到项目根目录
$ cp example.env .env

# 2.修改.env文件中的token
```

## 关于这个工具
这是一个基于LLM的函数模块化小工具,设计功能是
1. 给定一个.pynb文档,一键生成.py文件,.py文件具有较好的封装性。
Expand Down
6 changes: 5 additions & 1 deletion codes/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
from dotenv import load_dotenv

load_dotenv('../.env')

from . import llm
from . import extraction
from . import static_str
from . import static_str
3 changes: 1 addition & 2 deletions codes/llm/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
from . import llm_chat
from . import tokens
from . import llm_chat
28 changes: 18 additions & 10 deletions codes/llm/llm_chat.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,51 @@
import os

import erniebot
import json

# 一个自定义文件用来存放token,请自行到自己账号主页复制自己的token替换erniebot
from .tokens import erniebot_access_token
if os.getenv('erniebot_access_token'):
erniebot.access_token = os.getenv('erniebot_access_token')
else:
raise Exception("erniebot_access_token未配置:\n"
"请移步百度文心一言!https://aistudio.baidu.com/index/accessToken\n"
"将token替换到.env的erniebot_access_token中")


def get_llm_answer_with_msg(msg):
erniebot.api_type = 'aistudio'
erniebot.access_token = erniebot_access_token
response = erniebot.ChatCompletion.create(
model='ernie-bot',
messages=msg,
top_p=0,
temperature = 0.1,
temperature=0.1,
)
result = response.get_result()
return result


def get_llm_answer(prompt):
erniebot.api_type = 'aistudio'
erniebot.access_token = erniebot_access_token
response = erniebot.ChatCompletion.create(
model='ernie-bot',
messages=[{'role': 'user', 'content': prompt}],
top_p=0,
temperature = 0.1,
temperature=0.1,
)
result = response.get_result()
return result


def extract_json_from_llm_answer(result, start_str="```json", end_str="```", replace_list=["\n"]):
s_id = result.index(start_str)
e_id = result.index(end_str, s_id+len(start_str))
json_str = result[s_id+len(start_str):e_id]
e_id = result.index(end_str, s_id + len(start_str))
json_str = result[s_id + len(start_str):e_id]
for replace_str in replace_list:
json_str = json_str.replace(replace_str,"")
json_str = json_str.replace(replace_str, "")
json_dict = json.loads(json_str)
return json_dict


def get_llm_json_answer(prompt):
result = get_llm_answer(prompt)
json_dict = extract_json_from_llm_answer(result)
return json_dict
return json_dict
1 change: 0 additions & 1 deletion codes/llm/tokens.py

This file was deleted.

2 changes: 2 additions & 0 deletions example.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# 移步百度文心一言!https://aistudio.baidu.com/index/accessToken获取
erniebot_access_token=97e93cfcddb26a250293fe68e83b57262c27369a
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
nbformat
erniebot
python-dotenv