迪克猪的博客
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Ollama部署

ollama下载地址

运行:

ollama run llama3.1

使用kimi写python代码

我要用本地已经部署的ollama工具提供的API,批量的处理一个excel中的内容,请你帮我完成python程序
1)读取excel中每一行的[回答]列的数据
2)用准备好的提示词和接口地址,处理单元格数据,收到包含两个字段的json数据,【得分】【评价】
3)将【得分】【评价】,保存到原有的excel中

要完成这个任务,我们将需要使用 Python 的几个库:pandas 用于读取和写入 Excel 文件,requests 用于发送 HTTP 请求到 API,以及 json 用于处理 JSON 数据。

以下是一个基本的 Python 脚本示例,演示了如何实现上述功能:

import pandas as pd
import requests
import json

# 指定你的 Excel 文件路径
excel_path = 'path_to_your_excel_file.xlsx'
# 指定 API 地址
api_url = 'your_api_url_here'

# 读取 Excel 文件
df = pd.read_excel(excel_path)

# 准备一个空的 DataFrame 用于存储结果
results_df = pd.DataFrame(columns=['得分', '评价'])

# 遍历 DataFrame 中的每一行
for index, row in df.iterrows():
    # 假设 '回答' 是列名,根据你的实际情况可能需要修改
    response_content = row['回答']
    
    # 准备 POST 请求的数据,包括提示词和需要处理的数据
    payload = {
        'prompt': 'your_prompt_word_here',  # 你的提示词
        'content': response_content
    }
    
    # 发送 POST 请求到 API
    response = requests.post(api_url, json=payload)
    
    # 检查响应状态码
    if response.status_code == 200:
        # 解析响应内容为 JSON
        json_data = response.json()
        
        # 从 JSON 中获取 '得分' 和 '评价'
        score = json_data.get('得分')
        comment = json_data.get('评价')
        
        # 将结果添加到结果 DataFrame 中
        results_df = results_df.append({'得分': score, '评价': comment}, ignore_index=True)
    else:
        print(f"Failed to get a proper response from API for row {index}. Status code: {response.status_code}")

# 将得分和评价合并回原始 DataFrame
df[['得分', '评价']] = results_df

# 保存更新后的 DataFrame 回 Excel 文件
df.to_excel(excel_path, index=False)

print("Processing complete. Updated Excel file saved.")

请注意,这个脚本假设你的 Excel 文件中有一个名为 [回答] 的列,并且 API 响应的 JSON 数据包含 得分评价 字段。你需要根据你的实际情况调整列名、API URL 和提示词。

在运行此脚本之前,请确保你已经安装了所需的库:

pip install pandas requests

此外,确保你的 API 能够处理 POST 请求,并返回正确的 JSON 格式数据。如果 API 需要其他类型的请求(如 GET 请求)或需要认证(如 API 密钥),你需要在 requests.post 调用中进行相应的调整。

  • 主框架有了,剩下就是一步步踩坑和调整的过程。

调整0:提示词

下面的文字是一个创业者的创业故事,请帮我从三个维度进行信息提炼
1)创业烧掉多少钱,如果没有提到就写0
2)根据文字表达,判断一下这个创业者的逻辑思维能力和表达能力,满分10分,综合打一个分数
3)根据复盘的内容,判断一下他最有可能失败的原因

要求:
1)不要推断,只从原始文字中进行内容分析
2)输出结果用json格式,包含三个内容【烧掉多少钱】【逻辑表达得分】【可能失败的原因】
3)输出不要更多信息,只给我要的内容

复盘文字:

输出:

{
  "烧掉多少钱": 0,
  "逻辑表达得分": 5,
  "可能失败的原因": "由于没有具体的复盘文字提供,无法判断可能的失败原因。"
}

换用Ollama自带的调用方式

由于您没有提供具体的复盘文字,我无法进行具体的信息提炼。但是,我可以提供一个通用的Python代码示例,用于调用一个API并处理返回的JSON数据。您可以根据实际的API调用方式和返回的数据格式,对以下代码进行相应的调整。

假设Ollama的API调用方式是通过HTTP POST请求,并且返回的数据是JSON格式,包含scorecomment字段。以下是使用Python的requests库调用API并处理数据的示例代码:

import requests
import json
import pandas as pd

# 假设这是您的API调用函数
def call_ollama_api(content, prompt):
    api_url = '您的API地址'
    headers = {'Content-Type': 'application/json'}  # 如果API需要特定的头部信息,请添加
    payload = {
        'prompt': prompt,
        'content': content
    }
    response = requests.post(api_url, json=payload, headers=headers)
    if response.status_code == 200:
        return response.json()  # 假设返回的是JSON格式的数据
    else:
        raise Exception(f"API调用失败,状态码:{response.status_code}")

# 读取Excel文件
excel_path = '您的Excel文件路径.xlsx'
df = pd.read_excel(excel_path)

# 假设您的Excel文件中有两列:'回答'和'得分','评价'
# 并且您想在原有Excel文件中添加'得分'和'评价'列

# 准备存储得分和评价的列表
scores = []
comments = []

# 调用API并更新数据
for index, row in df.iterrows():
    response_data = call_ollama_api(row['回答'], '您的提示词')  # 替换为您的提示词
    scores.append(response_data.get('score', 0))  # 使用.get()避免KeyError,如果没有'score'则默认为0
    comments.append(response_data.get('comment', '无评价'))  # 同上

# 将得分和评价添加到DataFrame
df['得分'] = scores
df['评价'] = comments

# 保存更新后的DataFrame到Excel
df.to_excel('更新后的Excel文件路径.xlsx', index=False)

请注意,您需要替换代码中的api_urlpromptexcel_path'更新后的Excel文件路径.xlsx'为您实际的API地址、提示词、原始Excel文件路径和更新后的Excel文件路径。

此外,如果API调用需要认证(如API密钥),您需要在headers中添加相应的认证信息。如果API的返回数据结构与示例不同,您需要根据实际返回的数据结构调整代码中的response_data.get('score', 0)response_data.get('comment', '无评价')部分。

在运行此代码之前,请确保您已经安装了所需的库:

pip install pandas requests