Skip to content

Commit

Permalink
Add optional dep
Browse files Browse the repository at this point in the history
  • Loading branch information
hinthornw committed Oct 27, 2023
1 parent 0d70e3e commit 1849672
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 41 deletions.
12 changes: 6 additions & 6 deletions libs/langchain/langchain/evaluation/parsing/json_schema.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
from typing import Any, Optional, Union

from jsonschema import ValidationError, validate
from typing import Any, Union

from langchain.evaluation.schema import StringEvaluator
from langchain.output_parsers.json import parse_json_markdown
Expand Down Expand Up @@ -75,6 +73,8 @@ def _parse_json(self, node: Any) -> Union[dict, list, None, float, bool, int, st
return node

def _validate(self, prediction: Any, schema: Any) -> dict:
from jsonschema import ValidationError, validate # noqa: F401

try:
validate(instance=prediction, schema=schema)
return {
Expand All @@ -85,9 +85,9 @@ def _validate(self, prediction: Any, schema: Any) -> dict:

def _evaluate_strings(
self,
prediction: str,
input: Optional[str] = None,
reference: Optional[str] = None,
prediction: Union[str, Any],
input: Union[str, Any] = None,
reference: Union[str, Any] = None,
**kwargs: Any,
) -> dict:
parsed_prediction = self._parse_json(prediction)
Expand Down
14 changes: 7 additions & 7 deletions libs/langchain/langchain/evaluation/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from abc import ABC, abstractmethod
from enum import Enum
from functools import partial
from typing import Any, Optional, Sequence, Tuple
from typing import Any, Optional, Sequence, Tuple, Union
from warnings import warn

from langchain.chains.base import Chain
Expand Down Expand Up @@ -146,9 +146,9 @@ def requires_reference(self) -> bool:
def _evaluate_strings(
self,
*,
prediction: str,
reference: Optional[str] = None,
input: Optional[str] = None,
prediction: Union[str, Any],
reference: Optional[Union[str, Any]] = None,
input: Optional[Union[str, Any]] = None,
**kwargs: Any,
) -> dict:
"""Evaluate Chain or LLM output, based on optional input and label.
Expand All @@ -169,9 +169,9 @@ def _evaluate_strings(
async def _aevaluate_strings(
self,
*,
prediction: str,
reference: Optional[str] = None,
input: Optional[str] = None,
prediction: Union[str, Any],
reference: Optional[Union[str, Any]] = None,
input: Optional[Union[str, Any]] = None,
**kwargs: Any,
) -> dict:
"""Asynchronously evaluate Chain or LLM output, based on optional input and label.
Expand Down
30 changes: 2 additions & 28 deletions libs/langchain/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions libs/langchain/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ cassio = {version = "^0.1.0", optional = true}
rdflib = {version = "^6.3.2", optional = true}
sympy = {version = "^1.12", optional = true}
rapidfuzz = {version = "^3.1.1", optional = true}
jsonschema = {version = ">1", optional = true}
langsmith = "~0.0.52"
rank-bm25 = {version = "^0.2.2", optional = true}
amadeus = {version = ">=8.1.0", optional = true}
Expand Down Expand Up @@ -350,6 +351,7 @@ extended_testing = [
"openai",
"sympy",
"rapidfuzz",
"jsonschema",
"openai",
"rank-bm25",
"geopandas",
Expand Down

0 comments on commit 1849672

Please sign in to comment.