Harrison Chase
9833fcfe32
fix caching ( #555 )
2023-01-06 07:30:10 -08:00
Harrison Chase
330a5b42d4
fix map reduce chain ( #550 )
2023-01-06 07:15:57 -08:00
Harrison Chase
4974f49bb7
add return_direct flag to tool ( #537 )
...
adds a return_direct flag to tools, which just returns the tool output
as the final output
2023-01-06 06:40:32 -08:00
Harrison Chase
1631981f84
Harrison/fix and test caching ( #538 )
2023-01-04 18:39:06 -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
0db05b6725
Harrison/add human prefix ( #520 )
...
Co-authored-by: Andrew Huang <jhuang16888@gmail.com>
2023-01-03 08:03:50 -08:00
Harrison Chase
985496f4be
Docs refactor ( #480 )
...
Big docs refactor! Motivation is to make it easier for people to find
resources they are looking for. To accomplish this, there are now three
main sections:
- Getting Started: steps for getting started, walking through most core
functionality
- Modules: these are different modules of functionality that langchain
provides. Each part here has a "getting started", "how to", "key
concepts" and "reference" section (except in a few select cases where it
didnt easily fit).
- Use Cases: this is to separate use cases (like summarization, question
answering, evaluation, etc) from the modules, and provide a different
entry point to the code base.
There is also a full reference section, as well as extra resources
(glossary, gallery, etc)
Co-authored-by: Shreya Rajpal <ShreyaR@users.noreply.github.com>
2023-01-02 08:24:09 -08:00
Harrison Chase
d0f194de73
add logic for agent stopping ( #420 )
2022-12-29 08:21:11 -05:00
Harrison Chase
95157d0aad
Add schema property to sql database utility class ( #448 ) ( #462 )
...
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
Signed-off-by: Diwank Singh Tomer <diwank.singh@gmail.com>
Co-authored-by: Nuno Campos <nuno@boringbits.io>
Co-authored-by: Diwank Singh Tomer <diwank.singh@gmail.com>
2022-12-28 17:37:53 -05:00
Harrison Chase
0c5d3fd894
version 0.0.49 ( #436 )
2022-12-27 09:17:01 -05:00
Harrison Chase
f8b605293f
Harrison/improve memory ( #432 )
...
add AI prefix
add new type of memory
Co-authored-by: Jason <chisanch@usc.edu>
2022-12-27 08:23:51 -05:00
Harrison Chase
ee3b8e89b3
better parsing of agent output ( #418 )
2022-12-25 09:53:36 -05:00
Harrison Chase
20959d8c36
check memory variables ( #411 )
...
can have multiple input keys, if some come from memory
2022-12-24 08:35:46 -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
c104d507bf
Harrison/improve data augmented generation docs ( #390 )
...
Co-authored-by: cameronccohen <cameron.c.cohen@gmail.com>
Co-authored-by: Cameron Cohen <cameron.cohen@quantco.com>
2022-12-20 22:24:08 -05:00
Harrison Chase
cf98f219f9
Harrison/tools exp ( #372 )
2022-12-18 21:51:23 -05:00
Harrison Chase
e7b625fe03
fix text splitter ( #375 )
2022-12-18 20:21:43 -05:00
Ankush Gola
8d0869c6d3
change run to use args and kwargs ( #367 )
...
Before, `run` was not able to be called with multiple arguments. This
expands the functionality.
2022-12-18 15:54:56 -05:00
Harrison Chase
c1b50b7b13
Harrison/map reduce merge ( #344 )
...
Co-authored-by: John Nay <JohnNay@users.noreply.github.com>
2022-12-15 17:49:14 -08:00
Harrison Chase
78b31e5966
Harrison/cache ( #343 )
2022-12-15 07:53:32 -08:00
Harrison Chase
8cf62ce06e
Harrison/single input ( #347 )
...
allow passing of single input into chain
Co-authored-by: thepok <richterthepok@yahoo.de>
2022-12-15 07:52:51 -08:00
Harrison Chase
9bb7195085
Harrison/llm saving ( #331 )
...
Co-authored-by: Akash Samant <70665700+asamant21@users.noreply.github.com>
2022-12-13 06:46:01 -08:00
Hunter Gerlach
482611f426
unit test / code coverage improvements ( #322 )
...
This PR has two contributions:
1. Add test for when stop token is found in middle of text
2. Add code coverage tooling and instructions
- Add pytest-cov via poetry
- Add necessary config files
- Add new make instruction for `coverage`
- Update README with coverage guidance
- Update minor README formatting/spelling
Co-authored-by: Hunter Gerlach <hunter@huntergerlach.com>
2022-12-13 05:48:53 -08:00
Shobith Alva
19a9fa16a9
Add clear()
method for Memory
( #305 )
...
a simple helper to clear the buffer in `Conversation*Memory` classes
2022-12-11 07:09:06 -08:00
Harrison Chase
e02d6b2288
beta: logger ( #307 )
2022-12-10 23:17:19 -08:00
andersenchen
5267ebce2d
Add LLMCheckerChain ( #281 )
...
Implementation of https://github.com/jagilley/fact-checker . Works pretty
well.
<img width="993" alt="Screenshot 2022-12-07 at 4 41 47 PM"
src="https://user-images.githubusercontent.com/101075607/206302751-356a19ff-d000-4798-9aee-9c38b7f532b9.png ">
Verifying this manually:
1. "Only two kinds of egg-laying mammals are left on the planet
today—the duck-billed platypus and the echidna, or spiny anteater."
https://www.scientificamerican.com/article/extreme-monotremes/
2. "An [Echidna] egg weighs 1.5 to 2 grams (0.05 to 0.07
oz)[[19]](https://en.wikipedia.org/wiki/Echidna#cite_note-19 ) and is
about 1.4 centimetres (0.55 in) long."
https://en.wikipedia.org/wiki/Echidna#:~:text=sleep%20is%20suppressed.-,Reproduction,a%20reptile%2Dlike%20egg%20tooth .
3. "A [platypus] lays one to three (usually two) small, leathery eggs
(similar to those of reptiles), about 11 mm (7⁄16 in) in diameter and
slightly rounder than bird eggs."
https://en.wikipedia.org/wiki/Platypus#:~:text=It%20lays%20one%20to%20three,slightly%20rounder%20than%20bird%20eggs .
4. Therefore, an Echidna is the mammal that lays the biggest eggs.
cc @hwchase17
2022-12-09 12:49:05 -08:00
Harrison Chase
3c1c7ba672
update branch name in gha ( #274 )
2022-12-06 22:28:50 -08:00
Akash Samant
48b093823e
Add a Transformation Chain ( #257 )
...
Arbitrary transformation chains that can be used to add dictionary
extractions from llms/other chains
2022-12-06 21:58:16 -08:00
coyotespike
b7bef36ee1
BashChain ( #260 )
...
Love the project, a ton of fun!
I think the PR is pretty self-explanatory, happy to make any changes! I
am working on using it in an `LLMBashChain` and may update as that
progresses.
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
2022-12-06 21:57:50 -08:00
Harrison Chase
28be37f470
LLMRequestsChain ( #267 )
2022-12-06 21:55:02 -08:00
John McDonnell
68666d6a22
Gracefully degrade when model asks for nonexistent tool ( #268 )
...
Not yet tested, but very simple change, assumption is that we're cool
with just producing a generic output when tool is not found
2022-12-06 21:52:48 -08:00
Harrison Chase
f5c665a544
combine python files ( #256 )
2022-12-04 15:57:36 -08:00
Harrison Chase
db58032973
introduce output parser ( #250 )
2022-12-03 13:28:07 -08:00
Harrison Chase
a9ce04201f
Harrison/improve usability of api chain ( #247 )
...
improve usability of api chain
2022-12-02 15:44:10 -08:00
Harrison Chase
c897bd6cbd
api chain ( #246 )
...
Co-authored-by: Subhash Ramesh <33400216+thecooltechguy@users.noreply.github.com>
2022-12-02 13:39:36 -08:00
Xupeng (Tony) Tong
bb4bf9d6d0
chore: minor clean up / formatting ( #233 )
...
to get familiarize with the project
2022-12-01 10:50:36 -08:00
Andrew Gleave
ea67c049f0
Support SQL statements that return no results ( #222 )
...
Adds support for statements such as insert, update etc which do not
return any rows.
`engine.execute` is deprecated and so execution has been updated to use
`connection.exec_driver_sql` as-per:
https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.execute
2022-11-29 08:28:45 -08:00
Akash Samant
d368c43648
Bug Fix ( #221 )
...
Quick bug fix for semantic similarity vector injection
2022-11-29 07:03:40 -08:00
Harrison Chase
b94244eb12
nits ( #210 )
...
use json.dump
move test to integration tests (since it requires huggingface_hub)
2022-11-27 13:03:09 -08:00
Akash Samant
ae72cf84b8
Save Prompts ( #194 )
2022-11-27 09:10:35 -08:00
Bagatur
b90e25f786
Add HuggingFace Hub Embeddings ( #125 )
...
Add support for calling HuggingFace embedding models
using the HuggingFaceHub Inference API. New class mirrors
the existing HuggingFaceHub LLM implementation. Currently
only supports 'sentence-transformers' models.
Closes #86
2022-11-27 00:24:59 -08:00
Harrison Chase
6eab5254e5
add docs for custom agents ( #196 )
2022-11-26 06:03:08 -08:00
Harrison Chase
08deed9002
Harrison/memory docs ( #195 )
...
update memory docs and change variables
2022-11-26 05:58:54 -08:00
Harrison Chase
b913df3774
make attrs public ( #187 )
...
since they are used outside of the class, should be public
2022-11-24 20:11:29 -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
4334ffa6f9
Harrison/clean up language ( #179 )
...
dynamic prompts are no longer a thing
2022-11-23 16:58:41 -05:00
Samantha Whitmore
09f301cd38
Add add_example method to all ExampleSelector classes, with tests ( #178 )
...
Also updated docs, and noticed an issue with the add_texts method on
VectorStores that I had missed before -- the metadatas arg should be
required to match the classmethod which initializes the VectorStores
(the add_example methods break otherwise in the ExampleSelectors)
2022-11-23 13:12:47 -08:00
Harrison Chase
d3a7429f61
(WIP) agents ( #171 )
2022-11-22 06:16:26 -08:00
Harrison Chase
4a4dfbfbed
Harrison/sequential chains ( #168 )
...
add support for basic sequential chains
2022-11-21 13:08:53 -08:00
Samantha Whitmore
315b0c09c6
wip: add method for both docstore and embeddings ( #119 )
...
this will break atm but wanted to get thoughts on implementation.
1. should add() be on docstore interface?
2. should InMemoryDocstore change to take a list of documents as init?
(makes this slightly easier to implement in FAISS -- if we think it is
less clean then could expose a method to get the number of documents
currently in the dict, and perform the logic of creating the necessary
dictionary in the FAISS.add_texts method.
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
2022-11-20 16:23:58 -08:00
Harrison Chase
c02eb199b6
add few shot example ( #148 )
2022-11-19 20:32:45 -08:00
Nicholas Larus-Stone
0c3ae78ec1
chore: update ascii colors to work with dark mode ( #152 )
2022-11-16 22:05:28 -08:00
Nicholas Larus-Stone
ca4b10bb74
feat: add option to ignore or restrict to SQL tables ( #151 )
...
`SQLDatabase` now accepts two `init` arguments:
1. `ignore_tables` to pass in a list of tables to not search over
2. `include_tables` to restrict to a list of tables to consider
2022-11-16 22:04:50 -08:00
Harrison Chase
1835e8a681
prompt nit ( #141 )
...
doing some cleanup, and i think this just simplifies things...
2022-11-14 21:30:33 -08:00
Harrison Chase
bbb405a492
update colors ( #140 )
2022-11-14 20:27:36 -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
Edmar Ferreira
8a5ec894e7
Prompt from file proof of concept using plain text ( #127 )
...
This is a simple proof of concept of using external files as templates.
I'm still feeling my way around the codebase.
As a user, I want to use files as prompts, so it will be easier to
manage and test prompts.
The future direction is to use a template engine, most likely Mako.
2022-11-13 13:15:30 -08:00
Harrison Chase
db37bd089f
model laboratory ( #95 )
2022-11-08 22:17:10 -08:00
Harrison Chase
eb36317f9a
Harrison/fix imports ( #72 )
...
fix imports and add section to notebook
2022-11-06 16:06:40 -08:00
Samantha Whitmore
a5b61d59e1
Refactor prompts into module, add example generation utils ( #64 )
2022-11-06 15:40:33 -08:00
Harrison Chase
2456a547de
mrkl ( #42 )
2022-11-05 14:41:53 -07:00
Samantha Whitmore
c636488fe5
DynamicPrompt class creation ( #49 )
...
Checking that this structure looks generally ok -- going to sub in logic
where the TODO comment is then add a test.
2022-11-05 12:43:21 -07:00
Harrison Chase
4cc18d6c2a
Harrison/pretty print ( #57 )
...
make stuff look nice
2022-11-03 00:41:07 -07:00
Harrison Chase
76aff023d7
FAISS and embedding support ( #48 )
...
also adds embeddings and an in memory docstore
2022-11-01 21:29:39 -07:00
Harrison Chase
e982cf4b2e
Harrison/update docstore ( #47 )
...
change docstore interface
2022-10-31 21:18:52 -07:00
Harrison Chase
160af4ba6b
Harrison/map reduce ( #36 )
2022-10-31 20:17:22 -07:00
Harrison Chase
fba30e07d1
factor out mock python repl ( #43 )
2022-10-30 18:09:04 -07:00
Harrison Chase
7b0d02ac51
prompt templating ( #41 )
...
Co-authored-by: Samantha Whitmore <whitmore.samantha@gmail.com>
2022-10-30 09:45:27 -07:00
Harrison Chase
af81e9ca9c
add sql database ( #35 )
2022-10-27 23:21:47 -07:00
Harrison Chase
ce7b14b843
Harrison/add react chain ( #24 )
...
from https://arxiv.org/abs/2210.03629
still need to think if docstore abstraction makes sense
2022-10-26 21:02:23 -07:00
Harrison Chase
020c42dcae
Harrison/add huggingface hub ( #23 )
...
Add support for huggingface hub
I could not find a good way to enforce stop tokens over the huggingface
hub api - that needs to hopefully be cleaned up in the future
2022-10-25 22:00:33 -07:00
Harrison Chase
1ef3ab4d0e
Harrison/add natbot ( #18 )
2022-10-24 19:56:26 -07:00
Harrison Chase
18aeb72012
initial commit
2022-10-24 14:51:15 -07:00