🔨 refactor(embeddings.py): move openai fields formatting to a separate method
✅ test(embeddings_template.py): add tests for openai fields formatting
The openai fields formatting is now done in a separate method, which improves the readability and maintainability of the code. Tests were added to ensure that the formatting is done correctly.
This commit is contained in:
parent
fa9a3a210b
commit
023df99ecc
2 changed files with 76 additions and 4 deletions
|
|
@ -22,6 +22,22 @@ class EmbeddingFrontendNode(FrontendNode):
|
||||||
field.display_name = "Jina API URL"
|
field.display_name = "Jina API URL"
|
||||||
field.password = False
|
field.password = False
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def format_openai_fields(field: TemplateField):
|
||||||
|
if "openai" in field.name:
|
||||||
|
field.show = True
|
||||||
|
field.advanced = True
|
||||||
|
split_name = field.name.split("_")
|
||||||
|
title_name = " ".join([s.capitalize() for s in split_name])
|
||||||
|
field.display_name = title_name.replace("Openai", "OpenAI").replace(
|
||||||
|
"Api", "API"
|
||||||
|
)
|
||||||
|
|
||||||
|
if "api_key" in field.name:
|
||||||
|
field.password = True
|
||||||
|
field.show = True
|
||||||
|
field.advanced = False
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def format_field(field: TemplateField, name: Optional[str] = None) -> None:
|
def format_field(field: TemplateField, name: Optional[str] = None) -> None:
|
||||||
FrontendNode.format_field(field, name)
|
FrontendNode.format_field(field, name)
|
||||||
|
|
@ -30,9 +46,6 @@ class EmbeddingFrontendNode(FrontendNode):
|
||||||
if field.name == "headers":
|
if field.name == "headers":
|
||||||
field.show = False
|
field.show = False
|
||||||
|
|
||||||
if "openai" in field.name:
|
|
||||||
field.show = True
|
|
||||||
field.advanced = "api_key" not in field.name
|
|
||||||
|
|
||||||
# Format Jina fields
|
# Format Jina fields
|
||||||
EmbeddingFrontendNode.format_jina_fields(field)
|
EmbeddingFrontendNode.format_jina_fields(field)
|
||||||
|
EmbeddingFrontendNode.format_openai_fields(field)
|
||||||
|
|
|
||||||
59
tests/test_embeddings_template.py
Normal file
59
tests/test_embeddings_template.py
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
from langflow.template.field.base import TemplateField
|
||||||
|
from langflow.template.frontend_node.embeddings import EmbeddingFrontendNode
|
||||||
|
|
||||||
|
|
||||||
|
def test_format_jina_fields():
|
||||||
|
field = TemplateField(name="jina")
|
||||||
|
EmbeddingFrontendNode.format_jina_fields(field)
|
||||||
|
assert field.show is True
|
||||||
|
assert field.advanced is False
|
||||||
|
|
||||||
|
field = TemplateField(name="auth")
|
||||||
|
EmbeddingFrontendNode.format_jina_fields(field)
|
||||||
|
assert field.password is True
|
||||||
|
assert field.show is True
|
||||||
|
assert field.advanced is False
|
||||||
|
|
||||||
|
field = TemplateField(name="jina_api_url")
|
||||||
|
EmbeddingFrontendNode.format_jina_fields(field)
|
||||||
|
assert field.show is True
|
||||||
|
assert field.advanced is True
|
||||||
|
assert field.display_name == "Jina API URL"
|
||||||
|
assert field.password is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_format_openai_fields():
|
||||||
|
field = TemplateField(name="openai")
|
||||||
|
EmbeddingFrontendNode.format_openai_fields(field)
|
||||||
|
assert field.show is True
|
||||||
|
assert field.advanced is True
|
||||||
|
assert field.display_name == "OpenAI"
|
||||||
|
|
||||||
|
field = TemplateField(name="openai_api_key")
|
||||||
|
EmbeddingFrontendNode.format_openai_fields(field)
|
||||||
|
assert field.password is True
|
||||||
|
assert field.show is True
|
||||||
|
assert field.advanced is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_format_field():
|
||||||
|
field = TemplateField(name="headers")
|
||||||
|
EmbeddingFrontendNode.format_field(field)
|
||||||
|
assert field.show is False
|
||||||
|
|
||||||
|
field = TemplateField(name="jina")
|
||||||
|
EmbeddingFrontendNode.format_field(field)
|
||||||
|
assert field.advanced is False
|
||||||
|
assert field.show is True
|
||||||
|
|
||||||
|
field = TemplateField(name="openai")
|
||||||
|
EmbeddingFrontendNode.format_field(field)
|
||||||
|
assert field.advanced is True
|
||||||
|
assert field.show is True
|
||||||
|
assert field.display_name == "OpenAI"
|
||||||
|
|
||||||
|
field = TemplateField(name="test_field", required=True)
|
||||||
|
EmbeddingFrontendNode.format_field(field)
|
||||||
|
assert field.advanced is False
|
||||||
|
assert field.show is True
|
||||||
|
assert field.required is True
|
||||||
Loading…
Add table
Add a link
Reference in a new issue