Skip to content

Commit

Permalink
refactor: rename package ecologits
Browse files Browse the repository at this point in the history
  • Loading branch information
samuelrince committed Apr 11, 2024
1 parent c332329 commit 3618e1f
Show file tree
Hide file tree
Showing 22 changed files with 43 additions and 43 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
GenAI Impact
Ecologits
============

**GenAI Impact** tracks and estimates the energy consumption and environmental impacts of using generative AI models through APIs.
**Ecologits** tracks and estimates the energy consumption and environmental impacts of using generative AI models through APIs.


## ⚙️ Installation
Expand All @@ -11,10 +11,10 @@ Coming soon...
## 🚀 Usage

```python
from genai_impact import Tracer
from ecologits import Ecologits
from openai import OpenAI

Tracer.init()
Ecologits.init()

client = OpenAI(
api_key="<OPENAI_API_KEY>",
Expand All @@ -33,7 +33,7 @@ print(response.impacts) # Impacts(energy=0.025, energy_unit='Wh', ...)



See package documentation on [GenAI Impact](<link-to-mkdocs-material>)
See package documentation on [Ecologits](<link-to-mkdocs-material>)

## 💪 Contributing

Expand Down
3 changes: 3 additions & 0 deletions ecologits/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .ecologits import Ecologits

__all__ = ["Ecologits"]
File renamed without changes.
14 changes: 7 additions & 7 deletions genai_impact/tracer.py → ecologits/ecologits.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import importlib.util

from genai_impact.exceptions import TracerInitializationError
from ecologits.exceptions import TracerInitializationError


class Tracer:
class Ecologits:
initialized = False

@staticmethod
def init() -> None:
if Tracer.initialized:
if Ecologits.initialized:
raise TracerInitializationError()
init_instruments()
Tracer.initialized = True
Ecologits.initialized = True


def init_instruments() -> None:
Expand All @@ -22,23 +22,23 @@ def init_instruments() -> None:

def init_openai_instrumentor() -> None:
if importlib.util.find_spec("openai") is not None:
from genai_impact.tracers.openai_tracer import OpenAIInstrumentor
from ecologits.tracers.openai_tracer import OpenAIInstrumentor

instrumentor = OpenAIInstrumentor()
instrumentor.instrument()


def init_anthropic_instrumentor() -> None:
if importlib.util.find_spec("anthropic") is not None:
from genai_impact.tracers.anthropic_tracer import AnthropicInstrumentor
from ecologits.tracers.anthropic_tracer import AnthropicInstrumentor

instrumentor = AnthropicInstrumentor()
instrumentor.instrument()


def init_mistralai_instrumentor() -> None:
if importlib.util.find_spec("mistralai") is not None:
from genai_impact.tracers.mistralai_tracer import MistralAIInstrumentor
from ecologits.tracers.mistralai_tracer import MistralAIInstrumentor

instrumentor = MistralAIInstrumentor()
instrumentor.instrument()
7 changes: 7 additions & 0 deletions ecologits/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class EcologitsError(Exception):
pass


class TracerInitializationError(EcologitsError):
"""Tracer is initialized twice"""
pass
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions genai_impact/impacts/llm.py → ecologits/impacts/llm.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from math import ceil
from typing import Optional

from genai_impact.impacts.dag import DAG
from genai_impact.impacts.models import GWP, PE, ADPe, Embodied, Energy, Impacts, Usage
from ecologits.impacts.dag import DAG
from ecologits.impacts.models import GWP, PE, ADPe, Embodied, Energy, Impacts, Usage

MODEL_QUANTIZATION_BITS = 4

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
from typing_extensions import override
from wrapt import wrap_function_wrapper

from genai_impact.impacts.models import Impacts
from genai_impact.tracers.utils import compute_llm_impacts
from ecologits.impacts.models import Impacts
from ecologits.tracers.utils import compute_llm_impacts

try:
from anthropic import Anthropic, AsyncAnthropic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

from wrapt import wrap_function_wrapper

from genai_impact.impacts.models import Impacts
from genai_impact.tracers.utils import compute_llm_impacts
from ecologits.impacts.models import Impacts
from ecologits.tracers.utils import compute_llm_impacts

try:
from mistralai.async_client import MistralAsyncClient
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
from openai.types.chat import ChatCompletionChunk as _ChatCompletionChunk
from wrapt import wrap_function_wrapper

from genai_impact.impacts import Impacts
from genai_impact.tracers.utils import compute_llm_impacts
from ecologits.impacts import Impacts
from ecologits.tracers.utils import compute_llm_impacts

PROVIDER = "openai"

Expand Down
6 changes: 3 additions & 3 deletions genai_impact/tracers/utils.py → ecologits/tracers/utils.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from typing import Optional

from genai_impact.impacts.llm import compute_llm_impacts as _compute_llm_impacts
from genai_impact.impacts.models import Impacts
from genai_impact.model_repository import models
from ecologits.impacts.llm import compute_llm_impacts as _compute_llm_impacts
from ecologits.impacts.models import Impacts
from ecologits.model_repository import models


def _avg(value_range: tuple) -> float:
Expand Down
3 changes: 0 additions & 3 deletions genai_impact/__init__.py

This file was deleted.

7 changes: 0 additions & 7 deletions genai_impact/exceptions.py

This file was deleted.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "genai_impact"
name = "ecologits"
version = "0.1.0"
description = "GenAI Impact projet"
description = "Ecologits tracks and estimates the energy consumption and environmental impacts of using generative AI models through APIs."
authors = ["DataForGood"]
license = "MIT"
readme = "README.md"
Expand Down
4 changes: 2 additions & 2 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import pytest

from genai_impact import Tracer
from ecologits import Ecologits


@pytest.fixture(autouse=True)
Expand All @@ -28,4 +28,4 @@ def vcr_config():

@pytest.fixture(scope="session")
def tracer_init():
Tracer.init()
Ecologits.init()
2 changes: 1 addition & 1 deletion tests/test_compute_llm_impacts.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest

from genai_impact.impacts.llm import compute_llm_impacts
from ecologits.impacts.llm import compute_llm_impacts


@pytest.mark.parametrize(
Expand Down
2 changes: 1 addition & 1 deletion tests/test_model_repository.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from genai_impact.model_repository import ModelRepository, Model
from ecologits.model_repository import ModelRepository, Model


def test_create_model_repository_default():
Expand Down
8 changes: 4 additions & 4 deletions tests/test_tracer.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import pytest
from genai_impact import Tracer
from genai_impact.exceptions import GenAIImpactError
from ecologits import Ecologits
from ecologits.exceptions import EcologitsError


def test_double_init(tracer_init):
with pytest.raises(GenAIImpactError) as e:
Tracer.init() # Second initialization
with pytest.raises(EcologitsError) as e:
Ecologits.init() # Second initialization

0 comments on commit 3618e1f

Please sign in to comment.