Commit Graph

26 Commits

Author SHA1 Message Date
leo-gan fd69cc7e42 Removed duplicate BaseModel dependencies (#2471)
Removed duplicate BaseModel dependencies in class inheritances.
Also, sorted imports by `isort`.
2023-04-06 12:45:16 -07:00
Tim Asp 6be67279fb Add apredict_and_parse to LLM (#2164)
`predict_and_parse` exists, and it's a nice abstraction to allow for
applying output parsers to LLM generations. And async is very useful.

As an aside, the difference between `call/acall`, `predict/apredict` and
`generate/agenerate` isn't entirely
clear to me other than they all call into the LLM in slightly different
ways.

Is there some documentation or a good way to think about these
differences?

One thought:  

output parsers should just work magically for all those LLM calls. If
the `output_parser` arg is set on the prompt, the LLM has access, so it
seems like extra work on the user's end to have to call
`output_parser.parse`

If this sounds reasonable, happy to throw something together. @hwchase17
2023-03-29 22:12:50 -07:00
Harrison Chase 0e21463f07 (rfc) chat models (#1424)
Co-authored-by: Ankush Gola <ankush.gola@gmail.com>
2023-03-06 08:34:24 -08:00
Harrison Chase 63a5614d23 Harrison/simple memory (#1435)
Co-authored-by: Tim Asp <707699+timothyasp@users.noreply.github.com>
2023-03-04 08:15:52 -08:00
Zach Schillaci 159c560c95 Refactor some loops into list comprehensions (#1185) 2023-02-20 16:38:43 -08:00
Ankush Gola caa8e4742e Enable streaming for OpenAI LLM (#986)
* Support a callback `on_llm_new_token` that users can implement when
`OpenAI.streaming` is set to `True`
2023-02-14 15:06:14 -08:00
Ankush Gola bc7e56e8df Add asyncio support for LLM (OpenAI), Chain (LLMChain, LLMMathChain), and Agent (#841)
Supporting asyncio in langchain primitives allows for users to run them
concurrently and creates more seamless integration with
asyncio-supported frameworks (FastAPI, etc.)

Summary of changes:

**LLM**
* Add `agenerate` and `_agenerate`
* Implement in OpenAI by leveraging `client.Completions.acreate`

**Chain**
* Add `arun`, `acall`, `_acall`
* Implement them in `LLMChain` and `LLMMathChain` for now

**Agent**
* Refactor and leverage async chain and llm methods
* Add ability for `Tools` to contain async coroutine
* Implement async SerpaPI `arun`

Create demo notebook.

Open questions:
* Should all the async stuff go in separate classes? I've seen both
patterns (keeping the same class and having async and sync methods vs.
having class separation)
2023-02-07 21:21:57 -08:00
Harrison Chase a2b699dcd2 prompt template from string (#884) 2023-02-04 17:04:58 -08:00
Harrison Chase 3f952eb597 add from string method (#820) 2023-02-02 08:23:54 -08:00
Harrison Chase 0ffeabd14f Harrison/serialize llm chain (#671) 2023-01-24 21:36:19 -08:00
Harrison Chase cbc146720b verbose flag (#683) 2023-01-22 12:44:14 -08:00
Harrison Chase 9e04c34e20 Add BaseCallbackHandler and CallbackManager (#478)
Co-authored-by: Ankush Gola <9536492+agola11@users.noreply.github.com>
2023-01-04 07:54:25 -08:00
Harrison Chase b50a56830d Harrison/evaluation notebook (#426) 2022-12-26 09:16:37 -05:00
Harrison Chase 6b60c509ac (WIP) add HyDE (#393)
Co-authored-by: cameronccohen <cameron.c.cohen@gmail.com>
Co-authored-by: Cameron Cohen <cameron.cohen@quantco.com>
2022-12-21 20:46:41 -05:00
Harrison Chase 3474f39e21 Harrison/improve cache (#368)
make it so everything goes through generate, which removes the need for
two types of caches
2022-12-18 16:22:42 -05:00
Harrison Chase 996b5a3dfb Harrison/llm final stuff (#332) 2022-12-13 07:50:46 -08:00
Harrison Chase e02d6b2288 beta: logger (#307) 2022-12-10 23:17:19 -08:00
Harrison Chase db58032973 introduce output parser (#250) 2022-12-03 13:28:07 -08:00
Samantha Whitmore a408ed3ea3 Samantha/add conversation chain (#166)
Add MemoryChain and ConversationChain as chains that take a docstore in
addition to the prompt, and use the docstore to stuff context into the
prompt. This can be used to have an ongoing conversation with a chatbot.

Probably needs a bit of refactoring for code quality

Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
2022-11-23 16:35:38 -08:00
Harrison Chase a19ad935b3 Harrison/verbose prompt (#159)
Add printing of prompt to LLMChain
2022-11-19 20:39:35 -08:00
Harrison Chase c02eb199b6 add few shot example (#148) 2022-11-19 20:32:45 -08:00
Harrison Chase f23b3ceb49 consolidate run functions (#126)
consolidating logic for when a chain is able to run with single input
text, single output text

open to feedback on naming, logic, usefulness
2022-11-13 18:14:35 -08:00
Samantha Whitmore a5b61d59e1 Refactor prompts into module, add example generation utils (#64) 2022-11-06 15:40:33 -08:00
Samantha Whitmore 4bbaa9b2d0 Add BasePrompt as abstract base class (#60) 2022-11-04 08:42:45 -07:00
Harrison Chase 5621ca7b07 Harrison/more documentation (#19) 2022-10-24 20:24:15 -07:00
Harrison Chase 18aeb72012 initial commit 2022-10-24 14:51:15 -07:00