CosmosShadow / gptpdf

Using GPT to parse PDF
MIT License
2.76k stars 212 forks source link

使用本地模型 有时候会报错 #37

Closed GreyHuu closed 1 month ago

GreyHuu commented 1 month ago

版本

GeneralAgent 0.3.23 gptpdf 0.0.14

使用的模型

使用的模型本地基于LMDeploy部署的InternVL2 8B模型 模型部署测试没有问题

遇到的问题

The execution of the python code is completed, and the result is as follows: Traceback (most recent call last): File "/home/XXXXXXXXX/miniconda3/XXXXXXXXX/lib/python3.9/site-packages/GeneralAgent/interpreter/python_interpreter.py", line 186, in exec_and_get_last_expression last_expr = compile(last_line, '', 'eval') File "", line 1 your code ^ SyntaxError: unexpected EOF while parsing

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/XXXXXXXXX/miniconda3/envs/XXXXXXXXX/lib/python3.9/site-packages/GeneralAgent/interpreter/python_interpreter.py", line 142, in run_code result = exec_and_get_last_expression(self.globals, code) File "/home/XXXXXXXXX/miniconda3/envs/XXXXXXXXX/lib/python3.9/site-packages/GeneralAgent/interpreter/python_interpreter.py", line 192, in exec_and_get_last_expression main_code = compile('\n'.join(code_lines), '', 'exec') File "", line 4 your code ^ SyntaxError: invalid syntax

- format: ```python
#show code
your code
```.

```python
#show code
print('Hello, world!')
CosmosShadow commented 1 month ago

应该是大模型能力不足导致的。 试下最新版本 0.0.15

sky-fly97 commented 1 month ago

Hello,请问你替换InternVL2 8B模型的代码可以分享吗?我也想试一下internvl2的效果

GreyHuu commented 1 month ago

Hello,请问你替换 InternVL2 8B 模型的代码可以分享吗?我也想试一下 internvl2 的效果

我用LMDeploy 部署的 InternVL2 8B ,这个部署可以看一下LMDeploy的官方文档
然后LMDeploy 提供Openai格式的api服务, 所以可以参数如下的代码,其实就是换base_url 、model

def model(pdf_file, name):
    api_key = 'empty'   # 这里LMDeploy 默认不用key
    base_url = "http://localhost:23333/v1"     # 这个是LMDeploy的默认端口  要加v1
    model = 'XXX'   # 看你部署的时候指定的名称
    content, image_paths = parse_pdf(
        pdf_file,
        output_dir=str(out + name),
        api_key=api_key, base_url=base_url, model=model,  # 其实就是只改了这一部分  
        verbose=True, 
        gpt_worker=3,  # 线程
        prompt={
            "prompt": DEFAULT_PROMPT,
            "rect_prompt": DEFAULT_RECT_PROMPT,
            "role_prompt": DEFAULT_ROLE_PROMPT
        },
        temperature=0.2, top_p=0.95)
    print(content)
    print(image_paths)