langChain.mjs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { ChatOpenAI } from 'langchain/chat_models/openai'
  2. import { HumanMessage, ChatMessage, SystemMessage } from 'langchain/schema'
  3. import { PromptTemplate } from 'langchain/prompts'
  4. import { LLMChain } from 'langchain/chains'
  5. import { PDFLoader } from 'langchain/document_loaders/fs/pdf'
  6. import { UnstructuredLoader } from 'langchain/document_loaders/fs/unstructured'
  7. import { config } from 'dotenv'
  8. import { BufferMemory } from 'langchain/memory'
  9. import { RedisChatMessageHistory } from 'langchain/stores/message/ioredis'
  10. import { ConversationChain } from 'langchain/chains'
  11. import { OpenAIEmbeddings } from 'langchain/embeddings/openai'
  12. import { TypeORMVectorStore } from 'langchain/vectorstores/typeorm'
  13. config()
  14. const loader1 = new UnstructuredLoader('/Users/drew/Downloads/客服的副本.pdf', {
  15. apiUrl: 'http://192.168.6.19:8000/general/v0/general'
  16. })
  17. const docs1 = await loader1.load()
  18. console.log(docs1)
  19. const embeddings = new OpenAIEmbeddings({
  20. azureOpenAIApiKey: 'beb32e4625a94b65ba8bc0ba1688c4d2',
  21. azureOpenAIApiInstanceName: 'zouma',
  22. azureOpenAIApiDeploymentName: 'embedding',
  23. azureOpenAIApiVersion: '2023-03-15-preview',
  24. verbose: true
  25. })
  26. const typeormVectorStore = await TypeORMVectorStore.fromDataSource(embeddings, {
  27. postgresConnectionOptions: {
  28. type: 'postgres',
  29. host: process.env.PG_HOST,
  30. port: process.env.PG_PORT,
  31. username: process.env.PG_USERNAME,
  32. password: process.env.PG_PASSWORD,
  33. database: process.env.PG_DATABASE
  34. },
  35. verbose: true
  36. })
  37. await typeormVectorStore.ensureTableInDatabase()
  38. await typeormVectorStore.addDocuments(docs1)
  39. const results = await typeormVectorStore.similaritySearch('包邮', 2)
  40. console.log(results)