MagnivOrg / prompt-layer-library

🍰 PromptLayer - Maintain a log of your prompts and OpenAI API requests. Track, debug, and replay old completions.
https://www.promptlayer.com
Apache License 2.0
479 stars 42 forks source link

Langchain requirements #44

Closed jzone3 closed 11 months ago

jzone3 commented 1 year ago

promptlayer seems to depend on langchain, and specifically a certain version of Langchain.

I started getting a confusing error that was resolved when updating Langchain. PromptLayer's pip library shouuld require >= langchain version X.

(base) jared@Jareds-MacBook-Pro-3 dev % python
Python 3.9.5 (default, May 18 2021, 12:31:01)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import promptlayer
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jared/miniconda3/lib/python3.9/site-packages/promptlayer/__init__.py", line 5, in <module>
    import promptlayer.prompts as prompts
  File "/Users/jared/miniconda3/lib/python3.9/site-packages/promptlayer/prompts/__init__.py", line 1, in <module>
    from promptlayer.prompts.prompts import get_prompt as get
  File "/Users/jared/miniconda3/lib/python3.9/site-packages/promptlayer/prompts/prompts.py", line 4, in <module>
    from promptlayer.prompts.chat import CHAT_PROMPTLAYER_LANGCHAIN, to_dict, to_prompt
  File "/Users/jared/miniconda3/lib/python3.9/site-packages/promptlayer/prompts/chat.py", line 12, in <module>
    def to_dict(prompt_template: prompts.ChatPromptTemplate):
AttributeError: module 'langchain.prompts' has no attribute 'ChatPromptTemplate'
jzone3 commented 1 year ago

Tucker also received an error when he didn't have Langchain at all

 File "/Users/tuckerwash/Desktop/promptlayer/prompt.py", line 1, in <module>
    import promptlayer
  File "/usr/local/lib/python3.9/site-packages/promptlayer/__init__.py", line 5, in <module>
    import promptlayer.prompts as prompts
  File "/usr/local/lib/python3.9/site-packages/promptlayer/prompts/__init__.py", line 1, in <module>
    from promptlayer.prompts.prompts import get_prompt as get
  File "/usr/local/lib/python3.9/site-packages/promptlayer/prompts/prompts.py", line 1, in <module>
    from langchain import PromptTemplate, prompts
  File "/usr/local/lib/python3.9/site-packages/langchain/__init__.py", line 6, in <module>
    from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain
  File "/usr/local/lib/python3.9/site-packages/langchain/agents/__init__.py", line 2, in <module>
    from langchain.agents.agent import (
  File "/usr/local/lib/python3.9/site-packages/langchain/agents/agent.py", line 16, in <module>
    from langchain.agents.tools import InvalidTool
  File "/usr/local/lib/python3.9/site-packages/langchain/agents/tools.py", line 8, in <module>
    from langchain.tools.base import BaseTool, Tool, tool
  File "/usr/local/lib/python3.9/site-packages/langchain/tools/__init__.py", line 3, in <module>
    from langchain.tools.arxiv.tool import ArxivQueryRun
  File "/usr/local/lib/python3.9/site-packages/langchain/tools/arxiv/tool.py", line 12, in <module>
    from langchain.utilities.arxiv import ArxivAPIWrapper
  File "/usr/local/lib/python3.9/site-packages/langchain/utilities/__init__.py", line 3, in <module>
    from langchain.utilities.apify import ApifyWrapper
  File "/usr/local/lib/python3.9/site-packages/langchain/utilities/apify.py", line 5, in <module>
    from langchain.document_loaders import ApifyDatasetLoader
  File "/usr/local/lib/python3.9/site-packages/langchain/document_loaders/__init__.py", line 41, in <module>
    from langchain.document_loaders.embaas import EmbaasBlobLoader, EmbaasLoader
  File "/usr/local/lib/python3.9/site-packages/langchain/document_loaders/embaas.py", line 54, in <module>
    class BaseEmbaasLoader(BaseModel):
  File "pydantic/main.py", line 205, in pydantic.main.ModelMetaclass.__new__
  File "pydantic/fields.py", line 491, in pydantic.fields.ModelField.infer
  File "pydantic/fields.py", line 421, in pydantic.fields.ModelField.__init__
  File "pydantic/fields.py", line 542, in pydantic.fields.ModelField.prepare
  File "pydantic/fields.py", line 804, in pydantic.fields.ModelField.populate_validators
  File "pydantic/validators.py", line 696, in find_validators
  File "pydantic/validators.py", line 585, in pydantic.validators.make_typeddict_validator
  File "pydantic/annotated_types.py", line 35, in pydantic.annotated_types.create_model_from_typeddict
  File "pydantic/main.py", line 988, in pydantic.main.create_model
  File "pydantic/main.py", line 205, in pydantic.main.ModelMetaclass.__new__
  File "pydantic/fields.py", line 491, in pydantic.fields.ModelField.infer
  File "pydantic/fields.py", line 421, in pydantic.fields.ModelField.__init__
  File "pydantic/fields.py", line 537, in pydantic.fields.ModelField.prepare
  File "pydantic/fields.py", line 641, in pydantic.fields.ModelField._type_analysis
  File "/usr/local/Cellar/python@3.9/3.9.14/Frameworks/Python.framework/Versions/3.9/lib/python3.9/typing.py", line 852, in __subclasscheck__
    return issubclass(cls, self.__origin__)
TypeError: issubclass() arg 1 must be a class
jzone3 commented 1 year ago

I think the same is true with openai