Spaces:
Running
Running
| # ruff: noqa: E402 | |
| import os | |
| import sys | |
| import time | |
| from dotenv import load_dotenv | |
| sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| load_dotenv() | |
| try: | |
| from pinecone import Pinecone, ServerlessSpec | |
| except ImportError: | |
| print("Pinecone not installed") | |
| sys.exit(1) | |
| from rag_pipeline.ingest import process_and_ingest | |
| def setup(): | |
| pc = Pinecone(api_key=os.getenv("PINECONE_API_KEY")) | |
| index_name = os.getenv("PINECONE_INDEX_NAME", "dotacje") | |
| existing_indexes = [index_info["name"] for index_info in pc.list_indexes()] | |
| print(f"Existing indexes: {existing_indexes}") | |
| if index_name not in existing_indexes: | |
| print(f"Tworzenie indexu Pinecone: {index_name}...") | |
| # Wymiary dla modelów Google embedding to 768 | |
| pc.create_index( | |
| name=index_name, | |
| dimension=768, | |
| metric="cosine", | |
| spec=ServerlessSpec(cloud="aws", region="us-east-1"), | |
| ) | |
| print("Czekam na gotowość indexu...") | |
| while not pc.describe_index(index_name).status["ready"]: | |
| time.sleep(1) | |
| print("Indeks gotowy!") | |
| else: | |
| print(f"Indeks {index_name} już istnieje.") | |
| print("\nDodawanie przykładowych tekstów o dotacjach z PARP/NCBR do bazy...") | |
| sample_text = """ | |
| Zasada DNSH (Do No Significant Harm) - Nie czyń znaczącej szkody. | |
| W projektach FENG (w tym Ścieżka SMART) każdy wydatek i cała inwestycja musi być zgodna z zasadą DNSH. Oznacza to, że projekt nie może wpływać negatywnie na sześć celów środowiskowych: 1. Łagodzenie zmian klimatu, 2. Adaptacja do zmian klimatu, 3. Zrównoważone wykorzystanie zasobów wodnych i morskich, 4. Przejście na gospodarkę o obiegu zamkniętym (GOZ), 5. Zapobieganie zanieczyszczeniom i ich kontrola, 6. Ochrona i odbudowa bioróżnorodności i ekosystemów. | |
| Wydatki na panele fotowoltaiczne i zielone ściany w module zazielenienia są w 100% zgodne z GOZ i DNSH. | |
| Moduł cyfryzacji pozwala z kolei na wprowadzanie oprogramowania optymalizującego ślad węglowy, jednak wymaga pełnego audytu. | |
| """ | |
| success = process_and_ingest( | |
| sample_text, "https://parp.gov.pl/smart-dnsh", priority="high" | |
| ) | |
| if success: | |
| print("Dokument pomyślnie dodany do RAG.") | |
| else: | |
| print("Błąd podczas dodawania dokumentu.") | |
| if __name__ == "__main__": | |
| setup() | |