ScrapeGraphAI / Scrapegraph-ai

Python scraper based on AI
https://scrapegraphai.com
MIT License
15.69k stars 1.27k forks source link

Scrapegraph-ai接入OneAPI模型(qwen-turbo) #295

Closed wangdongpeng1 closed 5 months ago

wangdongpeng1 commented 5 months ago

Scrapegraph-ai官网当前版本查看源代码发现底层OpenAI支持参数base_url,但框架不能直接使用,需要修改框架中的依赖库中源代码给予支持。

框架调用逻辑: _scrapegraphaiScript.py(SmartScraperGraph) --> smart_scraper_graph.py(AbstractGraph) -->abstractgraph.py(OpenAI)-->openai.py(ChatOpenAI)-->base.py(import openai ...)

1.修改abstract_graph.py中的_create_llm

图片1 增加如下代码:

elif "oneapi" in llm_params["model"]:
            # take the model after the last dash
            llm_params["model"] = llm_params["model"].split("/")[-1]
            try:
                self.model_token = models_tokens["oneapi"][llm_params["model"]]
            except KeyError as exc:
                raise KeyError("Model Model not supported") from exc
            return OpenAI(llm_params)

2.修改models_tokens.py中的models_tokens参数

图片2 增加如下代码:

 "oneapi": {
        "qwen-turbo": 16380
    },

3.创建scrapegraphaiScript.py脚本,测试用例源代码如下:

from scrapegraphai.graphs import SmartScraperGraph

graph_config = {
    "llm": {
        "api_key": "***************************",
        "model": "oneapi/qwen-turbo",
        "base_url": "http://127.0.0.1:3000/v1",  # 设置 OneAPI URL
    },
    "embeddings": {
        "model": "ollama/nomic-embed-text",
        "base_url": "http://127.0.0.1:11434",  # 设置 Ollama URL
    }
}

smart_scraper_graph = SmartScraperGraph(
    prompt="该网站为XXXXX,请提取出标题、发布时间、发布来源以及内容摘要,并以中文回答。",
    # 也可以使用已下载的 HTML 代码的字符串
    source="http://XXXX",
    config=graph_config
)

result = smart_scraper_graph.run()
print(result)

本代码由wangdongpeng1@139.com贡献,希望Scrapegraph-ai越来越好!

f-aguzzi commented 5 months ago

@wangdongpeng1 我首先要说的是,我使用的是翻译器,所以如果我说了什么蠢话,那也是为了翻译器。

感谢您对代码的贡献。我们注意到你是 GitHub 的新用户,所以我们将把你添加为共同作者,并为你发布这些新增内容。

@VinciGit00 目前正在处理。

这些更改将很快出现在下一个测试版中。如果一切正常,请通知我们。

VinciGit00 commented 5 months ago

你好,我已经修改了,非常感谢! 我让你作为该项目的共同作者

VinciGit00 commented 5 months ago

您好,我们在测试版中添加了它,并且已经发布了测试版,请更新