使用ollama调用大模型生成自我认知数据集

该项目是在rjk-git/self-cognition-instuctions: A dataset template for guiding chat-models to self-cognition, including information about the model’s identity, capabilities, usage, limitations, etc. (github.com)基础上修改的。

将调用的openai api改为了ollama,模型适用范围更广。

1、自我认知数据集格式

具体详见self-cognition-instuctions项目。

2 安装ollama

采用了api调用方法。

首先下载ollama(linux)

curl -fsSL https://ollama.com/install.sh | sh

 通过ollama下载你想要的模型,这里以qwen1.5-32b为例。

ollama pull qwen:32b

需要开启ollama的服务

ollama serve

安装ollama包,为后面调用api提供支持。

pip install ollama

3修改项目中的generate.py代码。

原代码:

import traceback

import openai
import yaml
from template.prompts import prompt_template
from template.questions import questions
from tqdm import tqdm

CONFIG = yaml.load(open("./config.yml", "r", encoding="utf-8"), Loader=yaml.FullLoader)

openai.api_base = CONFIG["openai"]["api_url"]
openai.api_key = CONFIG["openai"]["api_key"]


def main():
    samples = []
    max_samples = CONFIG["data"]["num_samples"]
    pbar = tqdm(total=max_samples, desc="Generating self cognition data")

    while True:
        exit_flag = False
        for question in questions:
            prompt = prompt_template.format(
                name=CONFIG["about"]["name"],
                company=CONFIG["about"]["company"],
                version=CONFIG["about"]["version"],
                date=CONFIG["about"]["date"],
                description=CONFIG["about"]["description"],
                ability=CONFIG["about"]["ability"],
                limitation=CONFIG["about"]["limitation"],
                author=CONFIG["about"]["author"],
                user_input=question,
                role=CONFIG["about"]["role"],
            )
            try:
                chat_completion = openai.ChatCompletion.create(
                    model=CONFIG["openai"]["model"],
                    messages=[{"role": "user", "content": prompt}],
                )
                sample = chat_completion.choices[0].message.content
                json_sample = eval(sample)
                samples.append(json_sample)

修改后的代码:

import ollama #引入ollama
import os
import yaml
import json
import time
from tqdm import tqdm
import traceback

from template.prompts import prompt_template
from template.questions import questions


CONFIG = yaml.load(open("./config.yml", "r", encoding="utf-8"), Loader=yaml.FullLoader)

def main():
    samples = []
    max_samples = CONFIG["data"]["num_samples"]
    pbar = tqdm(total=max_samples, desc="Generating self cognition data")

    while True:
        exit_flag = False
        for question in questions:
            prompt = prompt_template.format(
                name=CONFIG["about"]["name"],
                company=CONFIG["about"]["company"],
                version=CONFIG["about"]["version"],
                date=CONFIG["about"]["date"],
                description=CONFIG["about"]["description"],
                ability=CONFIG["about"]["ability"],
                limitation=CONFIG["about"]["limitation"],
                author=CONFIG["about"]["author"],
                user_input=question,
                role=CONFIG["about"]["role"],
            )
            try:
                response = ollama.chat(model='qwen:32b', messages=[{"role": "user", "content": prompt}]) #调用qwen1.5-32b
                sample = response['message']['content']
                #print(sample)
                sample = sample.replace("```json", "").replace("```", "") #由于生成的数据经常出现```json、```导致报错,这里做一步处理。
                #print(sample)
                json_sample = eval(sample)
                samples.append(json_sample)

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是使用HPOP模型生成卫星轨道数据的示例代码: ```csharp using AGI.STKObjects; using AGI.STKUtil; // 创建STK Engine IAgStkObjectRoot stkRoot = new AgStkObjectRoot(); stkRoot.NewScenario("example"); IAgScenario scenario = (IAgScenario)stkRoot.CurrentScenario; // 创建卫星 IAgSatellite satellite = scenario.Children.New(AgESTKObjectType.eSatellite, "MySatellite") as IAgSatellite; // 设置卫星的初始状态 IAgVePropagatorHPOP propagator = satellite.Propagator as IAgVePropagatorHPOP; propagator.InitialState.Representation.AssignClassical(AGI.STKUtil.AgECoordinateSystem.eCoordinateSystemJ2000, semiMajorAxis, eccentricity, inclination, argOfPerigee, raan, meanAnomaly); propagator.InitialState.Epoch = "1 Jul 2021 00:00:00.000"; propagator.InitialState.DragTerm = AgEDragModelType.eNone; propagator.InitialState.SRPTerm = AgESRPModelType.eNone; // 设置HPOP的计算属性 propagator.PropagateUntil("2 Jul 2021 00:00:00.000"); propagator.Step = 60; propagator.PropagatorName = "MyHPOPPropagator"; // 生成卫星轨道数据 IAgDataProviderGroup dataProviderGroup = satellite.DataProviders["HPOP Cartesian State"] as IAgDataProviderGroup; IAgDataPrvInterval dpInterval = dataProviderGroup.Group.Item("Cartesian Position") as IAgDataPrvInterval; IAgDrDataSet dpDataSet = dpInterval.Exec(scenario.StartTime, scenario.StopTime); double[,] positionArray = dpDataSet.GetValues(); // 将卫星轨道数据写入文件 using (StreamWriter writer = new StreamWriter("satelliteOrbit.txt")) { for (int i = 0; i < positionArray.GetLength(0); i++) { writer.Write(positionArray[i, 0] + "\t" + positionArray[i, 1] + "\t" + positionArray[i, 2] + "\n"); } } ``` 请注意,这只是一个示例代码片段,实际的代码可能需要根据你的具体需求进行修改。此外,还需要安装STK软件,并且需要了解STK的COM对象模型以及C#中的COM互操作技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值