Deepseek-r1:14b+ScraperAPI实现联网本地大模型回答


前言

我需要对本地的Deepseek-r1:14b进行提问,我发现它对于实时的问题,或者不知道的问题,会不回答或者乱回答。基于这点我想通过Web API传输更多的信息给到Deekseek,从而让他回答更加精准。


一、Deekseek本地部署

这个只需要下载Ollama就可以实现。具体可以看我之前的文章 Ollama本地部署

二、SerpAPI

1.什么是SerpAPI?

SerpAPI是一个提供搜索引擎结果的API服务,允许开发者在其应用程序中集成Google、Bing等搜索引擎的功能。它支持多种参数设置,可以根据地域和语言进行定制化搜索。

2.如何使用SerpAPI进行Web搜索

代码如下(示例):

def get_search_results(query):
    params = {
        "engine": "bing",  # 或者"google"取决于你想从哪个搜索引擎获取数据
        "q": query,
        "api_key": "YOUR_API"
    }

    response = requests.get('https://serpapi.com/search', params=params)
    results = response.json()
    return results['organic_results'][:5]
    # 获取前5个结果
    # for result in results['organic_results'][:5]:
    #     print(f"标题: {result['title']}")
    #     print(f"链接: {result['link']}")
    #     print(f"摘要: {result['snippet']}\n")

在这里插入图片描述

三、实现Deepseek-r1:14b+ScraperAPI实现联网本地大模型回答

1. Code

代码如下(示例):

from ollama import chat
import requests
import requests
import json
import time

def get_search_results(query):
    params = {
        "engine": "bing",  # 或者"google"取决于你想从哪个搜索引擎获取数据
        "q": query,
        "api_key": "YOUR_API"
    }

    response = requests.get('https://serpapi.com/search', params=params)
    results = response.json()
    return results['organic_results'][:5]
    # 获取前5个结果
    # for result in results['organic_results'][:5]:
    #     print(f"标题: {result['title']}")
    #     print(f"链接: {result['link']}")
    #     print(f"摘要: {result['snippet']}\n")


def query_model(prompt, context=""):
    # 实现你的模型查询逻辑,这里简化处理
    # 假设context是一个字符串,包含了搜索结果的相关信息
    full_prompt = f"{context}\nUser: {prompt}\nAssistant:"
    stream = chat(
        model='deepseek-r1:14b',
        messages=[{'role': 'user', 'content': full_prompt}],
        stream=True,
    )

    for chunk in stream:
      print(chunk['message']['content'], end='', flush=True)
    return chunk['message']['content']
  #full_prompt = f"{context}\nUser: {prompt}\nAssistant:"
  #response = model.generate(full_prompt)  # 这里应替换为实际的模型调用逻辑
  #return response
def main():
    user_query = "今天天气如何?";
    search_results = get_search_results(user_query)

    # 提取并整理搜索结果中的关键信息作为上下文
    context_info = "\n".join([f"标题: {result['title']}, 摘要: {result['snippet']}" for result in search_results])

    # 结合上下文询问模型
    answer = query_model(user_query, context=context_info)
    print(f"助手的回答:{answer}")


if __name__ == "__main__":
    main()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值