Skip to content

Commit 9ce24d7

Browse files
authored
Merge pull request #36 from shijinpjlab/dev
feat: add llm demo, including local and remote.(deepseek support)
2 parents 9783aeb + 8f9c186 commit 9ce24d7

File tree

4 files changed

+66
-7
lines changed

4 files changed

+66
-7
lines changed

dingo/model/llm/base_openai.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ def build_messages(cls, input_data: MetaData) -> List:
4141

4242
@classmethod
4343
def send_messages(cls, messages: List):
44-
if cls.dynamic_config.model is None:
45-
model_name = cls.client.models.list().data[0].id
46-
else:
44+
if cls.dynamic_config.model:
4745
model_name = cls.dynamic_config.model
46+
else:
47+
model_name = cls.client.models.list().data[0].id
4848

4949
params = cls.dynamic_config.parameters
5050
cls.validate_config(params)

examples/app_huggingface/app.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from dingo.io import InputArgs
66

77

8-
def dingo_demo(input_path, data_format, column_content, rule_list, prompt_list, key, api_url):
8+
def dingo_demo(input_path, data_format, column_content, rule_list, prompt_list, model, key, api_url):
99
if not input_path:
1010
return 'ValueError: input_path can not be empty, please input.'
1111
if not data_format:
@@ -27,6 +27,7 @@ def dingo_demo(input_path, data_format, column_content, rule_list, prompt_list,
2727
{
2828
"detect_text_quality_detail":
2929
{
30+
"model": model,
3031
"key": key,
3132
"api_url": api_url,
3233
}
@@ -55,8 +56,9 @@ def dingo_demo(input_path, data_format, column_content, rule_list, prompt_list,
5556
column_content = gr.Textbox(value="content", placeholder="please input column name of content in dataset", label="column_content")
5657
rule_list = gr.CheckboxGroup(choices=rule_options, label="rule_list")
5758
prompt_list = gr.CheckboxGroup(choices=prompt_options, label="prompt_list")
58-
key = gr.Textbox(placeholder="If want to use llm, please input the key of it.", label="key")
59-
api_url = gr.Textbox(placeholder="If want to use llm, please input the api_url of it.", label="api_url")
59+
model = gr.Textbox(placeholder="If want to use llm, please input model, such as: deepseek-chat", label="model")
60+
key = gr.Textbox(placeholder="If want to use llm, please input key, such as: 123456789012345678901234567890xx", label="key")
61+
api_url = gr.Textbox(placeholder="If want to use llm, please input api_url, such as: https://api.deepseek.com/v1", label="api_url")
6062
with gr.Row():
6163
submit_single = gr.Button(value="Submit", interactive=True, variant="primary")
6264
with gr.Column():
@@ -65,7 +67,7 @@ def dingo_demo(input_path, data_format, column_content, rule_list, prompt_list,
6567

6668
submit_single.click(
6769
fn=dingo_demo,
68-
inputs=[input_path, data_format, column_content, rule_list, prompt_list, key, api_url],
70+
inputs=[input_path, data_format, column_content, rule_list, prompt_list, model, key, api_url],
6971
outputs=output
7072
)
7173

examples/llm/local_llm.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from dingo.exec import Executor
2+
from dingo.io import InputArgs
3+
4+
input_data = {
5+
"input_path": "../../test/data/test_local_jsonl.jsonl", # local filesystem dataset
6+
"save_data": True,
7+
"save_correct": True,
8+
"dataset": "local",
9+
"data_format": "jsonl",
10+
"column_content": "content",
11+
"custom_config":
12+
{
13+
"prompt_list": ["PromptRepeat"],
14+
"llm_config":
15+
{
16+
"detect_text_quality":
17+
{
18+
"key": "enter your key, such as:EMPTY",
19+
"api_url": "enter your local llm api url, such as:http://127.0.0.1:8080/v1",
20+
}
21+
}
22+
},
23+
"log_level": "INFO"
24+
}
25+
input_args = InputArgs(**input_data)
26+
executor = Executor.exec_map["local"](input_args)
27+
result = executor.execute()
28+
print(result)

examples/llm/remote_llm.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from dingo.exec import Executor
2+
from dingo.io import InputArgs
3+
4+
input_data = {
5+
"input_path": "../../test/data/test_local_jsonl.jsonl", # local filesystem dataset
6+
"save_data": True,
7+
"save_correct": True,
8+
"dataset": "local",
9+
"data_format": "jsonl",
10+
"column_content": "content",
11+
"custom_config":
12+
{
13+
"prompt_list": ["PromptRepeat"],
14+
"llm_config":
15+
{
16+
"detect_text_quality":
17+
{
18+
"model": "enter your llm, such as:deepseek-chat",
19+
"key": "enter your key, such as:sk-123456789012345678901234567890xx",
20+
"api_url": "enter remote llm api url, such as:https://api.deepseek.com/v1",
21+
}
22+
}
23+
},
24+
"log_level": "INFO"
25+
}
26+
input_args = InputArgs(**input_data)
27+
executor = Executor.exec_map["local"](input_args)
28+
result = executor.execute()
29+
print(result)

0 commit comments

Comments
 (0)