Langchain Self-Level: Verwenden Sie einen numerischen Wert: Ganzzahl, float, doppelt, lang. Value Map (Datum -> 2023-03-Python

Python-Programme
Anonymous
 Langchain Self-Level: Verwenden Sie einen numerischen Wert: Ganzzahl, float, doppelt, lang. Value Map (Datum -> 2023-03-

Post by Anonymous »

Ich verwende derzeit Langchains Selbstbildungsfunktionalität von Retriever, um relevante Filterkriterien aus natürlichen Sprachfragen und Retriever auf der Grundlage dieser Filter zu extrahieren. Ich hatte Erfolg mit allen möglichen Saiten, einschließlich und/oder Situationen. Ich habe jedoch Probleme, wenn ich versuche, mit einer Date -Einschränkung zu fragen. Ich habe eine Benutzeroberfläche gebaut, in der ich eine Date -Reichweite bestehe, aber auch Benutzer können abfragen, z. B. "Geben Sie mir alle Heimlisten aus dem letzten Jahr". Derzeit teste ich mit einem einzigen Datum im YYYY-MM-DD-Format und erhalte den folgenden Fehler: < /p>

Code: Select all

'Response content b\\\'{"error_code":"BAD_REQUEST","message":"Please use a numeric value: integer, float, double, long. Value Map(date -> 2023-03-01, type -> date) is unsupported for operator >=."
< /code>
Mein "Datum" -Feld hat einen "Datum" -Datenatyp, der hier eindeutig nicht akzeptiert wird. Kennt jemand einen Weg, um einen Datumsfilter zum Laufen zu bringen? Würde die Konvertierung in Epoch/Unix, aber ich bin mir nicht sicher, ob das funktionieren würde.     metadata_field_info =[..., AttributeInfo(
name="Date",
description="Date the property was listed",
type="date"), ...]

Adddtional Retriever params:

allowed_comparators = [
"eq",  # Equal to (number, string, boolean)
# "$ne",  # Not equal to (number, string, boolean)
"gt",  # Greater than (number)
"gte",  # Greater than or equal to (number)
"lt",  # Less than (number)
"lte",  # Less than or equal to (number)
"in",  # In array (string or number)
# "$nin",  # Not in array (string or number)
"like", # Has the specified string (string)
]

# Define allowed operators list
allowed_operators = [
"and",
"or",
"not"
]

examples = {JSON of examples}
## Query component constructor
constructor_prompt = get_query_constructor_prompt(
document_content_description,
metadata_field_info,
allowed_comparators=allowed_comparators,
allowed_operators=allowed_operators,
examples=examples,
)

output_parser = StructuredQueryOutputParser.from_components()
query_constructor = constructor_prompt | llm | output_parser

## Self-Querying Retriever
sq_retriever = SelfQueryRetriever(
query_constructor=query_constructor,
vectorstore=openai_vs_db,
structured_query_translator=DatabricksVectorSearchTranslator(),
search_kwargs={'k': k}
)

Daten sind alle Zeichenfolgen mit Ausnahme des Datumsfeldes, an dem ich versuche zu filtern, ein Datum und eine erstellte DateTime, die ein Zeitstempel ist und für alles filterweise nicht relevant ist.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post