from ragas.llms.haystack_wrapper import HaystackLLMWrapper from ragas.embeddings.haystack_wrapper import HaystackEmbeddingsWrapper from haystack.components.generators.openai import OpenAIGenerator from haystack.components.embedders import OpenAITextEmbedder from haystack.utils import Secret import json api_key = Secret.from_token("eyJhbGciOiJIUzI1NiIsImtpZCI6IlV6SXJWd1h0dnprLVRvdzlLZWstc0M1akptWXBvX1VaVkxUZlpnMDRlOFUiLCJ0eXAiOiJKV1QifQ.eyJzdWIiOiJnaXRodWJ8MzM4NTU5OCIsInNjb3BlIjoib3BlbmlkIG9mZmxpbmVfYWNjZXNzIiwiaXNzIjoiYXBpX2tleV9pc3N1ZXIiLCJhdWQiOlsiaHR0cHM6Ly9uZWJpdXMtaW5mZXJlbmNlLmV1LmF1dGgwLmNvbS9hcGkvdjIvIl0sImV4cCI6MTg5ODY1NzA4NSwidXVpZCI6IjkwYWY2MmQ5LTQ1M2ItNDZjNi05N2ZkLTg3ZTQ2YWEzMTg0NyIsIm5hbWUiOiJsdHUtdGhlc2lzICIsImV4cGlyZXNfYXQiOiIyMDMwLTAzLTAyVDA0OjQ0OjQ1KzAwMDAifQ.f31st8MhisxGfLxXeLEsSPGIoCKGy1Py3_-qn2Cw2Tw") llm = HaystackLLMWrapper(OpenAIGenerator( api_base_url="https://api.studio.nebius.com/v1/", model="meta-llama/Llama-3.3-70B-Instruct", api_key=api_key )) embedding = HaystackEmbeddingsWrapper(OpenAITextEmbedder( api_base_url="https://api.studio.nebius.com/v1/", model="BAAI/bge-en-icl", api_key=api_key, )) from ragas.testset import TestsetGenerator from langchain_core.documents import Document as LCDocument file_path="ltu_programme_data.json" with open(file_path, 'r', encoding='utf-8') as f: data = json.load(f) print(f"Successfully loaded {len(data)} records from {file_path}") lcdocs = [] for i, item in enumerate(data): lcdocs.append(LCDocument(item['content'])) # If no documents are found, provide a helpful message if not lcdocs: print("No documents found in the Qdrant store. Make sure documents are indexed first.") generator = TestsetGenerator(llm=llm, embedding_model=embedding) dataset = generator.generate_with_langchain_docs(lcdocs, testset_size=10) # Save the generated test samples to a JSON file dataset.to_jsonl("testset.json") print(f"Saved {len(dataset)} test samples to testset.json")