<aside> ๐Ÿ’ก

BFCL V2

๊ฐœ์š”

BFCL v2๋Š” LLM์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋Šฅ๋ ฅ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฒค์น˜๋งˆํฌ๋กœ, ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์‚ฌ์šฉ์ž ์ œ๊ณต ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ๋‹จ์ผ ํ•จ์ˆ˜ ํ˜ธ์ถœ, ๋‹ค์ค‘ ํ•จ์ˆ˜ ์„ ํƒ, ๋ณ‘๋ ฌ ํ˜ธ์ถœ, ๊ด€๋ จ์„ฑ ํŒ๋‹จ ๋“ฑ ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

image.png

BFCL V2 โ€ข Live Dataset

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

์ง์ ‘ ๋‹ค์šด๋กœ๋“œ

https://github.com/ShishirPatil/gorilla/tree/main/berkeley-function-call-leaderboard

def load_file(file_path: str):
    result = []
    with open(file_path) as f:
        file = f.readlines()
        for line in file:
            result.append(json.loads(line))
    return result
from datasets import Dataset
import copy
import json

def load_json_dataset(test_entries: List[Dict[str, Any]]):
    data = {"id": [], "question": [], "function": []}
    test_entries_copy = copy.deepcopy(test_entries)

    for item in test_entries_copy:
        data["id"].append(item["id"])
        data["question"].append(item["question"])

        for func in item["function"]:
            func["parameters"]["properties"] = json.dumps(
                func["parameters"]["properties"]
            )
        data["function"].append(func)
    return Dataset.from_dict(data)

# Example usage
test_entries = load_file("path_to_your_file.json")
ds = load_json_dataset(test_entries)